Skip to main content

Roles & Permissions Overview

The AuthSec RBAC system provides granular, scoped access control for multi-tenant applications. It supports role-based permissions with both tenant-wide and resource-scoped access.

Base URL​

https://dev.api.authsec.dev/uflow

Key Concepts​

Roles​

Roles define a named set of permissions that can be assigned to users. Each role has a name, description, and a set of associated permissions.

Permissions​

Atomic permission units defined as resource:action pairs (e.g., users:read, billing:write). Permissions are registered individually and then attached to roles.

Role Bindings​

The association between a user and a role, optionally scoped to a specific resource. Bindings can be:

  • Tenant-wide (scope = NULL): Permission applies across the entire tenant
  • Resource-scoped (scope_type + scope_id): Permission limited to a specific resource

Scopes​

Named access levels (e.g., read, write, admin) that map to resources. Scopes define what resources a user can access and are embedded in JWT tokens.

API Scopes (OAuth)​

OAuth-style scope contracts that map to internal permissions. Used for client-facing API authorization.

RBAC Architecture​

User → Role Binding → Role → Role Permissions → Permission (resource:action)
↓
Scope (tenant-wide or resource-scoped)

Admin vs End-User APIs​

The RBAC system provides parallel APIs for two contexts:

ContextBase PathDatabaseUse Case
Admin/uflow/admin/*Primary/Master DBGlobal admin operations
End User/uflow/user/rbac/*Tenant DBTenant-scoped operations

Both contexts support the same CRUD operations for roles, permissions, bindings, and scopes.

Authentication​

All endpoints require Bearer token authentication:

Authorization: Bearer YOUR_JWT_TOKEN

API Sections​

Roles & Bindings​

Create, list, update, and delete roles. Assign roles to users via role bindings.

Permissions​

Register atomic permissions, list permissions with role counts, and manage resource-action pairs.

Scopes​

Manage scope-to-resource mappings for fine-grained access control.

API Scopes (OAuth)​

Create OAuth scope contracts that map to internal permissions.

Authorization (Policy Check)​

Runtime policy checking for authorization decisions.