Aggiornare le impostazioni di identità

PATCH /v1/identity-settings · permesso identity-settings:write

Aggiorna le impostazioni del nome utente dell'ambiente con una merge patch JSON (application/merge-patch+json, RFC 7396). If-Match è obbligatorio: se manca si ottiene 428, con una versione obsoleta 412. Se le impostazioni non sono mai state scritte la versione è "0" e la prima scrittura crea la riga. Una patch che non cambia nulla non scrive nulla e mantiene la versione.

Richiesta

Campo Tipo Obbligatorio Descrizione
If-Match header sì L'ETag delle impostazioni come ultima lettura ("0" se mai scritte). Mancante: 428; obsoleto: 412.
username_identifier string no required, optional oppure off. Non può essere null.
username_min_length integer no 3-64, non maggiore di username_max_length. Non può essere null.
username_max_length integer no 3-64, non minore di username_min_length. Non può essere null.
reserved_usernames string[] | null no Al massimo 1000 nomi; sostituisce l'intero elenco (RFC 7396 non unisce gli array). null o [] lo svuota. Ogni voce è normalizzata, i duplicati vengono scartati e l'elenco è salvato ordinato.
verification_policy string no before_sign_in (predefinito) o after_sign_in. after_sign_in interrompe la pulizia degli account non verificati. Non può essere null.
unverified_account_ttl_days integer no 1-30 (predefinito 7): giorni per cui una registrazione non verificata viene conservata in un ambiente before_sign_in prima di essere eliminata. Non può essere null.

Le impostazioni del nome utente si applicano solo alle scritture successive; non modificano mai gli utenti esistenti. Le impostazioni di verifica agiscono anche sulle registrazioni esistenti (vedere sotto).

Regole di applicazione

Pulizia degli account non verificati

verification_policy e unverified_account_ttl_days controllano la pulizia automatica delle registrazioni mai verificate. La pulizia viene eseguita solo se l'indirizzo email (o il numero di telefono) è un identificatore obbligatorio, come avviene per impostazione predefinita per l'email.

Risposta

200 OK con le impostazioni aggiornate e il nuovo ETag.

{
  "username_identifier": "optional",
  "username_min_length": 3,
  "username_max_length": 32,
  "reserved_usernames": ["admin", "root", "support"],
  "verification_policy": "before_sign_in",
  "unverified_account_ttl_days": 7,
  "updated_at": "2026-10-05T09:30:00.123456Z"
}

Errori

HTTP code Quando
400 unknown_field La patch contiene un campo sconosciuto o di sola lettura, oppure non è un oggetto JSON (malformed_request).
412 precondition_failed If-Match non corrisponde alla versione attuale.
415 unsupported_media_type Il content type non è application/merge-patch+json.
422 validation_failed Un valore non è valido, min supera max, oppure un campo che non può essere null è stato impostato a null (code: invalid).
428 precondition_required L'header If-Match è mancante.
401 unauthenticated La credenziale è mancante, non valida o revocata.
403 insufficient_permissions La credenziale non ha il permesso richiesto.
429 rate_limited Il limite di velocità è stato superato; riprova dopo il periodo Retry-After.
503 service_unavailable Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo Retry-After.

Esempio

curl -X PATCH https://api.eu.keenauth.com/v1/identity-settings \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "0"' \
  -d '{"username_identifier":"optional","username_max_length":32,"reserved_usernames":["admin","root","support"]}'