This codebase has been absorbed into the digitaltwins-platform monorepo under services/portal/, with full commit history preserved.
All future development happens in the monorepo. This repository is kept for historical reference only and is no longer accepting issues or pull requests.
- Clone the repo to your PC
# 1. start docker
cd DigitalTWINS-Portal
docker compose up --build -d- Step 1: Access the Study Dashboard in the DigitalTWINS Portal
- Step 2: Edit an Assay
- Step 3: Launch an Assay
- Step 4: Monitor an Assay
- Step 5: Verify an Assay
- Step 6: Download a Dataset
- Step 7: Submit a Dataset
Here you can find information about all Programmes, Projects, Investigations, Studies, and Assays.
You can click the EXPLORE button under the Programmes, Projects, Investigations, or Studies catalogues to view more details.

Once you enter the Assays page, you can:
- Edit an assay
- Launch an assay
- Monitor an assay
- Verify an assay
- Download a dataset
- Submit a dataset
- Click the
EDITbutton on the assay page. - On the Edit page, you can configure the assay by selecting a workflow:
- A CWL script–based workflow, or
- A Web GUI–based workflow
- After choosing a workflow, select the dataset and sample type for its inputs and outputs.
- Finally, specify how many cohorts you want to execute for this assay.
After editing the assay, click the LAUNCH button.
- CWL script–based workflow
The workflow will run in Airflow. - Web GUI–based workflow
A Web GUI will be displayed in the DigitalTWINS Portal.
If your assay uses a CWL script–based workflow, the MONITOR button becomes available once the workflow starts running in Airflow.
Click it to track the execution progress of the assay.
For CWL script–based workflows, once execution is complete in Airflow, click the VERIFY button to review the resulting dataset.
For CWL script–based workflows, after the execution finishes in Airflow, you can download the resulting dataset to your local machine.
For CWL script–based workflows, once you are satisfied with the result dataset, you can upload it to the DigitalTWINS platform by clicking the SUBMIT button.
Plugins and CWL workflows can be registered into the portal in two ways:
| Source | When to use | What you provide |
|---|---|---|
| GitHub URL | Code already lives on a public GitHub repo | Paste https://github.com/<owner>/<repo> — portal reads package.json, root folders, and .cwl from the GitHub API |
| Local folder / .zip | Private repo, in-progress code, or no GitHub at all | Drag a folder (or a .zip file) into the dropzone — uploaded directly to the portal |
In the registration form, switch the Source radio at the top of the Base Information step.
- Total size cap: 500 MB. Both nginx and the backend reject anything bigger.
- The following directories are auto-skipped in both modes (folder / pre-made zip):
node_modules,.git,dist,build. If you zip a project with a third-party tool, you do not need to manually clean these — they are filtered server-side on extract too. package.jsonis searched recursively; the shallowest match (outside the blacklist) provides theversion/authorautofill. Project root detection unwraps single-folder GitHub-style zips automatically.- A
.zipthat you downloaded straight from GitHub ("Source code (zip)") works as-is — no need to unzip first.
Measurement ingest lives in the platform REST API (digitaltwins-api); the portal's
Upload → Measurements page is a client of it. To import a prepared dataset from
the server terminal instead, use the importer that ships with digitaltwins-api:
services/api/digitaltwins-api/scripts/import-dataset.(sh|command|ps1|bat).
See its guide: services/api/digitaltwins-api/docs/import-dataset.md.