Workspace + RBAC kurulumu
Bir Moonborn workspace ayağa kaldır, takım arkadaşlarını davet et, role'leri ata ve org genelinde kimlik için bir SSO + SCIM provider'ı konfigüre et.
Workspace'ler Moonborn proje konteynırı; org'lar onların üstünde oturur. RBAC kullanıcıları role'lere, role'leri aksiyonlara, aksiyonları resource'lara bağlar. Bu tutorial pratik sırayı kapsar: bir org yarat, bir workspace yarat, takım arkadaşlarını davet et, role'leri ata ve (Enterprise için) SAML + SCIM bağla.
1. Org + workspace yarat
Kaydolduğunda otomatik olarak bir org yaratılır — bu senin billing root'un. İçinde bir ya da daha fazla workspace yarat:
const ws = await client.workspaces.createWorkspace({
name: 'Product team',
description: 'Consumer yüzeyi için persona işi.',
});2. Takım arkadaşlarını davet et
const invitation = await client.memberships.inviteMember({
email: 'designer@acme.co',
role: 'editor',
workspaceId: ws.id,
});
console.log(invitation.acceptUrl);Davet e-postası bir accept URL'iyle iner. Kabul edilene kadar üyelik
pending'de oturur.
3. Yerleşik role'ler
Kutudan yedi role gelir (PRD §H, plan.md §1.6):
| Role | Read | Write | Dikkate değer can-do |
|---|---|---|---|
owner | hepsi | hepsi | org transfer et, workspace sil |
admin | hepsi | hepsi | üyeleri, billing'i yönet |
editor | hepsi | personalar + chat | personaları yarat + refine et |
viewer | hepsi | yok | read-only |
api-only | scope'lu | scope'lu | servis hesapları, UI erişimi yok |
billing | faturalar | ödeme yöntemleri | finans takımı üyeleri için |
auditor | audit log + config | yok | compliance ekipleri için |
Custom role'ler Enterprise — org'una göre uyarlanmış bir resource × action matrix'i tanımlamana izin verir.
4. Role'leri değiştir
await client.memberships.updateMembership({
id: 'mem_...',
role: 'admin',
});Üyelik audit log'u her role değişikliğini actor + timestamp ile kaydeder.
5. SAML SSO kur (Enterprise)
Enterprise planındaki org'lar için default credentials provider'ını SAML 2.0 ile swap et:
await client.config.setItem({
key: 'identity.sso.saml.enabled',
value: true,
scope: 'org',
scopeId: 'org_...',
});
await client.config.setItem({
key: 'identity.sso.saml.idp_metadata_url',
value: 'https://your-idp.example.com/metadata',
scope: 'org',
scopeId: 'org_...',
});POST /v1/auth/sso/saml/initiate'te bir SAML akışı başlat; IdP
/v1/auth/sso/saml/acs'a geri post eder. IdP-tarafı konfigürasyonu için
SSO / SAML setup guide'a bak.
6. SCIM provisioning kur (Enterprise)
SCIM IdP'inin kullanıcı yaşam döngüsü değişikliklerini (yarat, güncelle, deaktive et) Moonborn'a otomatik push etmesini sağlar. Endpoint'ler RFC 7644'i takip eder:
GET/POST /v1/auth/scim/v2/UsersPATCH/DELETE /v1/auth/scim/v2/Users/{id}GET/POST /v1/auth/scim/v2/Groups
IdP'ini (Okta, Azure AD, Google) bu endpoint'ler + Settings → SSO'dan SCIM bearer token'ıyla konfigüre et. Yeni işe alımlar otomatik provision olur; ayrılışlar otomatik deprovision olur.
7. IP allowlist'leri (Enterprise)
await client.config.setItem({
key: 'identity.ip_allowlist.cidrs',
value: '203.0.113.0/24,198.51.100.0/24',
scope: 'org',
scopeId: 'org_...',
});Allowlist dışındaki bağlantılar gateway'de reddedilir. API erişimini kurumsal ağlara kısıtlayan org'lar için yararlı.
8. Audit et
Her role değişikliği, her üyelik değişikliği, her config edit immutable audit log'a iner:
const events = await client.audit.listEvents({
workspaceId: ws.id,
category: 'rbac',
limit: 50,
});Audit log hash-zincirli ve privacy.retention.audit_log_years'a göre
saklanır (Enterprise için default 7, Pro/Team için 1).
Tarif
- Temel workspace'ler + 4 yerleşik role: Free.
- Editor / api-only / billing / auditor role'leri: Pro.
- SCIM + SAML SSO + IP allowlist'ler + custom role'ler: Enterprise.
Sonraki
- Use case: Enterprise RBAC + SSO.
- Compliance duruşu: Audit + compliance use case.
- Memberships API reference.