Zum Inhalt springen

Zugriffssteuerungsreferenz

Capgo verwendet role-basierte Zugriffssteuerung (RBAC) um zu bestimmen, was jeder Teammitglied tun kann. Rollen sind nach Spielraum — vom gesamten Unternehmen bis hin zu einer einzelnen Paketversion.

Für eine visuelle Durchführung der Mitgliederverwaltung im Dashboard, siehe Organisation.


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

Bereichcontext":"Seite/Bereich: Unterstützung / Premium-Unterstützungsseite oder Fußzeile-Unterstützungsabschnitt. Rolle: Abschnitt- oder Seiteüberschrift. Anzuzeigen in: Seite support-policy.astro. Nachrichten Schlüssel `support_policy_scope_title` (Unterstützungspolitik-Bereichstitel)."Beispielanwendung
OrganisationDie gesamte Organisation und alle ihre AppsIhr Mitgründer erhält Super-Administrator; Ihr Buchhalter erhält Kassierer
AppEine einzelne App und ihre KanäleEin Auftragnehmer, der an einer App arbeitet, erhält Entwickler
KanalEin einzelner Kanal innerhalb einer AppEin QA-Engineer verwaltet nur den staging Kanal
PaketEin einzelnes Bundle-VersionEin Rezensent benötigt Leserecht für eine bestimmte Veröffentlichung

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.


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

RolleInternes NameBeschreibung
Super Administratororg_super_adminEigentümergleichwert. Vollzugriff einschließlich Löschung der Organisation, Verwaltung der Abrechnung und Übertragung von Apps. Wird automatisch dem Organisationsschöpfer zugewiesen.
Adminorg_adminVollzugriff — Mitglieder, Apps, Kanäle verwalten. Die Organisation kann nicht gelöscht, die Abrechnung aktualisiert, Apps übertragen oder Benutzer zum Super Admin befördert werden.
Abrechnungsverwalterorg_billing_adminAbrechnungszugriff nur: Abrechnungsinfo, Rechnungen und Abrechnungsprotokolle anzeigen und aktualisieren. Kein Zugriff auf Apps oder Mitglieder.
Mitgliedorg_memberOrganisationsrechte-Tabelle

Abschnitt mit dem Titel „Organisationsrechte-Tabelle“

Recht
BeschreibungSuper AdminEigentümergleichwertVerwalterRechnungsverwaltungMitglied
org.readOrganisation ansehen
org.update_settingsOrganisationsname, Logo und E-Mail-Adresse der Verwaltung bearbeiten
org.deleteOrganisation dauerhaft löschen
org.read_membersMitgliederliste anzeigen
org.invite_userNeue Mitglieder einladen
org.update_user_rolesMitgliederrollen ändern (Admin kann nicht zu Super Admin befördern – durch Rollenstruktur blockiert)
org.read_billingRechnungsdaten und aktuelles Abonnement anzeigen
org.update_billingZahlungsmethode und Abonnement aktualisieren
org.read_invoicesRechnungen anzeigen
org.read_auditOrganisationsaktivitätsprotokoll anzeigen
org.read_billing_auditRechnungsspezifisches Auditprotokoll anzeigen

kann alles tun, was ein App-Administrator oder ein Super-Administrator tun kann, über alle Apps und Kanäle hinweg.

Abschnitt mit dem Titel ‘Anwendungsrollen’

Gespeichert für eine einzelne Anwendung. Verwenden Sie diese, wenn ein Teammitglied nur an einer Anwendung arbeiten soll, nicht an der gesamten Organisation.

RolleInterne BezeichnungBeschreibung
App-Administratorapp_adminVollständige Kontrolle über eine Anwendung — Kanäle, Geräte, Benutzerrollen für die Anwendung. Die Anwendung kann nicht gelöscht oder übertragen werden (diese 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-Hochloaderapp_uploaderLeserecht + neue Bundle-Versionen hochladen.
App-Leserapp_readerLeserecht — Statistiken, Pakete, Kanäle, Protokolle, Geräte.
App-Vorschauapp_previewOrganisations- und App-gesteuerte Vorschau- CI-Lebenszyklus: Hochladen eines Pakets und Erstellen eines Vorschaukanals. Die Erstellung dieses Kanals erteilt automatisch nur die Lebenszyklusrechte für ihn.

App-Berechtigungs-Matrix

Berechtigungs-Matrix für Apps
BerechtigungBeschreibungApp-AdministratorApp-EntwicklerApp-HochloaderApp-Leser
app.readAnzeige von App-Daten, -Statistiken und -Metadaten
app.update_settingsEinstellungen der App bearbeiten
app.read_bundlesDie Liste der hochgeladenen Pakete anzeigen
app.upload_bundleEin neues Paketversion hochladen
app.create_channelEin neuer Kanal erstellen
app.read_channelsKanäle anzeigen
app.read_logsUpdate-Übermittlungsprotokolle anzeigen
app.manage_devicesGeräte zuweisen, überschreiben oder entkoppeln
app.read_devicesGeräteliste anzeigen
app.build_nativeEinen nativen Cloud-Build auslösen
app.read_auditApp-basierte Aktivitätsprotokolle anzeigen
app.update_user_rolesApp-basierte Rollenzuweisungen verwalten
bundle.deleteEin Paket löschen

Verwenden App-Vorschau (app_preview) für eine Organisation- und App-gesicherte CI-Schlüssel, die ein PR-Vorschau-Lebenszyklus ohne umfassenden App- oder Organisationsebenen-Zugriff verwaltet.

Die app_preview die Bindung gewährt nur diese Anwendungsrechte:

ZugriffErmöglicht
app.readDas ausgewählte App lesen
app.read_bundlesDie hochgeladenen Pakete lesen
app.upload_bundleEin Paket hochladen
app.create_channelEin Kanal erstellen

Wenn ein App-Vorschau-Schlüssel einen Kanal erstellt, Capgo gibt diesem Schlüssel automatisch einen Kinderecht für den neuen Kanal nur: channel_preview Zugriff

ErmöglichtRead the selected app
channel.readLesen Sie den Kanal, der durch die Schlüssel erstellt wurde
channel.promote_bundleSetzen Sie die vom Schlüssel hochgeladene Bundle auf diesem Kanal
channel.deleteLöschen Sie diesen Kanal

Da app_preview beibehä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 promotieren 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-bundleEs umfasst nicht

, Geräte- oder Rollenmanagement, app.update_settings, device or role management, channel.update_settings, channel.rollback_bundle, zwingende Geräteverwaltung oder allgemein bundle.delete.


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

RolleInterne BezeichnungBeschreibung
Kanaladministratorchannel_adminVollzugriff auf einen Kanal: Einstellungen, Promotion/Rollback von Paketen, Verwaltung von zwingendem Gerät.
Kanalbetrachterchannel_readerLeserecht — aktuelles Paket, Historie, zwingendes Gerät, Audit-Protokoll.
Kanalvorschauchannel_previewSystem-zugeordnet zum App-Vorschau-Schlüssel, der den Kanal erstellt hat: Leserecht, Promotion seines eigenen Pakets und Löschung dieses Kanals.
BerechtigungBeschreibungKanaladministratorKanalbetrachterKanalvorschau
channel.readKanal und aktuelles Bundle anzeigen
channel.update_settingsKanal-Einstellungen bearbeiten (Plattform-Toggle, Update-Politik…)
channel.deleteKanal löschen
channel.read_historyBundlesitzungsverlauf anzeigen
channel.promote_bundleaktuelles Bundle auf dem Kanal setzen
channel.rollback_bundleZurückrollen zu einem vorherigen Bundle
channel.manage_forced_devicesZwingen Sie bestimmte Geräte zu diesem Kanal
channel.read_forced_devicesAnzeigen der Liste der zwingend eingestellten Geräte
channel.read_auditAnzeigen des Aktivitätsprotokolls des Kanals

Bundle-Rollen zuweisen

Rollen für ein Bundle

Geskoperter auf 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 eine bestimmte Bundle.

In der Dashboard wird der Zugriff auf einen Kanal durch die Rolle der App des Benutzers standardmäßig bestimmt. Für eine feinere Kontrolle können Sie spezifische Kanalberechtigungen pro Benutzer oder Gruppe ohne Änderung der App-Rolle überschreiben. Überschreiben Sie spezifische Kanalberechtigungen pro Benutzer oder Gruppe ohne Änderung der App-Rolle.

Übernahmen werden von der App aus der Anwendungsoberfläche konfiguriert. Zugriff Zugriff Klicken Sie auf die Schaltfläche für Kanalberechtigungen (Schildsymbol) neben einem Benutzer, um die Konfiguration zu öffnen. Siehe Organisation — Übernahme von Kanalberechtigungen

Übernehmbare Berechtigungen

Abschnitt mit dem Titel
BerechtigungBeschreibungStandardverhalten
LesenDer Kanal und sein aktuelles Bundle anzeigenVon der App-Rolle geerbt
HistorieBundzuweisungshistorie anzeigenVon der App-Rolle geerbt
Bund zuweisenAktuellen Bund auf dem Kanal setzen oder ändernVon 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 dieser Funktion können Sie zum Beispiel einem App-Leser die Möglichkeit geben, Kanäle ohne die Rolle des App-Entwicklers zu erstellen. staging Rollenhierarchie


Abschnitt mit dem Titel ‘Rollenhierarchie’

Rollen bilden eine Hierarchie. Eine übergeordnete Rolle

erbt alle Berechtigungen deren Kinder. Das bedeutet, dass ein alles tun kann, was ein org_admin tun kann, was wiederum ein app_admin tun kann, und so weiter. channel_admin — explizit blockieren, unabhängig vom App-Rollenstatus

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 auf der Ebene der Organisation kann alles tun, was ein App-Administrator auf jeder App in der Organisation kann.
  • Ein App-Administrator auf einer bestimmten App kann alles tun, was ein Kanal-Administrator auf jedem Kanal in dieser App kann.
  • Ein App-Entwickler alles, was ein App-Herausgeber mehr kann.

Die Hierarchie fließt nur abwärts — ein channel_admin nie erhält Organisations-Ebenen-Berechtigungen, selbst wenn sie auch eine App-Ebene-Rolle haben.


Stattdessen können Sie Rollen anstatt jedem Benutzer einzeln zuweisen, eine Gruppen und Rollen zuweisen an die Gruppe. Jeder Mitglied der Gruppe erhält diese Rollen automatisch.

  • 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 auf dem staging Kanal 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 Gruppengehören und die Berechtigungen aller Gruppen additiv sind.
  • Gruppen-basierte Berechtigungen gelten nur für Benutzerprinzipale — API Schlüssel erben keine Gruppenrollen.

Wann Gruppen zu verwenden sind

Wann Gruppen zu verwenden sind
SzenarioOhne GruppenMit Gruppen
5 QA-Engineer benötigen Zugriff auf 3 Apps als Entwickler15 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.

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

Erfordert org.read_members eine Berechtigung.

Terminal-Fenster
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 Berechtigung (Super Admin oder Zugriff auf Appflow-Plugins oder).

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 ein 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. Ein bestehendes Mitglied hinzufügen ist eine No-Operation.

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

Terminal-Fenster
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
}
]
Terminal-Fenster
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:

WertZugeordnete Rolle
org_super_adminSuper Admin
org_adminAdmin
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 von benutzerdefinierten Rollen steht auf unserem Roadmap – wenn dies etwas ist, das Ihr Team benötigt, Kontaktiere unsIhr Use Case wird uns dabei helfen, diese Funktion zu priorisieren.

Weiter zu Access Control Reference

Abschnitt: Weiter zu Access Control Reference

Wenn Sie Access Control Reference verwenden, um Dashboard und __CAPGO_KEEP_0__-Operationen zu planen, verbinden Sie es mit API-Übersicht für die Implementierungsdetails in API-Übersicht for the implementation detail in API Overview, für die Implementierungsdetails in Einführung __CAPGO_KEEP_0__-Schlüssel API Keys 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.