Dizin oluştur

POST /v1/directories · izin directories:write

Bir org için etkin olmayan bir SCIM dizini ve ilk SCIM token'ını oluşturur. Kimlik sağlayıcısına (Okta, Entra ID, Google Workspace…) base_url ve token değerlerini verin. token YALNIZ bu yanıtta, bir kez döner; sonradan hiçbir uç onu döndürmez. Yanıt Cache-Control: no-store taşır; aynı Idempotency-Key ile tekrar oynatılan yanıtta token yoktur ve secret_redacted: true döner. Token kaybolduysa POST /v1/directories/{directory_id}/tokens ile yenisini oluşturun. Oluşturma directory.created ve directory.token_created olarak denetlenir (token audit kaydına girmez).

scim_host ortamın birincil host'u olmalıdır: etkin özel alan adı, yoksa <slug>.<bölge>.keenauth.app. Dizinin SCIM taban URL'si https://<scim_host>/scim/v2/<dizin>'dir.

İstek

Alan Tür Zorunlu Açıklama
organization_id string evet Org kimliği (org_…); bu ortamda var ve etkin olmalı.
name string evet 1–64 karakter; denetim karakteri yok, başta ve sonda boşluk yok.
scim_host string evet Ortamın birincil host'u (küçük harf DNS adı); bu ortama yönlenmeli.
type string hayır scim (varsayılan; bu sürümdeki tek tür).
token_label string hayır İlk token'ın etiketi, 1–100 karakter; varsayılan Initial token.

Yanıt

Dizin, token_id ve tek seferlik token ile 201 Created.

{
  "id": "dir_01j9xm2n4p6q8r0s2t4v6w8y0z",
  "organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "type": "scim",
  "name": "Okta",
  "state": "inactive",
  "base_url": "https://acme.eu.keenauth.app/scim/v2/dir_01j9xm2n4p6q8r0s2t4v6w8y0z",
  "created_at": "2026-10-19T09:31:00.123456Z",
  "last_request_at": null,
  "provisioning_mode": "user_store",
  "attribute_allowlist": [],
  "unverified_domain_action": "invite",
  "delete_action": "remove_membership",
  "on_delete_memberships": "keep",
  "mass_deprovision_guard": {"enabled": true, "percent": 10, "absolute_min": 25},
  "send_welcome_email": false,
  "token_id": "0192a3b4-c5d6-7e8f-9a0b-1c2d3e4f5a6b",
  "token": "idp_scim_<token>"
}

Hatalar

HTTP code Ne zaman
404 not_found Org bu ortamda yok.
409 organization_disabled Org etkin değil; dizin oluşturulmaz.
409 organization_pending_deletion Org silme kuyruğunda; dizin oluşturulmaz.
422 idempotency_key_reuse Idempotency-Key başka bir istek için kullanıldı.
422 validation_failed Bir alan eksik ya da geçersiz; host biçimsizse ya da bu ortama yönlenmiyorsa /scim_host invalid.
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 Dizin eşitleme geçici olarak kullanılamıyor ya da bu kurulumda yapılandırılmamış; Retry-After süresinden sonra yeniden deneyin.

Örnek

curl -i -X POST "https://api.eu.keenauth.com/v1/directories" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"organization_id":"org_01j9xk3m7q8r2s4t6v8w0y2z4a","name":"Okta","scim_host":"acme.eu.keenauth.app"}'