Use this file to discover all available pages before exploring further.
Role-Based Access Control (RBAC) is the security model used in Prisme.ai to manage who can access, modify, and use different parts of your workspace. It ensures that users only have the permissions they need while protecting sensitive information and functionality.
To view and edit your workspace’s access control configuration:
Go to your workspace
Navigate to Settings > Advanced > Manage Roles
Edit the YAML configuration
Save your changes
Changes to RBAC settings take effect immediately. Be careful not to lock yourself out!
2
Defining Roles
Create custom roles to fit your organization’s needs:
authorizations: roles: editor: {} # Built-in role # Custom role for regular users user: auth: prismeai: {} # Automatically assigned to all Prisme.ai users # Role for API access workspace: auth: apiKey: {} # Can be used with API keys
The auth section allows you to automatically assign roles based on authentication providers.
3
Creating Rules
Define what each role can do with specific rules:
rules: # Allow editors to read and update workspaces - role: editor action: - read - get_usage - aggregate_search - update subject: workspaces # Give editors full control over files - role: editor action: manage # Shorthand for all permissions subject: files
Each rule must include at least:
action: What can be done (a single action or list)
subject: What it can be done to (a single subject or list)
Rules can optionally specify:
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 true to make this a deny rule instead of allow
reason: Documentation string for the rule
4
Adding Conditions
Restrict rules to specific situations with conditions:
# Allow access only to pages with a "public" label- action: read subject: pages conditions: labels: $in: - public# Deny editor access to API key events- role: editor inverted: true action: read subject: events conditions: type: $regex: ^apikeys\.*$
# Allow anyone to read pages with "public" label- action: read subject: pages conditions: labels: $in: - public# Allow anyone to create events (for automations)- action: create subject: events conditions: source.serviceTopic: topic:runtime:emit reason: Anyone can create any events
Rules without a role specified apply to everyone, including unauthenticated users.
Role-Based Access
Define what each role can do:
# User role can read all pages- role: user action: - read subject: pages# Editor role can read and update pages- role: editor action: - read - update subject: pages
This approach creates a clear hierarchy of access permissions.
API Key Permissions
Configure permissions for API access:
# Define workspace role for API accessroles: workspace: auth: apiKey: {}# Grant specific permissions to this rolerules: - role: workspace action: - read - manage_permissions subject: - workspaces - events - pages - files
This allows creating an internal workspace API key with specific permissions.
The api key value can’t be directly accessed, but instead can be injected in fetch instruction :
Automatically assign roles based on SSO provider & auth data :
roles: # Assign user role to all Prisme.ai & yourOwnSso authenticated users user: auth: prismeai: {} yourOwnSso: {} # Assign admin role to users from a specific email domain admin: auth: prismeai: conditions: authData.email: $regex: ^.*@mycompany.com$
This reduces manual user management by leveraging authentication information.
When users encounter permission errors they shouldn’t:Check these common issues:
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
Example fix:
# Add a more permissive rule for this specific case- role: user action: read subject: pages conditions: category: reports
Too Much Access
When users have permissions they shouldn’t have:Check these common issues:
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
Example fix:
# Add a specific deny rule- role: user inverted: true action: read subject: pages conditions: category: admin# Or make existing rules more specific- role: user action: read subject: pages conditions: category: $ne: admin