Modifier un client de gestion

PATCH /v1/management-clients/{application_id} · autorisation management-clients:write

Modifie un enregistrement de client de gestion avec un JSON merge patch (RFC 7396, application/merge-patch+json) : les champs que vous envoyez changent, les autres restent identiques. If-Match est obligatoire : sans lui, la requête échoue avec 428 ; avec une version qui ne correspond plus, elle échoue avec 412. Seule une clé d'API peut appeler ce point de terminaison.

Requête

Paramètre Emplacement Description
application_id chemin Identifiant de l'application (app_…).
If-Match en-tête Le ETag de la dernière lecture ou écriture.

Corps : l'un quelconque des champs ci-dessous.

Champ Type Obligatoire Description
permissions chaîne[] non 1 à 200 autorisations <resource>:<action> connues. Remplace la liste dans son ensemble ; ne peut pas être null.
allowed_cidrs chaîne[] | null non Jusqu'à 20 blocs CIDR. Remplace la liste dans son ensemble ; null ou [] utilise la liste propre à la clé appelante.

Un patch qui ne modifie rien laisse l'enregistrement, sa version et le journal d'audit inchangés. Une clé restreinte ne peut pas modifier un enregistrement plus large qu'elle-même (403 permission_escalation).

Réponse

200 OK, avec le nouvel ETag.

{
  "application_id": "app_01h455vb4pex5vsknk084sn02q",
  "permissions": ["users:read"],
  "allowed_cidrs": ["203.0.113.0/24"]
}

Erreurs

HTTP code Quand
400 unknown_field Le patch contient un champ autre que permissions et allowed_cidrs.
403 permission_escalation L'enregistrement, ou l'enregistrement après patch, est plus large que la clé appelante.
404 not_found L'application n'a pas d'enregistrement dans cet environnement.
412 precondition_failed If-Match ne correspond pas à la version actuelle.
415 unsupported_media_type Le type de contenu n'est pas application/merge-patch+json.
422 validation_failed permissions est null, vide ou contient une autorisation inconnue, ou un CIDR est invalide.
428 precondition_required If-Match est absent.

Exemple

curl -X PATCH https://api.eu.keenauth.com/v1/management-clients/app_01h455vb4pex5vsknk084sn02q \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "3f2a9c0d7b1e4a6f8c5d2e1b0a9f8e7d"' \
  -d '{"permissions":["users:read"]}'

CLI : keenauth management-clients update app_01h455vb4pex5vsknk084sn02q --permissions users:read --if-match '"3f2a9c0d7b1e4a6f8c5d2e1b0a9f8e7d"'