Yönetim istemcisini güncelle

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

Yönetim istemcisi kaydını JSON birleştirme yamasıyla günceller (RFC 7396, application/merge-patch+json): gönderdiğiniz alanlar değişir, göndermedikleriniz kalır. If-Match zorunludur: yoksa istek 428, sürüm artık eşleşmiyorsa 412 ile reddedilir. Bu ucu yalnız API anahtarı çağırabilir.

İstek

Parametre Yer Açıklama
application_id yol Uygulama kimliği (app_…).
If-Match başlık Son okuma ya da yazmadaki ETag.

Gövde: aşağıdaki alanlardan herhangi biri.

Alan Tür Zorunlu Açıklama
permissions string[] hayır 1-200 bilinen <kaynak>:<eylem> izni. Liste bütünüyle değişir; null olamaz.
allowed_cidrs string[] | null hayır En çok 20 CIDR bloğu. Liste bütünüyle değişir; null ya da [] çağıran anahtarın kendi listesini kullanır.

Hiçbir şeyi değiştirmeyen yama kaydı, sürümünü ve audit kaydını olduğu gibi bırakır. Kısıtlı anahtar kendisinden geniş bir kaydı değiştiremez (403 permission_escalation).

Yanıt

200 OK; yeni ETag ile.

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

Hatalar

HTTP code Ne zaman
400 unknown_field Yamada permissions ve allowed_cidrs dışında bir alan var.
403 permission_escalation Kayıt ya da yamalanmış kayıt çağıran anahtardan geniş.
404 not_found Uygulamanın bu ortamda kaydı yok.
412 precondition_failed If-Match güncel sürümle eşleşmiyor.
415 unsupported_media_type İçerik türü application/merge-patch+json değil.
422 validation_failed permissions null, boş ya da bilinmeyen izin içeriyor, ya da bir CIDR geçersiz.
428 precondition_required If-Match yok.

Örnek

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