Zum Inhalt springen

Zugriffssteuerungsreferenz

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.


Jede Rolle gehört zu einem Bereich, der bestimmt, welche Ressource sie Zugriff gewährt.

BereichGilt fürBeispielanwendung
OrganisationDie gesamte Organisation und alle ihre AppsIhr Mitgründer erhält Super-Admin; Ihr Buchhalter erhält Billing-Manager
AppA Single-App und seine KanäleEin Auftragnehmer, der an einer App arbeitet, erhält den App-Entwickler
KanalEin einzelner Kanal innerhalb einer AppA Single-Kanal innerhalb einer App staging Kanal
BundleA Single-Bundle-VersionEin 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.


Diese Rollen werden bei der Einladung eines Mitglieds zugewiesen. Sie gewähren Zugriff auf die gesamte Organisation.

RolleInterne BezeichnungBeschreibung
Hauptverwalterorg_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.
Administratororg_adminVollständige Verwaltung – Mitglieder, Apps, Kanäle verwalten. Die Organisation löschen, die Abrechnung aktualisieren, Apps übertragen oder Benutzer zum Hauptverwalter befördern kann nicht.
Abrechnungsverwalterorg_billing_adminAbrechnungszugriff nur: Abrechnungsinfo, Rechnungen und Abrechnungsprotokolle anzeigen und aktualisieren. Kein Zugriff auf Apps oder Mitglieder.
Mitgliedorg_memberLeserecht auf die Organisation und alle ihre Apps.
RechtBeschreibungSuper AdministratorAdministratorRechnungsbuchhalterMitglied
org.readOrganisation ansehen✅✅✅✅
org.update_settingsOrganisationsname bearbeiten, Logo, Verwaltungsemail✅✅❌❌
org.deleteDie Organisation dauerhaft löschen✅❌❌❌
org.read_membersMitgliederliste anzeigen✅✅❌✅
org.invite_userNeue Mitglieder einladen✅✅❌❌
org.update_user_rolesMitgliederrollen ändern (Admin kann nicht auf Super Admin aufsteigen – durch Rollen-Hierarchie blockiert)✅✅❌❌
org.read_billingRechnungsdaten und aktuelle Tarifansicht✅✅✅❌
org.update_billingZahlungsmethode und Abonnement aktualisieren✅❌✅❌
org.read_invoicesRechnungen anzeigen✅✅✅❌
org.read_auditOrganisationsaktivitäten anzeigen✅✅❌❌
org.read_billing_auditRechnungsbezogene Audit-Log anzeigen✅✅✅❌

Beschränkt auf eine einzelne App. Verwenden Sie diese, wenn ein Teammitglied nur an einer App arbeiten soll und nicht an der gesamten Organisation.

RolleInterne BezeichnungBeschreibung
App-Administratorapp_adminVollzugriff 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 Entwicklerapp_developerBundles hochladen, Geräte verwalten, native Builds auslösen, Kanal-Einstellungen aktualisieren. Keine Löschung, keine Änderungen an App-Einstellungen, keine Kanal-Erstellung.
App Hosterapp_uploaderLeserecht + Hochladen neuer Bundle-Versionen.
App Leserapp_readerLeserecht — Statistiken, Bundles, Kanäle, Protokolle, Geräte.
App Vorschauapp_previewOrganisation- 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.
BerechtigungBeschreibungApp-AdministratorApp-EntwicklerApp-HochloaderApp-Leser
app.readAnzeige der App-Daten, -Statistiken und -Metadaten✅✅✅✅
app.update_settingsBearbeitung der App-Einstellungen✅❌❌❌
app.read_bundlesAnzeige der Liste der hochgeladenen Pakete✅✅✅✅
app.upload_bundleHochladen einer neuen Paketversion✅✅✅❌
app.create_channelErstellen eines neuen Kanals✅❌❌❌
app.read_channelsAnzeige der Kanäle✅✅✅✅
app.read_logsAktualisierungsprotokoll anzeigen✅✅✅✅
app.manage_devicesGeräte zuweisen, überschreiben oder trennen✅✅❌❌
app.read_devicesGeräteliste anzeigen✅✅✅✅
app.build_nativeNative Cloud-Build auslösen✅✅❌❌
app.read_auditAnwendungsaktivitätsprotokoll anzeigen✅✅✅✅
app.update_user_rolesAnwendungsrollenzuweisungen verwalten✅❌❌❌
bundle.deleteBundle löschen✅❌❌❌

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:

BerechtigungErmöglicht
app.readDie ausgewählte App lesen
app.read_bundlesBundles hochladen
app.upload_bundleEin Bundle hochladen
app.create_channelEin 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öglichtAllows
channel.readRead the channel created by the key
channel.promote_bundleSetze die eigenen hochgeladenen Bundle der Schlüssel auf diesem Kanal
channel.deleteLö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.


Gespeichert in einem einzelnen Kanal. Nützlich für die Bereitstellung eines gezielten Zugriffs auf einen bestimmten Releasekanal.

RolleInterne BezeichnungBeschreibung
Kanal-Adminchannel_adminVollzugriff auf einen Kanal: Einstellungen, Bundles vor- und zurücksetzen, zwingende Geräte verwalten.
Kanal-Betrachterchannel_readerLeserecht — aktuelles Bundle, Historie, zwingende Geräte, Audit-Log.
Kanal-Vorschauchannel_previewZuweisung 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.
BerechtigungBeschreibungKanal-AdminKanalansichtKanalvorschau
channel.readDer Kanal und dessen aktuelles Bundle anzeigen✅✅✅
channel.update_settingsKanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…)✅❌❌
channel.deleteKanal löschen✅❌✅
channel.read_historyBündelzuweisungsgeschichte anzeigen✅✅❌
channel.promote_bundleAktives Bundle auf dem Kanal setzen✅❌✅
channel.rollback_bundleZurückrollen zu einem vorherigen Bundle✅❌❌
channel.manage_forced_devicesSpezifische Geräte auf diesen Kanal zwingen✅❌❌
channel.read_forced_devicesZurückgezogene Geräte anzeigen✅✅❌
channel.read_auditKanalaktivitätsprotokoll anzeigen✅✅❌

Gespeichert für eine einzelne Bundle-Version. Selten benötigt – die meisten Teams verwenden App-Rollen anstelle davon.

RolleInterne BezeichnungBeschreibung
Bundle-Administratorbundle_adminLesen, Metadaten aktualisieren und eine bestimmte Bundle löschen.
Bündelansichtbundle_readerLeserecht 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
BerechtigungBeschreibungStandardverhalten
LesenDer Kanal und seine aktuelle Bundle anzeigenVon der App-Rolle geerbt
HistorieDie Bundle-Zuweisungshistorie anzeigenVon der App-Rolle geerbt
Bundle zuordnenSetzen oder ändern Sie die aktive Bundle auf dem KanalVon 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.


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 staging Kanal 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.
SzenarioOhne GruppenMit Gruppen
5 QA-Engineeure benötigen Zugriff auf 3 Apps als Entwickler15 individuelle Rollenzuweisungen1 Gruppe + 3 Rollenzuweisungen
Jemand tritt der QA-Team bei3 Rollenzuweisungen manuell hinzufügenHinzufügen zu der Gruppe
Jemand verlässt das QA-Team3 Rollenzuweisungen manuell entfernenAus der Gruppe entfernen

Gruppen über API verwalten

Abschnitt: Gruppen über API verwalten

Alle Gruppen-Endpunkte erfordern eine Authentifizierung und werden unter /private/groups.

Terminalfenster
curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>"

Benötigt org.read_members Erlaubnis.

Terminalfenster
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 aktualisieren
Terminalfenster
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"
}'
Terminalfenster
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 jedoch nicht aus der Organisation gelöscht.

Mitglieder einer Gruppe auflisten

Abschnitt: Mitglieder einer Gruppe auflisten
Terminalfenster
curl -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ügen
Terminalfenster
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.

Terminalfenster
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \
-H "authorization: <API_KEY>"

Terminalfenster
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
}
]
Terminalfenster
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:

WertZugeteilte Rolle
org_super_adminSuper Administrator
org_adminAdministrator
org_billing_adminRechnungsverwaltung
org_memberMitglied
Terminalfenster
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"
}'

Terminalfenster
npx @capgo/cli organization list --apikey <API_KEY>
Terminalfenster
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

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 Reference

Wenn 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.