Skip to main content

Roles & Permissions

All Tiers

Calabi uses a role-based access control (RBAC) model that governs which platform modules, features, and data each user can access. Roles are defined at the tenant level and can be customized to match your organization's data governance requirements.


Built-In Roles

Calabi ships with four pre-defined roles that cover the most common user archetypes. These roles cannot be deleted, but their permissions can be viewed (not modified) as a reference for creating custom roles.

RoleIntended ForDefault Module Access
AdminPlatform administratorsFull access to all modules, settings, and user management
Data StewardData governance ownersCalabi Catalogue (full), CalabiIQ (view + publish), Calabi Pipelines (view), AI Agent
AnalystBusiness analysts, data consumersCalabiIQ (view + create charts/dashboards), AI Agent, Calabi Catalogue (read-only)
ViewerStakeholders, executivesCalabiIQ (view dashboards only), AI Agent (read-only), Calabi Catalogue (read-only)

Permission Matrix

The table below shows the access each built-in role has across all Calabi modules.

PermissionAdminData StewardAnalystViewer
Calabi Catalogue
Search and view assetsYesYesYesYes
Edit asset descriptions and tagsYesYesNoNo
Create / delete domainsYesYesNoNo
Manage glossaryYesYesNoNo
Configure data quality testsYesYesNoNo
View quality test resultsYesYesYesYes
Assign asset ownersYesYesNoNo
CalabiIQ
View dashboardsYesYesYesYes
Create and edit chartsYesNoYesNo
Create and edit dashboardsYesNoYesNo
Publish dashboardsYesYesYesNo
Run SQL in SQL LabYesNoYesNo
Manage datasetsYesNoYesNo
Export data (CSV/Excel)YesNoYesNo
Manage database connectionsYesNoNoNo
AI Agent
Use AI Agent (chat)YesYesYesYes
Generate charts via AgentYesYesYesNo
Save Agent-generated chartsYesYesYesNo
Download data via AgentYesNoYesNo
Calabi Pipelines
View DAGs and run historyYesYesNoNo
Trigger DAG runsYesNoNoNo
Pause / unpause DAGsYesNoNoNo
Modify DAG configurationYesNoNoNo
View task logsYesYesNoNo
Calabi Connect
View connector statusYesYesNoNo
Configure connectorsYesNoNoNo
Trigger syncsYesNoNoNo
Calabi ML
View experiments and runsYesNoYesNo
Create experimentsYesNoYesNo
Promote models to ProductionYesNoNoNo
Delete experimentsYesNoNoNo
Calabi Automate
View workflowsYesYesNoNo
Create and edit workflowsYesNoNoNo
Activate / deactivate workflowsYesNoNoNo
Manage credentialsYesNoNoNo
Calabi AI Builder
View chatflowsYesNoNoNo
Create and edit chatflowsYesNoNoNo
Deploy chatflows (API/Slack)YesNoNoNo
Admin
Manage usersYesNoNoNo
Manage rolesYesNoNoNo
View audit logsYesNoNoNo
Configure SSOYesNoNoNo
Manage Helm configurationYesNoNoNo
View platform healthYesNoNoNo

Custom Roles

For organizations with more granular access requirements, you can define custom roles.

Creating a Custom Role

  1. Navigate to AdminRoles+ New Role.
  2. Enter a Role Name (e.g., "Finance Analyst") and optional Description.
  3. Assign permissions from the tree selector. Permissions are organized by module.
  4. Click Save Role.
  5. Assign the role to users (see Role Assignment below).

Custom Role Examples

Finance Analyst — CalabiIQ access to finance dashboards only:

  • CalabiIQ: View dashboards , Create charts , Run SQL
  • CalabiIQ row-level security: department = 'Finance'
  • Calabi Catalogue: Read-only
  • AI Agent: Chat , Download data
  • All other modules: No access

Pipeline On-Call — operations visibility without write access:

  • Calabi Pipelines: View DAGs , View run history , View logs , Trigger runs
  • Calabi Connect: View status
  • Calabi Catalogue: Read-only
  • CalabiIQ: View dashboards
  • All write operations: No access

Role Assignment

Assigning a Role to a User

  1. Navigate to AdminUsers.
  2. Click the user's name or the Edit icon.
  3. Under Roles, click + Add Role.
  4. Select one or more roles from the dropdown.
  5. Click Save.

A user can hold multiple roles simultaneously. Their effective permissions are the union of all assigned roles.

Assigning Roles via SCIM

If you use SSO with SCIM provisioning (Okta, Azure AD), roles can be assigned automatically via group membership:

  1. Navigate to AdminSSOSCIM Configuration.
  2. Map each IdP group to a Calabi role:
    {
    "group_mappings": [
    { "idp_group": "Calabi-Admins", "calabi_role": "Admin" },
    { "idp_group": "Data-Stewards", "calabi_role": "Data Steward" },
    { "idp_group": "Analysts", "calabi_role": "Analyst" },
    { "idp_group": "All-Staff", "calabi_role": "Viewer" }
    ]
    }
  3. When a user is added to or removed from an IdP group, their Calabi role is automatically updated on next login.

Data-Level Permissions (Row-Level Security in CalabiIQ)

Beyond module-level access, Calabi supports row-level security (RLS) in CalabiIQ, which restricts the data rows a user can see within a chart or SQL query based on their attributes.

Configuring Row-Level Security

  1. Navigate to CalabiIQSecurityRow Level Security.
  2. Click + Add Rule.
  3. Configure:
    • Name: A descriptive label (e.g., "Region filter by user attribute")
    • Filter Type: Regular (applied to a specific role) or Base (applied to all users)
    • Roles: Select which Calabi role this rule applies to
    • Tables: Select the CalabiIQ datasets the rule applies to
    • Clause: A SQL WHERE clause fragment, e.g.:
      region = '{{ current_username() }}'
      or using a custom attribute:
      department_code IN (
      SELECT department_code FROM user_departments WHERE username = '{{ current_username() }}'
      )

RLS Examples

Use CaseClause
Users see only their own region's dataregion = (SELECT region FROM user_profile WHERE username = '{{ current_username() }}')
Finance users see only Finance rowscost_center LIKE 'FIN%' (applied to the Finance Analyst role only)
Managers see their own team's recordsmanager_id = (SELECT user_id FROM users WHERE username = '{{ current_username() }}')
Everyone sees aggregate data; only Admins see PIIApply a PII masking rule to Analyst and Viewer roles

Module Access by Tier

Calabi's module availability varies by subscription tier. Even if a user has the Admin role, they cannot access modules not included in their tenant's tier.

ModuleStarterProfessionalEnterprise
CalabiIQYesYesYes
Calabi CatalogueYesYesYes
AI AgentYesYesYes
Calabi ConnectLimitedYesYes
Calabi PipelinesNoYesYes
Calabi TransformNoYesYes
Calabi AutomateNoYesYes
Calabi MLNoNoYes
Calabi AI BuilderNoNoYes
Multi-tenancyNoNoYes

Audit Logging for Permission Changes

All role assignments and permission changes are recorded in the Calabi audit log:

  • Event: role.assigned, role.removed, role.created, role.deleted, permission.changed
  • Actor: The admin user who made the change
  • Timestamp: UTC timestamp
  • Target: The affected user or role

Access audit logs at AdminAudit Logs or via the platform monitoring dashboards (see Platform Monitoring).