Zum Inhalt springen

Zugriffssteuerungsreferenz

Capgo uses __CAPGO_KEEP_0__ uses um zu bestimmen, was jeder Teammitglied tun kann. Rollen sind nach Bereich — vom gesamten Unternehmen bis hin zu einer einzelnen Pakete.

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.

BereichGilt fürBeispielanwendung
OrganisationDie gesamte Organisation und alle ihre AppsDein Mitgründer erhält Super Admin; dein Buchhalter erhält Billing Manager
AppEin einzelnes App und seine KanäleEin Auftragnehmer, der an einer App arbeitet, erhält App-Entwickler
KanalEin einzelner Kanal innerhalb einer AppEin QA-Engineer verwaltet nur den staging Kanal
PaketEine einzelne PaketversionEin Rezensent benötigt Leserecht für eine bestimmte Release

Ein Mitglied kann eine Rolle pro Bereichsziel haben beispielsweise eine Organisationenrolle, eine Rolle auf App A und eine andere Rolle auf App B Organisationsrollen


Diese Rollen werden zugewiesen, wenn ein Mitglied eingeladen wird. Sie gewähren Zugriff auf die gesamte Organisation

Rolle

Interne Bezeichnung

BeschreibungSuper AdministratorÄhnlich wie Besitzer. Vollständige Kontrolle einschließlich Löschung der Organisation, Verwaltung der Abrechnung und Übertragung von Apps. Automatisch der Organisationsersteller zugewiesen
Adminorg_super_admin— beispielsweise eine Organisationenrolle, eine Rolle auf App A und eine andere Rolle auf App B.
Diese Rollen werden zugewiesen, wenn ein Mitglied eingeladen wird. Sie gewähren Zugriff auf die gesamte Organisation.org_adminVollzugverwaltung — Mitglieder, Apps, Kanäle verwalten. Die Organisation kann nicht gelöscht, die Rechnung aktualisiert, Apps übertragen oder Benutzer zum Super Admin befördert werden.
Rechnungsverwalterorg_billing_adminRechnungszugriff: Rechnungsinformationen, Rechnungen und Rechnungsprotokolle anzeigen und aktualisieren. Kein Zugriff auf Apps oder Mitglieder.
Mitgliedorg_memberLeserecht auf die Organisation und alle ihre Apps.

Organisationsrechte Matrix

Recht
BeschreibungSuper AdminAdminRechnungsverwalterOrganisationsrechte MatrixMitglied
org.readOrganisation ansehen
org.update_settingsOrganisationsname, Logo und E-Mail-Adresse der Verwaltung bearbeiten
org.deleteOrganisation dauerhaft löschen
org.read_membersMitgliederliste ansehen
org.invite_userNeue Mitglieder einladen
org.update_user_rolesMitgliederrollen ändern (Admin kann nicht zum Super Admin befördern – durch Rollen-Hierarchie blockiert)
org.read_billingRechnungsinformationen und aktuelles Abonnement ansehen
org.update_billingZahlungsmethode und Abonnement aktualisieren
org.read_invoicesRechnungen ansehen
org.read_auditOrganisationsaktivitätenprotokoll ansehen
org.read_billing_auditRechnungsbezogene Audit-Log ansehen

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

RolleInternes NameBeschreibung
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 Organisationsebenenoperationen).
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 + Upload neuer Bundle-Versionen.
App-Leserapp_readerNur-Lesezugriff — Statistiken, Bundles, Kanäle, Protokolle, Geräte.
ZugriffsrechtBeschreibungApp-AdministratorApp-EntwicklerApp-HerausgeberApp-Leser
app.readApp-Daten, Statistiken und Metadaten anzeigen
app.update_settingsApp-Einstellungen bearbeiten
app.read_bundlesListe der hochgeladenen Pakete anzeigen
app.upload_bundleNeue Paketversion hochladen
app.create_channelNeuen Kanal erstellen
app.read_channelsKanäle anzeigen
app.read_logsAktualisierungsprotokolle 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

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

RolleInterne BezeichnungBeschreibung
Kanal-Administratorchannel_adminVollzugriff auf einen Kanal: Einstellungen, Bündel promoten/rollen zurück, zwingende Geräte verwalten.
Kanal-Betrachterchannel_readerLeserecht — aktuelles Bündel, Historie, zwingende Geräte, Audit-Log.
BerechtigungBeschreibungKanal-AdminKanal-Besucher
channel.readKanal und aktuelles 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 setzen
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äts-Protokoll anzeigen

Geskopt auf eine einzelne Bundle-Version. Selten benötigt — die meisten Teams verwenden App-Rollen anstelle.

RolleInterne BezeichnungBeschreibung
Bundle-Administratorbundle_adminLesen, Metadaten aktualisieren und eine bestimmte Bundle löschen.
Bundle Viewerbundle_readerLeserecht auf eine bestimmte Bundle.

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

Die Überschreibungen werden von der App aus Zugriff konfiguriert, indem Sie auf den Button für Kanalberechtigungen (Schild-Icon) neben einem Benutzer klicken. Siehe Organisation — Überschreibung von Kanalberechtigungen für eine visuelle Anleitung.

Überschreibbare Berechtigungen

Überschreibbare Berechtigungen
BerechtigungBeschreibungStandardverhalten
LesenBündel und dessen aktuelles Bündel anzeigenVom App-Rollen geerbt
HistorieBündelzuweisungshistorie anzeigenVom App-Rollen geerbt
Bündel zuweisenAktivieren oder ändern Sie die aktuelle Bundle auf dem KanalVom App-Rollen-Übernahmeein

Jede Berechtigung kann auf: gesetzt werden

  • Standard — von der App-Rolle (der Standard) übernehmen
  • Zulassen — explizit gewähren, unabhängig von der App-Rolle
  • Verweigern — explizit ablehnen, unabhängig von der App-Rolle

Dies ermöglicht es Ihnen, zum Beispiel einem App-Leser die Möglichkeit zu geben, Bundles auf dem Kanal ohne sie zu App-Entwickler zu befördern, zu associieren. staging Rollen-Hierarchie


Rollen bilden eine Hierarchie. Eine übergeordnete Rolle erbt alle Berechtigungen ihres Kindrollen. Das bedeutet, dass ein org_admin alles tun kann, was ein app_admin tun kann, was wiederum alles tun kann, was ein channel_admin tun kann, usw.

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 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 Channel-Admin auf jede Kanal in dieser App kann.
  • Ein App-Entwickler kann alles tun, was ein App-Herausgeber kann, plus mehr.

Die Hierarchie fließt nur unten — ein channel_admin erhält nie die Berechtigungen auf Organisations-Ebene, selbst wenn sie auch eine App-Rolle innehaben.


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 funktionieren Gruppen

Abschnitt mit dem Titel „Wie funktionieren Gruppen”

Eine Gruppe gehört zu
  • __CAPGO_KEEP_0__ eine Organisation — es kann sich nicht auf mehrere Orgs erstrecken.
  • Gruppen können Rollenzuweisungen auf jeder Ebenehalten: Org, App, Kanal oder Bundle. Zum Beispiel kann eine Gruppe dem App-Entwickler Rollen auf App A und der Kanal-Admin Rolle 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 erteilt, wird der Zugriff gewährt.
  • Ein Benutzer kann zu Mehrguppen, und die Berechtigungen von allen Gruppen sind additiv.
  • Gruppengestützte Berechtigungen gelten nur für Benutzerprinzipale — API Schlüssel erben keine Gruppenrollen.
SzenarioOhne GruppenMit Gruppen
5 QA-Engineer benötigen den 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.

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 oder Admin).

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

Zulässige Werte für invite_type:

WertZugeteilte Rolle
org_super_adminSuper Administrator
org_adminAdministrator
org_billing_adminKundenverwaltung
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 unsIhr Use Case wird uns direkt helfen, diese Funktion zu priorisieren.