GovernRBACOverview

Role-Based Access Control (RBAC)

SignalSmith uses role-based access control to manage who can access and modify resources within a workspace. The RBAC system provides three built-in roles, 42 fine-grained permissions across 14 resource categories, and an additive permission model that makes it straightforward to reason about what any member can do.

How RBAC Works

Every workspace member is assigned exactly one role. That role determines which permissions the member has. Permissions are checked on every API request and UI action — if a member lacks the required permission, the action is denied.

Core Concepts

ConceptDescription
RoleA named set of permissions. Every member has exactly one role.
PermissionA specific action on a specific resource type (e.g., sources.create, audiences.delete).
GroupA collection of members used for access filter assignment. Groups do not grant additional permissions — they control data visibility via access filters.
Access FilterA row-level filter assigned to a group. When active, it restricts which data rows a member can see.

Additive Permission Model

SignalSmith uses an additive permission model — permissions are granted, never denied. A member’s effective permissions come entirely from their assigned role. There is no concept of “deny” rules or permission overrides.

This means:

  • If a role includes a permission, the member can perform that action
  • If a role does not include a permission, the member cannot perform that action
  • There are no ways to selectively deny a permission that a role grants

Permission Evaluation

When a member performs an action (via the UI or API), SignalSmith:

  1. Identifies the member’s role
  2. Looks up the permissions associated with that role
  3. Checks if the required permission for the action is present
  4. Allows or denies the action accordingly

This check happens in middleware on every API request, ensuring consistent enforcement regardless of how the action is initiated.

Built-in Roles

SignalSmith provides three built-in roles that cover common organizational patterns:

RoleTarget UsersSummary
OwnerWorkspace creators, billing contactsFull unrestricted access, including workspace deletion and ownership transfer
AdminTeam leads, senior operatorsFull access to all resources and settings, except workspace deletion
MemberAnalysts, marketers, individual contributorsRead/write access to operational resources; no access to infrastructure or governance settings

See Roles for a detailed permission comparison.

Permission Categories

Permissions are organized into 14 resource categories:

CategoryPermissionsDescription
Sources5Manage warehouse connections
Models4Manage SQL models
Destinations5Manage destination connections
Syncs5Manage data syncs
Audiences4Manage audience segments
Traits4Manage computed traits
Identity Graphs2Manage identity resolution
Journeys2Manage multi-step journeys
Events2Manage event ingestion
Loaders2Manage loaders
Govern2Manage filters, access filters, groups
Insights1View analytics dashboards
Settings2Manage workspace settings
Agent2Manage AI agent sessions

Total: 42 permissions across 14 categories.

See Permissions for the complete reference table.

Groups and Access Filters

While roles control what actions a member can perform, groups and access filters control what data a member can see.

  • Groups organize members into logical teams (e.g., “EMEA Marketing”, “Partner Support”)
  • Access Filters are SQL filter conditions assigned to groups (e.g., region = 'EMEA')
  • When a member belongs to a group with an access filter, all their queries are automatically filtered

Groups do not grant additional permissions. They are purely a mechanism for managing data visibility through access filters.

See Groups and Access Filters for details.

Quick Start

1. Understand the Default Roles

When a workspace is created, the creator is assigned the Owner role. New members invited to the workspace are assigned the role specified in the invitation.

2. Invite Members with Appropriate Roles

For most team members, start with the Member role. Promote to Admin when a member needs to manage infrastructure resources (sources, destinations) or governance settings.

3. Create Groups for Data Access

If different teams need to see different portions of data, create groups and assign access filters:

  1. Create a group (e.g., “EMEA Team”)
  2. Create an access filter (e.g., region = 'EMEA')
  3. Assign the access filter to the group
  4. Add members to the group

4. Set Up Destination Filters

If you need to control where data can flow, create destination filters to block, transform, or rate-limit syncs.

API Reference

# Members
GET    /api/v1/members
POST   /api/v1/members/invite
PUT    /api/v1/members/{id}
DELETE /api/v1/members/{id}
 
# Groups
GET    /api/v1/groups
POST   /api/v1/groups
PUT    /api/v1/groups/{id}
DELETE /api/v1/groups/{id}
 
# Group Membership
POST   /api/v1/groups/{id}/members
DELETE /api/v1/groups/{id}/members/{member_id}

See the API Reference for full request/response schemas.

Pages in This Section

  • Roles — Built-in role definitions and permission comparison
  • Permissions — Complete permission reference (42 permissions, 14 categories)
  • Groups — Creating and managing groups
  • Managing Members — Inviting, modifying, and removing workspace members