Contrôle d'accès
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Capgo utilise contrôle d'accès basé sur le rôle (RBAC) pour gérer ce que chaque membre d'é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 Organisation.
Portées de rôle
Section intitulée “Portées de rôle”Chaque rôle appartient à une portée qui détermine à quel ressource il accorde accès.
| Portée | S'applique à | Exemple d'utilisation |
|---|---|---|
| Organisation | L'ensemble de l'org et tous ses applications | Votre co-fondateur obtient Super Administrateur ; votre comptable obtient Gestionnaire de facturation |
| Application | Une seule application et ses canaux | Un entrepreneur de contrat 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 |
| Pack | Une seule version de pack | Un évaluateur a besoin d'accès en lecture à une version spécifique |
Un membre peut détenir un rôle par cible de portée — par exemple, un rôle d'org, un rôle sur App A et un rôle différent sur App B.
Rôles d'organisation
Sous-titre “Rôles d'organisation”Ces rôles sont attribués lors de l'invitation d'un membre. Ils accordent un 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. |
| Administration | org_admin | Administration complète — gérer les membres, les applications, les canaux. Impossible de supprimer l'org, de mettre à jour la facturation, de transférer les applications, ou de promouvoir les utilisateurs en Super Administrateur. |
| Gestionnaire de facturation | org_billing_admin | D'accès facturation uniquement : afficher et mettre à jour les informations de facturation, les factures et les journaux de suivi de facturation. Pas d'accès aux applications ou aux membres. |
| Membre | org_member | D'accès en lecture seule à l'org 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 facturation | 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 (le administrateur ne peut pas promouvoir à Super Admin — 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 | Afficher le journal d'audit spécifique aux factures | ✅ | ✅ | ✅ | ❌ |
Rôles d'application
Section intitulée “Rôles d'application”Répertorié à un seul application. Utilisez-ces lorsque membre d'équipe devrait travailler uniquement sur une application, pas toute l'organisation.
| Rôle | Nom interne | 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 ensembles, 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 de l'application, pas de création de canal. |
| Chargement d'application | app_uploader | Accès en lecture + charger de nouvelles versions d'ensemble. |
| Lecteur d'application | app_reader | Accès en lecture uniquement — statistiques, ensembles, canaux, journaux, appareils. |
Matrice de permissions d'application
Section intitulée « Matrice de permissions d'application »| Permission | Description | Administrateur d'application | Développeur d'application | Chargé de publication d'application | Lecteur d'application |
|---|---|---|---|---|---|
app.read | Afficher les détails, les statistiques et les métadonnées de l'application | ✅ | ✅ | ✅ | ✅ |
app.update_settings | Éditer les paramètres de l'application | ✅ | ❌ | ❌ | ❌ |
app.read_bundles | Afficher la liste des ensembles de fichiers publiés | ✅ | ✅ | ✅ | ✅ |
app.upload_bundle | Publier une nouvelle version de l'ensemble de fichiers | ✅ | ✅ | ✅ | ❌ |
app.create_channel | Créer un nouveau canal | ✅ | ❌ | ❌ | ❌ |
app.read_channels | Voir les canaux | ✅ | ✅ | ✅ | ✅ |
app.read_logs | Voir les journaux de livraison de mise à jour | ✅ | ✅ | ✅ | ✅ |
app.manage_devices | Attribuer, surcharger ou délier les appareils | ✅ | ✅ | ❌ | ❌ |
app.read_devices | Voir la liste des appareils | ✅ | ✅ | ✅ | ✅ |
app.build_native | Déclencher une construction cloud native | ✅ | ✅ | ❌ | ❌ |
app.read_audit | Voir le journal d'activité du niveau d'application | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | Gérer les affectations de rôle au niveau d'application | ✅ | ❌ | ❌ | ❌ |
bundle.delete | Supprimer un bundle | ✅ | ❌ | ❌ | ❌ |
rôles de canal
Titre de la section « 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 de bundles, gestion de dispositifs forcés. |
| Voyeur de canal | channel_reader | Lecture seule — bundle actuel, historique, dispositifs forcés, journal d'audit. |
matrice de permissions de canal
Section intitulée “matrice de permissions de canal”| Permission | Description | Administrateur du canal | Voyant du canal |
|---|---|---|---|
channel.read | Afficher le canal et son bundle actuel | ✅ | ✅ |
channel.update_settings | Modifier 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 du 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
Titre de la section « Rôles de bundle »Limités à une version de bundle unique. Rarement nécessaires — la plupart des équipes utilisent des rôles d'application au lieu de ceux-ci.
| Rôle | Nom interne | Description |
|---|---|---|
| Administrateur de bundle | bundle_admin | Lisez, mettez à jour les métadonnées et supprimez un ensemble spécifique. |
| Visualiseur d'ensemble | bundle_reader | Accès en lecture seule à un ensemble spécifique. |
Survol des permissions de canal (Tableau de bord)
Section intitulée “Survol des permissions de canal (Tableau de bord)”Dans le tableau de bord, l'accès au canal est déterminé par le rôle d'application de l'utilisateur par défaut. 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.
Permissions modifiables
Section intitulée « Permissions modifiables »| Permission | 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 |
| Associate 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 dépit du rôle d'application
- Interdire — bloquer explicitement, en dépit du rôle d'application
Cela vous permet, par exemple, de donner à un lecteur d'application la capacité d'associer des bundles sur le staging canal sans les promouvoir en développeur d'application.
Hiérarchie de rôle
Section intitulée « Hiérarchie 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 peut faire app_admin peut faire tout ce que peut faire channel_admin peut faire tout ce que peut faire
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)Copier dans le presse-papier
- Comment ça marche en pratique : Un administrateur à l'échelle de l'organisation, peuvent faire tout ce que peut faire un App Admin sur chaque application de l'organisation.
- Un App Admin sur une application spécifique peut faire tout ce que peut faire un Channel Admin sur chaque canal de cette application.
- Un App Developer peut faire tout ce que peut faire un App Uploader peut, encore plus.
La hiérarchie ne s'écoule que en bas — un channel_admin n'obtient jamais les permissions d'un niveau d'organisation, même s'ils détiennent également un rôle d'appareil.
Groupe
Sous-titre « Groupe »Plutôt que d'attribuer des rôles à chaque utilisateur individuellement, vous pouvez créer groupe et attribuer des rôles au groupe. Chaque membre du groupe hérite automatiquement de ces rôles.
Comment fonctionnent les groupes
Sous-titre « Comment fonctionnent les groupes »- Un groupe appartient à une organisation — il ne peut pas couvrir plusieurs organisations.
- Les groupes peuvent contenir des liens de rôle à n'importe quel niveau: organisation, application, canal ou bundle. Par exemple, un groupe peut être affecté au rôle Développeur d'application sur l'application A et au rôle Administrateur de canal 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é. - __CAPGO_KEEP_0__
- A un utilisateur peut appartenir à plusieurs groupes et les permissions de tous les groupes sont additives.Les permissions basées sur les groupes ne s'appliquent qu'aux
- principaux d'utilisateurs — les __CAPGO_KEEP_0__ clés n'héritent pas des rôles de groupe. — API keys do not inherit group roles.
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 |
|---|---|---|
| 5 ingénieurs QA ont besoin d'un accès Développeur à 3 applications | 15 liens de rôle individuels | 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 | Supprimer-les 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.
Liste des groupes
Section intitulée « Groupe »curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"Exige org.read_members la permission.
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 la permission (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.
Supprimer un membre d'un groupe
Section intitulée « Supprimer un membre d'un groupe »curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \ -H "authorization: <API_KEY>"Attribuer des rôles via API
Section intitulée “Attribuer des rôles via API”Liste des membres
Section intitulée “Liste des 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 supérieur |
org_admin | Administrateur |
org_billing_admin | Gestionnaire de 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" }'Attribuer des rôles via CLI
Section intitulée “Attribuer des 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 contacter. Votre cas d'utilisation aidera directement à nous prioriser cette fonctionnalité.
Continuez de l'Accès de contrôle de référence
Section intitulée “Continuez de l'Accès de contrôle de référence”If vous utilisez __CAPGO_KEEP_0__ Référence du Contrôle d'Accès pour planifier les opérations de tableau de bord et API se connecter à API Vue d'ensemble pour les détails d'implémentation dans API Vue d'ensemble Introduction pour les détails d'implémentation dans Introduction Clés API pour les détails d'implémentation dans Clés API Appareils pour les détails d'implémentation dans Appareils Ensembles pour les détails d'implémentation dans les Bundles.