Role-based access control (RBAC)#
SeqsLab role-based access control (SeqsLab RBAC) allows administrators to enforce fine-grained access to datasets, tools, and jobs. Registered users may have limited read and/or write access permissions depending on their assigned roles, ensuring the secure storage and processing of potentially sensitive genomic and biomedical datasets.
Table of Contents#
Overview#
What is RBAC?#
Role-Based Access Control (RBAC) is a security framework that restricts system access based on a userβs role within an organization. Instead of assigning permissions directly to individual users, SeqsLab groups permissions into roles that align with specific job functions.
Why RBAC?#
Security: Ensures users only access resources necessary for their job function
Compliance: Meets regulatory requirements (HIPAA, GDPR, CLIA/CAP) for genomic and clinical data
Simplicity: Easier to manage permissions for groups of users rather than individuals
Auditability: Clear tracking of who can access what resources and when
Scalability: Easy to onboard new users by assigning appropriate roles
Key Features#
SeqsLab RBAC implements several critical security principles:
Least Privilege: Users receive only the minimum permissions needed for their tasks
Organization Isolation: All data is strictly isolated by organization - users cannot access resources from other organizations
Ownership Tracking: Resources track who created them for fine-grained access control
Composable Roles: Roles can inherit from other roles to build complex permission structures
Service Integration: Consistent RBAC across all SeqsLab services (DRS, TRS, WES, Healthcare)
Architecture#
Core Components#
The SeqsLab RBAC system consists of three main components:
Users: Individual accounts associated with an organization
Roles: Named collections of permissions (e.g., βData hub writerβ, βJob executorβ)
Permissions: Specific actions on resources (e.g., βview DRS objectβ, βexecute workflowβ)
User β Assigned Roles β Permissions β Access to Resources
Permission Model#
Each resource in SeqsLab defines permissions for standard CRUD operations:
add: Create new instances
view: Read a single instance
list: Query/list multiple instances
change: Update an existing instance
delete: Remove an instance
Some services define additional custom permissions:
writeDs/readDs: Dataset content operations (DRS)
versions/files: Tool version management (TRS)
requests: Run request management (WES)
Permission Evaluation Flow#
When a user attempts an action, SeqsLab evaluates permissions in this order:
βββββββββββββββββββββββ
β User Request β
ββββββββββββ¬βββββββββββ
β
βΌ
ββββββββββββββββ
βAuthenticated?βββNOβββΊ 401 Unauthorized
ββββββββ¬ββββββββ
βYES
βΌ
ββββββββββββββββββ
βHas Required βββNOβββΊ 403 Forbidden
βRole? β
ββββββββ¬ββββββββββ
βYES
βΌ
ββββββββββββββββββ
βSame βββNOβββΊ 404 Not Found
βOrganization? β
ββββββββ¬ββββββββββ
βYES
βΌ
ββββββββββββββββββ
βOwns Resource? βββNOβββΊ 403 Forbidden
β(if required) β
ββββββββ¬ββββββββββ
βYES
βΌ
ββββββββββββββββββ
βCustom Checks? βββNOβββΊ 403 Forbidden
ββββββββ¬ββββββββββ
βYES
βΌ
βββββββββββ
β ALLOWED β
βββββββββββ
Role Hierarchy#
Global Roles#
These roles provide organization-wide or platform-wide access:
GlobalAdministrator#
Scope: Platform-wide
Description: Complete control over the platform and all services
Capabilities:
Manage all organizations
Configure platform settings
Access all resources across organizations
Manage runtime options and operator pipelines
Note
This role should be reserved for platform operators and system maintainers only.
OrganizationAdministrator#
Scope: Organization-wide
Description: Manages all aspects of services within an organization
Inherits From: UserAdministrator, JobAdministrator, DataAdministrator, ToolAdministrator, LabelAdministrator
Capabilities:
Manage users and role assignments
Configure organization settings
Access all data, tools, and jobs within organization
Limitations: Cannot manage platform-level settings or other organizations
UserAdministrator#
Scope: Organization users
Description: Manages user accounts and role assignments
Capabilities:
Create and deactivate user accounts
Assign roles to users
Create custom roles
View user activity
Service-Specific Roles#
SeqsLab implements specialized roles for each service. Below is a summary; detailed information is available in service-specific sections.
Data Repository Service (DRS)#
Manages genomic data objects and datasets:
Role |
Access Level |
Description |
|---|---|---|
DataHubViewer |
Read-only |
View DRS object metadata |
DataHubWriter |
Read-write |
Create and manage own DRS objects |
DataHubAdministrator |
Admin |
Manage all DRS objects in organization |
DatasetViewer |
Read-only |
Download dataset files |
DatasetWriter |
Read-write |
Upload dataset files |
DatasetAdministrator |
Admin |
Manage all datasets |
DataAdministrator |
Full admin |
Complete control over data hub and datasets |
Tool Registry Service (TRS)#
Manages workflow tools and containers:
Role |
Access Level |
Description |
|---|---|---|
ToolRegistryViewer |
Read-only |
Browse available tools |
ToolRegistryWriter |
Read-write |
Register new tools |
ToolRegistryAdministrator |
Admin |
Manage all tools |
ToolUser |
Read-only |
View and download tools for workflows |
ToolSupporter |
Read-write |
Manage tool files |
ToolVersionDeveloper |
Read-write |
Create and manage tool versions |
ToolAdministrator |
Full admin |
Complete tool management |
Workflow Execution Service (WES)#
Executes and manages workflow runs:
Role |
Access Level |
Description |
|---|---|---|
JobViewer |
Read-only |
View workflow runs and logs |
JobExecutor |
Read-write |
Submit and manage own workflow runs |
JobAdministrator |
Admin |
Manage all workflow runs in organization |
Note
JobExecutor automatically inherits DataHubWriter and ToolUser permissions to facilitate workflow execution.
Healthcare Service#
Manages clinical and genomic patient data:
Role |
Workflow Stage |
Description |
|---|---|---|
ReporterDataEntryOperator |
Data Entry |
Enter patient and sample data |
LaboratorySupervisor |
Quality Control |
Review and approve samples |
BioinformaticsScientist |
Analysis |
Analyze variants and create interpretations |
MedicalTechnologist |
Data Management |
Manage laboratory data uploads |
MedicalDirector |
Final Review |
Sign off on clinical reports |
Important
Healthcare roles are state-based: permissions depend on the biosampleβs current workflow state (PENDING β REVIEW β ANALYSIS β COMPLETE).
Label Service#
Manages resource organization tags:
Role |
Access Level |
Description |
|---|---|---|
LabelWriter |
Read-write |
Create and edit labels for organizing resources |
LabelAdministrator |
Admin |
Manage all labels in organization |
User Guide: Choosing the Right Roles#
Common Use Cases#
Use this table to identify which roles you need based on your tasks:
I want to⦠|
Required Role(s) |
Notes |
|---|---|---|
Data Management |
||
View data object metadata |
|
Read-only access |
Download data files |
|
Requires DataHubViewer for metadata |
Upload new data |
|
Both metadata and file permissions needed |
Manage all organization data |
|
Full administrative access |
Tool Management |
||
Browse available tools |
|
Read-only |
Use tools in workflows |
|
Required for job execution |
Register new tools |
|
|
Develop tool versions |
|
|
Manage all tools |
|
|
Workflow Execution |
||
View workflow status |
|
Monitor runs |
Run workflows |
|
Includes data and tool access |
Manage all runs |
|
Cancel/modify any run |
Clinical Workflows |
||
Enter patient data |
|
Initial data entry |
Review samples |
|
Quality control |
Analyze genomic data |
|
Variant interpretation |
Sign clinical reports |
|
Final approval |
Administration |
||
Manage users |
|
Create users, assign roles |
Manage organization |
|
Full organization control |
Common User Personas#
Instead of assigning individual roles, consider these typical job profiles:
𧬠Bioinformatics Scientist#
Runs analysis pipelines and interprets genomic data
Recommended Roles:
JobExecutor(includesDataHubWriterandToolUser)BioinformaticsScientist(for clinical interpretation)ToolVersionDeveloper(if developing custom pipelines)
Can:
Upload reference genomes and sample data
Submit and monitor workflow runs
Access analysis results
Create variant interpretations
Develop custom analysis tools
π§ͺ Lab Technician#
Manages sample intake and data entry
Recommended Roles:
ReporterDataEntryOperator(patient data entry)MedicalTechnologist(includesDataAdministrator)
Can:
Enter patient and biosample information
Upload sequencing data files
Manage laboratory data repository
Track sample status
π Lab Manager/Supervisor#
Oversees quality control and team operations
Recommended Roles:
LaboratorySupervisor(QC and approval)OrganizationAdministrator(team management)
Can:
Review and approve biosamples
Monitor workflow execution
Manage user accounts and roles
Configure organization settings
Audit access and activity
π©Ί Medical Director#
Provides clinical oversight and report sign-off
Recommended Roles:
MedicalDirector(clinical sign-off)JobViewer(optional, for monitoring)
Can:
Review variant interpretations
Sign clinical reports
View analysis status
Access patient phenotype data
π Data Scientist#
Analyzes genomic data without clinical reporting
Recommended Roles:
JobExecutor(includesDataHubWriterandToolUser)DatasetViewer(access to datasets)
Can:
Run analysis workflows
Access and download datasets
Create and manage data objects
View workflow results
How Permissions Work#
Organization Isolation#
Every user and resource belongs to an organization (identified by Organization ID). This creates strict boundaries:
Users can only access resources within their organization
Cross-organization access is never allowed
Resources from other organizations appear as βnot foundβ (404)
Important
Organization isolation is enforced at every layer of the system and cannot be bypassed except by GlobalAdministrator.
Ownership-Based Access#
For certain operations, resource ownership determines access:
Writer roles (e.g., DataHubWriter, ToolRegistryWriter) can modify their own resources
Administrator roles can modify all resources in the organization
Ownership is determined by the user who created the resource
Example:
Alice (DataHubWriter) creates
genome_sample_1.vcfβ Alice can modify and delete itBob (DataHubWriter) cannot modify Aliceβs file
Carol (DataHubAdministrator) can modify both Aliceβs and Bobβs files
State-Based Permissions (Healthcare)#
Healthcare resources use workflow states to control access:
βββββββββββ ββββββββββ ββββββββββββ ββββββββββββ
β PENDING βββββΊβ REVIEW βββββΊβ ANALYSIS βββββΊβ COMPLETE β
βββββββββββ ββββββββββ ββββββββββββ ββββββββββββ
β β β β
βββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββββ
ReporterData Laboratory Bioinformatics Medical
EntryOperator Supervisor Scientist Director
Each role can only modify biosamples in specific states:
PENDING: ReporterDataEntryOperator enters patient dataREVIEW: LaboratorySupervisor performs quality controlANALYSIS: BioinformaticsScientist analyzes variantsCOMPLETE: MedicalDirector signs final report
Role Composition#
Roles can inherit permissions from other roles:
JobExecutor inherits from:
ββ LabelWriter (manage resource labels)
ββ DataHubWriter (manage DRS objects)
ββ ToolUser (view and use tools)
This means a user with JobExecutor automatically has all permissions from LabelWriter, DataHubWriter, and ToolUser.
Cross-Service Workflows#
Typical Genomic Analysis Pipeline#
A complete genomic analysis involves multiple services and roles:
1. Data Upload (DRS)
Role: DataHubWriter, DatasetWriter
Action: Upload reference genomes and sample data
Result: DRS objects created and registered
2. Tool Registration (TRS)
Role: ToolRegistryWriter, ToolVersionDeveloper
Action: Register analysis workflows and tools
Result: Tools available in registry
3. Job Execution (WES)
Role: JobExecutor
Action: Submit workflow with DRS inputs and TRS tools
Result: Analysis runs with monitored progress
4. Result Management (DRS)
Role: DataHubWriter, DatasetWriter
Action: Store analysis outputs as DRS objects
Result: Results accessible for downstream analysis
5. Clinical Reporting (Healthcare) (if applicable)
Role: BioinformaticsScientist, MedicalDirector
Action: Create interpretations and sign reports
Result: Clinical-grade report generated
Required Role Combinations#
Common role combinations for different workflows:
Basic Genomic Analysis:
DataHubViewer+DatasetViewer+JobViewer(read-only access)
Research Analysis:
DataHubWriter+DatasetWriter+JobExecutor+ToolUser
Clinical Laboratory Workflow:
ReporterDataEntryOperator+LaboratorySupervisor+BioinformaticsScientist+MedicalDirector
Platform Administration:
OrganizationAdministrator(includes all sub-administrator roles)
Best Practices#
For Administrators#
Apply Least Privilege: Assign the minimum roles necessary for each userβs job function
Regular Audits: Review user roles quarterly and remove unnecessary permissions
Use Personas: Assign role bundles based on job titles rather than individual permissions
Document Exceptions: If granting elevated privileges, document the business justification
Monitor Access: Review access logs regularly for unusual patterns
Onboarding Process: Create standard role assignments for common job functions
Offboarding Process: Immediately revoke access when users leave the organization
For Users#
Request Appropriate Roles: Understand your job function and request matching roles from your administrator
Report Access Issues: If you encounter permission errors, contact your UserAdministrator
Never Share Credentials: Each user must have their own account for audit purposes
Respect Data Boundaries: Do not attempt to access resources outside your organization
Follow Workflows: For healthcare, respect biosample state transitions
Review Permissions: Periodically verify you have the roles you need
Security Considerations#
Data Protection#
β All data encrypted at rest and in transit
β Comprehensive audit logging for compliance
β Automatic session timeout after inactivity
β Strong password policies enforced
β Multi-factor authentication available
Compliance#
HIPAA: Healthcare module implements HIPAA-compliant access controls for protected health information
GDPR: Data deletion and export capabilities for user privacy rights
SOC 2: Audit logging and access controls for security compliance
CLIA/CAP: Clinical laboratory workflow enforcement for diagnostic testing
Threat Mitigation#
Threat Mitigation#
Injection Attacks: Protection against SQL injection and command injection
Cross-Site Request Forgery (CSRF): Standard protection enabled for all forms
Cross-Site Scripting (XSS): Content sanitization and security policies
Privilege Escalation: Role checks enforced at every layer
Data Leakage: Organization isolation strictly enforced
Troubleshooting#
Common Issues#
βPermission Deniedβ Errors#
Symptom: 403 Forbidden when attempting an action
Possible Causes:
Missing required role
Resource belongs to another user (ownership required)
Resource in wrong state (healthcare workflows)
Organization mismatch
Solutions:
Check your assigned roles with your administrator
Verify you own the resource or have administrator role
Verify biosample workflow state
Confirm resource belongs to your organization
βResource Not Foundβ Errors#
Symptom: 404 Not Found when accessing a resource you know exists
Possible Causes:
Resource belongs to different organization
Missing view/list permission
Resource has been deleted
Solutions:
Verify organization ID matches your account
Request appropriate viewer role
Contact resource owner or administrator
Cannot Modify Resources#
Symptom: Can view resources but not edit them
Possible Causes:
Have viewer role but not writer role
Resource owned by another user
Healthcare biosample in wrong state
Solutions:
Request writer or administrator role
Ask resource owner to transfer ownership or request administrator role
Wait for biosample to reach appropriate state
Getting Help#
Step 1: Check this documentation
Review relevant sections above
Check the βCommon Use Casesβ table
Verify your assigned roles
Step 2: Contact your administrator
UserAdministrator can review and modify your roles
OrganizationAdministrator can resolve organization-level issues
Step 3: Submit a support ticket
For platform issues: support@seqslab.net
Include: username, organization, action attempted, error message
Role Assignment Guide#
For Administrators: How to Assign Roles#
Log in with
UserAdministratoror higher privilegesNavigate to User Management section
Select the user to modify
Locate Roles configuration
Select roles from:
Pre-defined personas (recommended)
Individual roles (for custom needs)
Save changes
Notify user - they may need to log out and back in
Tip
Roles are additive. A user with multiple roles has the combined permissions of all assigned roles.
Example Role Assignments#
Example 1: Research Organization#
Organization: GenomicsLab Inc.
User |
Job Title |
Assigned Roles |
Rationale |
|---|---|---|---|
Alice |
Lab Manager |
OrganizationAdministrator |
Manages team and resources |
Bob |
Bioinformatician |
DataHubWriter, ToolUser, JobExecutor |
Runs analyses |
Carol |
Research Scientist |
DataHubViewer, JobViewer |
Views data and results |
Example 2: Clinical Laboratory#
Organization: MedGen Diagnostics
User |
Job Title |
Assigned Roles |
Rationale |
|---|---|---|---|
Dr. Smith |
Laboratory Director |
MedicalDirector, OrganizationAdministrator |
Signs reports, manages org |
Emily |
Genetic Counselor |
ReporterDataEntryOperator, MedicalTechnologist |
Enters data, manages uploads |
Frank |
Lab Supervisor |
LaboratorySupervisor |
QC and sample approval |
Grace |
Bioinformatics Scientist |
BioinformaticsScientist, JobExecutor |
Analyzes variants |
Summary#
SeqsLab RBAC provides:
β
Comprehensive Security: Fine-grained access control across all services
β
Organization Isolation: Strict boundaries between organizations
β
Flexible Roles: Composable roles that match real-world job functions
β
Compliance Ready: Meets HIPAA, GDPR, CLIA/CAP requirements
β
Ease of Management: Persona-based role assignment for common use cases
β
Audit Trail: Complete logging for security and compliance
Quick Start Checklist#
For Administrators setting up RBAC:
[ ] Identify job functions in your organization
[ ] Map job functions to role personas
[ ] Create user accounts with appropriate roles
[ ] Document any custom role assignments
[ ] Schedule quarterly role audits
For Users working with RBAC:
[ ] Understand your assigned roles
[ ] Know who your UserAdministrator is
[ ] Request additional roles if needed
[ ] Report permission issues promptly
[ ] Follow security best practices
Further Reading#
For detailed technical information:
GA4GH Standards: ga4gh.org
HL7 FHIR: hl7.org/fhir