Zugriffssteuerungsreferenz
Eine Konfigurationsanweisung mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin kopieren.
Capgo verwendet Rollenbasierte Zugriffssteuerung (RBAC) Zu verwalten, was jeder Teammitglied tun kann. Rollen sind nach scope — von der gesamten Organisation bis hin zu einem einzelnen Bundle.
Für eine visuelle Einführung in die Mitgliederverwaltung 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 | Ihr Mitgründer erhält Super-Admin; Ihr Buchhalter erhält Billing-Manager |
| App | A Single-App und seine Kanäle | Ein Auftragnehmer, der an einer App arbeitet, erhält den App-Entwickler |
| Kanal | Ein einzelner Kanal innerhalb einer App | A Single-Kanal innerhalb einer App staging Kanal |
| Bundle | A Single-Bundle-Version | Ein Reviewer benötigt Leserecht für eine bestimmte Release |
Ein Mitglied kann eine Rolle pro Anwendungsbereich — zum Beispiel eine Organisation-Rolle, eine Rolle auf App A und eine andere Rolle auf App B.
Organisationsrollen
Section titled “Organization roles”Diese Rollen werden bei der Einladung eines Mitglieds zugewiesen. Sie gewähren Zugriff auf die gesamte Organisation.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Hauptverwalter | org_super_admin | Äquivalent zum Besitzer. Vollständige Kontrolle einschließlich Löschung der Organisation, Verwaltung der Abrechnung und Übertragung von Apps. Automatisch der Organisationsersteller zugewiesen. |
| Administrator | org_admin | Vollständige Verwaltung – Mitglieder, Apps, Kanäle verwalten. Die Organisation löschen, die Abrechnung aktualisieren, Apps übertragen oder Benutzer zum Hauptverwalter befördern kann nicht. |
| Abrechnungsverwalter | org_billing_admin | Abrechnungszugriff nur: Abrechnungsinfo, 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
Überschrift: Organisationsrechte-Matrix| Recht | Beschreibung | Super Administrator | Administrator | Rechnungsbuchhalter | Mitglied |
|---|---|---|---|---|---|
org.read | Organisation ansehen | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Organisationsname bearbeiten, Logo, Verwaltungsemail | ✅ | ✅ | ❌ | ❌ |
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 aufsteigen – durch Rollen-Hierarchie blockiert) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | Rechnungsdaten und aktuelle Tarifansicht | ✅ | ✅ | ✅ | ❌ |
org.update_billing | Zahlungsmethode und Abonnement aktualisieren | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Rechnungen anzeigen | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Organisationsaktivitäten anzeigen | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Rechnungsbezogene Audit-Log anzeigen | ✅ | ✅ | ✅ | ❌ |
App-Rollen
Sektion mit dem Titel “App-Rollen”Beschränkt auf eine einzelne App. Verwenden Sie diese, wenn ein Teammitglied nur an einer App arbeiten soll und nicht an der gesamten Organisation.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| App-Administrator | app_admin | Vollzugriff auf eine App — Kanäle, Geräte, Benutzerrollen für die App. Die App kann nicht gelöscht oder übertragen werden (dies sind Organisationsebenenoperationen). |
| App Entwickler | app_developer | Bundles hochladen, Geräte verwalten, native Builds auslösen, Kanal-Einstellungen aktualisieren. Keine Löschung, keine Änderungen an App-Einstellungen, keine Kanal-Erstellung. |
| App Hoster | app_uploader | Leserecht + Hochladen neuer Bundle-Versionen. |
| App Leser | app_reader | Leserecht — Statistiken, Bundles, Kanäle, Protokolle, Geräte. |
| App Vorschau | app_preview | Organisation- und app-basierte Vorschau-CI-Lebenszyklus: Ein Bundle hochladen und einen Vorschaukanal erstellen. Die Erstellung dieses Kanals erteilt automatisch nur die Lebenszyklusrechte für ihn. |
App-Berechtigungs-Matrix
Abschnitt mit dem Titel "App-Berechtigungs-Matrix"| Berechtigung | Beschreibung | App-Administrator | App-Entwickler | App-Hochloader | App-Leser |
|---|---|---|---|---|---|
app.read | Anzeige der App-Daten, -Statistiken und -Metadaten | ✅ | ✅ | ✅ | ✅ |
app.update_settings | Bearbeitung der App-Einstellungen | ✅ | ❌ | ❌ | ❌ |
app.read_bundles | Anzeige der Liste der hochgeladenen Pakete | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Hochladen einer neuen Paketversion | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Erstellen eines neuen Kanals | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Anzeige der Kanäle | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Aktualisierungsprotokoll anzeigen | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Geräte zuweisen, überschreiben oder trennen | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Geräteliste anzeigen | ✅ | ✅ | ✅ | ✅ |
app.build_native | Native Cloud-Build auslösen | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Anwendungsaktivitätsprotokoll anzeigen | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Anwendungsrollenzuweisungen verwalten | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Bundle löschen | ✅ | ❌ | ❌ | ❌ |
App-Vorschau-Berechtigungssatz
Abschnitt mit der Überschrift „App-Vorschau-Berechtigungssatz“Use App-Vorschau (app_preview) für eine Organisation- und App-gesicherte CI-Schlüssel, die ein PR-Vorschau-Lebenszyklus ohne breite App- oder Organisationsebene-Zugriff verwalten kann.
Die app_preview Zuweisung gewährt nur diese App-Ebene-Berechtigungen:
| Berechtigung | Ermöglicht |
|---|---|
app.read | Die ausgewählte App lesen |
app.read_bundles | Bundles hochladen |
app.upload_bundle | Ein Bundle hochladen |
app.create_channel | Ein Kanal erstellen |
Wenn ein App-Vorschau-Schlüssel einen Kanal erstellt, gibt Capgo diesem Schlüssel automatisch einen Kindkanal. channel_preview Bindungs-Option für den neuen Kanal nur:
| Ermöglicht | Allows |
|---|---|
channel.read | Read the channel created by the key |
channel.promote_bundle | Setze die eigenen hochgeladenen Bundle der Schlüssel auf diesem Kanal |
channel.delete | Löschen Sie diesen Kanal |
behält app_preview Berechtigung app.readDie Schlüsselnummer kann die Metadaten des ausgewählten Apps auflisten. Die automatische Kindbindung ist ein Verwaltung Grenze: Sie gewährt keine Lebenszyklusmutationen für einen Kanal, den die Schlüsselnummer nicht erstellt hat.
Capgo records the preview key that created each channel and uploaded each bundle. Therefore an App Preview key can create each non-public preview channel it needs, promote its own bundle, and atomically delete that channel and bundle with channel delete --delete-bundleEs kann diese Dinge nicht an einem bestehenden Standard-/Hauptkanal, einem anderen Vorschau-Schlüssel-Kanal oder einem anderen Schlüssel-Bundle tun.
Geräte- oder Rollenverwaltung app.update_settingsZwangsgerechtes Gerätemanagement oder generische channel.update_settings, channel.rollback_bundle, zwingende Geräteverwaltung oder allgemein bundle.delete.
Kanalrollen
Abschnitt mit dem Titel “Kanalrollen”Gespeichert in einem einzelnen Kanal. Nützlich für die Bereitstellung eines gezielten Zugriffs auf einen bestimmten Releasekanal.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Kanal-Admin | channel_admin | Vollzugriff auf einen Kanal: Einstellungen, Bundles vor- und zurücksetzen, zwingende Geräte verwalten. |
| Kanal-Betrachter | channel_reader | Leserecht — aktuelles Bundle, Historie, zwingende Geräte, Audit-Log. |
| Kanal-Vorschau | channel_preview | Zuweisung durch das System an die App-Vorschau-Schlüssel, die den Kanal erstellt hat: Leserecht, Bundles vor- und zurücksetzen und den Kanal löschen. |
Kanal-Berechtigungsmatrix
Abschnitt mit dem Titel „Kanal-Berechtigungsmatrix“| Berechtigung | Beschreibung | Kanal-Admin | Kanalansicht | Kanalvorschau |
|---|---|---|---|---|
channel.read | Der Kanal und dessen aktuelles Bundle anzeigen | ✅ | ✅ | ✅ |
channel.update_settings | Kanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…) | ✅ | ❌ | ❌ |
channel.delete | Kanal löschen | ✅ | ❌ | ✅ |
channel.read_history | Bündelzuweisungsgeschichte anzeigen | ✅ | ✅ | ❌ |
channel.promote_bundle | Aktives Bundle auf dem Kanal setzen | ✅ | ❌ | ✅ |
channel.rollback_bundle | Zurückrollen zu einem vorherigen Bundle | ✅ | ❌ | ❌ |
channel.manage_forced_devices | Spezifische Geräte auf diesen Kanal zwingen | ✅ | ❌ | ❌ |
channel.read_forced_devices | Zurückgezogene Geräte anzeigen | ✅ | ✅ | ❌ |
channel.read_audit | Kanalaktivitätsprotokoll anzeigen | ✅ | ✅ | ❌ |
Bundle-Rollen
Abschnitt mit dem Titel „Bundle-Rollen“Gespeichert für eine einzelne Bundle-Version. Selten benötigt – die meisten Teams verwenden App-Rollen anstelle davon.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Bundle-Administrator | bundle_admin | Lesen, Metadaten aktualisieren und eine bestimmte Bundle löschen. |
| Bündelansicht | bundle_reader | Leserecht auf eine bestimmte Bundle. |
Kanalberechtigungsüberlagerungen (Dashboard)
Überschrift: "Kanalberechtigungsüberlagerungen (Dashboard)"In der Dashboard wird der Zugriff auf einen Kanal durch die Rolle des Benutzers im App-Modul standardmäßig bestimmt. Für eine feinere Kontrolle können Sie spezifische Kanalberechtigungen überschreiben ohne die Rolle des Benutzers im App-Modul zu ändern.
Überschreibungen werden von der App aus Zugriff konfiguriert, indem Sie auf das Schaltfeld (Schild-Symbol) neben einem Benutzer klicken. Siehe Organisation — Überlagerung von Kanalberechtigungen für eine visuelle Anleitung.
Überschreibbare Berechtigungen
Überschreibbare Berechtigungen| Berechtigung | Beschreibung | Standardverhalten |
|---|---|---|
| Lesen | Der Kanal und seine aktuelle Bundle anzeigen | Von der App-Rolle geerbt |
| Historie | Die Bundle-Zuweisungshistorie anzeigen | Von der App-Rolle geerbt |
| Bundle zuordnen | Setzen oder ändern Sie die aktive Bundle auf dem Kanal | Von der App-Rolle geerbt |
Jede Berechtigung kann auf folgende Weise gesetzt werden:
- Standard – von der App-Rolle erben (der Standard)
- Erlauben – explizit erteilen, unabhängig von der App-Rolle
- Verweigern – explizit ablehnen, unabhängig von der App-Rolle
Das ermöglicht zum Beispiel die Zuweisung von Bundeln an einen App-Leser. staging Kanal ohne sie zu App-Entwickler aufzubauen.
Rollenhierarchie
Abschnitt mit dem Titel ‘Rollenhierarchie’Rollen bilden eine Hierarchie. Eine übergeordnete Rolle erbt alle Berechtigungen ihres Kindes. Das bedeutet, dass ein org_admin alles tun kann, was ein app_admin tun kann, was in der Folge ein channel_admin tun 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:
- Eine Admin auf der Organisationsebene kann alles tun, was ein App-Admin kann, auf jede App in der Organisation.
- Ein App-Admin auf einer bestimmten App kann alles tun, was ein Kanal-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 nach unten — ein channel_admin erhält nie Berechtigungen auf Organisations-Ebene, selbst wenn sie auch eine Rolle auf Anwendungs-Ebene innehaben.
Anstatt jedem Benutzer individuelle Rollen zuzuweisen, können Sie groups und Rollen der Gruppe zuweisen. Jeder Gruppenmitglied erhält diese Rollen automatisch.
Eine Gruppe gehört zu
Wie Gruppen funktionieren- Abschnitt mit dem Titel „Gruppen“ Eine Organisation — es kann nicht über mehrere Orgs. reichen.
- Gruppen können Rollenzuweisungen auf jeder Ebene: Org, App, Kanal oder Bundle. Zum Beispiel kann eine Gruppe dem App-Entwickler Rollen auf App A und dem Kanal-Admin Rollen auf dem
stagingKanal von App B zugewiesen werden. - Wenn die Berechtigungen eines Benutzers ausgewertet werden, werden alle seine Gruppenmitgliedschaften transparent aufgelöst. Wenn eine seiner Gruppen die erforderliche Berechtigung gewährt, wird der Zugriff genehmigt.
- Ein Benutzer kann zu Mehrere Gruppen, und Berechtigungen aus allen Gruppen sind additiv.
- Gruppen-basierte Berechtigungen gelten nur für Benutzerprinzipale — API Schlüssel erben keine Gruppenrollen.
Wann Gruppen verwenden
Abschnitt mit dem Titel „Wann Gruppen verwenden“| Szenario | Ohne Gruppen | Mit Gruppen |
|---|---|---|
| 5 QA-Engineeure benötigen Zugriff auf 3 Apps als Entwickler | 15 individuelle Rollenzuweisungen | 1 Gruppe + 3 Rollenzuweisungen |
| Jemand tritt der QA-Team bei | 3 Rollenzuweisungen manuell hinzufügen | Hinzufügen zu der Gruppe |
| Jemand verlässt das QA-Team | 3 Rollenzuweisungen manuell entfernen | Aus der Gruppe entfernen |
Gruppen über API verwalten
Abschnitt: Gruppen über API verwaltenAlle Gruppen-Endpunkte erfordern eine Authentifizierung und werden unter /private/groups.
Gruppen auflisten
Abschnitt: Gruppen auflistencurl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Benötigt org.read_members Erlaubnis.
Gruppe erstellen
Sektion mit dem Titel “Gruppe erstellen”curl -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" }'Benötigt org.update_user_roles Erlaubnis (Super Administrator or Verwalter).
Ein Gruppe aktualisieren
Abschnitt: Ein 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: Eine Gruppe löschencurl -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 jedoch nicht aus der Organisation gelöscht.
Mitglieder einer Gruppe auflisten
Abschnitt: Mitglieder einer Gruppe auflistencurl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>"Ein Mitglied einer Gruppe hinzufügen
Ein Mitglied einer Gruppe hinzufügencurl -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 mit dem Titel „Rollen zuweisen über API“Mitglieder auflisten
Abschnitt mit dem Titel „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 einladencurl -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 | Zugeteilte Rolle |
|---|---|
org_super_admin | Super Administrator |
org_admin | Administrator |
org_billing_admin | Rechnungsverwaltung |
org_member | Mitglied |
Ein 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 mit dem Titel „Rollen zuweisen über CLI“Organisationen auflisten
Abschnitt mit dem Titel „Organisationen auflisten“npx @capgo/cli organization list --apikey <API_KEY>Mitglieder auflisten
Abschnitt mit dem Titel „Mitglieder auflisten“npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>Benutzerdefinierte Rollen
Abschnitt mit dem Titel „Benutzerdefinierte Rollen“Die eingebauten Rollen decken die meisten Teamstrukturen ab. Die Erstellung benutzerdefinierter Rollen steht auf unserem Roadmap – wenn Ihr Team diese Funktion benötigt, Kontaktieren Sie unsIhr Fall wird uns direkt dabei helfen, diese Funktion zu priorisieren.
Weitermachen von der Zugriffssteuerungsreferenz
Weitergehen von Access Control ReferenceWenn Sie Capgo verwenden Zugriffssteuerungsreferenz um das Dashboard und die API-Operationen zu planen und es mit API-Übersicht zur Implementierungsdetail in der API-Übersicht Einführung zur Implementierungsdetail in der Einführung API-Schlüssel zur Implementierungsdetail in den API-Schlüsseln Geräte zur Implementierungsdetail in Geräte und Pakete zur Implementierungsdetail in Pakete.