RBAC-Rollen-Matrix
Die sieben eingebauten Rollen, ihre Permissions und wie sie zugewiesen oder geändert werden. Custom Roles auf Enterprise.
Moonborn versendet sieben eingebaute Rollen. Custom Roles sind ein Enterprise-Feature; die Matrix unten ist der v1-Default.
Eingebaute Rollen
| Rolle | 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 | scoped | scoped | — | scoped | scoped | — | — |
billing | — | — | RW | — | — | — | — |
auditor | — | — | R | R | R | R | R |
scoped = ehrt die Scope-Liste des API-Keys. api-only-Nutzer
können sich nicht in der Produkt-UI anmelden.
Eine Rolle bei Invite zuweisen
await client.memberships.inviteMember({
email: 'designer@acme.co',
role: 'editor',
workspaceId: 'ws_...',
});Eine existierende Rolle ändern
await client.memberships.updateMembership({
id: 'mem_...',
role: 'admin',
});Jede Rollenänderung schreibt eine Audit-Log-Zeile mit Actor + Timestamp.
Custom Roles (Enterprise)
Definiere deine eigene Resource × Action Matrix:
await client.roles.createCustomRole({
workspaceId: 'ws_...',
name: 'persona-reviewer',
permissions: [
'personas:read',
'personas:audit:run',
'audit:read',
],
});Permissions folgen dem <resource>:<action>-Pattern. Die volle
Action-Liste lebt unter GET /v1/roles/actions.
Warum kein verschachteltes Gruppen-Setup
Wir versenden in v1 absichtlich kein LDAP-style-Gruppen-Nesting. Eine flache Rollenliste ist leichter zu reasoning; SCIM-Provisioning mappt deine IdP-Gruppen 1:1 auf Moonborn-Rollen.
Tarif
Eingebaute Rollen: Pro und höher. Custom Roles: Enterprise.