Actualizar la configuración de identidad

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

Actualiza la configuración de nombre de usuario del entorno con un parche de fusión JSON (application/merge-patch+json, RFC 7396). If-Match es requerido: si falta se devuelve 428, con una versión obsoleta 412. Si la configuración nunca se escribió, la versión es "0" y la primera escritura crea la fila. Un parche que no cambia nada no escribe nada y mantiene la versión.

Solicitud

Campo Tipo Requerido Descripción
If-Match header sí El ETag de la configuración como se leyó por última vez ("0" si nunca se escribió). Falta: 428; obsoleto: 412.
username_identifier string no required, optional u off. No puede ser null.
username_min_length integer no 3 a 64, no mayor que username_max_length. No puede ser null.
username_max_length integer no 3 a 64, no menor que username_min_length. No puede ser null.
reserved_usernames string[] | null no Como máximo 1000 nombres; reemplaza la lista completa (RFC 7396 no fusiona arreglos). null o [] la vacía. Cada entrada se normaliza, los duplicados se descartan y la lista se guarda ordenada.
verification_policy string no before_sign_in (predeterminado) o after_sign_in. after_sign_in detiene la limpieza de cuentas no verificadas. No puede ser null.
unverified_account_ttl_days integer no 1-30 (predeterminado 7): días que se conserva un registro no verificado en un entorno before_sign_in antes de eliminarlo. No puede ser null.

La configuración de nombre de usuario solo se aplica a escrituras posteriores; nunca modifica a los usuarios existentes. La configuración de verificación también actúa sobre los registros existentes (ver abajo).

Reglas de aplicación

Limpieza de cuentas no verificadas

verification_policy y unverified_account_ttl_days controlan la limpieza automática de los registros que nunca se verificaron. La limpieza solo se ejecuta mientras la dirección de correo electrónico (o el número de teléfono) sea un identificador obligatorio, que es lo predeterminado para el correo electrónico.

Respuesta

200 OK con la configuración actualizada y el nuevo 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"
}

Errores

HTTP código Cuándo
400 unknown_field El parche contiene un campo desconocido o de solo lectura, o no es un objeto JSON (malformed_request).
412 precondition_failed If-Match no coincide con la versión actual.
415 unsupported_media_type El tipo de contenido no es application/merge-patch+json.
422 validation_failed Un valor es inválido, min supera a max, o un campo que no puede ser null se estableció en null (code: invalid).
428 precondition_required Falta el encabezado If-Match.
401 unauthenticated La credencial falta, es inválida o ha sido revocada.
403 insufficient_permissions La credencial carece del permiso requerido.
429 rate_limited Se superó el límite de velocidad; reintente después del período Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; reintente después del período Retry-After.

Ejemplo

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"]}'