File Paths¶
Every iFlow project has a dedicated cloud storage bucket (GCS on Google Cloud,
S3 on AWS). Paths shown to users are relative to the project bucket — you
do not see or type bucket names, gs://, or s3:// URIs anywhere in iFlow
except on the project settings page where an administrator configures the
bucket.
Canonical layout¶
{project-bucket}/
├── client-resources/ # Permanent resources, exempt from retention
│ ├── report-templates/ # Report DOCX templates
│ ├── bed-files/ # BED interval files
│ └── gene-panels/ # Gene panel lists
│
├── subjects/{slug}/uploads/ # Subject-level uploads (consent forms, notes)
│
├── samples/{slug}/uploads/ # Sample-level uploads (VCF, BAM, FASTQ)
│
├── analyses/{slug}/ # Analysis pipeline outputs
│
├── orders/{slug}/ # Order-level artefacts
│ └── signed-report.pdf # Immutable final report (set at sign-off)
│
├── reports/{slug}/ # Report drafts, preview PDFs, attachments
│
├── workspace/
│ ├── wdl/ # WDL pipeline scratch
│ └── nextflow/ # Nextflow pipeline scratch
│
└── uploads/ # General project uploads
The {slug} convention¶
{slug} is derived from the entity's display_id (the human-readable
identifier you see in the UI) by:
- Lower-casing.
- Replacing every run of non-alphanumeric characters with a single hyphen.
- Trimming leading and trailing hyphens.
So a subject with display_id = "NA12878" uses subjects/na12878/uploads/,
and an order with display_id = "ORD-001" uses orders/ord-001/.
Because paths are derived from display_id, entities that already have
files on disk cannot be renamed. The slug is effectively frozen at the
moment the first file is written under that entity.
What lives where¶
| Path | What it contains |
|---|---|
client-resources/report-templates/ |
DOCX report templates referenced by report_template_type. |
client-resources/bed-files/ |
BED interval files used by pipelines for target enrichment. |
client-resources/gene-panels/ |
Gene panel lists used by the variant browser. |
subjects/{slug}/uploads/ |
Subject-scoped documents (consent, clinical notes). |
samples/{slug}/uploads/ |
Sample inputs: VCF (bgzipped, tabix-indexed), BAM, FASTQ, plus any lab-supplied metadata. |
analyses/{slug}/ |
Pipeline outputs, logs, and metadata. |
orders/{slug}/ |
Order-scoped artefacts (e.g. the final signed PDF). |
orders/{slug}/signed-report.pdf |
The immutable signed report PDF, written once by Approve-and-Sign. |
reports/{slug}/ |
Preview and draft report renderings, attachments. |
workspace/wdl/, workspace/nextflow/ |
Pipeline engine scratch. |
uploads/ |
General uploads not tied to a specific entity. |
Entities with files cannot be renamed
Because display_id drives the slug in the path, renaming an entity
after files are written would orphan those files. The slug is
effectively frozen at first file write.
Retention¶
- Files under
client-resources/are exempt from retention cleanup. Use it for anything that must survive regardless of retention policy — report templates, BED files, gene panels. - All other paths are subject to the project's retention policy, if any. Consult your project administrator.
Use client-resources/ for anything that must survive retention
Report templates, BED files, and gene panels go here. Everything else is subject to the project's retention policy.
Why you never see bucket names¶
The platform's data model deliberately hides the bucket from end users:
- The CLI displays paths relative to the project bucket.
- API responses return relative paths.
- Internal DB columns store relative paths; bucket identity is in the project's configuration, not on the file record.
The only place a bucket name is surfaced is on the project settings page, where an administrator configures which bucket backs the project.
Legacy paths¶
Some files from earlier versions of iFlow live outside this layout. They are grandfathered and remain accessible through the file browser, but new files always use the canonical layout above.
Related reading¶
- Intake workflow — where files first enter the system.
- Samples — sample-level file handling.
- Sign-off workflow — how
signed-report.pdfis produced.