권한 수정
PATCH /v1/permissions/{permission_id} · 권한 apis:write
JSON 병합 패치(RFC 7396, application/merge-patch+json)로 권한을 수정합니다. 보낸 필드만 바뀌고 나머지는 그대로 유지됩니다. 권한에는 버전이 없으므로 If-Match가 없습니다.
요청
| 매개변수 | 위치 | 설명 |
|---|---|---|
permission_id |
path | 권한 ID(perm_…). |
본문: 아래 필드 중 하나 이상(모두 선택 사항, 최소 하나 필요).
| 필드 | 유형 | 필수 | 설명 |
|---|---|---|---|
value |
문자열 | 아니요 | 현재 값과 같을 때만 허용됩니다. 값은 절대 바뀌지 않습니다. |
display_name |
문자열 | null | 아니요 | 스코프 값 대신 동의 화면에 표시되는 짧은 이름. 최대 128자. |
description |
문자열 | null | 아니요 | 동의 화면에서 이름 아래에 표시되는 상세 설명. 최대 1024자. |
consent_text_i18n |
객체 | null | 아니요 | 언어 태그 → 동의 화면 텍스트, 예: {"en": "Read your orders"}. 최대 30개 언어, 각 텍스트 1–1024자, 전체 16 KiB. |
sensitivity |
문자열 | 아니요 | normal(기본값) 또는 sensitive. |
display_name, description, consent_text_i18n은 null로 지울 수 있습니다. sensitivity는 지울 수 없습니다. consent_text_i18n은 전체가 대체됩니다. 빠뜨린 언어는 제거되므로, 유지하려는 모든 언어를 보내십시오.
동의 화면 텍스트
호스팅된 동의 화면은 요청된 각 스코프를 다음과 같이 표시합니다. 페이지 언어에 맞는 consent_text_i18n 항목(정확한 태그, 없으면 기본 하위 태그), 없으면 display_name, 그것도 없으면 스코프 value입니다. description은 상세 줄로 표시됩니다. 세 값 모두 일반 텍스트입니다. 제어 문자(줄바꿈과 탭 포함), 줄 및 단락 구분자, 양방향 삽입·재정의·격리 문자(U+202A–U+202E, U+2066–U+2069)는 422로 거부됩니다. 앞뒤 공백은 잘리며, 잘린 뒤 비어 있는 텍스트는 null로 저장됩니다. HTML은 해석되지 않으며, 동의 화면이 이스케이프합니다.
응답
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"
}
오류
| HTTP | code | 언제 |
|---|---|---|
| 400 | unknown_field |
패치에 api_id 또는 알 수 없는 필드가 있습니다. |
| 404 | not_found |
이 환경에 그러한 권한이 없습니다. |
| 409 | conflict |
권한이 시스템 API에 속합니다. |
| 415 | unsupported_media_type |
콘텐츠 유형이 application/merge-patch+json이 아닙니다. |
| 422 | validation_failed |
패치가 비어 있거나, 값이 잘못되었거나 일반 텍스트가 아니거나, sensitivity가 null이거나, value가 다릅니다(immutable). |
예제
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"}}'