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.