Moonborn — Developers
RBAC role matrix
Yedi yerleşik role, permission'ları ve nasıl atanır/değiştirilir. Enterprise'da custom role'ler.
Moonborn yedi yerleşik role gönderir. Custom role Enterprise feature'ı; aşağıdaki matrix v1 default.
Yerleşik role'ler
| Role | personas | chat | billing | config | webhooks | audit | members |
|---|---|---|---|---|---|---|---|
owner | RW | RW | RW | RW | RW | R | RW |
admin | RW | RW | RW | RW | RW | R | RW |
editor | RW | RW | — | R | R | — | — |
viewer | R | R | — | R | R | — | — |
api-only | scope'lu | scope'lu | — | scope'lu | scope'lu | — | — |
billing | — | — | RW | — | — | — | — |
auditor | — | — | R | R | R | R | R |
scope'lu = API key'in scope listesine uyar. api-only kullanıcılar
ürün UI'a giriş yapamaz.
Davette role ata
await client.memberships.inviteMember({
email: 'designer@acme.co',
role: 'editor',
workspaceId: 'ws_...',
});Mevcut role'ü değiştir
await client.memberships.updateMembership({
id: 'mem_...',
role: 'admin',
});Her role değişikliği actor + timestamp ile bir audit-log satırı yazar.
Custom role'ler (Enterprise)
Kendi resource × action matrix'ini tanımla:
await client.roles.createCustomRole({
workspaceId: 'ws_...',
name: 'persona-reviewer',
permissions: [
'personas:read',
'personas:audit:run',
'audit:read',
],
});Permission'lar <resource>:<action> pattern'ini takip eder. Tam
action listesi GET /v1/roles/actions'da yaşar.
Neden nested group yok
v1'de LDAP-stili group nesting'i bilinçli olarak göndermiyoruz. Düz bir role listesi akıl yürütmesi daha kolay; SCIM provisioning IdP group'larını Moonborn role'lerine 1:1 map'ler.
Tarif
Yerleşik role'ler: Pro ve üstü. Custom role'ler: Enterprise.