Zugriffssteuerungsreferenz
Eine Einrichtungsanleitung mit Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Capgo verwendet Zugriffssteuerung auf der Grundlage von Rollen (RBAC) um zu bestimmen, was jeder Teammitglied tun kann. Rollen sind nach Umfang — vom gesamten Unternehmen bis hin zu einer einzelnen Pakete.
Für eine visuelle Anleitung zum Verwalten 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 | Auftragnehmer einer App erhält App-Entwickler |
| Kanal | Einer Kanal innerhalb einer App | Eine QA-Ingenieurin verwaltet nur den staging Kanal |
| Paket | Eine einzelne Paketversion | Ein Reviewer benötigt Leserecht für eine bestimmte Release |
Eine Person kann in einer Rolle pro Scope-Ziel besitzen zum Beispiel eine Organisation-Rolle, eine Rolle auf App A und eine andere Rolle auf App B.
Organisationsrollen
OrganisationsrollenDiese Rollen werden bei der Einladung eines Mitglieds zugewiesen. Sie gewähren Zugriff auf die gesamte Organisation.
| Rolle | Interne Bezeichnung | 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 den Organisationsschöpfer 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 | Kassenverwalter | Mitglied |
|---|---|---|---|---|---|
org.read | Die Organisation anzeigen | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Organisationsname, Logo und Management-E-Mail 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 | Zahlungsmethode und Abonnement aktualisieren | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Rechnungen anzeigen | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Organisationsaktivitäten verfolgen | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Rechnungsbezogene Audit-Log anzeigen | ✅ | ✅ | ✅ | ❌ |
App-Rollen
Abschnitt mit dem Titel “App-Rollen”Grenzt auf eine einzelne App. Verwenden Sie diese, wenn ein Teammitglied nur an einer App arbeiten soll, 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 (diese sind Organisationsebene-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-Hochloader | app_uploader | Leserecht + neue Bundle-Versionen hochladen. |
| App-Vorschau | app_reader | Vorschau- CI-Lebenszyklus: Eine Bundle hochladen und einen Vorschau-Kanal erstellen. Die Erstellung dieses Kanals erteilt automatisch nur die Lebenszyklus-Rechte für ihn. |
| App-Berechtigungs-Matrix | app_preview | Berechtigungs-Matrix für die App |
Erlaubnis
Erlaubnis| Berechtigungs-Matrix | Beschreibung | App-Administrator | App-Entwickler | App-Herausgeber | App-Leser |
|---|---|---|---|---|---|
app.read | App-Daten, Statistiken und Metadaten anzeigen | ✅ | ✅ | ✅ | ✅ |
app.update_settings | App-Einstellungen bearbeiten | ✅ | ❌ | ❌ | ❌ |
app.read_bundles | Hochgeladene Bundle-Liste anzeigen | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Neue Bundle-Version hochladen | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Neuen Kanal erstellen | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Kanäle anzeigen | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Update-Übermittlungsprotokolle anzeigen | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Zuweisen, überschreiben oder von Geräten trennen | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Geräteliste anzeigen | ✅ | ✅ | ✅ | ✅ |
app.build_native | Einen nativen Cloud-Build auslösen | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Anwendungsbereichs-Aktivitätsprotokoll anzeigen | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Anwendungsbereichs-Rollenzuweisungen verwalten | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Eine Bundle löschen | ✅ | ❌ | ❌ | ❌ |
Erlaubnisset für App-Vorschau
Abschnitt mit dem Titel „Erlaubnisset für App-Vorschau“Verwenden App-Vorschau (app_previewfür eine Organisation- und App-genaue CI-Schlüssel, die das Lebenszyklus einer PR-Vorschau ohne weitreichenden Zugriff auf die App oder die Organisation verwalten kann.
Der app_preview Zuweisung werden nur diese App-Ebene-Rechte eingeräumt:
| Erlaubnis | Ermöglicht |
|---|---|
app.read | Die ausgewählte App lesen |
app.read_bundles | Die hochgeladenen Pakete lesen |
app.upload_bundle | Ein Bundle hochladen |
app.create_channel | Ein Kanal erstellen |
Wenn ein App-Vorschau-Schlüssel einen Kanal erstellt, Capgo gibt diesem Schlüssel automatisch einen Kindesbindung für den neuen Kanal nur: channel_preview Zugriffsberechtigung
| Ermöglicht | Den von dem Schlüssel erstellten Kanal lesen |
|---|---|
channel.read | Setze das vom Schlüssel hochgeladene Bundle auf diesem Kanal |
channel.promote_bundle | Den Kanal löschen |
channel.delete | Deshalb |
behält app_preview der Schlüssel die Möglichkeit, die Metadaten des Kanals in der ausgewählten App aufzulisten. Die automatische Kindesbindung ist ein app.readBecause retains, the key may enumerate channel metadata in the selected app. The automatic child binding is a Verwaltung Grenze: Es gewährt keine Lebenszyklusmutationen für einen Kanal, dessen Schlüssel nicht erstellt hat.
Capgo registriert das Vorschau-Schlüssel, das jeden Kanal erstellt und jeden Bundle hochgeladen hat. Daher kann ein App-Vorschau-Schlüssel jeden nicht öffentlichen Vorschau-Kanal erstellen, den er benötigt, seinen eigenen Bundle promoten und atomisch diesen Kanal und Bundle löschen mit channel delete --delete-bundle, es kann diese Dinge nicht an einem bestehenden Standard-/Hauptkanal, einem anderen Vorschau-Schlüssel-Kanal oder einem anderen Schlüssel-Bundle tun.
Es umfasst nicht app.update_settings, Geräte- oder Rollenverwaltung channel.update_settings, channel.rollback_bundle, zwingende Geräteverwaltung oder allgemeine bundle.delete.
Kanalrollen
Sektion mit dem Titel „Kanalrollen“Gespeichert auf einem einzelnen Kanal. Nützlich für die Bereitstellung von gezieltem Zugriff auf eine bestimmte Release-Kanal.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Kanal-Admin | channel_admin | Vollzugriff auf einen Kanal: Einstellungen, Bündel promotieren/Rollback, zwingende Geräte verwalten. |
| Kanal-Betrachter | channel_reader | Leserecht — aktuelles Bündel, Historie, zwingende Geräte, Audit-Log. |
| Kanal-Vorschau | channel_preview | Zu dem App-Vorschau-Schlüssel zugewiesen, der den Kanal erstellt hat: Leserecht, Bündel promotieren und den Kanal löschen. |
Kanal-Zugriffs-Matrix
Abschnitt mit dem Titel „Kanal-Zugriffs-Matrix“| Zugriff | Beschreibung | Kanal-Admin | Kanal-Betrachter | Kanal-Vorschau |
|---|---|---|---|---|
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 festlegen | ✅ | ❌ | ✅ |
channel.rollback_bundle | Zurückrollen zu einem vorherigen Bundle | ✅ | ❌ | ❌ |
channel.manage_forced_devices | Spezifische Geräte auf diesen Kanal zwingen | ✅ | ❌ | ❌ |
channel.read_forced_devices | Zu den gezwungenen Geräten gehen | ✅ | ✅ | ❌ |
channel.read_audit | Kanal-Aktivitätsprotokoll anzeigen | ✅ | ✅ | ❌ |
Bundle-Rollen
Rollen im BundleGültig für eine einzelne Bundle-Version. Selten benötigt — die meisten Teams verwenden stattdessen App-Rollen.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Bundle-Administrator | bundle_admin | Lesen, Metadaten aktualisieren und eine bestimmte Bundle löschen. |
| Bundle-Betrachter | bundle_reader | Leserecht auf einer bestimmten Paketversion. |
Kanalberechtigungsüberwachungen (Dashboard)
Abschnitt mit dem Titel “Kanalberechtigungsüberwachungen (Dashboard)”In der Dashboard-Ansicht wird der Zugriff auf einen Kanal standardmäßig durch die Rolle des Benutzers im App-System 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 Schaltflächensymbol (Schild) neben einem Benutzer klicken. Siehe Organisation — Überwachung von Kanalberechtigungen für eine visuelle Anleitung.
Überschreibbare Berechtigungen
Überschreibbare Berechtigungen| Berechtigung | Beschreibung | Standardverhalten |
|---|---|---|
| Lesen | Kanal und aktuelles Bundle anzeigen | Von der App-Rolle geerbt |
| Historie | Bundle-Zuweisungs-Historie anzeigen | Von der App-Rolle geerbt |
| Bundle zuweisen | Aktives Bundle auf dem Kanal setzen oder ändern | Übernommen von der App-Rolle |
Jede Berechtigung kann auf:
- Standard — von der App-Rolle übernehmen (der Standard)
- Erlauben — explizit zuweisen, unabhängig von der App-Rolle
- Verweigern — explizit blockieren, unabhängig von der App-Rolle
Dies ermöglicht es Ihnen, zum Beispiel einem App-Leser die Möglichkeit zu geben, Pakete auf dem Kanal ohne sie zu App-Entwickler zu befördern, zu associieren. staging Rollenhierarchie
Abschnitt mit dem Titel „Rollenhierarchie“
Abschnitt mit dem Titel „Rollenhierarchie“Rollen bilden eine Hierarchie. Ein Elternerolleneignet alle Berechtigungen seiner Kinder. Das bedeutet, dass ein alles tun kann, was ein org_admin tun kann, was wiederum alles tun kann, was ein app_admin tun kann, und so weiter. channel_admin Zwischenablage
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)Ein
- Admin auf der Organisationsebene kann alles tun, was ein App Admin __CAPGO_KEEP_0__ kann, auf jede App in der Organisation.
- Ein App-Administrator auf einer bestimmten App kann alles tun, was ein Kanal-Administrator kann, auf jede Kanal in dieser App.
- Ein App-Entwickler kann alles tun, was ein App-Herausgeber kann, plus noch mehr.
Die Hierarchie fließt nur in diese Richtung. abwärts — ein channel_admin Diese Person erhält nie die Organisationsebene-Berechtigungen, selbst wenn sie auch eine App-Ebene-Rolle innehat.
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“
Eine Gruppe gehört zu
einer Organisation- Gruppen Abschnitt mit dem Titel „Gruppen“ — es kann sich nicht über mehrere Orgs erstrecken.
- Gruppen können Rollenzuweisungen auf jeder Ebenespeichern: Org, Anwendung, 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 gewährt.
- Ein Benutzer kann zu mehreren Gruppen gehörenund 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-Engineure benötigen Entwicklerzugriff auf 3 Apps | 15 individuelle Rollenzuweisungen | 1 Gruppe + 3 Rollenzuweisungen |
| Jemand tritt der 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 ü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>"erfordert org.read_members Zugriffsrechte.
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" }'erfordert org.update_user_roles Zugriffsrechte (Super Administrator oder Administrator).
Ein Gruppe aktualisieren
Abschnitt mit dem Titel „Ein Gruppe aktualisieren“curl -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 Rolle-Zuweisungen 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 ü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 }]Einen 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 mit dem Titel „Ein 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 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.
Weitergehen von Access Control Reference
Abschnitt mit dem Titel “Weitergehen von Access Control Reference”Wenn Sie Access Control Reference Um das Dashboard und die API-Operationen zu planen, verbinden Sie es mit API-Übersicht Für die Implementierungsdetails in der API-Übersicht Einführung Für die Implementierungsdetails in der Einführung API-Schlüssel Für die Implementierungsdetails in den API-Schlüsseln Geräte Für die Implementierungsdetails in den Geräten und Pakete Für die Implementierungsdetails in den Paketen.