nf-blocks @ 0.3.0-beta.2
Summary
nf-blocks is a Nextflow plugin that publishes pipeline outputs into a content-addressed store and records their lineage there. It owns the cas URI scheme, enabling outputs to be stored with outputDir = 'cas://lab' and lineage records to be maintained at lineage.store.location = 'cas://lab'. The plugin records DAG-CBOR lineage records alongside Nextflow's lid:// records and maintains a SQLite index. It supports reading outputs back with the fromStore channel factory and includes an explorer tool for browsing and managing Selections. Current status: beta (0.3.0-beta.2).
Get Started
Enable the plugin and configure the lineage store and output directory to point to the same store alias:
plugins {
id 'nf-blocks@0.3.0-beta.2'
}
lineage.enabled = true
lineage.store.location = 'cas://lab' // alias of the writable member
outputDir = 'cas://lab' // optional: unset, it is the lineage alias
cas {
stores {
lab {
location = '/data/cas' // the writable member
}
}
resolve = ['lab'] // optional; default is every alias, writable first
asserted_by = 'anonymous' // optional opaque label; never the OS user name
}
An alias must match ^[a-z][a-z0-9_-]{0,31}$ and must not parse as a content address. When adding nf-blocks to someone else's pipeline via a -c config file, repeat the pipeline's pinned plugins alongside nf-blocks in the plugins { } block, as that block replaces rather than adds to the pipeline's plugin list.
Examples
Any pipeline with a workflow output block publishes into the store. Running a pipeline writes each published path under the store's coordinate tree:
/data/cas/coords/aligned/A/A.bam
/data/cas/coords/qc/A/A_qc/summary.txt
/data/cas/nf/<run hash>/aligned/A/A.bam/.data.json
The lineage record for a published file names its coordinate rather than a work directory path:
{"kind":"FileOutput","spec":{"path":"cas://lab/aligned/A/A.bam", ...}}
Reading outputs in another pipeline with fromStore:
include { fromStore } from 'plugin/nf-blocks'
workflow {
main:
picked = channel.fromStore(selection: '<selection address>')
aligned = channel.fromStore(run: 'latest', pipeline: 'cas-test-pipeline', output: 'aligned', where: [sample: 'B'])
picked.mix(aligned).view()
}
Publishing to S3:
plugins {
id 'nf-blocks@0.3.0-beta.2'
}
lineage.enabled = true
lineage.store.location = 'cas://lab'
workDir = 's3://my-work-bucket/work'
process.executor = 'awsbatch'
process.queue = 'my-queue'
aws {
region = 'us-east-1'
profile = 'my-profile'
}
cas {
stores {
lab { location = 's3://my-cas-bucket/cas' }
}
tmpDir = '/scratch/nf-blocks'
}
License
Apache License 2.0. See the COPYING file for details.
What's new
- Milestone 4 (cloud): any store member, including the writable one, can be a local directory or S3 location. Runs on AWS Batch with or without Fusion publish into writable S3 members with optimized hashing.
- Milestone 5 (nf-core pipelines): nf-blocks records lineage from workflow outputs only. Processes using
publishDirare warned once; their files are stored but counted asunjoinedrather than recorded against any run. Outputs declaringindex { }record their Output Index File linked from the Output Collection. - Support for reading outputs in downstream pipelines through
fromStorewith filtering by run, pipeline, output name, and custom conditions. - Explorer tool (
nf-blocks:explore) for browsing store members and managing Selections, with static file server support and snapshot generation. - Command-line tools:
nf-blocks:itemsfor finding items andnf-blocks:putfor building and writing Selection or Claim blocks from DAG-JSON.
Breaking changes
- On-disk format (block kinds, index, Store Log) may change before 1.0. Changes to blocks include migrations since a block's address is its content and existing stores retain their blocks.
- In typed scripts (
nextflow.enable.types = true), Nextflow 26.04.6 cannot reach plugin channel factories throughchannel.until nextflow-io/nextflow#7694 is fixed. Usenextflow.Channel.fromStore(..., records: true)instead. - nf-blocks requires the
nf-amazonplugin (>=3.9.2). When installing from a local build, manually install nf-amazon alongside as Nextflow does not fetch dependencies automatically.
| Nextflow version | >=26.04.6 |
|---|---|
| Depends On | nf-amazon@>=3.9.2 |
| Release Date | 30 Sep 2026 21:07:45 (UTC) |
| Release Notes | - |
| Download URL | https://registry.nextflow.io/api/v1/plugins/nf-blocks/0.3.0-beta.2/download/nf-blocks-0.3.0-beta.2.zip |
| Store URL | https://public.cr.seqera.io/v2/nextflow/plugin/nf-blocks/blobs/sha256:a8da8485bfc23c2191835eb753ef14f515b4703102e274f79a83f0301ac8ab2d |
| Size | 15.0 MB |
| Checksum | c9f2ad38852445447e506cf1f7cd161a3ed6c5ef8175be9399bede18f117647054d68990291b0608fd2ba42b10e4cbb0520096889b2cee1058aeb3fc0a94bc11 |
| Total downloads | 231 View trends |
| Security Scan |
| Version | Nextflow version | Date | Status | Downloads |
|---|---|---|---|---|
| 0.11.0-beta.1 | >=26.04.6 | 28 Oct 2026 19:18:11 (UTC) | 87 | |
| 0.10.0-beta.2 | >=26.04.6 | 26 Oct 2026 22:43:55 (UTC) | 101 | |
| 0.10.0-beta.1 | >=26.04.6 | 26 Oct 2026 13:10:02 (UTC) | 99 | |
| 0.9.0-beta.1 | >=26.04.6 | 24 Oct 2026 19:52:43 (UTC) | 103 | |
| 0.8.0-beta.2 | >=26.04.6 | 24 Oct 2026 18:36:29 (UTC) | 103 | |
| 0.8.0-beta.1 | >=26.04.6 | 24 Oct 2026 18:32:20 (UTC) | 102 | |
| 0.7.0-beta.1 | >=26.04.6 | 15 Oct 2026 13:56:25 (UTC) | 175 | |
| 0.6.0-beta.1 | >=26.04.6 | 14 Oct 2026 19:51:36 (UTC) | 178 | |
| 0.5.0-beta.1 | >=26.04.6 | 01 Oct 2026 03:22:16 (UTC) | 228 | |
| 0.4.0-beta.1 | >=26.04.6 | 01 Oct 2026 00:05:41 (UTC) | 231 | |
| 0.3.0-beta.2 | >=26.04.6 | 30 Sep 2026 21:07:45 (UTC) | 231 | |
| 0.3.0-beta.1 | >=26.04.6 | 30 Sep 2026 16:02:49 (UTC) | 230 | |
| 0.2.0-beta.1 | >=26.04.6 | 30 Sep 2026 01:00:32 (UTC) | 234 | |
| 0.1.0-beta.2 | >=26.04.6 | 28 Sep 2026 00:13:44 (UTC) |