Access Control Reference
Ein kopierbarer Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
Capgo uses Zugriffssteuerung auf der Grundlage von Rollen (RBAC) um zu bestimmen, was jeder Teammitglied tun kann. Rollen werden nach Umfang – von der gesamten Organisation bis hin zu einer einzelnen Pakete.
Für eine visuelle Durchführung der Mitgliederverwaltung im Dashboard siehe Organisation.
Rollenbereiche
Abschnitt mit dem Titel “Rollenbereiche”Jede Rolle gehört zu einem Bereich, der bestimmt, welcher 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 | Eine einzelne App und ihre Kanäle | Ein Auftragnehmer, der an einer App arbeitet, erhält App-Entwickler |
| 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 Veröffentlichung |
Ein Mitglied kann eine Rolle pro Zielbereich haben — zum Beispiel eine Organisationrolle, eine Rolle auf App A und eine andere Rolle auf App B.
Organisationsrollen
Überschrift “Organisationsrollen”Diese Rollen werden zugewiesen, wenn ein Mitglied eingeladen wird. Sie gewähren Zugriff auf die gesamte Organisation.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Super Admin | org_super_admin | Äquivalent zum Besitzer. Vollständiger Kontrolleinschluss, einschließlich Löschung der Organisation, Verwaltung der Abrechnung und Übertragung von Apps. Automatisch der Organisationsersteller zugewiesen. |
| Verwaltung | org_admin | Vollzugriff — Mitglieder, Apps, Kanäle verwalten. Die Organisation kann nicht gelöscht, die Rechnung aktualisiert, Apps übertragen oder Benutzer zum Super Admin befördert werden. |
| Rechnungsverwalter | org_billing_admin | Rechnungszugriff: Rechnungsinformationen, Rechnungen und Rechnungsprotokolle 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 Admin | Verwaltung | Rechnungsverwaltung | Mitglied |
|---|---|---|---|---|---|
org.read | Organisation ansehen | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Organisationsname, Logo und E-Mail-Adresse der Verwaltung bearbeiten | ✅ | ✅ | ❌ | ❌ |
org.delete | Organisation dauerhaft löschen | ✅ | ❌ | ❌ | ❌ |
org.read_members | Mitgliederliste ansehen | ✅ | ✅ | ❌ | ✅ |
org.invite_user | Neue Mitglieder einladen | ✅ | ✅ | ❌ | ❌ |
org.update_user_roles | Mitgliederrollen ändern (Admin kann nicht zum Super Admin befördern – durch Rollen-Hierarchie blockiert) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | Rechnungsinformationen und aktuelles Abonnement ansehen | ✅ | ✅ | ✅ | ❌ |
org.update_billing | Zahlungsmethode und Abonnement aktualisieren | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Rechnungen ansehen | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Organisationsaktivitätsprotokoll ansehen | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Rechnungsspezifische Audit-Protokolle anzeigen | ✅ | ✅ | ✅ | ❌ |
App-Rollen
Abschnitt mit dem Titel „App-Rollen“Gespeichert auf ein einzelnes App. Verwenden Sie diese, wenn ein Teammitglied nur an einer App arbeiten soll, nicht an der gesamten Organisation.
| Rolle | Internes Name | Beschreibung |
|---|---|---|
| App-Administrator | app_admin | Vollständige Kontrolle über eine App — Kanäle, Geräte, Benutzerrollen für die App. Kann die App nicht löschen oder übertragen (diese sind Organisationsebenenoperationen). |
| App-Entwickler | app_developer | Hochladen von Paketen, Geräte verwalten, native Builds auslösen, Kanal-Einstellungen aktualisieren. Keine Löschung, keine Änderungen der App-Einstellungen, keine Kanal-Erstellung. |
| App-Hochloader | app_uploader | Leserecht + Hochladen neuer Paketversionen. |
| App-Leser | app_reader | Nur-Lesezugriff — Statistiken, Pakete, Kanäle, Protokolle, Geräte. |
Anwendungsrechte-Matrix
Überschrift: Anwendungsrechte-Matrix| Zugriffsrecht | Beschreibung | App-Administrator | App-Entwickler | App-Hochloader | App-Leser |
|---|---|---|---|---|---|
app.read | App-Daten ansehen, Statistiken und Metadaten | ✅ | ✅ | ✅ | ✅ |
app.update_settings | App-Einstellungen bearbeiten | ✅ | ❌ | ❌ | ❌ |
app.read_bundles | Bundles, die hochgeladen wurden, anzeigen | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Eine neue Bundle-Version hochladen | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Einen neuen Kanal erstellen | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Kanäle anzeigen | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Update-Lieferungsprotokolle anzeigen | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Geräte zuweisen, überschreiben oder entkoppeln | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Geräteliste anzeigen | ✅ | ✅ | ✅ | ✅ |
app.build_native | Ein native Cloud-Build auslösen | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Anwendungsaktivitätsprotokoll anzeigen | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Anwendungsbeschränkte Rollenzuweisungen verwalten | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Eine Bundle löschen | ✅ | ❌ | ❌ | ❌ |
Kanalrollen
Abschnitt mit dem Titel “Kanalrollen”Gespeichert in einem einzelnen Kanal. Nützlich für die Bereitstellung eines gezielten Zugriffs auf einen bestimmten Release-Kanal.
| Rolle | Internes Name | Beschreibung |
|---|---|---|
| Kanal-Admin | channel_admin | Vollzugriff auf einen Kanal: Einstellungen, Bündel promoten/Rollbacks, zwingende Geräte verwalten. |
| Kanal-Betrachter | channel_reader | Leserecht — aktuelles Bündel, Historie, zwingende Geräte, Audit-Log. |
Kanalberechtigungs-Matrix
Abschnitt mit dem Titel “Kanalberechtigungs-Matrix”| Berechtigung | Beschreibung | Kanal-Administrator | Kanal-Besucher |
|---|---|---|---|
channel.read | Der Kanal und seine aktuelle Bundle anzeigen | ✅ | ✅ |
channel.update_settings | Kanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…) | ✅ | ❌ |
channel.delete | Kanal löschen | ✅ | ❌ |
channel.read_history | Bundle-Zuweisungsgeschichte anzeigen | ✅ | ✅ |
channel.promote_bundle | Aktives Bundle auf dem Kanal setzen | ✅ | ❌ |
channel.rollback_bundle | Zurückrollen auf ein vorheriges Bundle | ✅ | ❌ |
channel.manage_forced_devices | Spezifische Geräte auf diesen Kanal zwingen | ✅ | ❌ |
channel.read_forced_devices | Zur Liste der zwingenden Geräte gehen | ✅ | ✅ |
channel.read_audit | Kanal-Aktivitäts-Protokoll anzeigen | ✅ | ✅ |
Rollenpakete
Abschnitt: RollenpaketeGespeichert für eine einzelne Paketversion. Selten benötigt — die meisten Teams verwenden stattdessen App-Rollen.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Paket-Admin | bundle_admin | Lese, aktualisiere Metadaten und lösche eine bestimmte Bundle. |
| Bundle Viewer | bundle_reader | Leserecht auf eine bestimmte Bundle. |
Kanalberechtigungsüberschreibungen (Dashboard)
Überschrift: “Kanalberechtigungsüberschreibungen (Dashboard)”In der Dashboard wird der Zugriff auf einen Kanal durch die Rolle des Benutzers im App durch Standard vorgegeben. Für eine feinere Kontrolle kannst du spezifische Kanalberechtigungen pro Benutzer oder Gruppe ohne Änderung seiner App-Rolle überschreiben.
Die Überschreibungen werden von der App aus Zugriff konfiguriert, indem du auf den Button für Kanalberechtigungen (Schild-Icon) neben einem Benutzer klickst. Siehe Organisation — Überschreibung von Kanalberechtigungen für eine visuelle Anleitung.
Überschreibbare Berechtigungen
Abschnitt mit dem Titel „Überschreibbare Berechtigungen“| Berechtigung | Beschreibung | Standardverhalten |
|---|---|---|
| Lesen | Bündel der Kanal und seiner aktuellen Konfiguration anzeigen | Vom App-Rollen geerbt |
| Historie | Bündelzuweisungshistorie anzeigen | Vom App-Rollen geerbt |
| Associate Bundle | Bundle auf dem Kanal setzen oder ändern | geerbt von der App-Rolle |
Jede Berechtigung kann auf:
- Standard — von der App-Rolle erben (der Standard)
- Erlauben — explizit gewähren, unabhängig von der App-Rolle
- Verweigern — explizit ablehnen, unabhängig von der App-Rolle
Mit diesem ermöglichen Sie zum Beispiel, einem App-Leser die Möglichkeit zu geben, staging Bundles auf dem Kanal zu verknüpfen, ohne sie zu App-Entwickler zu befördern.
Rollenhierarchie
Abschnitt mit dem Titel „Rollenhierarchie”Rollen bilden eine Hierarchie. Eine übergeordnete Rolle erbt alle Berechtigungen ihre Kinder. Das bedeutet, dass eine org_admin alles tun kann, was eine app_admin kann, die wiederum alles tun kann, was eine 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 Admin auf der Ebene der Organisation kann alles tun, was ein App Admin kann, auf jeder 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-Uploader kann, mehr.
Die Hierarchie fließt nur unten — ein channel_admin erhält nie Org-Ebene-Berechtigungen, selbst wenn sie auch eine App-Ebene-Rolle innehaben.
Anstatt Rollen jedem Benutzer einzeln zuzuweisen, können Sie Gruppen erstellen und Rollen der Gruppe zuweisen. Jeder Mitglied der Gruppe erhält diese Rollen automatisch. Wie Gruppen funktionieren
Abschnitt mit dem Titel „Wie Gruppen funktionieren“
__CAPGO_KEEP_0__- Ein Gruppe gehört zu einer Organisation an — sie kann nicht auf mehrere Orgs. ausgedehnt werden.
- Gruppen können Rollenzuweisungen auf jeder Ebene speichern: Org, App, Kanal oder Bundle.Beispiel: Eine Gruppe kann 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.
- A Benutzer kann mehreren Gruppen angehören und die Rechte aller Gruppen sind additiv.Gruppen-basierte Rechte gelten nur für
- Benutzerprinzipale — __CAPGO_KEEP_0__ Schlüssel erben keine Gruppenrollen. — API keys do not inherit group roles.
Abschnitt mit dem Titel “Wann Gruppen zu verwenden”
Szenario| Ohne Gruppen | Mit Gruppen | 5 QA-Engineure benötigen Entwickler-Zugriff auf 3 Apps |
|---|---|---|
| 5 QA-Engineure benötigen Zugriff als Entwickler auf 3 Apps | 15 individuelle Rollenzuweisungen | 1 Gruppe + 3 Rollenzuweisungen |
| Jemand tritt dem QA-Team bei | Fügen Sie 3 Rollenzuweisungen manuell hinzu | 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 verwalten über API
Abschnitt mit dem Titel “Gruppen verwalten über API”Alle Gruppen-Endpunkte erfordern eine Authentifizierung und werden unter /private/groups.
Gruppenliste
Abschnitt mit dem Titel “Gruppen auflisten”curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Erforderliche org.read_members Berechtigung.
Gruppe erstellen
Abschnitt 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" }'Erforderliche org.update_user_roles Berechtigung (Super Admin oder Administrator).
Ein Gruppenupdate durchführen
Abschnitt: Ein Gruppenupdate durchführencurl -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>"Bei der Löschung einer Gruppe werden auch alle zugehörigen Rollenzuweisungen entfernt. Mitglieder werden jedoch 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 über API zuweisen
Abschnitt mit dem Titel “Rollen über API zuweisen”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 mit dem Titel „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 | Zugeteilte Rolle |
|---|---|
org_super_admin | Super Administrator |
org_admin | Administrator |
org_billing_admin | Kostenstellenverwalter |
org_member | Mitglied |
Mitglied entfernen
Abschnitt: Mitglied entfernencurl -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 CLIOrganisationen auflisten
Abschnitt: Organisationen auflistennpx @capgo/cli organization list --apikey <API_KEY>Mitglieder auflisten
Abschnitt: Mitglieder auflistennpx @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 von benutzerdefinierten Rollen steht auf unserem Roadmap – wenn Ihr Team diese Funktion benötigt, Kontaktieren Sie unsIhr Use Case wird uns direkt helfen, diese Funktion zu priorisieren.
Weitergehen von Access Control Reference
Abschnitt mit dem Titel „Weitergehen von Access Control Reference“Wenn Sie Zugriffssteuerungsreferenz um das Dashboard und API-Operationen zu planen, 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 Pakete für die Implementierungsdetails in Bundles.