İzin güncelleme
PATCH /v1/permissions/{permission_id} · izin apis:write
Bir izni JSON birleştirme yaması (RFC 7396, application/merge-patch+json) ile günceller: gönderdiğiniz alanlar değişir, diğerleri olduğu gibi kalır. İzinlerin bir sürümü olmadığı için If-Match kullanılmaz.
İstek
| Parametre | Konum | Açıklama |
|---|---|---|
permission_id |
path | İzin kimliği (perm_…). |
Gövde: aşağıdaki alanlardan herhangi biri (hepsi isteğe bağlı, en az biri gerekli).
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
value |
string | hayır | Yalnızca mevcut değere eşitse kabul edilir; hiçbir zaman değişmez. |
display_name |
string | null | hayır | Onay ekranında kapsam değeri yerine gösterilen kısa ad. En fazla 128 karakter. |
description |
string | null | hayır | Onay ekranında ad altında gösterilen ayrıntı satırı. En fazla 1024 karakter. |
consent_text_i18n |
object | null | hayır | Dil etiketi → onay ekranı metni, örneğin {"en": "Read your orders"}. En fazla 30 dil, her metin 1-1024 karakter, toplamda 16 KiB. |
sensitivity |
string | hayır | normal (varsayılan) veya sensitive. |
display_name, description ve consent_text_i18n alanları null gönderilerek temizlenir; sensitivity temizlenemez. consent_text_i18n bütün olarak değiştirilir: eklemediğiniz diller kaldırılır, bu yüzden korumak istediğiniz her dili gönderin.
Onay ekranı metinleri
Barındırılan onay ekranı istenen her kapsamı şu şekilde gösterir: sayfa dili için consent_text_i18n girdisi (tam etiket, yoksa birincil alt etiketi), yoksa display_name, yoksa kapsam value değeri; description ayrıntı satırı olarak gösterilir. Üçü de düz metindir. Denetim karakterleri (satır sonları ve sekmeler dahil), satır ve paragraf ayırıcıları ile çift yönlü gömme, geçersiz kılma ve izolasyon karakterleri (U+202A-U+202E, U+2066-U+2069) 422 ile reddedilir. Baştaki ve sondaki boşluklar kırpılır; kırpıldıktan sonra boş kalan metin null olarak saklanır. HTML yorumlanmaz: onay ekranı bunu kaçış karakterleriyle gösterir.
Yanıt
200 OK
{
"id": "perm_01h455vb4pex5vsknk084sn02s",
"api_id": "api_01h455vb4pex5vsknk084sn02q",
"value": "read:orders",
"display_name": "Read orders",
"description": "See your past orders and their status",
"consent_text_i18n": {
"en": "Read your orders",
"tr": "Siparişlerinizi okuyun"
},
"sensitivity": "normal"
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Yamada api_id veya bilinmeyen bir alan var. |
| 404 | not_found |
Bu ortamda böyle bir izin yok. |
| 409 | conflict |
İzin sistem API'sine ait. |
| 415 | unsupported_media_type |
İçerik türü application/merge-patch+json değil. |
| 422 | validation_failed |
Yama boş, bir değer geçersiz veya düz metin değil, sensitivity null, ya da value farklı (immutable). |
Örnek
curl -X PATCH https://api.eu.keenauth.com/v1/permissions/perm_01h455vb4pex5vsknk084sn02s \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-d '{"description":"See your past orders and their status","consent_text_i18n":{"en":"Read your orders","tr":"Siparişlerinizi okuyun"}}'