Org rolü oluştur
POST /v1/organizations/{org_id}/roles · izin roles:write
Yalnız bu org'da bulunan özel bir rol oluşturur. Org rolleri org_custom_roles plan hakkını ister, ayrıcalıklı olamaz ve ortamın org rollerine izin verilen izin listesi boşken oluşturulamaz. Yanıt ETag taşır; yazma role.created olarak audit'e düşer. Idempotency-Key isteğe bağlıdır.
İstek
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
org_id |
path | evet | Org kimliği (org_…). |
key |
string | evet | Küçük harf, rakam, _ ve -; 1–64 karakter; kapsamında tekil ve değişmez. |
name |
string | evet | Görünen ad, en çok 128 karakter. |
description |
string | hayır | En çok 1024 karakter. |
is_privileged |
boolean | hayır | Ayrıcalıklı rolü işaretler (org rolünde kullanılamaz). |
assignable_in_self_service |
boolean | hayır | Varsayılan true. |
Yanıt
Rolle 201 Created.
{
"id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
"organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
"key": "billing-admin",
"name": "Billing admin",
"description": "",
"is_privileged": false,
"assignable_in_self_service": true,
"permission_ids": [],
"created_at": "2026-10-12T09:31:00.123456Z",
"updated_at": "2026-10-12T09:31:00.123456Z",
"version": 1
}
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 404 | not_found |
Org bu ortamda yok. |
| 403 | org_custom_roles_disabled |
Org rolleri bu ortamda kapalı. |
| 403 | plan_feature_unavailable |
Plan org rollerini içermiyor (Business ve üstü). |
| 409 | role_key_conflict |
Kapsamda bu key ile rol zaten var. |
| 409 | role_limit_reached |
1.000 ortam rolü ya da org başına 50 rol sınırına ulaşıldı. |
| 422 | validation_failed |
Bir alan eksik ya da geçersiz ya da is_privileged true. |
| 401 | unauthenticated |
Kimlik bilgisi yok, geçersiz ya da iptal edilmiş. |
| 403 | insufficient_permissions |
Kimlik bilgisinde gerekli izin yok. |
| 429 | rate_limited |
Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin. |
Örnek
curl -i -X POST "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/roles" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"key":"billing-admin","name":"Billing admin"}'