Management-Client aktualisieren
PATCH /v1/management-clients/{application_id} · Berechtigung management-clients:write
Aktualisiert einen Management-Client-Datensatz mit einem JSON-Merge-Patch (RFC 7396, application/merge-patch+json): Die Felder, die Sie senden, ändern sich, die übrigen bleiben unverändert. If-Match ist erforderlich: Ohne es schlägt die Anfrage mit 428 fehl, mit einer nicht mehr passenden Version mit 412. Nur ein API-Schlüssel kann diesen Endpunkt aufrufen.
Anfrage
| Parameter | In | Beschreibung |
|---|---|---|
application_id |
Pfad | Anwendungs-ID (app_…). |
If-Match |
Header | Das ETag aus dem letzten Lesen oder Schreiben. |
Body: eines oder mehrere der folgenden Felder.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
permissions |
String[] | nein | 1–200 bekannte <resource>:<action>-Berechtigungen. Ersetzt die Liste insgesamt; darf nicht null sein. |
allowed_cidrs |
String[] | null | nein | Bis zu 20 CIDR-Blöcke. Ersetzt die Liste insgesamt; null oder [] verwendet die eigene Liste des aufrufenden Schlüssels. |
Ein Patch, der nichts ändert, lässt den Datensatz, seine Version und das Auditprotokoll unverändert. Ein eingeschränkter Schlüssel kann keinen Datensatz ändern, der umfassender ist als er selbst (403 permission_escalation).
Antwort
200 OK, mit dem neuen ETag.
{
"application_id": "app_01h455vb4pex5vsknk084sn02q",
"permissions": ["users:read"],
"allowed_cidrs": ["203.0.113.0/24"]
}
Fehler
| HTTP | code | Wann |
|---|---|---|
| 400 | unknown_field |
Der Patch enthält ein anderes Feld als permissions und allowed_cidrs. |
| 403 | permission_escalation |
Der Datensatz oder der gepatchte Datensatz ist umfassender als der aufrufende Schlüssel. |
| 404 | not_found |
Die Anwendung hat in dieser Umgebung keinen Datensatz. |
| 412 | precondition_failed |
If-Match stimmt nicht mit der aktuellen Version überein. |
| 415 | unsupported_media_type |
Der Content-Type ist nicht application/merge-patch+json. |
| 422 | validation_failed |
permissions ist null, leer oder enthält eine unbekannte Berechtigung, oder ein CIDR ist ungültig. |
| 428 | precondition_required |
If-Match fehlt. |
Beispiel
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"'