Aggiorna un'organizzazione
PATCH /fapi/v1/organizations/{org_id} · chiamato dall'host di accesso dell'ambiente
Modifica il nome, lo slug o il colore del brand di un'organizzazione (JSON merge patch, RFC 7396). Metadati, ID esterno e limite di membri non possono essere modificati qui. Richiede il cookie __Host-idp_session dell'utente autenticato; se il cookie manca, è scaduto o è stato revocato, restituisce 401 unauthenticated. Un'applicazione first-party su un'altra origine può invece inviare il proprio token di accesso Front API (Authorization: DPoP <token> con una prova DPoP; vedi Token di accesso Front API). L'utente deve essere un membro attivo dell'organizzazione con l'autorizzazione idp_org:update. Un utente che non è membro riceve 404 not_found; un membro senza l'autorizzazione riceve 403 insufficient_permissions.
Con @keenauth/js: await keenauth.organizations.update(orgId, { name: "Acme Inc" }, { expectedVersion: 4 }).
Richiesta
Header:
| Header | Obbligatorio | Descrizione |
|---|---|---|
Idp-Client |
sì | Identificatore dell'SDK. |
Origin |
sì, con il cookie | Deve essere esattamente https://<sign-in host>. |
Content-Type |
sì | application/json oppure application/merge-patch+json. |
If-Match |
no | "<version>" dell'organizzazione come letta l'ultima volta; se è cambiata nel frattempo, restituisce 412 precondition_failed e non cambia nulla. |
org_id: l'identificatore dell'organizzazione (org_…).
Body (almeno un campo):
| Campo | Obbligatorio | Descrizione |
|---|---|---|
name |
no | Nuovo nome visualizzato; non può essere null. |
slug |
no | Nuovo slug; non può essere null. Il vecchio slug resta riservato per 90 giorni, e uno slug può cambiare una volta ogni 30 giorni. |
brand_color |
no | #RRGGBB; null lo rimuove. |
Risposta
200 OK con un nuovo ETag; il body è l'organizzazione (vedi Ottieni un'organizzazione).
Errori
| Stato | Codice | Quando |
|---|---|---|
| 400 | unknown_field |
Il body contiene un campo diverso da name, slug e brand_color. |
| 401 | unauthenticated |
Nessun cookie di sessione valido. |
| 403 | origin_not_allowed |
Origin manca o è errato. |
| 403 | insufficient_permissions |
L'utente non ha idp_org:update nell'organizzazione. |
| 404 | not_found |
Nessuna organizzazione per questo utente; un identificatore inesistente, malformato o di un'altra organizzazione riceve la stessa risposta. |
| 409 | slug_taken |
Un'altra organizzazione usa lo slug. |
| 409 | slug_reserved |
Lo slug è nella prenotazione di 90 giorni di un'altra organizzazione. |
| 409 | slug_change_rate_limited |
Lo slug è già cambiato negli ultimi 30 giorni. |
| 409 | organization_disabled |
L'organizzazione è disattivata. |
| 409 | organization_pending_deletion |
L'organizzazione è programmata per l'eliminazione. |
| 412 | precondition_failed |
If-Match non indica la versione attuale, oppure l'organizzazione è cambiata durante l'elaborazione della richiesta. |
| 422 | validation_failed |
Un campo non è valido o è null dove non è consentito, oppure la patch è vuota (empty_patch). |
| 503 | service_unavailable |
Temporaneamente non disponibile; riprova dopo Retry-After. |
Esempio
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 risposta ha la stessa struttura di Ottieni un'organizzazione, con "version": 5.