Skip to content

Commit 27e1e7d

Browse files
authored
Merge pull request #166 from genestack/feature/access-control
Article about Access Control and Data Governance overview
2 parents b37dc74 + 84d777b commit 27e1e7d

File tree

10 files changed

+275
-1
lines changed

10 files changed

+275
-1
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Authorisation via an Access Token
2+
3+
## Overview
4+
5+
* To access ODM APIs, users must provide an authorization token.
6+
* The token defines which data can be retrieved and which operations are permitted (e.g.,
7+
view-only vs. edit).
8+
9+
## Genestack API Token
10+
11+
* Personal access tokens provide permanent API access to a user’s data.
12+
* Features:
13+
* A user can create multiple tokens.
14+
* Tokens can be revoked at any time.
15+
* Tokens are requested in the user profile or by clicking “Generate API Token” on
16+
the starting page.
17+
* Use the header: `Genestack-Api-Token`.
18+
19+
## Identity Provider Access Token
20+
21+
* ODM also supports access tokens from an identity provider (e.g., Azure AD).
22+
* Use the header: `Authorization`.
23+
* Additional configuration is required to enable identity provider token usage.
24+
25+
## Important Notes
26+
27+
* If both tokens are provided, the identity provider access token takes precedence.
28+
* For security and consistency, enterprise deployments should prefer identity provider
29+
tokens where possible.

docs/access-control/governance.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Data Governance
2+
3+
The Open Data Manager (ODM) platform indexes both data and metadata to support efficient
4+
search and exploration.
5+
6+
## Metadata
7+
8+
* A structured representation of metadata is stored in ODM’s internal MySQL database.
9+
* This acts as a partial copy of metadata, ensuring fast performance for:
10+
11+
* Search
12+
* Filtering
13+
* Data exploration
14+
15+
## Raw Data
16+
17+
* Raw files (e.g., images, BAM files) are not copied into ODM.
18+
Instead, ODM stores pointers to the files in their existing storage locations.
19+
20+
## Processed and Indexed Data
21+
22+
* Processed data is stored in a columnar database, enabling it to be indexed and
23+
searchable within ODM.
24+
25+
## Attachments
26+
27+
* When data files are imported via the GUI or attached to a study (e.g., supplementary
28+
documents), they must be uploaded into the platform’s S3 bucket.
29+
* This creates a copy of the file in ODM, ensuring accessibility through the user interface.
30+
31+
## Current Limitation
32+
33+
* ODM currently supports a single S3 bucket for attachments.
34+
35+
| Type | Example | Details | Copy | Configurability |
36+
|---------------|---------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|-------------------------------------------------------|----------------------------------------------------------------|
37+
| Attachments | .pdf, .ppt, .h5 – can be anything | ODM indexes basic file metadata (name, date, type, file contents for archives like .zip and .h5) | Copy is always stored in ODM. We use ODM’s S3 bucket. | Can configure to use the customer’s S3 bucket. |
38+
| Metadata | E.g. .tsv metadata files (e.g. <https://s3.amazonaws.com/bio-test-data/odm/Test_1000g/Test_1000g.samples.tsv>). | ODM captures and indexes study, sample, library/prep and other metadata. | Copy is always stored in ODM’s databases. | No region separation made, use permissions to control access. |
39+
| Raw Data | E.g. .fastq, .bam., images, and so on – if it’s not an attachment and not indexed data. | ODM stores and indexes the pointer to the file and nothing else. | No copy is made anywhere. | |
40+
| Indexed Data | E.g., tabular data, VCFs, etc. | ODM indexes most of the data by storing a compressed partial copy of the data columns. | Copy is made. | No configurability. |
89.9 KB
Loading

docs/access-control/groups.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Groups
2+
3+
## Purpose of Groups
4+
5+
* Groups are used in ODM to simplify collaboration and data sharing.
6+
* Groups can represent locations, departments, or project teams, ensuring data is shared only with the relevant people.
7+
* Users see only the groups they are members of, unless they hold the **Manage groups** permission.
8+
9+
Suggested groups structure:
10+
11+
![Group Structure](groups-structure.png)
12+
13+
The list of all groups you are a member of can be browsed on the Groups page. A user with
14+
Manage groups permission can browse and manage all groups available in the system.
15+
16+
## Creating Groups
17+
18+
* Groups can be created in two ways:
19+
* **Manually** in the ODM graphical user interface.
20+
* **Automatically** via the SCIM API for integration with identity providers.
21+
22+
* Prerequisites: None. Any user can create a group and invite other members.
23+
24+
## Default Groups
25+
26+
Upon installation, ODM creates two default groups (these should not be removed):
27+
28+
* **All users**: all users are automatically added to this group.
29+
* **Curator**: a special group that grants edit permissions to members.
30+
31+
## Group Roles
32+
33+
* **Group members**: can access all data shared with their group and can share data
34+
with the group.
35+
* **Group admins**: can add or remove members and assign roles within their group.
36+
Admin rights do not extend to other groups.
37+
* **Special permission**: a user with **Manage groups** can manage all groups in the
38+
system, even if they are not a member.
39+
40+
Once a user is added to a group, they immediately have access to all studies shared with the
41+
group. Removing a user from a group will revoke their access to all studies shared with the group.
42+
43+
### Curator Group
44+
45+
* Membership in the **Curator group** grants edit permissions.
46+
* Curators can import new studies, edit metadata, and track changes through version
47+
history.
48+
* Non-curators are considered **researchers**: they can browse and download but cannot
49+
contribute.
50+
51+
If a user is not a member of the Curator they are considered as researchers and are able just to
52+
browse available studies and retrieve data, but not contribute to it.
53+
54+
| Role | Member of Curator group? | Role |
55+
|------------|--------------------------|---------------------------------------------------|
56+
| Researcher | No | Browse, Search, Download |
57+
| Curator | Yes | All of the above + **Import Data, Edit Metadata** |

docs/access-control/permissions.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Permissions
2+
3+
## Overview
4+
5+
* Once a user is created, permissions can be assigned in the **Users and Permissions** section.
6+
* To grant or revoke permissions, a user must have the **Manage organization** permission.
7+
* The system superuser account `root@genestack.com` is created by default with full management rights.
8+
9+
## Permission Types
10+
11+
| Permission | Actions | Recommendation |
12+
|---------------------|-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
13+
| Manage organization | - Manage permissions <br/> - Manage study ownership <br/> - Create and deactivate users <br/> - Change user passwords | This is a **powerful system-level permission**. Grant only to a few trusted administrators. |
14+
| Set up templates | - Create new templates <br/> - Alter existing templates | Changes affect **all users**. Should be assigned only to responsible **Data Owners**. |
15+
| Configure facets | Set desired list and order of facets in the Study Browser | Changes affect **all users**. Should be assigned only to responsible **Data Owners**. |
16+
| Manage groups | Access and manage all groups, even without admin/membership rights | Use primarily for integration purposes. |
17+
| Access all data | Access to all studies in the system, even if not shared | Use only for integration or administrative purposes. |

docs/access-control/scim.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Access Management via SCIM APIs
2+
3+
## Overview
4+
5+
* ODM provides RESTful APIs for user and group management, based on the SCIM 2.0
6+
provisioning standard.
7+
* These APIs allow seamless integration with identity providers (such as Active Directory),
8+
enabling automated and synchronized access management.
9+
10+
## Benefits
11+
12+
* Establishes one central entry point for access control, reducing duplication and errors.
13+
Ensures reliable and efficient user lifecycle management across the organisation.
14+
* Recommended for all customers whose identity providers support SCIM 2.0.
15+
16+
## Workflow with Active Directory
17+
18+
* ODM’s SCIM endpoints allow Active Directory (AD) to be the authoritative system for user
19+
management.
20+
* Administrators manage users in AD, where they can:
21+
* Create users and groups.
22+
* Add or remove users from groups.
23+
* Deactivate users.
24+
* Changes are automatically propagated to ODM on a scheduled sync configured in AD.
25+
26+
## Flexibility
27+
28+
* In addition to AD-provisioned groups, ODM also supports locally created groups for project-specific sharing needs.
29+
* Example: a temporary project group can be created in ODM and used to share studies with a restricted set of users.
30+
31+
For more detail, see [Enterprise applications SCIM provisioning](https://genestack.github.io/admin-docs/latest/home/single-sign-on/scim/azure/#configure-user-and-group-provisioning).

docs/access-control/security.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# ODM Platform Security
2+
3+
Genestack operates an ISO27001:2022 certified Information Security Management System
4+
(ISMS), with operational security controls in place which are strictly adhered to, in order to
5+
underpin the development of Genestack products, how Genestack delivers its services to its clients, and
6+
how Genestack operates and protects the Genestack production environment in support of its clients.
7+
8+
The key documents and frameworks in-place to support Genestacks ISO27001:2022 ISMS are as
9+
follows:
10+
11+
| **Document Name** | **Purpose** | **Owner** | **Last Updated** |
12+
|----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------|------------------|
13+
| ISO27001 Certificate | Validates Genestack’s ISMS and information security compliance. | Chief Executive Officer | 16 July 2025 |
14+
| ODM High Level Design | ODM platform high level design document, covering all aspects of design including security management. | Head of Engineering | 13 October 2025 |
15+
| ODM Security Requirements | Describes the detailed security control requirements applied to the ODM platform. | Head of Engineering | 14 October 2025 |
16+
| Information Security Policy | Defines Genestack’s high level security objectives. | Chief Executive Officer | 12 May 2025 |
17+
| Operational Security Policy | Defines the policy for the operational security controls that underpin the development of Genestack products, how Genestack delivers its services to its clients, and how Genestack operates and protects the Genestack production environment in support of its clients. | Head of Engineering | 13 October 2025 |
18+
| Cloud Service Provider Policy | Defines cloud-specific control requirements aligned with ISO/IEC 27017:2025 (‘ISO27017’), supporting secure service delivery and data protection. | Head of Engineering | 14 October 2025 |
19+
| Terms of Reference for the Security Working Group | Defines how all aspects of Genestack’s ISO27001 Information Security Management System are managed, governed and audited on a perpetual basis. | Head of Engineering | 6 May 2025 |
20+
| Software Development Life Cycle Policy | Establishes a policy for a Software Development Lifecycle (SDLC) framework and related software application development methodologies and tools that are essential components in the management, development and delivery of software applications to support Genestack needs and services. | Head of Engineering | 6 May 2025 |
21+
| Access Control Policy | Addresses the security requirements for all user login accounts on Genestack information assets by Genestack staff. | Head of Engineering | 3 February 2025 |

docs/access-control/sharing.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Data Sharing
2+
3+
## Study Ownership
4+
5+
* By default, the study owner is the user who imports the study into ODM.
6+
* Owners have full control over sharing and access management for their studies.
7+
8+
## Sharing a Study
9+
10+
* Owners can share studies only with groups they are members of.
11+
* Once shared with a group, the study becomes available to all members of that group.
12+
* A study can be shared with multiple groups.
13+
* The list of groups that have access to a study is visible in the “More Info” section.
14+
15+
## Revoking Access
16+
17+
* Study owners can revoke access to a study at any time.
18+
19+
## Transferring Ownership
20+
21+
* If a study owner becomes unavailable, administrators can assign a new owner.
22+
* Ownership transfers are:
23+
* Permission-aware (only permitted roles can transfer).
24+
* Fully auditable (tracked in the system).
25+
* The current owner may also initiate a transfer voluntarily.

docs/access-control/users.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Users
2+
3+
## Creation
4+
5+
* With **Single Sign-On (SSO)** configured, new users are created automatically upon their first login.
6+
* Detailed instructions for identity provider integration are available in the
7+
[Open Data Manager Administrator Documentation](https://genestack.github.io/admin-docs/latest/home/single-sign-on/sso/).
8+
9+
## Default Access
10+
11+
Newly created users have **immediate access** to studies shared with everyone in the organisation.
12+
13+
## Group Membership
14+
15+
To gain additional rights, users must be added to groups:
16+
17+
* **View group-specific studies** (beyond those shared with all users).
18+
* **Contribute to data** (import new data or curate existing data).
19+
20+
## Lifecycle Management
21+
22+
* Once created, a user **cannot be deleted** from the system.
23+
* Users can, however, be **deactivated** to remove their access.
24+
25+
## Technical Users
26+
27+
* On a fresh **installation** of ODM, a small number of **technical user accounts** are created automatically.
28+
* These accounts support **integration, automated testing, and system configuration**.
29+
They are not intended for day-to-day user activity.
30+
* Passwords for technical users can be changed at any time for security reasons.
31+
32+
| User | State | Role |
33+
|--------------------------------|--------------|----------------------------------------------------|
34+
| <root@genestack.com> | Active | Superadmin |
35+
| <public@genestack.com> | Active | Loading public data, ontologies, setting templates |
36+
| <tester_curator@genestack.com> | Deactivated | Automated testing upon installation |
37+
| <tester_user@genestack.com> | Deactivated | Automated testing upon installation |

mkdocs.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@ nav:
1919
- Guides:
2020
- Advanced User Guide:
2121
- user-guide/index.md
22+
- Access Control:
23+
- Users: access-control/users.md
24+
- Permissions: access-control/permissions.md
25+
- Groups: access-control/groups.md
26+
- Access Management via SCIM APIs: access-control/scim.md
27+
- Data Sharing: access-control/sharing.md
28+
- Authorisation via an Access Token: access-control/authorisation.md
29+
- Data Governance: access-control/governance.md
30+
- Platform Security: access-control/security.md
2231
- About Genestack: https://genestack.com/
2332
- Advanced Guide:
2433
- user-guide/index.md
@@ -39,7 +48,15 @@ nav:
3948
- Getting a Genestack API token: user-guide/doc-odm-user-guide/getting-a-genestack-api-token.md
4049
- Getting Access Token (Azure): user-guide/doc-odm-user-guide/getting-access-token-azure.md
4150
- Supported File Formats: user-guide/doc-odm-user-guide/supported-formats.md
42-
51+
- Access Control:
52+
- Users: access-control/users.md
53+
- Permissions: access-control/permissions.md
54+
- Groups: access-control/groups.md
55+
- Access Management via SCIM APIs: access-control/scim.md
56+
- Data Sharing: access-control/sharing.md
57+
- Authorisation via an Access Token: access-control/authorisation.md
58+
- Data Governance: access-control/governance.md
59+
- Platform Security: access-control/security.md
4360
- Tools:
4461
- odm-sdk:
4562
- Installation: tools/odm-sdk/installation.md

0 commit comments

Comments
 (0)