Aggiorna un client di gestione
PATCH /v1/management-clients/{application_id} · permesso management-clients:write
Aggiorna un record di client di gestione con un JSON merge patch (RFC 7396, application/merge-patch+json): i campi che invii cambiano, gli altri restano invariati. If-Match è obbligatorio: senza di esso la richiesta fallisce con 428, e con una versione non più corrispondente fallisce con 412. Solo una chiave API può chiamare questo endpoint.
Richiesta
| Parametro | In | Descrizione |
|---|---|---|
application_id |
path | ID dell'applicazione (app_…). |
If-Match |
header | L'ETag dell'ultima lettura o scrittura. |
Corpo: uno qualsiasi dei campi seguenti.
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
permissions |
string[] | no | Da 1 a 200 permessi <resource>:<action> noti. Sostituisce l'intero elenco; non può essere null. |
allowed_cidrs |
string[] | null | no | Fino a 20 blocchi CIDR. Sostituisce l'intero elenco; null o [] usa la lista della chiave che effettua la chiamata. |
Una patch che non modifica nulla lascia invariati il record, la sua versione e il log di audit. Una chiave con restrizioni non può modificare un record più ampio di sé stessa (403 permission_escalation).
Risposta
200 OK, con il nuovo ETag.
{
"application_id": "app_01h455vb4pex5vsknk084sn02q",
"permissions": ["users:read"],
"allowed_cidrs": ["203.0.113.0/24"]
}
Errori
| HTTP | code | Quando |
|---|---|---|
| 400 | unknown_field |
La patch contiene un campo diverso da permissions e allowed_cidrs. |
| 403 | permission_escalation |
Il record, o il record dopo la patch, è più ampio della chiave che effettua la chiamata. |
| 404 | not_found |
L'applicazione non ha un record in questo ambiente. |
| 412 | precondition_failed |
If-Match non corrisponde alla versione corrente. |
| 415 | unsupported_media_type |
Il tipo di contenuto non è application/merge-patch+json. |
| 422 | validation_failed |
permissions è null, vuoto o contiene un permesso sconosciuto, oppure un CIDR non è valido. |
| 428 | precondition_required |
If-Match manca. |
Esempio
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"'