Zugriffssteuerungsreferenz
Einen Setup-Befehl mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin erstellen.
Capgo verwendet Zugriffssteuerung auf der Basis von Rollen (RBAC) um zu bestimmen, was jeder Teammitglied tun kann. Rollen sind nach Bereich — vom gesamten Unternehmen bis hin zu einer einzelnen Bundle.
Für eine visuelle Anleitung zur Verwaltung von Mitgliedern im Dashboard, siehe Organisation.
Rollenbereiche
Abschnitt mit dem Titel „Rollenbereiche”Jede Rolle gehört zu einem Bereich, der bestimmt, welche Ressource sie Zugriff gewährt.
| Bereich | Gilt für | Beispielanwendung |
|---|---|---|
| Organisation | Die gesamte Organisation und alle ihre Apps | Dein Mitgründer erhält Super Admin; dein Buchhalter erhält Billing Manager |
| App | Eine einzelne App und ihre Kanäle | Ein Auftragnehmer, der an einer App arbeitet, erhält den Rollenname App Developer |
| Kanal | Ein einzelner Kanal innerhalb einer App | Ein QA-Engineer verwaltet nur den staging Kanal |
| Paket | Eine einzelne Paketversion | Ein Rezensent benötigt Leserecht für eine bestimmte Release |
Ein Mitglied kann in einer Rolle pro Scope-Ziel haben — zum Beispiel eine Rolle in einer Organisation, eine Rolle in App A und eine andere Rolle in App B.
Organisationsrollen
Sektion mit dem Titel “Organisationsrollen”Diese Rollen werden zugewiesen, wenn ein Mitglied eingeladen wird. Sie gewähren Zugriff auf die gesamte Organisation.
| Rolle | Internes Name | Beschreibung |
|---|---|---|
| Super Admin | org_super_admin | Äquivalent zum Besitzer. Vollständiger Kontrolle einschließlich Löschung der Organisation, Verwaltung der Abrechnung und Übertragung von Apps. Automatisch der Organisationsersteller zugewiesen. |
| Admin | org_admin | Vollständige Verwaltung – Mitglieder, Apps, Kanäle verwalten. Die Organisation nicht löschen, Abrechnung aktualisieren, Apps übertragen oder Benutzer zu Super Admin befördern. |
| Abrechnungsmanager | org_billing_admin | Zugriff auf Abrechnung nur: Abrechnungsinformationen, Rechnungen und Abrechnungsprotokolle anzeigen und aktualisieren. Kein Zugriff auf Apps oder Mitglieder. |
| Mitglied | org_member | Leserecht auf die Organisation und alle ihre Apps. |
Organisationsrechte Matrix
Abschnitt mit dem Titel „Organisationsrechte Matrix”| Recht | Beschreibung | Super Administrator | Administrator | Kostenstellenverwalter | Mitglied |
|---|---|---|---|---|---|
org.read | Die Organisation anzeigen | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Organisationsname, Logo und E-Mail-Adresse der Verwaltung bearbeiten | ✅ | ✅ | ❌ | ❌ |
org.delete | Die Organisation dauerhaft löschen | ✅ | ❌ | ❌ | ❌ |
org.read_members | Mitgliederliste anzeigen | ✅ | ✅ | ❌ | ✅ |
org.invite_user | Neue Mitglieder einladen | ✅ | ✅ | ❌ | ❌ |
org.update_user_roles | Mitgliederrollen ändern (Admin kann nicht auf Super Admin befördern — durch Rollen-Hierarchie blockiert) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | Rechnungsinformationen und aktuelles Abonnement anzeigen | ✅ | ✅ | ✅ | ❌ |
org.update_billing | Zahlungsverfahren und Abonnement aktualisieren | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Rechnungen anzeigen | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Organisationsaktivitäten anzeigen | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Rechnungsbezogene Audit-Log anzeigen | ✅ | ✅ | ✅ | ❌ |
Rolle
Interne BezeichnungBeschreibung
| __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
|---|---|---|
| App Admin | app_admin | Vollzugriff auf eine App — Kanäle, Geräte, Benutzerrollen für die App. Die App kann nicht gelöscht oder übertragen werden (diese sind Organisations-Ebene-Befehle). |
| App Entwickler | app_developer | Bundles hochladen, Geräte verwalten, native Builds auslösen, Kanal-Einstellungen aktualisieren. Keine Löschung, keine Änderungen der App-Einstellungen, keine Kanal-Erstellung. |
| App Hoster | app_uploader | Leserecht + Upload neuer Bundle-Versionen. |
| App Leser | app_reader | Nur Lesen — Statistiken, Bundles, Kanäle, Protokolle, Geräte. |
App-Berechtigungs-Matrix
Abschnitt mit dem Titel “App-Berechtigungs-Matrix”| Berechtigung | Beschreibung | App Admin | App Entwickler | App Hoster | App Leser |
|---|---|---|---|---|---|
app.read | App-Daten, -Statistiken und -Metadaten anzeigen | ✅ | ✅ | ✅ | ✅ |
app.update_settings | App-Einstellungen bearbeiten | ✅ | ❌ | ❌ | ❌ |
app.read_bundles | Die Liste der hochgeladenen Pakete anzeigen | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Ein neues Paketversion hochladen | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Ein neues Kanal erstellen | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Kanäle anzeigen | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Aktualisierungs-Lieferungsprotokolle anzeigen | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Geräte zuweisen, überschreiben oder entkoppeln | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Geräteliste anzeigen | ✅ | ✅ | ✅ | ✅ |
app.build_native | eine native Cloud-Build auslösen | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Anwendungsaktivitätsprotokoll anzeigen | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Anwendungsrollenzuweisungen verwalten | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Eine Bundle löschen | ✅ | ❌ | ❌ | ❌ |
Kanalrollen
Abschnitt: KanalrollenGespeichert in einem einzelnen Kanal. Nützlich für die Bereitstellung von zielgerichteter Zugriff auf einen bestimmten Release-Kanal.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Kanal-Admin | channel_admin | Vollzugriff auf einen Kanal: Einstellungen, Bündel promoten/rollen zurück, zwingende Geräte verwalten. |
| Kanal-Betrachter | channel_reader | Leserecht — aktuelles Bündel, Historie, zwingende Geräte, Audit-Log. |
Kanal-Berechtigungsmatrix
Abschnitt mit dem Titel “Kanal-Berechtigungsmatrix”| Berechtigung | Beschreibung | Kanal-Admin | Kanal-Betrachter |
|---|---|---|---|
channel.read | Den Kanal und sein aktuelles Bündel anzeigen | ✅ | ✅ |
channel.update_settings | Kanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…) | ✅ | ❌ |
channel.delete | Kanal löschen | ✅ | ❌ |
channel.read_history | Bündel-Zuweisungsgeschichte anzeigen | ✅ | ✅ |
channel.promote_bundle | Aktives Bündel auf dem Kanal setzen | ✅ | ❌ |
channel.rollback_bundle | Zurückrollen zu einem vorherigen Bündel | ✅ | ❌ |
channel.manage_forced_devices | Zwingen Sie bestimmte Geräte zu diesem Kanal | ✅ | ❌ |
channel.read_forced_devices | Zwingen Sie die Liste der zwingenden Geräte anzuzeigen | ✅ | ✅ |
channel.read_audit | Kanal-Aktivitätsprotokoll anzeigen | ✅ | ✅ |
Bündel-Rollen
Abschnitt mit dem Titel „Bündel-Rollen“Beschränkt auf eine einzelne Bündel-Version. Selten benötigt – die meisten Teams verwenden App-Rollen stattdessen.
| Interne Bezeichnung | Beschreibung | Bundles-Administrator |
|---|---|---|
| Lesen, Metadaten aktualisieren und einen bestimmten Bundle löschen. | bundle_admin | Bundles-Betrachter |
| Leserecht auf einen bestimmten Bundle. | bundle_reader | Kanalberechtigungen überschreiben (Dashboard) |
Channel permission overrides (Dashboard)
Kanalberechtigungsüberwachungen (Dashboard)In der Dashboard-Ansicht wird der Zugriff auf Kanäle durch die Rolle des Benutzers im App-Portal standardmäßig bestimmt. Für eine feinere Kontrolle können Sie spezifische Kanalberechtigungen für jeden Benutzer oder Gruppe ohne Änderung seiner App-Rolle überschreiben.
Die Überwachungen werden von der App aus Zugriff konfiguriert, indem Sie auf das Schaltfeld (Schild-Symbol) neben einem Benutzer klicken. Siehe Organisation — Überwachung von Kanalberechtigungen für eine visuelle Anleitung.
Überschreibbare Berechtigungen
Kanalberechtigungsüberwachungen (Dashboard)| Berechtigungen | Beschreibung | Standardverhalten |
|---|---|---|
| Lesen | Kanal und aktuelles Bundle anzeigen | Von der Rolle des Apps geerbt |
| Historie | Bundle-Zuweisungs-Historie anzeigen | Von der Rolle des Apps geerbt |
| Bundle zuweisen | Aktives Bundle auf dem Kanal setzen oder ändern | Von der Rolle des Apps geerbt |
Jede Berechtigung kann auf:
- Standard — von der App-Rolle erben (der Standard)
- Zulassen — ausdrücklich genehmigen, unabhängig von der App-Rolle
- Verweigern — ausdrücklich ablehnen, unabhängig von der App-Rolle
Dies ermöglicht es Ihnen, zum Beispiel einem App-Leser die Möglichkeit zu geben, Bundles auf dem Kanal ohne sie zum App-Entwickler zu befördern, zu associieren. staging Rollenhierarchie
Abschnitt mit dem Titel „Rollenhierarchie“
Rollen bilden eine Hierarchie. Eine übergeordnete Rolleerbt alle Berechtigungen Die Rollen bilden eine Hierarchie. Eine übergeordnete Rolle von seinen Kindern. Das bedeutet, dass ein org_admin kann alles tun, was ein app_admin kann, was wiederum alles tun kann ein channel_admin kann, und so weiter.
Super Admin (org_super_admin) └── Admin (org_admin) └── App Admin (app_admin) ├── App Developer (app_developer) │ └── App Uploader (app_uploader) │ └── App Reader (app_reader) ├── Bundle Admin (bundle_admin) │ └── Bundle Viewer (bundle_reader) └── Channel Admin (channel_admin) └── Channel Viewer (channel_reader)Wie es in der Praxis funktioniert:
- Ein Administrator auf der Organisationsebene kann alles tun, was ein App-Administrator kann, auf jedem App in der Organisation.
- Ein App-Admin auf einer bestimmten App kann alles tun, was ein Channel-Admin kann, auf jedem Kanal in dieser App.
- Ein App-Entwickler kann alles tun, was ein App-Herausgeber kann, plus mehr.
Die Hierarchie fließt nur abwärts — ein channel_admin never gewinnt Organisationsrechte, selbst wenn sie auch eine App-Rolle innehaben.
Anstatt Rollen jedem Benutzer einzeln zuzuweisen, können Sie Gruppen erstellen und Rollen der Gruppe zuweisen. Jedes Gruppenmitglied erhält diese Rollen automatisch. Wie Gruppen funktionieren
Abschnitt mit dem Titel „Wie Gruppen funktionieren“
Eine Gruppe gehört zu- einer Organisation — sie kann nicht auf mehrere Orgs ausgedehnt werden. Gruppen können Rollenzuweisungen aufnehmen.
- __CAPGO_KEEP_0__ jeder Bereich: Organisation, Anwendung, Kanal oder Paket. Zum Beispiel kann einer Gruppe die Rolle des "App-Entwicklers" auf App A und die Rolle des "Kanal-Admins" auf dem Kanal von App B zugewiesen werden. App-Entwickler Rolle Kanal-Admin Wenn die Berechtigungen eines Benutzers ausgewertet werden, werden alle seine Gruppenzugehörigkeiten transparent aufgelöst. Wenn eine seiner Gruppen die erforderliche Berechtigung gewährt, wird der Zugriff genehmigt.
stagingEin Benutzer kann mehreren Gruppen angehören - , und die Berechtigungen aller Gruppen sind additiv.
- Gruppen-basierte Berechtigungen gelten nur für __CAPGO_KEEP_0____CAPGO_KEEP_1__
- __CAPGO_KEEP_2__ Benutzerprinzipien — API Schlüssel erben keine Gruppenrollen.
Wann Gruppen verwenden
Abschnitt mit dem Titel „Wann Gruppen verwenden“| Szenario | Ohne Gruppen | Mit Gruppen |
|---|---|---|
| 5 QA-Engineure benötigen Zugriff auf 3 Apps | 15 individuelle Rollenzuweisungen | 1 Gruppe + 3 Rollenzuweisungen |
| Jemand tritt der QA-Team bei | Händisch 3 Rollenzuweisungen hinzufügen | Fügen Sie sie der Gruppe hinzu |
| Jemand verlässt das QA-Team | Entfernen Sie 3 Rollenzuweisungen manuell | Entfernen Sie sie aus der Gruppe |
Gruppen über API verwalten
Abschnitt mit dem Titel “Gruppen über API verwalten”Alle Gruppen-Endpunkte erfordern eine Authentifizierung und werden unter /private/groups.
Gruppenliste
Abschnitt mit dem Titel “Gruppenliste”curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Benötigt org.read_members Genehmigung.
Gruppe erstellen
Sektion: Gruppe erstellencurl -X POST "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "name": "QA Team", "description": "Quality assurance engineers" }'Erforderlich org.update_user_roles Genehmigung (Super Administrator oder Administrator).
Gruppe aktualisieren
Sektion: Gruppe aktualisierencurl -X PUT "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "name": "QA Team", "description": "Updated description" }'Eine Gruppe löschen
Abschnitt mit dem Titel „Eine Gruppe löschen“curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>"Wenn eine Gruppe gelöscht wird, werden auch alle ihre Rollenzuweisungen entfernt. Mitglieder werden nicht aus der Organisation gelöscht.
Mitglieder der Gruppe auflisten
Abschnitt mit dem Titel „Mitglieder der Gruppe auflisten“curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>"Ein Mitglied einer Gruppe hinzufügen
Abschnitt mit dem Titel „Ein Mitglied einer Gruppe hinzufügen“curl -X POST "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "user_id": "<USER_UUID>" }'Der Benutzer muss bereits Mitglied der Organisation sein. Die Hinzufügung eines bestehenden Mitglieds ist eine No-Operation.
Ein Mitglied einer Gruppe entfernen
Abschnitt mit dem Titel „Ein Mitglied einer Gruppe entfernen“curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \ -H "authorization: <API_KEY>"Rollen zuweisen über API
Abschnitt: 'Rollen zuweisen über API'Mitglieder auflisten
Abschnitt: 'Mitglieder auflisten'curl -X GET "https://api.capgo.app/organization/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "orgId": "<ORG_ID>" }'Antwort:
[ { "uid": "user-uuid", "email": "alice@example.com", "image_url": "https://...", "role": "org_admin", "is_tmp": false }]Ein Mitglied einladen
Abschnitt: 'Ein Mitglied einladen'curl -X POST "https://api.capgo.app/organization/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "orgId": "<ORG_ID>", "email": "bob@example.com", "invite_type": "org_admin" }'Gültige Werte für invite_type:
| Wert | Zugeteilter Rolle |
|---|---|
org_super_admin | Super Administrator |
org_admin | Administrator |
org_billing_admin | Kundenverwaltungsberechtigter |
org_member | Mitglied |
Mitglied entfernen
Abschnitt mit dem Titel „Mitglied entfernen“curl -X DELETE "https://api.capgo.app/organization/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "orgId": "<ORG_ID>", "email": "bob@example.com" }'Rollen zuweisen über CLI
Abschnitt: 'Rollen zuweisen über CLI'Organisationen auflisten
Abschnitt: 'Organisationen auflisten'npx @capgo/cli organization list --apikey <API_KEY>Mitglieder auflisten
Abschnitt: 'Mitglieder auflisten'npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>Benutzerrollen
Abschnitt mit dem Titel „Benutzerrollen“Die eingebauten Rollen decken die meisten Teamstrukturen ab. Die Erstellung von benutzerdefinierten Rollen steht auf unserem Roadmap – wenn Ihr Team diese Funktion benötigt, kontaktieren Sie uns. Ihr Use Case wird uns direkt helfen, diese Funktion zu priorisieren.
Fortsetzung aus Access Control Reference
Abschnitt mit dem Titel „Fortsetzung aus Access Control Reference“Wenn Sie Access Control Reference zur Planung von Dashboard- und API-Operationen verwenden, verbinden Sie es mit API-Übersicht für die Implementierungsdetails in API Übersicht, Einführung für die Implementierungsdetails in Einführung, API Schlüssel für die Implementierungsdetails in API Schlüssel, Geräte für die Implementierungsdetails in Geräte, und Bundles für die Implementierungsdetails in Bundles.