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"'