Zugriffssteuerungsreferenz
Einen Einrichtungsvorschlag mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Capgo verwendet Rollenbasierte Zugriffssteuerung (RBAC) um zu bestimmen, was jeder Teammitglied tun kann. Rollen sind nach Spielbereich Spielbereich
— vom gesamten Unternehmen bis hin zu einer einzelnen Bundle. Für eine visuelle Anleitung zum Verwalten von Mitgliedern im Dashboard, siehe.
Organisation
RollenbereicheSektion mit dem Titel “Rollenbereiche”
| Jede Rolle gehört zu einem Bereich, der bestimmt, welche Ressource sie Zugriff gewährt. | Bereich | Beispielanwendung |
|---|---|---|
| Organisation | Die gesamte Organisation und alle ihre Apps | Ihr Mitgründer erhält Super-Administrator; Ihr Buchhalter erhält den Beauftragten für Abrechnung |
| App | Eine einzelne App und ihre Kanäle | Ein freier Mitarbeiter, der an einer App arbeitet, erhält Entwickler für App |
| Kanal | Ein einzelner Kanal innerhalb einer App | Ein QA-Engineer verwaltet nur den staging Kanal |
| Paket | Ein einzelnes Bundle-Version | Ein Rezensent benötigt Leserecht für eine bestimmte Release |
Ein Mitglied kann eine Rolle pro Zielbereich haben — zum Beispiel eine Rolle in der Organisation, eine Rolle auf App A und eine andere Rolle auf App B.
Organisationsrollen
Abschnitt mit dem Titel “Organisationsrollen”Diese Rollen werden zugewiesen, wenn ein Mitglied eingeladen wird. Sie gewähren Zugriff auf die gesamte Organisation.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Super Administrator | org_super_admin | Eigentümergleichwert. Vollzugriff einschließlich der Löschung der Organisation, der Verwaltung der Abrechnung und der Übertragung von Apps. Wird automatisch dem Organisationsschöpfer zugewiesen. |
| Admin | org_admin | Vollzugriff — Mitglieder, Apps, Kanäle verwalten. Die Organisation kann nicht gelöscht, die Abrechnung aktualisiert, Apps übertragen oder Benutzer zum Super Admin befördert werden. |
| 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. |
Organisationsrechtematrix
Abschnitt mit dem Titel “Organisationsrechtematrix”| Recht | Beschreibung | Super Admin | Verwalter | Kassenverwalter | Mitglied |
|---|---|---|---|---|---|
org.read | Organisation ansehen | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Organisationsname, Logo und E-Mail-Adresse der Verwaltung bearbeiten | ✅ | ✅ | ❌ | ❌ |
org.delete | Organisation endgültig löschen | ✅ | ❌ | ❌ | ❌ |
org.read_members | Mitgliederliste ansehen | ✅ | ✅ | ❌ | ✅ |
org.invite_user | Neue Mitglieder einladen | ✅ | ✅ | ❌ | ❌ |
org.update_user_roles | Mitgliederrollen ändern (Admin kann nicht auf Super Admin aufsteigen – durch Rollenstruktur blockiert) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | Rechnungsdaten und aktuelles Abonnement anzeigen | ✅ | ✅ | ✅ | ❌ |
org.update_billing | Zahlungsmethode und Abonnement aktualisieren | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Rechnungen anzeigen | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Organisationsaktivitätsprotokoll anzeigen | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Rechnungsspezifisches Auditprotokoll anzeigen | ✅ | ✅ | ✅ | ❌ |
kann tun, über alle Apps und Kanäle hinweg.
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 | Interne Bezeichnung | 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 | Bundles hochladen, Geräte verwalten, native Builds auslösen, Kanal-Einstellungen aktualisieren. Keine Löschung, keine Änderungen an App-Einstellungen, keine Kanal-Erstellung. |
| App-Hochloader | app_uploader | Leserecht + neue Bundle-Versionen hochladen. |
| App-Leser | app_reader | Leserecht — Statistiken, Pakete, Kanäle, Protokolle, Geräte. |
| App-Vorschau | app_preview | Organisations- und app-gesteuerte Vorschau- CI-Lebenszyklus: Hochladen eines Pakets und Erstellen eines Vorschaukanals. Das Erstellen dieses Kanals erteilt automatisch nur die Lebenszyklusrechte für ihn. |
App-Berechtigungs-Matrix
Berechtigungs-Matrix für Apps| Berechtigung | Beschreibung | App-Administrator | App-Entwickler | App-Hochloader | App-Leser |
|---|---|---|---|---|---|
app.read | Anzeige von App-Daten, -Statistiken und -Metadaten | ✅ | ✅ | ✅ | ✅ |
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 | Update-Lieferungsprotokolle anzeigen | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Geräte zuweisen, überschreiben oder entkoppeln | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Geräteliste anzeigen | ✅ | ✅ | ✅ | ✅ |
app.build_native | Ein natives Cloud-Build auslösen | ✅ | ✅ | ❌ | ❌ |
app.read_audit | App-basierte Aktivitätsprotokolle anzeigen | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | App-basierte Rollenzuweisungen verwalten | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Ein Paket löschen | ✅ | ❌ | ❌ | ❌ |
App-Vorschau-Berechtigung
VerwendungApp-Vorschau für eine Organisation- und App-genaue CI-Schlüssel, die ein PR-Vorschau-Lebenszyklus ohne umfassenden App- oder Organisationseinstellungen verwaltet. (app_previewund
Die app_preview die Bindung gewährt nur diese Anwendungsrechte:
| Zugriffsberechtigung | Ermöglicht |
|---|---|
app.read | Das ausgewählte App lesen |
app.read_bundles | Die hochgeladenen Pakete lesen |
app.upload_bundle | Ein Paket hochladen |
app.create_channel | Ein Kanal erstellen |
Wenn ein App-Vorschau-Schlüssel einen Kanal erstellt, Capgo gibt diesem Schlüssel automatisch einen Kinderecht für den neuen Kanal: channel_preview Zugriffsberechtigung
| Ermöglicht | Read the selected app |
|---|---|
channel.read | Lese den von der Schlüssel erstellten Kanal |
channel.promote_bundle | Setze die vom Schlüssel hochgeladene Bundle auf diesem Kanal |
channel.delete | Lösche diesen Kanal |
Da app_preview behält app.read, kann der Schlüssel die Metadaten des Kanals in der ausgewählten App auflisten. Die automatische Kindbindung ist ein Grenze: sie gewährt keine Lebenszyklusmutationen für einen Kanal, den der Schlüssel nicht erstellt hat. __CAPGO_KEEP_0__ registriert den Vorabansichtsschlüssel, der jeden Kanal erstellt und jedes Bundle hochgeladen hat. Daher kann ein App-Vorabansichtsschlüssel jeden nicht öffentlichen Vorabansichtskanal erstellen, das eigene Bundle promoten und diesen Kanal und das Bundle atomisch löschen,
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-bundle, Geräte- oder Rollenmanagement,
It does not include app.update_settings, device or role management, channel.update_settings, channel.rollback_bundleAufgezwungene Geräteverwaltung, oder allgemein bundle.delete.
Kanalrollen
Abschnitt mit dem Titel „Kanalrollen“Gespeichert auf einem einzelnen Kanal. Nützlich für die Bereitstellung von zielgerichteten Zugriffen auf einen bestimmten Release-Kanal.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Kanaladministrator | channel_admin | Vollzugriff auf einen Kanal: Einstellungen, Bundles vor- und zurücksetzen, zwingende Geräte verwalten. |
| Kanalbetrachter | channel_reader | Leserecht — aktuelles Bundle, Historie, zwingende Geräte, Audit-Protokoll. |
| Kanalvorschau | channel_preview | Systemzugeordnet zum App-Vorschau-Schlüssel, der den Kanal erstellt hat: Leserecht, eigenen Bundle vorziehen und den Kanal löschen. |
Kanalberechtigungstabelle
Abschnitt mit dem Titel “Kanalberechtigungstabelle”| Berechtigung | Beschreibung | Kanaladministrator | Kanalbetrachter | Kanalvorschau |
|---|---|---|---|---|
channel.read | Der Kanal und dessen aktuelles Bundle anzeigen | ✅ | ✅ | ✅ |
channel.update_settings | Kanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…) | ✅ | ❌ | ❌ |
channel.delete | Den Kanal löschen | ✅ | ❌ | ✅ |
channel.read_history | Bundle-Zuweisungsgeschichte anzeigen | ✅ | ✅ | ❌ |
channel.promote_bundle | Das aktive Bundle auf dem Kanal festlegen | ✅ | ❌ | ✅ |
channel.rollback_bundle | Zurückrollen zu einem vorherigen Bundle | ✅ | ❌ | ❌ |
channel.manage_forced_devices | Zwingen Sie bestimmte Geräte zu diesem Kanal | ✅ | ❌ | ❌ |
channel.read_forced_devices | Anzeigen der Liste der zwingend eingebundenen Geräte | ✅ | ✅ | ❌ |
channel.read_audit | Anzeigen der Aktivitätsprotokolle des Kanals | ✅ | ✅ | ❌ |
Bundle-Rollen zuweisen
Rollen innerhalb eines BundlesGeskoperter auf eine einzelne Bundle-Version. Selten benötigt — die meisten Teams verwenden stattdessen App-Rollen.
| Rolle | Interne Bezeichnung | Beschreibung |
|---|---|---|
| Bundle-Administrator | bundle_admin | Ein bestimmtes Bundle lesen, aktualisieren und löschen. |
| Bundle-Betrachter | bundle_reader | Leserecht für ein bestimmtes Bundle. |
Kanalberechtigungsüberprüfungen (Dashboard)
Überschrift: "Kanalberechtigungsüberprüfungen (Dashboard)"In der Dashboard-Ansicht wird der Zugriff auf einen Kanal durch die Rolle des Benutzers im App-Portal bestimmt. Für eine feinere Kontrolle können Sie spezifische Kanalberechtigungen pro Benutzer oder Gruppe ohne Änderung der App-Rolle überschreiben. Ein bestimmtes Bundle lesen, aktualisieren und löschen.
Übernahmen werden von der App aus konfiguriert Zugriff Zugriff Zugriff Organisation — Übernahme von Kanalberechtigungen
Übernehmbare Berechtigungen
Abschnitt mit dem Titel "Übernehmbare Berechtigungen"| Berechtigung | Beschreibung | Standardverhalten |
|---|---|---|
| Lesen | Der Kanal und dessen aktuelles Bundle anzeigen | Von der App-Rolle geerbt |
| Geschichte | Bündelzuweisungsgeschichte anzeigen | Von der App-Rolle geerbt |
| Bündel zuweisen | Aktuelles Bündel auf dem Kanal setzen oder ändern | Von der App-Rolle geerbt |
Jede Berechtigung kann auf folgende Weise festgelegt werden:
- Standard — von der App-Rolle (der Standard) erben
- Erlauben — explizit erteilen, unabhängig von der App-Rolle
- Verweigern — explizit blockieren, unabhängig vom App-Rollenstatus
Mit diesem können Sie zum Beispiel einem App-Leser die Möglichkeit geben, Kanäle zu verbinden, ohne sie zu einem App-Entwickler zu befördern. staging Rollenhierarchie
Abschnitt mit dem Titel „Rollenhierarchie“
Rollen bilden eine Hierarchie. Eine übergeordnete Rolleerbt alle Berechtigungen deren Kinder. Das bedeutet, dass ein alles tun kann, was ein org_admin tun kann, was in der Folge alles tun kann, was ein app_admin tun kann, und so weiter. channel_admin __CAPGO_KEEP_0__
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 Ein Administrator auf Organisations-Ebene kann alles tun, was ein App-Administrator kann, auf jedem App in der Organisation.
- Ein App-Administrator auf einer bestimmten App kann alles tun, was ein Kanal-Administrator kann, auf jedem Kanal in dieser App.
- Ein App-Entwickler kann alles tun, was ein App-Herausgeber kann, plus noch mehr.
Die Hierarchie fließt nur abwärts — ein channel_admin erhält nie Berechtigungen auf Organisations-Ebene, selbst wenn sie auch eine Rolle auf Anwendungsebene innehaben.
Stattdessen können Sie Rollen anstatt jedem Benutzer einzeln zuweisen, Gruppen erstellen Gruppen und Rollen zuweisen an die Gruppe. 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 — sie kann sich nicht auf mehrere Orgs erstrecken.
- Gruppen können Rollenzuweisungen auf jeder Ebenehaben: Org, App, Kanal oder Bundle. Zum Beispiel kann eine Gruppe dem App-Entwickler Rollen auf App A und dem Kanal-Admin Rolle im
stagingKanal von App B. - Wenn die Berechtigungen eines Benutzers bewertet 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 Gruppenangehören, und die Berechtigungen aller Gruppen sind additiv.
- Gruppen-basierte Berechtigungen gelten nur für Benutzerprinzipale — API Schlüssel erben keine Gruppenrollen.
Wann Gruppen verwenden
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 | 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.
Gruppen auflisten
Terminal-Fenstercurl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Berechtigung. org.read_members Gruppe erstellen
Abschnitt mit dem Titel „Gruppe erstellen“
Terminal-Fenstercurl -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 Zugriffsberechtigung (Super Admin oder Zugriffsberechtigung).
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" }'Zwischenablage kopieren
Eine Gruppe löschencurl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>"Wenn ein Gruppe gelöscht wird, werden auch alle ihre Rolle-Zuweisungen entfernt. Mitglieder werden nicht aus der Organisation gelöscht.
Gruppenmitglieder auflisten
Abschnitt mit dem Titel „Gruppenmitglieder auflisten“curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>"Mitglied einer Gruppe hinzufügen
Abschnitt mit dem Titel „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. Ein bestehendes Mitglied hinzufügen ist eine No-Operation.
Ein Mitglied aus einer Gruppe entfernen
Abschnitt mit dem Titel „Ein Mitglied aus 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“Mitgliederliste
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" }'Zulässige Werte für invite_type:
| Wert | Zugeordneter Rolle |
|---|---|
org_super_admin | Hochrangiger Administrator |
org_admin | Administrator |
org_billing_admin | Rechnungsverwaltung |
org_member | Mitglied |
Mitglied entfernen
Abschnitt: "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 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 dies etwas ist, das Ihr Team benötigt, Kontaktieren Sie unsIhr Use Case wird direkt unsere Priorisierung dieses Features beeinflussen.
Weitergehen Sie von Access Control Reference
Abschnitt mit dem Titel “Weitergehen Sie von Access Control Reference”Wenn Sie Access Control Reference verwenden 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 API Schlüsseln Geräte für die Implementierungsdetails in Geräten und Bundles für die Implementierungsdetails in Bundles.