🧬 Flask Track Docs

Roles & Permissions

Flask Track uses a role-based access control system to ensure laboratory data, workflows, compliance records, and operational actions are only accessible to authorized users.

Roles determine:

Permissions are enforced at both the user interface and server level.


Access Control Philosophy

Laboratory systems require strong operational controls.

Flask Track roles are designed to:

Every user belongs to an organization and is assigned a role within that organization.


Role Hierarchy

Flask Track currently supports the following organizational roles:

Role Primary Purpose
Owner Full organizational control
Admin Administrative management
Scientist Scientific and workflow authoring
Technician Operational execution
Viewer Read-only access
No Access No organizational permissions

Higher-level roles inherit the capabilities of lower-level roles unless otherwise restricted.


Owner

Owners have unrestricted access to the organization and all organizational resources.

This role is typically reserved for:


Owner Capabilities

Owners can:

Owners effectively control the entire organizational environment.


Typical Owner Responsibilities


Admin

Admins have broad administrative access but do not possess ownership-level authority.

This role is commonly assigned to:


Admin Capabilities

Admins can:

Admins cannot perform restricted ownership-level operations.


Typical Admin Responsibilities


Scientist

Scientists are responsible for designing, managing, and analyzing scientific workflows and laboratory processes.

This role is intended for:


Scientist Capabilities

Scientists can:

Scientists typically cannot:


Typical Scientist Responsibilities


Technician

Technicians are responsible for operational execution and day-to-day laboratory work.

This role is intended for:


Technician Capabilities

Technicians can:

Technicians typically cannot:


Typical Technician Responsibilities


Viewer

Viewers have read-only access to organizational data.

This role is useful for:


Viewer Capabilities

Viewers can:

Viewers cannot:


No Access

Users without an assigned role or organizational membership have no access to organizational resources.

They cannot:


Permission Categories

Permissions are generally grouped into several operational categories.


Data Access

Controls whether users may:


Record Management

Controls whether users may:

Examples include:


Execution Permissions

Controls operational workflow capabilities such as:


Compliance Permissions

Controls access to compliance-related functionality including:


Administrative Permissions

Controls organization-wide management capabilities including:


Hidden Actions & Interface Behavior

Flask Track automatically adjusts the interface based on user permissions.

Users will only see actions they are authorized to perform.

Examples:

This helps:


Server-Side Security Enforcement

Permissions are enforced at the server level in addition to the user interface.

Even if a user manually attempts to access a restricted operation:

This ensures organizational protection even in cases of malformed requests or unauthorized access attempts.


Auditability & Accountability

Many sensitive operations are logged automatically.

Audit records may include:

This supports:


Principle of Least Privilege

Organizations should assign the minimum level of access necessary for each user.

Recommended practices include:

Strong permission management improves both security and compliance readiness.


Requesting Additional Access

If a user requires additional capabilities:

  1. Contact an Admin or Owner
  2. Explain the operational need
  3. Request the minimum required access level

Roles may be updated at any time by authorized administrators.


Future Expansion

Flask Track permissions are designed to support future expansion into more granular access control models, including:

Organizations with advanced operational requirements may adopt more specialized access models over time.


Last updated: roles and permissions reflect the current organizational access model of Flask Track.