
# Uygulamayı güncelle

`PATCH /v1/applications/{application_id}` · izin `applications:write`

Uygulamayı JSON Merge Patch (`application/merge-patch+json`, RFC 7396) ile günceller: gönderilen alanlar değişir, `null` nullable alanı boşaltır, diziler bütünüyle değişir. `If-Match` zorunludur: yoksa `428`, eski sürümle `412` döner. Değişmez alanlar `key`, `app_type`, `registration_source` ve `owner_org_id` farklı değerle gelirse `422` ve `immutable` kodu döner. Hiçbir şeyi değiştirmeyen yama uygulamayı ve sürümünü değiştirmez.

## İstek

**Başlıklar**: `If-Match: "<sürüm>"` (zorunlu), `Content-Type: application/merge-patch+json`.

**Yol**: `application_id` (`app_…`).

**Gövde**: oluşturma sayfasındaki yazılabilir alanların herhangi bir alt kümesi (`key`, `name`, `app_type`, … `connection_ids`). `null` nullable alanı boşaltır; diziler listeyi bütünüyle değiştirir; `jwks` nesne olarak değişir. Salt okunur alanlar (`id`, `client_id`, `version`, `created_at`, `updated_at`, `last_token_issued_at`, `last_token_asn`) reddedilir.

## Yanıt

`200 OK`; gövdede güncel uygulama, `ETag` başlığında yeni sürüm.

## Hatalar

| HTTP | `code` | Ne zaman |
|---|---|---|
| 401 | `unauthenticated` | Anahtar yok, geçersiz ya da iptal edilmiş. |
| 403 | `insufficient_permissions` | Anahtarda gereken izin yok. |
| 404 | `not_found` | Uygulama bu ortamda yok. |
| 428 | `precondition_required` | `If-Match` başlığı yok. |
| 412 | `precondition_failed` | `If-Match` içindeki sürüm eski. |
| 422 | `validation_failed` | Bir alan geçersiz ya da değişmez bir alan değiştirildi. |
| 422 | `policy_conflict` | `allowed_first_factors` ortamın birinci faktör kümesiyle ortak yöntem bırakmıyor. |
| 400 | `unknown_field` | Yamada şemada olmayan bir alan var (`id` gibi salt okunur alanlar dahil). |
| 415 | `unsupported_media_type` | `Content-Type` `application/merge-patch+json` değil. |

## Örnek

```bash
curl -X PATCH https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "1"' \
  -d '{"name":"Portal v2","login_host":null}'
```
