Zu Inhalt springen

Zugriffssteuerungsreferenz

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.


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

BereichGilt fürBeispielanwendung
OrganisationDie gesamte Organisation und alle ihre AppsDein Mitgründer erhält Super Admin; dein Buchhalter erhält Billing Manager
AppEine einzelne App und ihre KanäleAuftragnehmer einer App erhält App-Entwickler
KanalEiner Kanal innerhalb einer AppEine QA-Ingenieurin verwaltet nur den staging Kanal
PaketEine einzelne PaketversionEin 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

Organisationsrollen

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

RolleInterne BezeichnungBeschreibung
Super Adminorg_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.
Adminorg_adminVollständige Verwaltung — Mitglieder, Apps, Kanäle verwalten. Die Organisation nicht löschen, Abrechnung aktualisieren, Apps übertragen oder Benutzer zu Super Admin befördern.
Abrechnungsmanagerorg_billing_adminZugriff auf Abrechnung nur: Abrechnungsinformationen, Rechnungen und Abrechnungsprotokolle anzeigen und aktualisieren. Kein Zugriff auf Apps oder Mitglieder.
Mitgliedorg_memberLeserecht auf die Organisation und alle ihre Apps.
RechtBeschreibungSuper AdministratorAdministratorKassenverwalterMitglied
org.readDie Organisation anzeigen
org.update_settingsOrganisationsname, Logo und Management-E-Mail bearbeiten
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 befördern — durch Rollen-Hierarchie blockiert)
org.read_billingRechnungsinformationen und aktuelles Abonnement anzeigen
org.update_billingZahlungsmethode und Abonnement aktualisieren
org.read_invoicesRechnungen anzeigen
org.read_auditOrganisationsaktivitäten verfolgen
org.read_billing_auditRechnungsbezogene Audit-Log anzeigen

Grenzt auf eine einzelne App. Verwenden Sie diese, wenn ein Teammitglied nur an einer App arbeiten soll, 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 (diese sind Organisationsebene-Befehle).
App-Entwicklerapp_developerBundles hochladen, Geräte verwalten, native Builds auslösen, Kanal-Einstellungen aktualisieren. Keine Löschung, keine Änderungen der App-Einstellungen, keine Kanal-Erstellung.
App-Hochloaderapp_uploaderLeserecht + neue Bundle-Versionen hochladen.
App-Vorschauapp_readerVorschau- 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-Matrixapp_previewBerechtigungs-Matrix für die App

Erlaubnis

Erlaubnis
Berechtigungs-MatrixBeschreibungApp-AdministratorApp-EntwicklerApp-HerausgeberApp-Leser
app.readApp-Daten, Statistiken und Metadaten anzeigen
app.update_settingsApp-Einstellungen bearbeiten
app.read_bundlesHochgeladene Bundle-Liste anzeigen
app.upload_bundleNeue Bundle-Version hochladen
app.create_channelNeuen Kanal erstellen
app.read_channelsKanäle anzeigen
app.read_logsUpdate-Übermittlungsprotokolle anzeigen
app.manage_devicesZuweisen, überschreiben oder von Geräten trennen
app.read_devicesGeräteliste anzeigen
app.build_nativeEinen nativen Cloud-Build auslösen
app.read_auditAnwendungsbereichs-Aktivitätsprotokoll anzeigen
app.update_user_rolesAnwendungsbereichs-Rollenzuweisungen verwalten
bundle.deleteEine Bundle löschen

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:

ErlaubnisErmöglicht
app.readDie ausgewählte App lesen
app.read_bundlesDie hochgeladenen Pakete lesen
app.upload_bundleEin Bundle hochladen
app.create_channelEin 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öglichtDen von dem Schlüssel erstellten Kanal lesen
channel.readSetze das vom Schlüssel hochgeladene Bundle auf diesem Kanal
channel.promote_bundleDen Kanal löschen
channel.deleteDeshalb

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.


Gespeichert auf einem einzelnen Kanal. Nützlich für die Bereitstellung von gezieltem Zugriff auf eine bestimmte Release-Kanal.

RolleInterne BezeichnungBeschreibung
Kanal-Adminchannel_adminVollzugriff auf einen Kanal: Einstellungen, Bündel promotieren/Rollback, zwingende Geräte verwalten.
Kanal-Betrachterchannel_readerLeserecht — aktuelles Bündel, Historie, zwingende Geräte, Audit-Log.
Kanal-Vorschauchannel_previewZu dem App-Vorschau-Schlüssel zugewiesen, der den Kanal erstellt hat: Leserecht, Bündel promotieren und den Kanal löschen.
ZugriffBeschreibungKanal-AdminKanal-BetrachterKanal-Vorschau
channel.readDer Kanal und seine aktuelle Bundle anzeigen
channel.update_settingsKanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…)
channel.deleteKanal löschen
channel.read_historyBundle-Zuweisungsgeschichte anzeigen
channel.promote_bundleAktives Bundle auf dem Kanal festlegen
channel.rollback_bundleZurückrollen zu einem vorherigen Bundle
channel.manage_forced_devicesSpezifische Geräte auf diesen Kanal zwingen
channel.read_forced_devicesZu den gezwungenen Geräten gehen
channel.read_auditKanal-Aktivitätsprotokoll anzeigen

Bundle-Rollen

Rollen im Bundle

Gültig für eine einzelne Bundle-Version. Selten benötigt — die meisten Teams verwenden stattdessen App-Rollen.

RolleInterne BezeichnungBeschreibung
Bundle-Administratorbundle_adminLesen, Metadaten aktualisieren und eine bestimmte Bundle löschen.
Bundle-Betrachterbundle_readerLeserecht auf einer bestimmten Paketversion.

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
BerechtigungBeschreibungStandardverhalten
LesenKanal und aktuelles Bundle anzeigenVon der App-Rolle geerbt
HistorieBundle-Zuweisungs-Historie anzeigenVon der App-Rolle geerbt
Bundle zuweisenAktives 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 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 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.
SzenarioOhne GruppenMit Gruppen
5 QA-Engineure benötigen Entwicklerzugriff auf 3 Apps15 individuelle Rollenzuweisungen1 Gruppe + 3 Rollenzuweisungen
Jemand tritt der QA-Team beiFügen Sie 3 Rollenzuweisungen manuell hinzuFügen Sie sie der Gruppe hinzu
Jemand verlässt das QA-TeamEntfernen Sie 3 Rollenzuweisungen manuellEntfernen Sie sie aus der Gruppe

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>"

erfordert org.read_members Zugriffsrechte.

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"
}'

erfordert org.update_user_roles Zugriffsrechte (Super Administrator oder Administrator).

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 Rolle-Zuweisungen entfernt. Mitglieder werden nicht aus der Organisation gelöscht.

Terminalfenster
curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>"
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_adminKostenstellenverwalter
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 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.

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.