Roles & Permissions (Dynamic RBAC)
AVAILABLEThe Naagmani Developer Portal features a dynamic, permission-based Role-Based Access Control (RBAC) foundation. Organizations can define custom roles tailored to specific operational responsibilities while utilizing platform-defined canonical permissions.
- Portal Page: https://docs.naagmani.com/roles
1. System Defined vs Custom Roles #
| Role Type | Description | Deletable | Customizable Permissions |
|---|---|---|---|
System Roles (owner, admin, member) | Predefined platform roles automatically provisioned for every organization | ❌ No | ❌ Predefined |
Custom Roles (e.g. billing_manager, project_operator) | Organization-scoped roles created by organization owners/admins | ✅ Yes (when unassigned) | ✅ Full permission selection |
Rendering diagram...
graph TD
Org["Organization Boundary"]
Org --> SystemRoles["System Default Roles (Owner, Admin, Member)"]
Org --> CustomRoles["Custom Roles (e.g. Project Operator, Billing Manager)"]
CustomRoles --> RolePerms["Role Permissions"]
RolePerms --> CanonicalRegistry["Canonical Permission Registry"]
2. Canonical Permissions #
Canonical permissions represent granular business capabilities across all Naagmani subsystems:
organizations.read,organizations.manageusers.read,users.invite,users.manageroles.read,roles.manageprojects.read,projects.create,projects.update,projects.delete,projects.manageenvironments.read,environments.manageservice_tokens.read,service_tokens.create,service_tokens.update,service_tokens.revoke,service_tokens.manageapi_keys.read,api_keys.create,api_keys.revoke,api_keys.manageproviders.read,providers.managebilling.read,billing.manageusage.readaudit.readmcp.read,mcp.managepolicies.read,policies.managemembers.read,members.create,members.update,members.delete,members.manage
3. Creating & Managing Custom Roles #
- Navigate to Roles & Permissions at https://docs.naagmani.com/roles.
- Click Create Custom Role.
- Specify a unique role identifier (e.g.
project_operator), display name, and description. - Select the desired canonical permissions from the categorized registry.
- Click Create Role.
4. Role Assignment & Safety Invariants #
- Multi-Tenant Isolation: Custom roles created in Organization A exist solely within Organization A.
- Protected Roles: System roles cannot be deleted.
- Assignment Protection: Custom roles cannot be deleted while active Portal Users are assigned to them.
- Sole Owner Safety: Organizations cannot strip the Owner role from the sole remaining Owner.
- Domain Boundaries: Human RBAC applies strictly to human Portal Users (
User+OrganizationMembership). Customer Members (Member,mbr_...) and machine credentials (PSTs and API keys) maintain completely independent authorization domains.