Skip to main content
PlaneConnection uses role-based access control (RBAC) to govern what users can see and do within the platform. Roles determine access to modules, features, and actions. The platform supports 24 distinct roles organized into five categories. The canonical role list is defined in the UserRole type and enforced by the ROLE_PERMISSIONS matrix. User roles are distinct from crew roles. A user role governs platform access; a crew role defines an individual’s function on a specific flight.
Users can hold multiple roles simultaneously within a workspace. A user’s effective permissions are the union of all their assigned roles. For example, a chief pilot who also serves as safety manager would hold both chief_pilot and safety_manager roles, receiving the combined permissions of both.

Role Categories


Core Workspace Roles

These three roles are always available regardless of which modules are enabled.

SMS/Safety Roles

These roles support the safety management system required by FAA 14 CFR Part 5. Several are regulatory designations defined in 14 CFR.

Operations Roles

These roles manage flight operations, crew, fleet, dispatch, and financial functions. Several are management positions defined in 14 CFR 119.69.

Portal Roles

Portal roles are scoped to customer-facing portals. They cannot access operator-side modules (safety, ops, FBO staff, dispatch, crew, or settings). Portal users access the platform at /{workspace}/portal.
Portal-only roles that attempt to access operator-side routes receive a redirect to the sign-in page rather than a 403 error.

System Roles

System roles operate above the workspace level and are managed by PlaneConnection staff. They cannot be assigned by workspace administrators.

Role Hierarchy

Roles do not follow a strict linear hierarchy. Different roles have domain-specific depth that does not fully overlap. The following shows general access breadth:

API Role Hierarchy

The REST API uses a numeric role hierarchy for coarse-grained access checks (higher number = more privileges). This is separate from the fine-grained permission matrix used in the main app:
The API uses this numeric hierarchy for access control checks. The main application uses a full permission matrix for resource-level access control, which is more granular than numeric levels.

Multi-Role Support

Users can hold multiple roles simultaneously within a workspace. This is common in smaller operations where personnel serve multiple functions:
  • A chief pilot who is also the safety manager holds both chief_pilot and safety_manager roles.
  • A director of operations who handles dispatch holds both director_of_operations and dispatcher roles.
  • A sole proprietor may additionally hold safety_manager to gain confidential identity access.
The effective permissions are the union of all assigned roles. If any role grants an action on a resource, the user has that permission. Multi-role assignments are managed on the Members page under Settings.
Beyond multi-role assignment, PlaneConnection also supports permission sets — composable permission bundles that layer additional capabilities on top of a user’s base role without assigning an entirely new role.

Module-Based Role Availability

Not all roles are available in every workspace. Roles are tied to modules, and only roles whose module is enabled appear in the role assignment dropdown:
Module availability determines which roles appear in the role assignment dropdown. Roles marked “always available” appear regardless of which modules are enabled. The getAvailableRoles() function filters the dropdown based on a workspace’s enabled modules.Cross-module access: Roles are not restricted to a single module. A role can access any module where it has permissions in the permission matrix. For example, a dispatcher (ops role) can access the FBO module because the permission matrix grants fbo: ["create", "read", "update"]. Module access is determined by permissions, not by role category. See ADR-012 for the design rationale.

Role Assignment Rules

Permissions Matrix

Full feature-by-role permissions matrix and permission sets.

Manage Users

Invite users, assign roles, and manage access.

Crew Roles

Operational crew role definitions (distinct from user roles).

Multi-Tenancy

How workspaces and data isolation work.
Last modified on April 3, 2026