Mettre à jour une application
PATCH /v1/applications/{application_id} · permission applications:write
Met à jour une application avec un JSON Merge Patch (application/merge-patch+json, RFC 7396) : les champs que vous envoyez changent, null efface un champ nullable, les tableaux sont remplacés dans leur intégralité. If-Match est obligatoire : sans elle, la requête échoue avec 428, avec une version obsolète avec 412. Les champs immuables key, app_type, registration_source et owner_org_id retournent 422 avec le code immutable si vous envoyez une valeur différente. Un patch qui ne change rien laisse l'application et sa version intactes.
Demande
En-têtes : If-Match: "<version>" (obligatoire), Content-Type: application/merge-patch+json.
Chemin : application_id (app_…).
Corps : n'importe quel sous-ensemble des champs inscriptibles listés sur la page de création (key, name, app_type, … connection_ids). null efface un champ qui est nullable ; les tableaux remplacent toute la liste ; jwks est remplacé en tant qu'objet. Les champs en lecture seule (id, client_id, version, created_at, updated_at, last_token_issued_at, last_token_asn) sont rejetés.
Réponse
200 OK avec l'application mise à jour et le nouvel ETag.
Erreurs
| HTTP | code |
Quand |
|---|---|---|
| 401 | unauthenticated |
La clé est manquante, invalide ou révoquée. |
| 403 | insufficient_permissions |
La clé n'a pas la permission requise. |
| 404 | not_found |
L'application n'existe pas dans cet environnement. |
| 428 | precondition_required |
L'en-tête If-Match est manquant. |
| 412 | precondition_failed |
La version dans If-Match est obsolète. |
| 422 | validation_failed |
Un champ est invalide ou un champ immuable a changé. |
| 422 | policy_conflict |
allowed_first_factors n'a aucune méthode en commun avec l'ensemble des premiers facteurs de l'environnement. |
| 400 | unknown_field |
Le patch a un champ qui ne fait pas partie du schéma (y compris les champs en lecture seule comme id). |
| 415 | unsupported_media_type |
Content-Type n'est pas application/merge-patch+json. |
Exemple
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}'