Aggiornare un'applicazione
PATCH /v1/applications/{application_id} · permesso applications:write
Aggiorna un'applicazione con una Merge Patch JSON (application/merge-patch+json, RFC 7396): i campi che invii cambiano, null cancella un campo nullable, gli array vengono sostituiti completamente. If-Match è obbligatorio: senza di esso la richiesta fallisce con 428, con una versione obsoleta con 412. I campi immutabili key, app_type, registration_source e owner_org_id restituiscono 422 con codice immutable se invii un valore diverso. Una patch che non cambia nulla lascia l'applicazione e la sua versione inalterate.
Richiesta
Header: If-Match: "<version>" (obbligatorio), Content-Type: application/merge-patch+json.
Path: application_id (app_…).
Body: uno qualsiasi dei campi scrivibili elencati nella pagina di creazione (key, name, app_type, … connection_ids). null cancella un campo che è nullable; gli array sostituiscono l'intero elenco; jwks è sostituito come oggetto. I campi di sola lettura (id, client_id, version, created_at, updated_at, last_token_issued_at, last_token_asn) vengono rifiutati.
Risposta
200 OK con l'applicazione aggiornata e il nuovo ETag.
Errori
| HTTP | code |
Quando |
|---|---|---|
| 401 | unauthenticated |
La chiave è mancante, non valida o revocata. |
| 403 | insufficient_permissions |
La chiave non ha il permesso richiesto. |
| 404 | not_found |
L'applicazione non esiste in questo ambiente. |
| 428 | precondition_required |
L'header If-Match è mancante. |
| 412 | precondition_failed |
La versione in If-Match è obsoleta. |
| 422 | validation_failed |
Un campo non è valido o un campo immutabile è cambiato. |
| 422 | policy_conflict |
allowed_first_factors non ha alcun metodo in comune con l'insieme dei fattori di primo livello dell'ambiente. |
| 400 | unknown_field |
La patch ha un campo che non fa parte dello schema (inclusi i campi di sola lettura come id). |
| 415 | unsupported_media_type |
Content-Type non è application/merge-patch+json. |
Esempio
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}'