Skip to main content

Roles & Permissions

Parthenon uses role-based access control (RBAC) powered by Spatie Laravel Permission. Roles are collections of named permissions assigned to users. A user can hold multiple roles, and their effective permissions are the union of all permissions from all assigned roles.

Built-in Roles

Parthenon ships with four built-in roles that cover the most common organizational structures in outcomes research:

RoleDescriptionTypical Users
super-adminAll permissions. Full system control including authentication providers, AI configuration, system health, and vocabulary management.Platform administrators, IT leads
adminUser management, data source management, system health monitoring. Cannot modify system-level authentication or AI provider settings.Department leads, data managers
researcherFull read/write on cohorts, concept sets, and analyses. Can generate cohorts, run analyses, and access patient timelines. Cannot manage users or data sources.Epidemiologists, data scientists, pharmacoepidemiologists
viewerRead-only access to cohort definitions, concept sets, analysis results, and Data Explorer. Cannot generate cohorts, run analyses, or access patient-level data.Stakeholders, reviewers, trainees

Permission Reference

Permissions follow the action:resource naming convention. Each permission controls a specific capability:

User & System Permissions

PermissionDescriptionRoles
view:usersList and view user accountsadmin, super-admin
manage:usersCreate, edit, suspend, delete usersadmin, super-admin
manage:systemSystem health, queue management, AI providers, vocabularysuper-admin
manage:authConfigure authentication providers (LDAP, SAML, OAuth)super-admin

Data Source Permissions

PermissionDescriptionRoles
view:sourcesList and view data source configurationsall roles
manage:sourcesCreate, edit, delete data sources and daimonsadmin, super-admin

Research Permissions

PermissionDescriptionRoles
view:cohortsView cohort definitions and generation resultsviewer, researcher, admin, super-admin
manage:cohortsCreate, edit, delete cohort definitionsresearcher, admin, super-admin
generate:cohortsExecute cohort generation jobs against CDMresearcher, admin, super-admin
view:analysesView analysis configurations and resultsviewer, researcher, admin, super-admin
manage:analysesCreate, edit, delete analysesresearcher, admin, super-admin
run:analysesExecute analysis jobs (characterization, PLE, PLP, etc.)researcher, admin, super-admin
view:patientsAccess patient-level timeline data (PHI)researcher, admin, super-admin

Genomics, Imaging & HEOR Permissions

PermissionDescriptionRoles
manage:genomicsUpload VCF files, manage genomic data, run analysesresearcher, admin, super-admin
manage:imagingImport DICOM studies, manage imaging dataresearcher, admin, super-admin
manage:heorCreate and run HEOR economic analysesresearcher, admin, super-admin

Creating Custom Roles

Administrators can create custom roles for specialized use cases that do not fit the built-in roles:

  1. Navigate to Admin > Roles.
  2. Click New Role.
  3. Enter a Role Name using snake_case (e.g., data_steward, study_coordinator, vocabulary_manager).
  4. Select the permissions to include from the full permission checklist.
  5. Optionally add a Description explaining the role's purpose.
  6. Click Save.

Example Custom Roles

Custom RolePermissionsUse Case
data_stewardview:sources, manage:sources, view:cohortsSource configuration without research access
study_coordinatorview:cohorts, view:analyses, view:patientsRead-only research access with PHI
vocabulary_managerview:sources, manage:system (restricted)Vocabulary upload and refresh only
genomics_analystview:cohorts, manage:genomics, view:patientsGenomics-focused research role

Role Assignment

Users can hold multiple roles simultaneously. Their effective permission set is the union of all permissions across all assigned roles. For example, a user with both researcher and data_steward roles can:

  • Create and generate cohorts (from researcher)
  • Manage data sources (from data_steward)
  • Access patient timelines (from researcher)

Assignment Workflow

  1. Navigate to Admin > Users.
  2. Click Edit on the target user.
  3. In the Roles section, check or uncheck role boxes.
  4. Click Save.

Role changes take effect immediately -- the user's next API call uses the updated permission set. No logout/login is required.

Super-Admin Bypass

Users with the super-admin role bypass all permission checks entirely. They have unrestricted access to every resource and action in the platform, regardless of their explicit permission list. Key properties:

  • Super-admin status is assigned via the database (through the admin UI or admin:seed command)
  • Super-admin users cannot remove their own super-admin role (prevents accidental lockout)
  • At least one super-admin must exist at all times
Principle of least privilege

Assign the minimum role required for each user's job function. Specific guidelines:

  • Do not grant researcher to users who only need to review results -- use viewer instead
  • Do not grant super-admin to department leads -- use admin for user management without system configuration access
  • Create custom roles for specialized functions rather than over-granting built-in roles
  • Review role assignments quarterly to remove stale access

This limits the blast radius of compromised credentials and satisfies compliance requirements for healthcare data governance (HIPAA minimum necessary standard).

Domain-Based Permissions

For organizations requiring source-level access control, Parthenon supports domain-based permission scoping:

  • A researcher can be granted access to specific data sources rather than all sources
  • Patient timeline access can be restricted to specific CDM databases
  • Analysis execution can be limited to designated sources

Configure domain-based permissions in Admin > Users > [User] > Source Access.

Permission Audit

Navigate to Admin > Roles > Permission Audit to see a matrix of all roles and their permissions. This view helps administrators:

  • Verify that role configurations match organizational policies
  • Identify permission gaps or overlaps
  • Export the permission matrix as CSV for compliance documentation