Role-Based Access Control (RBAC) - Configuration Guide
Overview
Role-Based Access Control (RBAC) in the Permitting System provides a comprehensive framework for managing user permissions. The system uses a hierarchical structure of Roles, Resources, Modules, and Actions to control access to features and data throughout the platform.
Key Concepts
| Concept | Description |
|---|
| Role | A named collection of permissions assigned to users |
| Resource | A specific feature, entity, or data type that can be protected |
| Module | A logical grouping of related features or functionality |
| Action | A specific operation that can be performed (read, write, delete, etc.) |
| Permission | The combination of Resource + Action that grants specific access |
Prerequisites
Before configuring RBAC, ensure:
Quick Start: Step-by-Step Instructions
This section provides simple, direct instructions for common role management tasks.
How to Create a New Role
Step 1: Open Role Management
- Click Administration in the main navigation menu
- Click Settings in the sidebar
- Click Roles
Step 2: Add the New Role
- Click the Add New Role button (top right)
- Fill in the form:
- Role Name: Enter a descriptive name (e.g., "Permit Technician", "Inspector")
- Role Description: (Optional) Describe what this role does
- Click Next or scroll to the permissions section
Step 3: Select Permissions
- Permissions are grouped by module. Expand each module to see available permissions.
- For a typical Permit Technician role, select:
ENTITY_RECORD module: VIEW_ENTITY_RECORD, CREATE_ENTITY_RECORD, EDIT_ENTITY_RECORD
ENTITY_VIEWS module: VIEW
- For an Inspector role, also add:
CALENDAR_ADMIN: VIEW, MANAGE (for scheduling)
- Click Save to create the role
How to Assign a Role to a User
Step 1: Open User Management
- Click Administration in the main navigation menu
- Click User Management in the sidebar
- Find the user you want to modify (use the search bar if needed)
Step 2: Edit User Roles
- Click on the user's row to open their profile, OR click the Edit (pencil) icon
- Scroll to the Roles section
- Click the Roles dropdown
- Check the box next to each role you want to assign (e.g., "Permit Technician")
- Click Save or Update User
Step 3: Verify the Assignment
- The user must log out and log back in for the new permissions to take effect
- To verify, check the user's profile shows the assigned roles
How to Remove a Role from a User
- Go to Administration > User Management
- Click on the user to edit
- In the Roles section, uncheck the role you want to remove
- Click Save
- The user must log out and log back in for changes to take effect
Recommended Roles for Permitting
| Role Name | Purpose | Key Permissions |
|---|
| Permit Technician | Process permit applications | View/Create/Edit entity records, View dashboards |
| Senior Permit Technician | Process + approve permits | Same as above + Delete records, View all department data |
| Inspector | Conduct inspections | View/Edit entity records, Calendar access |
| Permit Supervisor | Manage staff, approve complex permits | All permit permissions + User management |
| Permit Administrator | Configure system | All permissions including Entity Manager configuration |
Troubleshooting
Common Issues
User Cannot Access Feature
Check:
- User's role has the required resource permission
- User's role includes the required module
- User has logged out and back in after permission changes
- Check browser console for authorization errors
Permission Changes Not Taking Effect
Check:
- Clear browser cache and local storage
- User must log out and log back in
- Verify the role was saved successfully
- Check that user is assigned to the updated role
Related Documentation
Technical Reference
The sections below provide detailed technical information for developers and advanced administrators.
Section 1: System Roles
1.1 Built-in Roles
The system includes the following predefined roles:
| Role | Value | Description | Typical Use |
|---|
| Super Admin | super_admin | Full system access | Platform administrators |
| User | user | Standard user access | Regular staff members |
| System Manager | system_manager | System configuration access | IT administrators |
| Department Manager | department_manager | Department-level management | Division supervisors |
| Department User | department_user | Department-level access | Department staff |
1.2 Role Hierarchy
| Level | Role | Inherits From |
|---|
| 1 | Super Admin | — |
| 2 | System Manager | Super Admin |
| 3 | Department Manager | System Manager |
| 4 | Department User | Department Manager |
| 5 | User | Department User |
Section 2: Resources
2.1 Core System Resources
| Resource | Value | Description |
|---|
| Users | users | User account management |
| Roles | roles | Role configuration |
| Permissions | permissions | Permission definitions |
| Role Permissions | role_permissions | Role-permission assignments |
| User Roles | user_roles | User-role assignments |
2.2 Entity Management Resources
| Resource | Value | Description |
|---|
| Entity Manager | ENTITY_MANAGER | Entity configuration access |
| Entity | ENTITY | Entity CRUD operations |
| Dashboards | DASHBOARDS | Dashboard access |
2.3 Document Processing / Process Library Resources
These resources control access to the Document Processing module (also known as Process Library). This module provides AI-powered permit evaluation, criteria management, and the permit dashboard for analytics.
| Resource | Value | Description | UI Location |
|---|
| Permit Process | PERMIT_PROCESS | Create/manage permit processes | Process Library > Processes |
| Permit Criteria | PERMIT_CRITERIA | Configure evaluation criteria | Process Library > Criteria |
| Permit Template | PERMIT_TEMPLATE | Manage permit form templates | Process Library > Templates |
| Permit Field | PERMIT_FIELD | Configure permit fields | Process Library > Field Config |
| Permit Integration | PERMIT_INTEGRATION | External system integrations | Process Library > Integrations |
| Permit Evaluation | PERMIT_EVALUATION | AI evaluation rules & scoring | Process Library > AI Rules |
| Permit Notification | PERMIT_NOTIFICATION | Notification settings | Process Library > Notifications |
| Permit Dashboard | PERMIT_DASHBOARD | Analytics & reporting dashboard | Process Library > Dashboard |
| Permit Determination | PERMIT_DETERMINATION | Approval/denial decisions | Process Library > Determinations |
| Permit Audit | PERMIT_AUDIT | Audit trail & history | Process Library > Audit Logs |
| Permit Report | PERMIT_REPORT | Generate permit reports | Process Library > Reports |
| Permit Explanation | PERMIT_EXPLANATION | AI-generated explanations | Process Library > AI Explanations |
Note: These resources are specific to the Document Processing (Process Library) module. Staff who only process permits through Entity Manager views do not need access to these resources.
2.4 Calendar/Scheduling Resources
| Resource | Value | Description |
|---|
| Calendar Admin | CALENDAR_ADMIN | Calendar administration |
2.5 Administration Resources
| Resource | Value | Description |
|---|
| Administration | ADMINISTRATION | Admin panel access |
| Security | SECURITY | Security settings |
| System Integration | SYSTEM_INTEGRATION | Integration management |
| User Management | USER_MANAGEMENT | User administration |
| Role Management | ROLE_MANAGEMENT | Role administration |
| Billing Management | BILLING_MANAGEMENT | Billing features |
| Profile Management | PROFILE_MANAGEMENT | User profile settings |
2.5 Communication Resources
| Resource | Value | Description |
|---|
| Message Management | MESSAGE_MANAGEMENT_PERMISSIONS | Message handling |
| Communication Channel | COMMUNICATION_CHANNEL_MANAGEMENT_PERMISSIONS | Channel setup |
| Communication Actions | COMMUNICATION_ACTIONS | Send/receive operations |
| Channel Specific | CHANNEL_SPECIFIC_PERMISSIONS | Per-channel settings |
| Department Management | DEPARTMENT_MANAGEMENT_PERMISSIONS | Department config |
2.6 Reporting & Analytics Resources
| Resource | Value | Description |
|---|
| Reports | REPORTS | Report access |
| Workflow | WORKFLOW | Workflow management |
| Data Import | DATA_IMPORT | Data import features |
| AI Insights | AI_INSIGHTS | AI analytics |
| Notifications | NOTIFICATIONS | Notification settings |
Section 3: Modules
3.1 Permitting Solution Modules
The following modules are used in the Permitting Solution. When configuring roles, focus on these modules:
| Module | Value | Description | Permitting Use |
|---|
| Entity Views | ENTITY_VIEW | View configuration | Permit list views, Kanban boards |
| Entity | ENTITY | Entity management | Permit type definitions |
| Entity Manager | ENTITY | Full entity manager access | Configure permit entities |
| Automation Builder | AUTOMATION_BUILDER | Automation configuration | Permit workflow automations |
| Entity Record | ENTITY_RECORD | Record-level access | Individual permit records |
| Apps | APPS | Application access | Core application access |
| User Management | USER_MANAGEMENT | User administration | Staff account management |
| Permit Processing | PERMIT_PROCESSING | Document Processing / Process Library | AI-powered permit evaluation |
Note: Other platform modules (Workforce, AI-EMS, EDS, Contract Analysis, Legal Assistant, Constituent Complaints) are not used in the Permitting Solution and are not covered in this guide.
Section 4: Actions
4.1 Standard CRUD Actions
| Action | Value (Legacy) | Value (New) | Description |
|---|
| Read | read | READ | View data |
| Write | write | WRITE | Create/modify data |
| Create | create | CREATE | Create new records |
| Update | update | UPDATE | Modify existing records |
| Delete | delete | DELETE | Remove records |
4.2 View & Manage Actions
| Action | Value | Description |
|---|
| View | VIEW | Read-only access |
| Manage | MANAGE | Full control |
| Edit | EDIT | Modification access |
| Configure | CONFIGURE | Configuration access |
4.3 Entity Record Actions
| Action | Value | Description |
|---|
| View Entity Record | VIEW_ENTITY_RECORD | View record details |
| Create Entity Record | CREATE_ENTITY_RECORD | Create new records |
| Edit Entity Record | EDIT_ENTITY_RECORD | Modify records |
| Delete Entity Record | DELETE_ENTITY_RECORD | Delete records |
| View Payment History | VIEW_PAYMENT_HISTORY | View payment records |
| View Audit Logs | VIEW_AUDIT_LOGS | View audit trail |
4.4 Workflow Actions
| Action | Value | Description |
|---|
| View Workflow | VIEW_WORKFLOW | View workflow status |
| View Error Data | VIEW_ERROR_DATA | View error logs |
| View Import Data | VIEW_IMPORT_DATA | View import history |
4.5 Message Actions
| Action | Value | Description |
|---|
| View All Messages | VIEW_ALL_MESSAGES | System-wide message access |
| View Department Messages | VIEW_DEPARTMENT_MESSAGES | Department message access |
| View Own Messages | VIEW_OWN_MESSAGES | Personal message access |
| Create Messages | CREATE_MESSAGES | Create new messages |
| Update Messages | UPDATE_MESSAGES | Modify messages |
| Delete Messages | DELETE_MESSAGES | Remove messages |
| Reassign Messages | REASSIGN_MESSAGES | Transfer messages |
| Archive Messages | ARCHIVE_MESSAGES | Archive messages |
4.6 Channel Actions
| Action | Value | Description |
|---|
| Create Email Channels | CREATE_EMAIL_CHANNELS | Set up email integration |
| Sync Email Channels | SYNC_EMAIL_CHANNELS | Synchronize email |
| Setup Voicemail | SETUP_VOICEMAIL_CHANNELS | Configure voicemail |
| Configure Physical Mail | CONFIGURE_PHYSICAL_MAIL_INTAKE | Mail intake setup |
| Setup Form Channels | SETUP_FORM_CHANNELS | Form integration |
4.7 Communication Actions
| Action | Value | Description |
|---|
| Send Email Responses | SEND_EMAIL_RESPONSES | Send emails |
| Send Drafts | SEND_DRAFTS | Send draft messages |
| Handle Voicemail | HANDLE_VOICEMAIL_RESPONSES | Process voicemail |
| Process Physical Mail | PROCESS_PHYSICAL_MAIL | Handle mail |
| Respond Via Forms | RESPOND_VIA_FORMS | Form responses |
| Initiate Outbound | INITIATE_OUTBOUND_COMMUNICATIONS | Start outreach |
4.8 Department Actions
| Action | Value | Description |
|---|
| Change Department Settings | CHANGE_DEPARTMENT_SETTINGS | Modify dept config |
| Assign Users to Departments | ASSIGN_USERS_TO_DEPARTMENTS | Cross-dept assignment |
| Assign Within Department | ASSIGN_USERS_WITHIN_DEPARTMENT | Intra-dept assignment |
| View All Department Data | VIEW_ALL_DEPARTMENT_DATA | Full dept access |
| View Own Department Data | VIEW_OWN_DEPARTMENT_DATA | Own dept access |
| Manage Department Routing | MANAGE_DEPARTMENT_ROUTING | Routing rules |
4.9 Access & Tracking Actions
| Action | Value | Description |
|---|
| Login Access | LOGIN_ACCESS | System login |
| Form Only Access | FORM_ONLY_ACCESS | Limited to forms |
| Track User Actions | TRACK_USER_ACTIONS | Activity logging |
| Add Knowledge | ADD_KNOWLEDGE | Knowledge base edits |
4.10 Reporting Actions
| Action | Value | Description |
|---|
| Generate All Reports | GENERATE_ALL_REPORTS | System-wide reports |
| Generate Department Reports | GENERATE_DEPARTMENT_REPORTS | Dept reports |
| View All Analytics | VIEW_ALL_ANALYTICS | Full analytics |
| View Department Analytics | VIEW_DEPARTMENT_ANALYTICS | Dept analytics |
Section 5: Creating and Managing Roles
5.1 Navigate to Role Management
Navigation: Administration → Settings → Roles
5.2 Create New Role
- Click Add New Role
- Enter role details:
| Field | Description | Required |
|---|
| Role Name | Unique name for the role | Yes |
| Role Description | Description of role purpose | No |
| Permissions | Selected permissions for this role | Yes |
5.3 Assign Permissions to Role
Permissions are grouped by Application/Module for easier management.
Application Management Filter:
The following modules are managed separately and excluded from the standard application permissions filter:
USER_MANAGEMENT
ENTITY_VIEWS
ENTITY
AUTOMATION_BUILDER
ENTITY_RECORD
5.4 Role CRUD Operations
| Operation | API Endpoint | Description |
|---|
| Create Role | useCreateRole | Create new role |
| Get Roles | useGetRoles | List all roles |
| Get Role Details | getRoleDetails | Get specific role |
| Get Role Permissions | useGetRolePermission | Get role's permissions |
| Update Role | useUpdateRole | Modify role |
| Delete Role | useDeleteRole | Remove role |
Section 6: View-Specific Permissions
6.1 Entity View Permissions
Views in the Entity Manager have their own permission system:
| Visibility | Value | Access Level |
|---|
| Personal | personal | Owner only |
| Public | public | Read-only for all |
| Collaborator | collaborator | Specific users |
6.2 Combining RBAC with View Permissions
The permission check follows this order:
- Module Access: User must have access to
ENTITY_VIEW module
- Resource Permission: User must have appropriate action on
ENTITY_VIEW resource
- View Visibility: View's visibility setting must allow user access
Section 7: Best Practices
7.1 Role Design Principles
- Principle of Least Privilege: Grant minimum permissions needed
- Role Grouping: Create roles based on job functions
- Avoid Individual Permissions: Use roles, not user-specific permissions
- Regular Audits: Review role assignments periodically
7.2 Permission Naming Conventions
| Pattern | Example | Use |
|---|
VIEW_* | VIEW_ENTITY_RECORD | Read-only access |
CREATE_* | CREATE_ENTITY_RECORD | Creation access |
EDIT_* | EDIT_ENTITY_RECORD | Modification access |
DELETE_* | DELETE_ENTITY_RECORD | Removal access |
MANAGE_* | MANAGE_DEPARTMENT_ROUTING | Full control |
7.3 Recommended Role Templates
Basic Staff Role:
| Category | Values |
|---|
| Permissions | VIEW_ENTITY_RECORD, CREATE_ENTITY_RECORD, VIEW_OWN_MESSAGES, VIEW_OWN_DEPARTMENT_DATA |
| Modules | ENTITY_RECORD, ENTITY_VIEWS |
Supervisor Role:
| Category | Values |
|---|
| Permissions | VIEW_ENTITY_RECORD, CREATE_ENTITY_RECORD, EDIT_ENTITY_RECORD, DELETE_ENTITY_RECORD, VIEW_DEPARTMENT_MESSAGES, VIEW_ALL_DEPARTMENT_DATA, ASSIGN_USERS_WITHIN_DEPARTMENT |
| Modules | ENTITY_RECORD, ENTITY_VIEWS, ENTITY |
Administrator Role:
| Category | Values |
|---|
| Permissions | All CRUD on entities, All department permissions, User management permissions, Role management permissions |
| Modules | All modules |
Code Reference
Source Files
| File | Location | Purpose |
|---|
| RBAC Constants | role-base-auth/src/Auth/constants.ts | Role, Resource, Module, Action definitions |
| RBAC Types | role-base-auth/src/Auth/types.ts | TypeScript type definitions |
| AllowedAccess | role-base-auth/src/Auth/AllowedAccess/ | Conditional rendering component |
| AllowedModule | role-base-auth/src/Auth/AllowedModule/ | Module-level access component |
| useRoleBasedAuth | role-base-auth/src/Auth/RoleBasedAuthContext/ | RBAC hook |
| Role Services | govt-assist-host/src/services/roles/ | Role CRUD operations |
| Role Page | govt-assist-host/src/pages/Roles/AddEditViewRoles/ | Role configuration UI |
API Routes
Role management uses the following API service files:
useCreateRole.ts - Create new role
useDeleteRole.ts - Delete role
useGetRoles.ts - List all roles
useGetRolePermission.ts - Get role permissions
useUpdateRole.ts - Update role
useGetBasePermissionsData.ts - Get available permissions
useGetBasePermissionsDataForModule.ts - Get module-specific permissions
This guide is aligned with the role-base-auth package and govt-assist-host codebase as of December 2025.