
# 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.

```json
{
  "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

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