Requête exemple
Réponse exemple
PATCH/v1/workspace/members/{memberId}Met à jour le rôle et/ou les capabilities d'un membre existant du workspace actif.Cette route met à jour le rôle et les permissions (capabilities) d'un membre du workspace actif, identifié par memberId. La mise à jour est partielle : seuls les champs réellement présents dans le corps sont modifiés, les autres restent inchangés. Le membre cible doit appartenir au même workspace que l'appelant. Le rôle owner ne peut jamais être modifié par cette route : toute tentative renvoie une erreur 403. Les capabilities sensibles (facturation, suppression du workspace) ne peuvent être accordées que par le compte propriétaire.
Authentification
L'accès repose sur une session authentifiée (cookie de session Supabase), pas sur un scope de clé API spécifique. L'appelant doit être membre actif du workspace avec le rôle owner ou admin, faute de quoi la requête renvoie 403 (Insufficient permissions). De plus, seules les capabilities non sensibles peuvent être accordées par un admin : les capabilities sensibles can_manage_billing et can_delete_workspace exigent que l'appelant soit le compte propriétaire (isAccountOwner).
Corps de la requête
Tous les champs sont facultatifs, mais au moins un champ valide doit être fourni, sinon la requête renvoie 400 (No valid fields to update).
| Champ | Type | Requis | Description |
|---|---|---|---|
| role | string | Non | Nouveau rôle du membre. Valeurs autorisées : admin, member, auditor, viewer. Toute autre valeur renvoie 400. |
| can_create_requests | boolean | Non | Autorise le membre à créer des demandes de documents. |
| can_manage_coffres | boolean | Non | Autorise la gestion des coffres. |
| can_view_analytics | boolean | Non | Autorise l'accès aux statistiques et analytics. |
| can_manage_api_keys | boolean | Non | Autorise la gestion des clés API du workspace. |
| can_manage_members | boolean | Non | Autorise la gestion des membres (capability de gestion, non sensible). |
| can_manage_settings | boolean | Non | Autorise la gestion des paramètres du workspace (non sensible). |
| can_manage_billing | boolean | Non | Capability SENSIBLE : facturation. Accordable uniquement par le compte propriétaire. |
| can_delete_workspace | boolean | Non | Capability SENSIBLE : suppression du workspace. Accordable uniquement par le compte propriétaire. |
Réponse
En cas de succès (200), la réponse renvoie le membre mis à jour : son identifiant id, son role et son status, les quatre capabilities opérationnelles (can_create_requests, can_manage_coffres, can_view_analytics, can_manage_api_keys) normalisées en booléens, ainsi que last_seen_at (dernière activité, ou null) et invite_note (note d'invitation, ou null).
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 400 | JSON invalide, rôle non autorisé, ou aucun champ valide à mettre à jour | Vérifiez le corps JSON, utilisez un rôle parmi admin/member/auditor/viewer et incluez au moins un champ reconnu. |
| 401 | Session absente ou expirée (utilisateur non authentifié) | Authentifiez-vous puis renvoyez la requête. |
| 403 | Appelant non owner/admin, membre cible hors workspace, cible de rôle owner, ou capability sensible accordée par un non-propriétaire | Vérifiez vos droits et ceux de la cible ; faites accorder les capabilities sensibles par le compte propriétaire. |
| 404 | Aucun workspace actif, ou membre introuvable | Vérifiez le contexte du workspace actif et l'identifiant memberId. |
| 500 | Échec de la mise à jour côté base de données | Réessayez ; si l'erreur persiste, contactez le support. |
Voir aussi
- DELETE /v1/workspace/members/{memberId} : retirer un membre du workspace.
- POST /v1/workspace/members : inviter ou ajouter un nouveau membre.
- GET /v1/workspace/members : lister les membres du workspace.