Référence du contrôle d'accès
Copiez une commande de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Capgo uses Includes install, sync, and the source markdown guide. Gérer ce que chaque membre de l'équipe peut faire. Les rôles sont organisés par portée — de l'ensemble de l'organisation jusqu'à un seul paquet.
Pour une présentation visuelle de la gestion des membres dans le tableau de bord, voir Gestion de l'organisation.
Portées des rôles
Section intitulée “Portées des rôles”Chaque rôle appartient à une portée qui détermine à quelles ressources il accorde accès.
| Portée | S'applique à | Exemple d'utilisation |
|---|---|---|
| Gestion de l'organisation | L'ensemble de l'organisation et tous ses applications | Votre co-fondateur obtient Super Administrateur ; votre comptable obtient Gestionnaire de facturation |
| Application | Une seule application et ses canaux | Un prestataire travaillant sur une application obtient Développeur d'application |
| Canaux | Un seul canal au sein d'une application | Un ingénieur QA ne gère que le staging canal |
| Bundle | Une version de bundle unique | Un réviseur a besoin d'accès en lecture à une version spécifique de release |
Un membre peut détenir un rôle par cible de portée — par exemple, un rôle d'organisation, un rôle sur l'application A, et un rôle différent sur l'application B.
Rôles d'organisation
Section intitulée “Rôles d'organisation”Ces rôles sont attribués lors de l'invitation d'un membre. Ils accordent accès à l'ensemble de l'organisation.
| Rôle | Nom interne | Description |
|---|---|---|
| Administrateur supérieur | org_super_admin | Équivalent propriétaire. Contrôle total y compris la suppression de l'org, la gestion des factures et le transfert d'applications. Attribué automatiquement au créateur de l'org. |
| — for example, one org role, one role on App A, and a different role on App B. | org_admin | Administration complète — gérer les membres, les applications, les canaux. Impossible de supprimer l'organisation, de mettre à jour les factures, de transférer les applications ou de promouvoir les utilisateurs en Super Administrateur. |
| Gestionnaire de factures | org_billing_admin | Accès factures uniquement : afficher et mettre à jour les informations de facturation, les factures et les journaux de comptes de facturation. Pas d'accès aux applications ou aux membres. |
| Membre | org_member | Accès en lecture seule à l'organisation et à toutes ses applications. |
Matrice de permissions de l'organisation
Section intitulée “Matrice de permissions de l'organisation”| Permission | Description | Super Administrateur | Administrateur | Gestionnaire de factures | Membre |
|---|---|---|---|---|---|
org.read | Voir l'organisation | ✅ | ✅ | ✅ | ✅ |
org.update_settings | Modifier le nom, le logo et l'adresse e-mail de gestion de l'organisation | ✅ | ✅ | ❌ | ❌ |
org.delete | Supprimer définitivement l'organisation | ✅ | ❌ | ❌ | ❌ |
org.read_members | Voir la liste des membres | ✅ | ✅ | ❌ | ✅ |
org.invite_user | Inviter de nouveaux membres | ✅ | ✅ | ❌ | ❌ |
org.update_user_roles | Changer les rôles des membres (un administrateur ne peut pas promouvoir un super administrateur — bloqué par la hiérarchie des rôles) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | Voir les informations de facturation et le plan actuel | ✅ | ✅ | ✅ | ❌ |
org.update_billing | Mettre à jour le moyen de paiement et le plan | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | Voir les factures | ✅ | ✅ | ✅ | ❌ |
org.read_audit | Voir le journal d'activité de l'organisation | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | Voir le journal d'audit spécifique à la facturation | ✅ | ✅ | ✅ | ❌ |
Rôles d'application
Section intitulée “Rôles d'application”Limités à une seule application. Utilisez-les lorsque l'un de vos membres d'équipe devrait travailler uniquement sur une application, et non sur toute l'organisation.
| Rôle | __CAPGO_KEEP_0__ | Description |
|---|---|---|
| Administrateur d'application | app_admin | Contrôle total d'une application — canaux, appareils, rôles d'utilisateur pour l'application. Impossible de supprimer ou de transférer l'application (ce sont des opérations au niveau de l'organisation). |
| Développeur d'application | app_developer | Charger des bundles, gérer des appareils, déclencher des builds natifs, mettre à jour les paramètres de canal. Pas de suppression, pas de modifications des paramètres d'application, pas de création de canal. |
| Téléchargeur d'application | app_uploader | Accès en lecture + télécharger de nouvelles versions de bundles. |
| Lecteur d'application | app_reader | Accès en lecture uniquement — statistiques, bundles, canaux, journaux, appareils. |
Matrice de permissions d'application
Matrice de permissions d'application| Permission | Description | Administrateur d'application | Développeur d'application | Chargeur d'application | Lecteur d'application |
|---|---|---|---|---|---|
app.read | Afficher les détails de l'application, les statistiques et les métadonnées | ✅ | ✅ | ✅ | ✅ |
app.update_settings | Éditer les paramètres de l'application | ✅ | ❌ | ❌ | ❌ |
app.read_bundles | Afficher la liste des ensembles de fichiers chargés | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Charger une nouvelle version de l'ensemble de fichiers | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Créer un nouveau canal | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Afficher les canaux | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Afficher les journaux de livraison de mise à jour | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Attribuer, surcharger ou délier les appareils | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Afficher la liste des appareils | ✅ | ✅ | ✅ | ✅ |
app.build_native | Déclencher une construction cloud native | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Afficher le journal d'activité au niveau de l'application | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Gérer les affectations de rôle scoping de l'application | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Supprimer un bundle | ✅ | ❌ | ❌ | ❌ |
Rôles de canal
Sous-titre « Rôles de canal »Limités à un seul canal. Utile pour donner un accès ciblé à un canal de version spécifique.
| Rôle | Nom interne | Description |
|---|---|---|
| Administrateur de canal | channel_admin | Contrôle total d'un canal : paramètres, promotion/retour en arrière des lots, gestion des appareils forcés. |
| Voyeur de canal | channel_reader | Lecture seule — lot actuel, historique, appareils forcés, journal d'audit. |
Matrice de permissions de canal
Sous-section intitulée “Matrice de permissions de canal”| Permission | Description | Administrateur de canal | Voyant de canal |
|---|---|---|---|
channel.read | Afficher le canal et son bundle actuel | ✅ | ✅ |
channel.update_settings | Éditer les paramètres du canal (tournis de plateforme, politique de mise à jour…) | ✅ | ❌ |
channel.delete | Supprimer le canal | ✅ | ❌ |
channel.read_history | Afficher l'historique d'affectation de bundle | ✅ | ✅ |
channel.promote_bundle | Définir le bundle actif sur le canal | ✅ | ❌ |
channel.rollback_bundle | Revenir à un bundle précédent | ✅ | ❌ |
channel.manage_forced_devices | Forcer des appareils spécifiques à ce canal | ✅ | ❌ |
channel.read_forced_devices | Afficher la liste des appareils forcés | ✅ | ✅ |
channel.read_audit | Afficher le journal d'activité du canal | ✅ | ✅ |
Rôles de bundle
Section intitulée « Rôles de paquet »Limité à une version de paquet unique. Rarement nécessaire — la plupart des équipes utilisent des rôles d'application au lieu de ceux-ci.
| Rôle | Nom interne | Description |
|---|---|---|
| Administrateur de paquet | bundle_admin | Lecture, mise à jour des métadonnées et suppression d'un paquet spécifique. |
| Afficheur de Bundle | bundle_reader | Accès en lecture seule à un bundle spécifique. |
Survol des permissions de canal (Tableau de bord)
Sous-section intitulée “Survol des permissions de canal (Tableau de bord)”Par défaut, l'accès au canal est déterminé par le rôle de l'application de l'utilisateur dans le tableau de bord. Pour un contrôle plus granulaire, vous pouvez surpasser les permissions de canal spécifiques par utilisateur ou groupe sans modifier leur rôle d'application.
Les survol sont configurés à partir de l'onglet Accès du tableau de bord en cliquant sur le bouton de permissions de canal (icône bouclier) à côté d'un utilisateur. Voir Organisation — Survol des permissions de canal pour une présentation visuelle.
Autorisations surchargables
Section intitulée « Autorisations surchargables »| Autorisation | Description | Comportement par défaut |
|---|---|---|
| Lecture | Afficher le canal et son bundle actuel | Hérité du rôle d'application |
| Historique | Afficher l'historique des affectations de bundle | Hérité du rôle d'application |
| Associer un bundle | Définir ou modifier le bundle actif sur le canal | Hérité du rôle d'application |
Chaque permission peut être définie sur :
- Par défaut — hériter du rôle d'application par défaut (la valeur par défaut)
- Autoriser — accorder explicitement, en fonction du rôle d'application
- Interdire — bloquer explicitement, en fonction du rôle d'application
Cela vous permet, par exemple, de donner à un Lecteur d'application la possibilité de lier des bundles sur le staging canal sans les promouvoir en Développeur d'application.
Hiérarchie de rôle
Section intitulée « Héritage de rôle »Les rôles forment une hiérarchie. Un rôle parent hérite de toutes les permissions de ses enfants. Cela signifie que org_admin peut faire tout ce que app_admin peut faire, qui à son tour peut faire tout ce que channel_admin peut faire, et ainsi de suite.
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)Comment ça marche en pratique :
- Un Administrateur au niveau de l'org peut faire tout ce que Admin d'application peut faire tout sur chaque application de l'organisation.
- Un Admin d'application sur une application spécifique peut faire tout ce que peut faire un Admin de canal peut faire tout sur chaque canal de cette application. Un
- Développeur d'application peut faire tout ce que peut faire un Chargeur d'application et encore plus. __CAPGO_KEEP_0__
La hiérarchie ne s'écoule que vers le bas en descendant — un channel_admin jamais obtient des permissions d'org niveau, même si elle détient également un rôle d'application.
Au lieu d'attribuer des rôles à chaque utilisateur individuellement, vous pouvez créer des groupes et attribuer des rôles au groupe. Chaque membre du groupe hérite automatiquement de ces rôles. Comment fonctionnent les groupes Section intitulée « Comment fonctionnent les groupes »
Un groupe appartient à
Section intitulée « Un groupe appartient à »- Section intitulée « Un groupe appartient à » une organisation — elle ne peut pas couvrir plusieurs organisations.
- Les groupes peuvent détenir des liaisons de rôle à niveau de portée quelconque: organisation, application, canal ou ensemble. Par exemple, un groupe peut être attribué le rôle d'App Developer sur l'application A et le rôle de Channel Admin sur le canal de l'application B.
stagingLorsque les permissions d'un utilisateur sont évaluées, toutes ses adhésions de groupe sont résolues de manière transparente. Si l'un de ses groupes accorde la permission requise, l'accès est autorisé. - Un utilisateur peut appartenir à
- __CAPGO_KEEP_0__ groupes multiples, et les permissions de tous les groupes sont additives.
- Les permissions basées sur les groupes ne s'appliquent qu'à principaux d'utilisateurs — les clés API ne héritent pas des rôles de groupe.
Quand utiliser les groupes
Section intitulée “Quand utiliser les groupes”| Scénario | Sans groupes | Avec groupes |
|---|---|---|
| 5 ingénieurs QA ont besoin d'accès Développeur à 3 applications | 15 liaisons de rôle individuelles | 1 groupe + 3 liens de rôle |
| Quelqu'un rejoint l'équipe QA | Ajouter 3 liens de rôle manuellement | Ajouter-les au groupe |
| Quelqu'un quitte l'équipe QA | Supprimer 3 liens de rôle manuellement | Les retirer du groupe |
Gérer les groupes via API
Section intitulée “Gérer les groupes via API”Tous les points de terminaison de groupe nécessitent une authentification et sont servis sous /private/groups.
Lister les groupes
Section intitulée “Lister les groupes”curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Exige org.read_members une autorisation.
Créer un groupe
Section intitulée « Créer un groupe »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" }'Exige org.update_user_roles une autorisation (Administrateur supérieur ou Admin).
Mettre à jour un groupe
Section intitulée “Mettre à jour un groupe”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" }'Supprimer un groupe
Section intitulée “Supprimer un groupe”curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \ -H "authorization: <API_KEY>"La suppression d'un groupe supprime également toutes ses liaisons de rôle. Les membres ne sont pas supprimés de l'organisation.
Liste des membres du groupe
Section intitulée “Liste des membres du groupe”curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \ -H "authorization: <API_KEY>"Ajouter un membre à un groupe
Section intitulée « Ajouter un membre à un groupe »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'utilisateur doit déjà être membre de l'organisation. L'ajout d'un membre existant est une opération sans effet.
Retirer un membre d'un groupe
Section intitulée « Retirer un membre d'un groupe »curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \ -H "authorization: <API_KEY>"Affecter des rôles via API
Section intitulée “Affecter des rôles via API”Lister les membres
Section intitulée “Lister les membres”curl -X GET "https://api.capgo.app/organization/members" \ -H "authorization: <API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "orgId": "<ORG_ID>" }'Réponse :
[ { "uid": "user-uuid", "email": "alice@example.com", "image_url": "https://...", "role": "org_admin", "is_tmp": false }]Inviter un membre
Section intitulée “Inviter un membre”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" }'Valeurs acceptées pour invite_type:
| Valeur | Rôle attribué |
|---|---|
org_super_admin | Administrateur principal |
org_admin | Administrateur |
org_billing_admin | Gestionnaire des factures |
org_member | Membre |
Supprimer un membre
Section intitulée « Supprimer un membre »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" }'Attribution de rôles via CLI
Section intitulée « Attribution de rôles via CLI »Lister les organisations
Section intitulée « Lister les organisations »npx @capgo/cli organization list --apikey <API_KEY>Lister les membres
Section intitulée « Lister les membres »npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>Rôles personnalisés
Section intitulée “Rôles personnalisés”Les rôles intégrés couvrent la plupart des structures d'équipe. La création de rôles personnalisés est prévue dans notre roadmap — si cela est quelque chose dont votre équipe a besoin, nous contacterVotre cas d'utilisation aidera directement à nous prioriser cette fonctionnalité.