Skip to main content

Role-Based Access Control (RBAC)

Switchyard uses a comprehensive RBAC system built on Supabase, providing granular control over user permissions.

Database Schema

The RBAC system consists of five core tables:

roles

Stores role definitions.

permissions

Stores permission definitions following the resource.action pattern.

role_permissions

Junction table linking roles to permissions.

user_roles

Junction table linking Supabase users to roles.

Default Roles

Permissions

Permissions follow the resource.action naming convention:

Default Permission Assignments

Helper Functions

The RBAC schema includes SQL helper functions:

Check Permission

Get User Roles

Get User Permissions

Check Any Permission

Using Authorization in Routes

Middleware Configuration

Checking Permissions in Code

Assigning Roles to Users