Requête exemple
Réponse exemple
PATCH/v1/workspace/capability-requests/{id}Approuve ou refuse une demande de capability en attente.Cet endpoint permet au propriétaire du compte propriétaire du workspace de statuer sur une demande de capability soumise par un membre. L'action approve accorde la capability demandée à la ligne membre du demandeur (sur un membre active), tandis que deny refuse la demande. L'opération est idempotente sur l'état : si la demande n'est plus en statut pending, l'endpoint renvoie une erreur 409 plutôt que de re-traiter la décision. Chaque décision est journalisée dans le registre d'audit (coffrify.workspace.capability_granted ou coffrify.workspace.capability_denied).
Authentification
Requiert une session utilisateur valide (clé API valide, aucun scope spécifique). L'autorisation est fondée sur un contrôle de rôle au niveau du compte : seul l'utilisateur dont isAccountOwner est vrai pour le workspace de la demande peut décider, sinon la réponse est 403. De plus, l'action approve déclenche un step-up MFA : l'appelant doit avoir vérifié son MFA récemment (fenêtre par défaut de 600 secondes), faute de quoi la requête est bloquée avec un 401 invitant à re-vérifier le code MFA. L'action deny n'exige pas de step-up MFA.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|---|---|---|
| id | string | Oui | Identifiant de la demande de capability (clé de coffrify_workspace_capability_requests). |
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
| action | string | Oui | Décision à appliquer. Valeurs acceptées : approve ou deny. Toute autre valeur (ou absence) renvoie une erreur 400. |
Réponse
En cas de succès, l'endpoint renvoie un objet JSON avec ok à true et action reflétant la décision appliquée (approve ou deny). Côté serveur, une approbation met le champ correspondant de la capability à true sur la ligne membre active du demandeur, met à jour la demande (status passe à approved ou denied, avec decided_by_user_id et decided_at horodaté), et écrit une entrée d'audit. Aucun détail de la demande n'est renvoyé dans la réponse.
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 400 | action absent ou différent de approve/deny. | Envoyer un corps JSON contenant action valant approve ou deny. |
| 401 | Session absente, ou step-up MFA requis pour une approbation (MFA non vérifié récemment). | S'authentifier, puis re-vérifier le code MFA et rejouer la requête (voir verify_url du corps mfa_step_up_required). |
| 403 | L'appelant n'est pas le propriétaire du compte du workspace. | Faire statuer la demande par le propriétaire du compte du workspace concerné. |
| 404 | Aucune demande ne correspond à l'id fourni. | Vérifier l'identifiant de la demande de capability. |
| 409 | La demande n'est plus en statut pending (déjà approuvée ou refusée). | Aucune action : la décision a déjà été prise. Lister les demandes en attente pour confirmer l'état. |
| 500 | Échec de l'écriture de l'octroi de la capability, ou échec du contrôle MFA (mfa_check_failed). | Réessayer ; si l'erreur persiste, contacter le support. |
Voir aussi
- GET /v1/workspace/capability-requests — lister les demandes de capability (filtrables par statut
pending). - POST /v1/workspace/capability-requests — soumettre une nouvelle demande de capability en tant que membre.
- GET /v1/workspace/members — consulter les membres du workspace et leurs capabilities accordées.