From 40453d22c1fdb79e829bccd6a925eb6e43e55db1 Mon Sep 17 00:00:00 2001 From: Christopher Hakkaart Date: Wed, 29 Jul 2026 16:24:47 +1200 Subject: [PATCH 1/2] Draft Seqera filesystem page Signed-off-by: Christopher Hakkaart --- .docusaurus_site/sidebars.js | 3 +- docs/migrations/26-04.mdx | 3 + docs/reference/config.mdx | 2 - docs/seqera-filesystem.mdx | 132 +++++++++++++++++++++++++++++++++++ 4 files changed, 137 insertions(+), 3 deletions(-) create mode 100644 docs/seqera-filesystem.mdx diff --git a/.docusaurus_site/sidebars.js b/.docusaurus_site/sidebars.js index 7effd84435..04e79669ab 100644 --- a/.docusaurus_site/sidebars.js +++ b/.docusaurus_site/sidebars.js @@ -83,7 +83,8 @@ module.exports = { "azure", "google", "kubernetes", - "fusion" + "fusion", + "seqera-filesystem" ] }, { diff --git a/docs/migrations/26-04.mdx b/docs/migrations/26-04.mdx index f8ae8390a6..404c8200c8 100644 --- a/docs/migrations/26-04.mdx +++ b/docs/migrations/26-04.mdx @@ -396,6 +396,8 @@ workflow { A Platform access token with appropriate permissions is required to download non-public datasets. It can be specified using the `TOWER_ACCESS_TOKEN` environment variable or the `tower.accessToken` config option. +See [Seqera file system][seqera-filesystem-page] for details. + ## Breaking changes - The [strict syntax parser][strict-syntax-page] is now enabled by default. The legacy parser can be enabled by setting the `NXF_SYNTAX_PARSER` environment variable to `v1`. @@ -439,6 +441,7 @@ A Platform access token with appropriate permissions is required to download non [process-hints]: ../reference/process#hints [process-typed-page]: ../process-typed [script-records]: ../script#records +[seqera-filesystem-page]: ../seqera-filesystem [static-typing-first-preview]: ./25-10#static-typing-preview [stdlib-listDirectory]: ../reference/stdlib-types#listdirectory---iterablepath [strict-syntax-page]: ../strict-syntax diff --git a/docs/reference/config.mdx b/docs/reference/config.mdx index 5beece4846..e25a9e7b59 100644 --- a/docs/reference/config.mdx +++ b/docs/reference/config.mdx @@ -1784,8 +1784,6 @@ The `seqera.executor` scope configures the Seqera scheduler service for the [Seq The following settings are available: -The following settings are available: - ###### `seqera.executor.autoLabels` When `true`, automatically adds workflow metadata labels to the session with the `nextflow.io/` prefix (default: `false`). The following labels are added: `projectName`, `userName`, `runName`, `sessionId`, `resume`, `revision`, `commitId`, `repository`, `manifestName`, `runtimeVersion`. A `seqera.io/runId` label is also added, computed as a SipHash of the session ID and run name. diff --git a/docs/seqera-filesystem.mdx b/docs/seqera-filesystem.mdx new file mode 100644 index 0000000000..93a887f0e7 --- /dev/null +++ b/docs/seqera-filesystem.mdx @@ -0,0 +1,132 @@ +--- +title: Seqera file system +description: Read Seqera Platform datasets and data links in Nextflow pipelines using the seqera:// URI scheme. +--- + +# Seqera file system + + + +Nextflow can read Seqera Platform datasets and data links using the `seqera` URI scheme. +Use a `seqera://` path anywhere Nextflow expects a file path. +Your pipeline then reads data registered in a Seqera Platform workspace without hard-coding the storage location or the credentials. + +The `nf-tower` plugin, bundled with Nextflow, provides the Seqera file system. +The file system is read-only. A `seqera://` path cannot be a work directory, an output directory, or a publish target. + +See [Working with files][working-with-files] and the [Path][stdlib-types-path] reference for the available file operations. + +## Authentication + +Reading a `seqera://` path requires a [Seqera Platform](https://seqera.io) access token with permission to read the target datasets or data links. See [Authentication](https://docs.seqera.io/platform-cloud/api/overview#authentication) in the Seqera Platform documentation to create one. + +Provide the token using the `TOWER_ACCESS_TOKEN` environment variable: + +```bash +export TOWER_ACCESS_TOKEN='' +``` + +Alternatively, specify the token in your configuration with the [`tower.accessToken`][config-tower-accessToken] setting, along with the plugin declaration: + +```nextflow +plugins { + id 'nf-tower' +} + +tower.accessToken = '' +``` + +Nextflow loads the `nf-tower` plugin automatically when the `TOWER_ACCESS_TOKEN` environment variable is set, or when [`tower.enabled`][config-tower-enabled] or [`fusion.enabled`][config-fusion-enabled] is `true`. Otherwise, declare the plugin explicitly. Without it, Nextflow does not register the `seqera` scheme. + +:::note +Setting `tower.enabled = true` also registers the scheme, but it turns on run monitoring with Seqera Platform. To read data without reporting your runs, declare the plugin instead. +::: + +For Seqera Platform Enterprise, set the API endpoint of your instance with the [`tower.endpoint`][config-tower-endpoint] setting or the `TOWER_API_ENDPOINT` environment variable. + +## Dataset paths + +A [dataset](https://docs.seqera.io/platform-cloud/data/datasets) is a versioned CSV or TSV file stored in a Seqera Platform workspace, typically a samplesheet. Dataset paths take the following form: + +``` +seqera:////datasets/[@] +``` + +For example, the following pipeline reads a samplesheet from the `showcase` workspace of the `seqeralabs` organization: + +```nextflow +params.dataset = 'seqera://seqeralabs/showcase/datasets/sarek_samples' + +workflow { + channel.fromPath(params.dataset) + | splitCsv(header: true) + | view +} +``` + +Omit the version to read the latest enabled version of the dataset. Append `@` to pin a specific version. A pinned path keeps a run reproducible after someone uploads a new version: + +```nextflow +params.dataset = 'seqera://seqeralabs/showcase/datasets/sarek_samples@2' +``` + +## Data link paths + + + +A [data link](https://docs.seqera.io/platform-cloud/data/data-explorer) is a cloud storage bucket or container registered in a Seqera Platform workspace, along with the credentials that grant access to it. Data link paths take the following form: + +``` +seqera:////data-links/// +``` + +The segments are: + +- ``: the cloud provider of the data link, such as `aws`, `azure`, or `google`. +- ``: the name of the data link in the workspace, as shown in **Data Explorer**. This is not the name of the underlying bucket or container. +- ``: the path of the file or directory within the data link. + +For example, the following pipeline reads a file from the `inputs` data link: + +```nextflow +workflow { + println file('seqera://acme/research/data-links/aws/inputs/data/sequences.fa').text +} +``` + +Because the data link supplies the credentials, your pipeline does not need its own cloud credentials to read the data. + +:::note +To write pipeline outputs to the storage behind a data link, use the native path of the bucket or container, such as `s3://my-bucket/results`. +::: + +## List available data + +Every level of a `seqera://` path is a directory. Use [`listDirectory()`][stdlib-listDirectory] to see the organizations, workspaces, datasets, and data links that your access token can read: + +```nextflow +workflow { + // organizations + file('seqera://').listDirectory().each { println it } + + // workspaces in an organization + file('seqera://acme').listDirectory().each { println it } + + // datasets in a workspace + file('seqera://acme/research/datasets').listDirectory().each { println it } + + // providers with data links in a workspace + file('seqera://acme/research/data-links').listDirectory().each { println it } + + // data links for a provider + file('seqera://acme/research/data-links/aws').listDirectory().each { println it } +} +``` + +[config-fusion-enabled]: ./reference/config#fusionenabled +[config-tower-accessToken]: ./reference/config#toweraccesstoken +[config-tower-enabled]: ./reference/config#towerenabled +[config-tower-endpoint]: ./reference/config#towerendpoint +[stdlib-listDirectory]: ./reference/stdlib-types#listdirectory---iterablepath +[stdlib-types-path]: ./reference/stdlib-types#path +[working-with-files]: ./working-with-files From d60d03cbae3ae784ef94ba0c3197ab2d909a4d59 Mon Sep 17 00:00:00 2001 From: Christopher Hakkaart Date: Wed, 29 Jul 2026 19:59:54 +1200 Subject: [PATCH 2/2] Fix small typo Signed-off-by: Christopher Hakkaart --- docs/seqera-filesystem.mdx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/seqera-filesystem.mdx b/docs/seqera-filesystem.mdx index 93a887f0e7..d59b3183dc 100644 --- a/docs/seqera-filesystem.mdx +++ b/docs/seqera-filesystem.mdx @@ -3,12 +3,10 @@ title: Seqera file system description: Read Seqera Platform datasets and data links in Nextflow pipelines using the seqera:// URI scheme. --- -# Seqera file system - Nextflow can read Seqera Platform datasets and data links using the `seqera` URI scheme. -Use a `seqera://` path anywhere Nextflow expects a file path. +Use a `seqera://` path anywhere Nextflow reads an input file. Your pipeline then reads data registered in a Seqera Platform workspace without hard-coding the storage location or the credentials. The `nf-tower` plugin, bundled with Nextflow, provides the Seqera file system.