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