Requête exemple
Réponse exemple
POST/v1/workspaces/switchChange le workspace actif persisté sur le profil de l'utilisateur.Cet endpoint définit le workspace actif de l'utilisateur authentifié. Avant tout changement, l'accès est vérifié : l'utilisateur doit être propriétaire du workspace (owner_id) ou en être membre (coffrify_workspace_members). Si l'accès est confirmé, le choix est persisté sur le profil de l'utilisateur (champs active_workspace_id et active_workspace_switched_at), ce qui permet aux appels ultérieurs de résoudre le bon workspace par défaut. La réponse renvoie l'identifiant retenu ainsi que l'horodatage du basculement.
Authentification
Requiert une clé API valide. Le scope workspace:manage est exigé. Grâce à la hiérarchie de scopes, le wildcard * (notamment l'authentification par session du tableau de bord) satisfait également cette exigence. La persistance n'a lieu que si un userId est résolu pour le porteur du jeton : un jeton machine sans utilisateur associé (par exemple un jeton interne) passe la vérification d'accès mais n'écrit aucune préférence de profil.
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
| workspace_id | string | Oui | Identifiant du workspace à activer. Doit être une chaîne non vide, sinon une erreur validation_error (400) est renvoyée. L'utilisateur doit être propriétaire ou membre de ce workspace. |
Réponse
Réponse 200 au format JSON. Le champ `workspace_id` confirme le workspace désormais actif. Le champ `switched_at` est l'horodatage ISO 8601 (UTC) du basculement, identique à la valeur écrite dans active_workspace_switched_at sur le profil.
| Champ | Type | Description |
|---|---|---|
| workspace_id | string | Identifiant du workspace désormais actif. |
| switched_at | string (ISO 8601) | Horodatage UTC du basculement. |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 400 validation_error | workspace_id absent ou n'est pas une chaîne. | Fournir un workspace_id valide non vide dans le corps JSON. |
| 401 invalid_api_key | Clé API absente, préfixe non reconnu ou jeton invalide. | Envoyer un en-tête Authorization: Bearer cof_live_... avec une clé valide. |
| 403 scope_missing | Le jeton ne porte pas le scope workspace:manage (ni un scope plus large qui le satisfait). | Émettre une nouvelle clé incluant workspace:manage ou *. |
| 403 forbidden | L'utilisateur n'est ni propriétaire ni membre du workspace ciblé. | Vérifier l'appartenance au workspace ou cibler un workspace accessible. |
| 429 rate_limited | Quota de requêtes par minute dépassé pour le workspace. | Respecter l'en-tête Retry-After puis réessayer. |
| 500 internal_error | Erreur serveur inattendue (ex. client de service indisponible). | Réessayer ; si le problème persiste, contacter le support avec le request_id. |
Voir aussi
- GET /v1/workspaces — lister les workspaces accessibles à l'utilisateur.
- GET /v1/members — consulter les membres et rôles d'un workspace.
- GET /v1/welcome — point d'entrée renvoyant le contexte d'authentification courant.