Saltare al contenuto

Riferimento al controllo degli accessi

Capgo uses Include installazione, sincronizzazione e la guida markdown della fonte. per gestire cosa ogni membro del team può fare. I ruoli sono organizzati per ambito — dall'intera organizzazione fino a un singolo bundle.

Per una panoramica visiva della gestione dei membri nel pannello di controllo, vedere Organizzazione.


Ogni ruolo appartiene a un ambito che determina a cosa si riferisce l'accesso.

AmbitoSi applica aEsempio di utilizzo
OrganizzazioneTutta l'organizzazione e tutte le sue appIl tuo co-fondatore riceve Super Amministratore; il tuo contabile riceve Gestore fatturazione
AppUna singola app e i suoi canaliUn contrattista che lavora su un'app riceve Sviluppatore app
CanaleUn singolo canale all'interno di un'appUn ingegnere QA gestisce solo il staging canale
PacchettoUna versione del pacchetto singoloUn revisore ha bisogno di accesso in lettura a una versione di rilascio 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.


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

RuoloNome internoDescrizione
Amministratore superioreorg_super_adminEquivalente di proprietario. Controllo completo, incluso la possibilità di eliminare l'org, gestire la fatturazione e trasferire gli app. Concesso automaticamente al creatore dell'org.
— ad esempio, un ruolo di organizzazione, un ruolo su App A e un ruolo diverso su App B.org_adminAmministrazione completa — gestisci membri, app, canali. Non è possibile cancellare l'organizzazione, aggiornare la fatturazione, trasferire le app o promuovere gli utenti a Super Amministratore.
Gestore fatturazioneorg_billing_adminAccesso solo fatturazione: visualizza e aggiorna le informazioni di fatturazione, le fatture e i registri di audit di fatturazione. Nessun accesso alle app o ai membri.
Membroorg_memberAccesso di sola lettura all'organizzazione e a tutte le sue app.
AutorizzazioneDescrizioneSuper AmministratoreAmministratoreGestore fatturazioneMembro
org.readVisualizza l'organizzazione
org.update_settingsModifica nome, logo e indirizzo email di gestione dell'organizzazione
org.deleteElimina permanentemente l'organizzazione
org.read_membersVisualizza la lista dei membri
org.invite_userInvita nuovi membri
org.update_user_rolesCambia ruoli dei membri (l'amministratore non può promuovere a Super Amministratore — bloccato dalla gerarchia dei ruoli)
org.read_billingVisualizza informazioni di fatturazione e piano attuale
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

Limitati a un'applicazione singola. Utilizzali quando un membro della squadra dovrebbe lavorare solo su un'app, non sull'intera organizzazione.

RuoloNome internoDescrizione
Amministratore dell'appapp_adminControllo completo di un'app — canali, dispositivi, ruoli utente per l'app. Non è possibile cancellare o trasferire l'app (queste sono operazioni a livello di organizzazione).
Sviluppatore dell'appapp_developerCarica bundle, gestisci dispositivi, attiva costruzioni native, aggiorna impostazioni dei canali. Nessuna cancellazione, nessuna modifica delle impostazioni dell'app, nessuna creazione di canali.
Caricatore dell'appapp_uploaderAccesso di sola lettura + caricamento di nuove versioni dei bundle.
Letture dell'appapp_readerSolo lettura — statistiche, bundle, canali, log, dispositivi.
AutorizzazioneDescrizioneAmministratore dell'appSviluppatore dell'appCaricatore dell'appLetture dell'app
app.readVisualizza dettagli dell'app, statistiche e metadati
app.update_settingsModifica le impostazioni dell'app
app.read_bundlesVisualizza l'elenco dei pacchetti caricati
app.upload_bundleCarica una nuova versione del pacchetto
app.create_channelCrea un nuovo canale
app.read_channelsVisualizza canali
app.read_logsVisualizza registrazioni di aggiornamento
app.manage_devicesAssegna, sovrascrivi o disconnetti dispositivi
app.read_devicesVisualizza lista dispositivi
app.build_nativeTrasmetti un build cloud nativo
app.read_auditVisualizza registro di attività a livello di app
app.update_user_rolesGestisci assegnazioni di ruoli a livello di app
bundle.deleteElimina un bundle

Limitati 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, promuovere/riportare bundle, gestire dispositivi obbligatori.
Visualizzatore del canalechannel_readerSolo lettura — bundle corrente, storia, dispositivi obbligatori, registro degli accessi.
AutorizzazioneDescrizioneAmministratore del canaleVisualizza il canale e il suo bundle corrente
channel.readModifica le impostazioni del canale (toggle di piattaforma, politica di aggiornamento…)
channel.update_settingsElimina il canale
channel.deleteVisualizza la cronologia delle assegnazioni del bundle
channel.read_historyImposta il bundle attivo sul canale
channel.promote_bundleRitorna a un bundle precedente
channel.rollback_bundleForza dispositivi specifici a questo canale
channel.manage_forced_devicesVisualizza la lista dei dispositivi forzati
channel.read_forced_devicesVisualizza il registro di attività del canale
channel.read_auditRuoli del bundle

Limitato a una sola versione del pacchetto. Raramente necessario — la maggior parte delle squadre utilizza invece i ruoli a livello di applicazione.

RuoloNome internoDescrizione
Amministratore del Pacchettobundle_adminLeggi, aggiorna i metadati e cancella un pacchetto specifico.
Visualizzatore di bundlebundle_readerAccesso di sola lettura a un bundle specifico.

Override delle autorizzazioni del canale (Pannello di controllo)

Sezione intitolata “Override delle autorizzazioni del canale (Pannello di controllo)”

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

Le sovrascritture sono configurate dalla scheda Accesso del pannello di controllo cliccando sul pulsante delle autorizzazioni dei canali (icona scudo) accanto a un utente. Vedi Organizzazione — Soprascrittura delle autorizzazioni dei canali per una guida visiva.

AutorizzazioneDescrizioneComportamento predefinito
LeggiVisualizza il canale e il suo bundle correnteEreditato dal ruolo dell'applicazione
StoriaVisualizza la storia delle assegnazioni del bundleEreditato dal ruolo dell'applicazione
Assegna bundleImposta o modifica il bundle attivo sul canaleEreditato dal ruolo dell'applicazione

Ogni autorizzazione può essere impostata su:

  • Predefinito — eredita dal ruolo dell'applicazione (la predefinita)
  • Consenti — concede esplicitamente, indipendentemente dal ruolo dell'applicazione
  • Negati — nega esplicitamente, indipendentemente dal ruolo dell'applicazione

Ciò ti consente, ad esempio, di dare a un lettore dell'app l'abilità di associare bundle sul staging canale senza promuoverli a sviluppatore dell'app


I ruoli formano una gerarchia. Un ruolo padre eredita tutti i permessi dei suoi figli. Ciò significa che un org_admin può fare tutto ciò che un app_admin può, che in turn può fare tutto ciò che un channel_admin può, e così via.

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 Amministratore a livello di organizzazione può fare tutto ciò che un Amministratore App può, su ogni app nell'organizzazione.
  • Un Amministratore App su un'app specifica può fare tutto ciò che un Amministratore Canale può, su ogni canale in quella app.
  • Un Sviluppatore App può fare tutto ciò che un Caricatore App può, più ancora.

The gerarchia fluisce solo in basso verso – un channel_admin non acquisisce mai le autorizzazioni di livello organizzativo, anche se detiene anche un ruolo di livello applicativo.


Invece di assegnare ruoli a ogni utente individualmente, puoi creare gruppi e assegnare 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 memorizzare le associazioni di ruolo a qualsiasi ambito: org, app, canale o bundle. Ad esempio, un gruppo può essere assegnato il Ruolo sviluppatore di App ruolo sul Canale amministratore del canale di App B. staging Quando vengono valutate le autorizzazioni di un utente, tutte le sue appartenenze ai gruppi vengono risolte in modo trasparente. Se uno dei suoi gruppi concede la autorizzazione richiesta, l'accesso è consentito.
  • Un utente può appartenere a
  • __CAPGO_KEEP_0__ gruppi multipli, e le autorizzazioni da tutti i gruppi sono additive.
  • Le autorizzazioni basate sui gruppi si applicano solo ai principali utente — le chiavi API non ereditano ruoli di gruppo.
ScenarioSenza gruppiCon gruppi
5 ingegneri QA hanno bisogno di accesso sviluppatore a 3 app15 vincoli di ruolo individuali1 gruppo + 3 legami di ruolo
Qualcuno entra a far parte del team di QAAggiungi 3 legami di ruolo manualmenteAggiungili al gruppo
Qualcuno lascia il team di QARimuovi 3 legami di ruolo manualmenteRimuovili 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 permessi.

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 la permessi (Super Amministratore o Amministratore).

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

L'eliminazione di un gruppo elimina anche tutte le sue associazioni 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>"
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. L'aggiunta di un membro esistente è un'operazione senza effetti.

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 Amministratore
org_adminAmministratore
org_billing_adminGestore fatturazione
org_memberMembro
Finestra del terminale
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"
}'

Finestra del terminale
npx @capgo/cli organization list --apikey <API_KEY>
Finestra del terminale
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

I ruoli integrati coprono la struttura di squadra più comune. La creazione di ruoli personalizzati è nel nostro piano di lavoro — se il tuo team ne ha bisogno, contattaciIl tuo caso d'uso aiuterà direttamente a priorizzare questa funzionalità.