Actualizar una aplicación

PATCH /v1/applications/{application_id} · permiso applications:write

Actualiza una aplicación con un parche de fusión JSON (application/merge-patch+json, RFC 7396): los campos que envías cambian, null borra un campo nullable, los arreglos se reemplazan en su totalidad. If-Match es obligatorio: sin él la solicitud falla con 428, con una versión obsoleta con 412. Los campos inmutables key, app_type, registration_source e owner_org_id devuelven 422 con código immutable si envías un valor diferente. Un parche que no cambia nada deja la aplicación y su versión intactos.

Solicitud

Headers: If-Match: "<version>" (obligatorio), Content-Type: application/merge-patch+json.

Path: application_id (app_…).

Body: cualquier subconjunto de los campos escribibles enumerados en la página de creación (key, name, app_type, … connection_ids). null borra un campo que es nullable; los arreglos reemplazan toda la lista; jwks se reemplaza como un objeto. Los campos de solo lectura (id, client_id, version, created_at, updated_at, last_token_issued_at, last_token_asn) se rechazzan.

Respuesta

200 OK con la aplicación actualizada y el nuevo ETag.

Errores

HTTP code Cuándo
401 unauthenticated La clave falta, no es válida o ha sido revocada.
403 insufficient_permissions La clave carece del permiso requerido.
404 not_found La aplicación no existe en este entorno.
428 precondition_required El encabezado If-Match falta.
412 precondition_failed La versión en If-Match es obsoleta.
422 validation_failed Un campo no es válido o un campo inmutable cambió.
422 policy_conflict allowed_first_factors no tiene ningún método en común con el conjunto de factores de primer nivel del entorno.
400 unknown_field El parche tiene un campo que no forma parte del esquema (incluyendo campos de solo lectura como id).
415 unsupported_media_type Content-Type no es application/merge-patch+json.

Ejemplo

curl -X PATCH https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "1"' \
  -d '{"name":"Portal v2","login_host":null}'