Mettre à jour une organisation
PATCH /fapi/v1/organizations/{org_id} · appelé depuis l'hôte de connexion de l'environnement
Modifie le nom, le slug ou la couleur de marque d'une organisation (JSON merge patch, RFC 7396). Les métadonnées, l'identifiant externe et la limite de membres ne peuvent pas être modifiés ici. Nécessite le cookie __Host-idp_session de l'utilisateur authentifié ; si le cookie est absent, expiré ou révoqué, renvoie 401 unauthenticated. Une application de première partie sur une autre origine peut à la place envoyer son jeton d'accès Front API (Authorization: DPoP <token> avec une preuve DPoP ; voir Jeton d'accès Front API). L'utilisateur doit être membre actif de l'organisation disposant de l'autorisation idp_org:update. Un utilisateur qui n'est pas membre reçoit 404 not_found ; un membre sans cette autorisation reçoit 403 insufficient_permissions.
Avec @keenauth/js : await keenauth.organizations.update(orgId, { name: "Acme Inc" }, { expectedVersion: 4 }).
Requête
En-têtes :
| En-tête | Obligatoire | Description |
|---|---|---|
Idp-Client |
oui | Identifiant du SDK. |
Origin |
oui, avec le cookie | Doit être exactement https://<hôte de connexion>. |
Content-Type |
oui | application/json ou application/merge-patch+json. |
If-Match |
non | "<version>" de l'organisation telle que lue en dernier ; si elle a changé depuis, renvoie 412 precondition_failed et rien ne change. |
org_id : l'identifiant de l'organisation (org_…).
Corps (au moins un champ) :
| Champ | Obligatoire | Description |
|---|---|---|
name |
non | Nouveau nom d'affichage ; ne peut pas être null. |
slug |
non | Nouveau slug ; ne peut pas être null. L'ancien slug reste réservé pendant 90 jours, et un slug ne peut être modifié qu'une fois en 30 jours. |
brand_color |
non | #RRGGBB ; null le supprime. |
Réponse
200 OK avec un nouvel ETag ; le corps est l'organisation (voir Obtenir une organisation).
Erreurs
| Statut | Code | Quand |
|---|---|---|
| 400 | unknown_field |
Le corps contient un champ autre que name, slug et brand_color. |
| 401 | unauthenticated |
Aucun cookie de session valide. |
| 403 | origin_not_allowed |
Origin est absent ou incorrect. |
| 403 | insufficient_permissions |
L'utilisateur ne dispose pas de idp_org:update dans l'organisation. |
| 404 | not_found |
Aucune organisation de ce type pour cet utilisateur ; un identifiant inconnu, mal formé ou étranger reçoit la même réponse. |
| 409 | slug_taken |
Une autre organisation utilise déjà ce slug. |
| 409 | slug_reserved |
Le slug figure dans la réservation de 90 jours d'une autre organisation. |
| 409 | slug_change_rate_limited |
Le slug a déjà été modifié au cours des 30 derniers jours. |
| 409 | organization_disabled |
L'organisation est désactivée. |
| 409 | organization_pending_deletion |
L'organisation est programmée pour suppression. |
| 412 | precondition_failed |
If-Match ne correspond pas à la version actuelle, ou l'organisation a changé pendant le traitement de la requête. |
| 422 | validation_failed |
Un champ est invalide ou vaut null alors que ce n'est pas autorisé, ou le patch est vide (empty_patch). |
| 503 | service_unavailable |
Service temporairement indisponible ; réessayez après Retry-After. |
Exemple
curl -X PATCH https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "4"' \
-b cookies.txt \
-d '{"name": "Acme Inc", "brand_color": null}'
La réponse a la même structure que Obtenir une organisation, avec "version": 5.