Saltare al contenuto

Riferimento al Controllo degli Accessi

Usa Capgo controllo di accesso basato sul ruolo (RBAC) per gestire cosa ogni membro del team può fare. I ruoli sono organizzati per ambito — dal'intera organizzazione fino a un singolo pacchetto.

Per una panoramica visiva sulla gestione dei membri nel pannello di controllo, vedere Organization.


Ogni ruolo appartiene a uno scope che determina quali risorse concede l'accesso.

ScopeAmbitoSi applica a
OrganizzazioneTutta l'organizzazione e tutte le sue appIl tuo co-fondatore ottiene Super Amministratore; il tuo contabile ottiene Gestore della fatturazione
AppUna singola app e i suoi canaliUn contrattista che lavora su una app ottiene Sviluppatore di app
CanaleUn canale singolo all'interno di un'app.Un ingegnere di QA gestisce solo staging channel
CanaleCanale di distribuzioneA un revisore è necessario l'accesso di lettura a una versione specifica

Un membro può detenere un ruolo per ambito di destinazione — ad esempio, un ruolo di organizzazione, un ruolo su App A e un ruolo diverso su App B.


Ruoli di organizzazione

Ruoli dell'organizzazione

Questi ruoli sono assegnati quando si invita un membro. Concedono l'accesso all'intera organizzazione.

RoleNome internoNome interno
Descrizioneorg_super_adminProprietario equivalente. Controllo completo, incluso la possibilità di eliminare l'organizzazione, gestire la fatturazione e trasferire le app. Concesso automaticamente al creatore dell'organizzazione.
Adminorg_adminAmministrazione completa — gestisci membri, app, canali. Non puoi cancellare l'org, aggiornare la fatturazione, trasferire app o promuovere utenti a Super Amministratore.
Gestore fatturazioneorg_billing_adminAccesso solo per fatturazione: visualizza e aggiorna informazioni di fatturazione, fatture e registri di audit di fatturazione. Nessun accesso agli app o membri.
Membroorg_memberAccesso di sola lettura all'org e a tutte le sue app.

Matrice di autorizzazioni dell'org

Matrice di autorizzazioni dell'organizzazione
DescrizioneDescriptionSuper AdminAdminAmministratore fatturazioneUtente
org.readVisualizza l'organizzazione✅✅✅✅
org.update_settingsEdit org name, logo, management email✅✅❌❌
org.deleteCancella permanentemente l'organizzazione✅❌❌❌
org.read_membersVisualizza la lista degli utenti✅✅❌✅
org.invite_userInvita nuovi membri✅✅❌❌
org.update_user_rolesCambia ruoli degli utenti (l'amministratore non può promuovere a Super Amministratore — bloccato dalla gerarchia dei ruoli)✅✅❌❌
org.read_billingView billing info and current plan✅✅✅❌
org.update_billingAggiorna metodo di pagamento e piano✅❌✅❌
org.read_invoicesVisualizza fatture✅✅✅❌
org.read_auditVisualizza registro di attività dell'organizzazione✅✅❌❌
org.read_billing_auditVisualizza registro di audit specifico per fatturazione✅✅✅❌

Limitato a un'applicazione. Utilizza questi quando un membro del team dovrebbe lavorare solo su un'applicazione, non sull'intera organizzazione.

RuoloNome internoDescrizione
App Adminapp_adminControllo completo di un'app — canali, dispositivi, ruoli utente per l'app. Non è possibile cancellare o trasferire l'app (queste operazioni sono a livello di organizzazione).
Sviluppatore dell'applicazioneapp_developerCarica bundle, gestisci dispositivi, attiva costruzioni native, aggiorna impostazioni del canale. Nessuna cancellazione, nessuna modifiche alle impostazioni dell'applicazione, nessuna creazione di canali.
Caricatore di bundle dell'applicazioneapp_uploaderRead access + upload new bundle versions.
Letture Appapp_readerLetture esclusive — statistiche, bundle, canali, log, dispositivi.
Anteprima Appapp_previewCiclo di vita della CI legato all'organizzazione e all'app: caricare un bundle e creare un canale di anteprima. La creazione di quel canale concede automaticamente i diritti di ciclo di vita solo per esso.

Matrice di permessi dell'app

Matrice di permessi dell'app
PermessoDescrizioneApp AdminSviluppatore dell'appCaricatore dell'appLettore dell'app
app.readVisualizza dettagli dell'app, statistiche e metadati✅✅✅✅
app.update_settingsModifica impostazioni dell'app✅❌❌❌
app.read_bundlesVisualizza l'elenco dei bundle caricati✅✅✅✅
app.upload_bundleCarica una nuova versione del bundle✅✅✅❌
app.create_channelCrea un nuovo canale✅❌❌❌
app.read_channelsVisualizza i canali✅✅✅✅
app.read_logsVisualizza i registri di consegna degli aggiornamenti✅✅✅✅
app.manage_devicesAssegna, sovrapponi o disconnetti dispositivi✅✅❌❌
app.read_devicesVisualizza l'elenco dei dispositivi✅✅✅✅
app.build_nativeAvvia un build cloud nativo✅✅❌❌
app.read_auditVisualizza il registro di attività dell'app✅✅✅✅
app.update_user_rolesGestisci le assegnazioni di ruoli dell'app✅❌❌❌
bundle.deleteElimina un bundle✅❌❌❌

Set di autorizzazioni per anteprima di app

Impostazione di permessi per anteprima dell'app

Usa Anteprima di app (app_previewPer una chiave CI associata all'organizzazione e all'applicazione che gestisce il ciclo di vita della preview di un PR senza accesso ampio per l'applicazione o l'organizzazione.

Questo app_preview concede solo questi permessi di livello di app:

PermessoConsente
app.readLeggi l'app selezionata
app.read_bundlesLeggi i bundle caricati
app.upload_bundleCarica un bundle
app.create_channelCreare un canale

Quando una chiave di anteprima dell'app crea un canale, Capgo assegna automaticamente a quella chiave un figlio channel_preview Leggi il canale creato dalla chiave

PermessoConsente
channel.readLeggi il canale creato dalla chiave
channel.promote_bundleImposta il proprio pacchetto caricato su quel canale
channel.deleteCancella quel canale

Poiché app_preview conserva app.read, la chiave può enumerare i metadati del canale nella selezionata app. L'assegnazione automatica del figlio è un limite di gestione : non concede mutazioni di ciclo di vita per un canale che la chiave non ha creato.

Capgo registra la chiave di anteprima che ha creato ogni canale e caricato ogni pacchetto. Quindi una chiave di anteprima dell'applicazione può creare ogni canale di anteprima non pubblico che ha bisogno, promuovere il proprio pacchetto e cancellare atomicamente quel canale e pacchetto con channel delete --delete-bundlenon può farlo per un canale predefinito principale, un altro canale di anteprima chiave, o un altro bundle di chiave.

It does not include app.update_settings, la gestione dei dispositivi o dei ruoli channel.update_settings, channel.rollback_bundle, la gestione dei dispositivi forzata o generica bundle.delete.


Limitato a un singolo canale. Utile per fornire accesso mirato a un canale di rilascio specifico.

RuoloNome internoDescrizione
Amministratore del canalechannel_adminControllo completo di un canale: impostazioni, promuovi/riporta bundle, gestisci dispositivi obbligatori.
Visualizzatore del canalechannel_readerLetto solo — bundle corrente, storia, dispositivi obbligatori, registro degli accessi.
Anteprima del canalechannel_previewAssegnato automaticamente alla chiave App Preview che ha creato il canale: lettura, promuovi il proprio bundle e cancella quel canale.

Matrice delle autorizzazioni del canale

Matrice di permessi per canale
PermessoDescrizioneAmministratore del canaleVisualizzatore del canaleAnteprima del canale
channel.readVisualizza il canale e il suo bundle corrente✅✅✅
channel.update_settingsEdit channel settings (platform toggles, update policy…)✅❌❌
channel.deleteElimina il canale✅❌✅
channel.read_historyVisualizza la cronologia delle assegnazioni del bundle✅✅❌
channel.promote_bundleImposta il bundle attivo sul canale✅❌✅
channel.rollback_bundleRitorna a un bundle precedente✅❌❌
channel.manage_forced_devicesImponi dispositivi specifici a questo canale✅❌❌
channel.read_forced_devicesVisualizza l'elenco dei dispositivi obbligati✅✅❌
channel.read_auditVisualizza il registro delle attività del canale✅✅❌

Scoped to a single bundle version. Rarely needed — most teams use app-level roles instead.

RuoloNome internoDescrizione
Amministratore del pacchettobundle_adminLeggi, aggiorna i metadati e cancella un pacchetto specifico.
Visualizzatore del pacchettobundle_readerAccesso di sola lettura a un pacchetto specifico.

Autorizzazioni del canale sovrascritte (Dashboard)

Sezione intitolata “Sovrascritture di permessi del canale (Dashboard)”

Nel pannello di controllo, l'accesso al canale è determinato dal ruolo dell'applicazione dell'utente di default. Per un controllo più dettagliato, puoi sovrascrivere le autorizzazioni del canale specifiche per utente o gruppo senza modificare il ruolo dell'applicazione.

Impostazioni di override sono configurate dall'app. Accesso Seleziona la scheda cliccando sul pulsante delle autorizzazioni del canale (icona scudo) accanto all'utente. Vedi Organizzazione — Sovrascrittura delle autorizzazioni del canale per una guida visiva.

AutorizzazioneDescrizioneComportamento predefinito
LeggiVisualizza il canale e il suo bundle correnteEreditato dal ruolo dell'app
StoriaVisualizza la storia delle assegnazioni del bundleEreditato dal ruolo dell'applicazione
Associare il pacchettoImpostare o modificare il pacchetto attivo sul canaleEreditato dal ruolo dell'applicazione

Ogni autorizzazione può essere impostata su:

  • Predefinito — ereditare dal ruolo dell'applicazione (predefinito)
  • Consenti — assegna esplicitamente, indipendentemente dal ruolo dell'app
  • Negare --- blocca esplicitamente, indipendentemente dal ruolo dell'app

Questo ti consente, ad esempio, di dare all'App Reader la possibilità di associare bundle sul staging canale senza promuoverli a sviluppatore di App.


Sottosezione intitolata “Gerarchia dei ruoli”

Il ruolo forma una gerarchia. Un ruolo padre

Ruoli formano una gerarchia. Un ruolo genitore eredita tutti i permessi può fare tutto ciò che può fare un org_admin può fare tutto ciò che un app_admin può, che inoltre può fare tutto ciò che un channel_admin Copia nel portapenne

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)

Come funziona nella pratica:

  • Un Admin a livello di organizzazione può fare tutto ciò che un App Admin può fare, su ogni applicazione nell'organizzazione.
  • Un App Admin su un'applicazione specifica può fare tutto ciò che un Amministratore del canale può fare, su ogni canale in quell'applicazione.
  • Un Sviluppatore di App può fare tutto ciò che un Caricatore di App può fare, più cose.

La gerarchia si propaga solo in basso — un channel_admin ruolo non può mai ottenere permessi di livello organizzativo, neanche se detiene anche un ruolo di livello app.


Invece di assegnare ruoli a ogni utente individualmente, puoi creare gruppi e assegna ruoli al gruppo. Ogni membro del gruppo eredita automaticamente quei ruoli.

  • Un gruppo appartiene a una sola organizzazione – non può coprire più di un'org.
  • I gruppi possono contenere vincoli di ruolo a qualsiasi ambito: org, app, canale o bundle. Ad esempio, un gruppo può essere assegnato il Ruolo sviluppatore di App ruolo su App A e il Ruolo amministratore del canale ruolo sul staging canale di App B.
  • Quando vengono valutate le autorizzazioni di un utente, tutte le sue appartenenze ai gruppi vengono risolte in modo trasparente. Se qualsiasi gruppo concede la richiesta autorizzazione, l'accesso è consentito.
  • Un utente può appartenere a gruppi multipli, e le autorizzazioni da tutti i gruppi sono additive.
  • Istituzionali permessi sono applicabili solo ai principali utente — le chiavi API non ereditano ruoli di gruppo.
ScenarioSenza gruppiCon gruppi
5 ingegneri QA richiedono accesso allo sviluppatore per 3 app15 vincoli di ruolo individuali1 gruppo + 3 vincoli di ruolo
Qualcuno entra a far parte del team QAAggiungere 3 vincoli di ruolo manualmenteAggiungerli al gruppo
Qualcuno lascia il team QARimuovere 3 vincoli di ruolo manualmenteRimuoverli dal gruppo

Tutti gli endpoint dei gruppi richiedono l'autenticazione e sono serviti sotto /private/groups.

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

Richiede org.read_members la

Finestra del terminale
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"
}'

Richiede org.update_user_roles permesso (Super Admin o Admin).

Fermata di sistema
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"
}'
Fermata di sistema
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>"

La cancellazione di un gruppo elimina anche tutti i relativi vincoli di ruolo. I membri non vengono eliminati dall'organizzazione.

Finestra del terminale
curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>"

Aggiungi un membro a un gruppo

Rimuovi un membro dal gruppo
Finestra del terminale
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>" }'

L'utente deve già essere un membro dell'organizzazione. Aggiungere un membro esistente è un'operazione senza effetti.

Sezione intitolata “Elenco membri del gruppo”

Sezione intitolata “Rimuovere un membro da un gruppo”
Finestra del terminale
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \
-H "authorization: <API_KEY>"

Finestra del terminale
curl -X GET "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "orgId": "<ORG_ID>" }'

Risposta:

[
{
"uid": "user-uuid",
"email": "alice@example.com",
"image_url": "https://...",
"role": "org_admin",
"is_tmp": false
}
]
Finestra del terminale
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"
}'

Valori accettati per invite_type:

ValoreRuolo assegnato
org_super_adminSuper Admin
org_adminAdmin
org_billing_adminSezione intitolata “Assegna ruoli tramite __CAPGO_KEEP_0__”
org_memberMember

Sezione intitolata “Elenco organizzazioni”

Section titled “Remove a member”
Sezione intitolata “Rimuovi un membro”
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"
}'

Assegnare ruoli tramite CLI

Assegnazione dei ruoli tramite CLI
Sezione intitolata “Rimuovi un membro”
npx @capgo/cli organization list --apikey <API_KEY>
Finestra del terminale
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

I ruoli predefiniti coprono la struttura di squadra più comune. La creazione di ruoli personalizzati è prevista per il nostro roadmap — se il tuo team ne ha bisogno, contattaci. Copia negli appunti. Il tuo caso d'uso ci aiuterà a priorizzare questa funzionalità.

Se stai utilizzando Riferimento al Controllo degli Accessi per pianificare dashboard e operazioni API, connettilo con API Overview per i dettagli di implementazione in API Overview Introduzione per i dettagli di implementazione in Introduzione Tasti API per i dettagli di implementazione in API Keys Dispositivi per i dettagli di implementazione in Dispositivi, e Pacchetti per i dettagli di implementazione in Pacchetti.