RBAC Fundamentals
- Core Concepts
- Default Roles
- Roles: Sets of permissions that can be assigned to users
- Subjects: Resources that can be acted upon (pages, files, events, etc.)
- Actions: Operations that can be performed on subjects (read, create, update, etc.)
- Rules: Define which roles can perform which actions on which subjects
- Conditions: Optional criteria that further restrict when rules apply
Managing Roles and Rules
Accessing RBAC Settings
- Go to your workspace
- Navigate to Settings > Advanced > Manage Roles
- Edit the YAML configuration
- Save your changes
Defining Roles
auth section allows you to automatically assign roles based on authentication providers.Creating Rules
- action: What can be done (a single action or list)
- subject: What it can be done to (a single subject or list)
- role: Which role this applies to (if omitted, applies to everyone)
- conditions: Restrict the rule to specific cases. If omitted (or an empty object), the rule will apply to every instance of specified subject
- inverted: Set to
trueto make this a deny rule instead of allow - reason: Documentation string for the rule
Adding Conditions
Common RBAC Patterns
Public Access
Public Access
role specified apply to everyone, including unauthenticated users.Role-Based Access
Role-Based Access
API Key Permissions
API Key Permissions
The api key value can’t be directly accessed, but instead can be injected in
fetch instruction :Automatic assignment
Automatic assignment
Subjects and Actions
RBAC controls access to various resource types through subject and action combinations:Workspaces
Workspaces
workspacesActions :read: allows reading the workspace configurationupdate: allows updating the workspace configurationdelete: allows deleting the workspacemanage_security: allows updating security configurationmanage_permissions: allows sharing / unsharingaggregate_search: allows using /search APIget_usage: allows using /usage APImanage_repositories: allows managing repositories settingsmanage: allows all above actions
Pages
Pages
pagesActions :create: allows creating a pageread: allows reading pagesupdate: allows updating pagesdelete: allows deleting pagesmanage: allows all above actions
Files
Files
filesActions :create: allows uploading a fileread: allows reading filesupdate: allows updating filesdelete: allows deleting filesmanage: allows all above actions
Events
Events
eventsActions :create: allows emitting an eventread: allows reading eventsmanage: allows all above actions
Automations
Automations
automationsActions :create: allows creating an automationread: allows reading automationsupdate: allows updating automationsdelete: allows deleting automationsexecute: allows executing automationsmanage: allows all above actions
Secrets
Secrets
secretsActions :create: allows creating secretsread: allows reading secretsupdate: allows updating secretsdelete: allows deleting secretsmanage: allows all above actions
Apps
Apps
appsActions :create: allows publishing an appread: allows viewing/installing appsupdate: allows updating appsdelete: allows deleting appsmanage: allows all above actions
Securing Automations
By default, anyone can execute any automation that has an event or endpoint trigger. To restrict access to sensitive automations:Define Authorization Action
authorizations.action field specifies a permission key for this automation.Create Permission Rule
Test the Restriction
- Users with the admin role can execute the automation
- Users without the admin role receive an authorization error
- The automation cannot be called indirectly by other automations without permission
Using API Keys
External API Keys
External API Keys
- Use Prismeai APIs to generate an api key :
- Include the received apikey in
x-prismeai-api-keyheader :
Workspace API Keys
Workspace API Keys
Example RBAC Configuration
Here’s a complete example of a typical RBAC configuration:Full RBAC Example
Full RBAC Example
Security Best Practices
Principle of Least Privilege
Give users only the permissions they actually need:
- Start with minimal permissions and add as required
- Use specific conditions to limit rule scope
- Avoid “manage” permission when more specific actions suffice
- Regularly review and prune unnecessary permissions
Secure Public Access
Carefully control what unauthenticated users can do:
- Use explicit conditions on public rules
- Limit event creation to specific event types
- Be cautious with file upload permissions
- Restrict user session events appropriately
Protect Sensitive Automations
Secure automations that access sensitive data:
- Add authorization requirements to important automations
- Create specific roles for administrative functions
- Avoid sensitive data exposure through events
- Test automations with different user roles
Manage API Access
Control programmatic access carefully:
- Create API keys with minimal required permissions
- Rotate API keys regularly
- Monitor API key usage for unusual patterns
- Delete unused API keys promptly
Troubleshooting
Access Denied Unexpectedly
Access Denied Unexpectedly
- Verify the user has the correct role assignment
- Look for inverted rules (deny rules) that might be applying
- Check if conditions on rules are unintentionally restrictive
- Ensure the rule order places more specific rules after general ones
Too Much Access
Too Much Access
- Look for overly broad rules without conditions
- Check if the user has multiple roles granting cumulative permissions
- Verify automatic role assignment isn’t giving unintended access
- Ensure public rules (no role specified) aren’t too permissive