nf-fl86 @ 0.2.0
Summary
nf-fl86 is a Nextflow plugin that prevents a fresh workflow run from using an output directory that already exists. It uses the legacy params.outdir value when one is provided and otherwise falls back to Nextflow's session.outputDir. The check is skipped only when Nextflow is actually resuming a previous run.
At startup, the plugin also copies the CSV referenced by params.sample_sheet to <outdir>/pipeline_info/sample_sheet.csv. If params.sample_sheet is not set, it falls back to params.input.
After a successful run, the plugin writes workflow metadata to <outdir>/pipeline_info/workflow.json and creates pipeline.complete in the Nextflow work directory.
The plugin can also send non-fatal lifecycle updates to an HTTP endpoint for a Notion-backed run tracker. It sends one update when the workflow begins and a second update only after successful completion.
Get Started
nf-fl86 requires Nextflow 25.10.0 or later. Enable a published release in your pipeline's nextflow.config:
plugins {
id 'nf-fl86@0.2.0'
}
Run the pipeline with a new output directory. The optional sample sheet is copied into the pipeline metadata directory:
nextflow run hello \
--outdir 's3://scratch/TEST' \
--sample_sheet ./sample_sheet.csv
If the output directory belongs to an earlier run that should be resumed, use Nextflow's -resume option. The plugin permits an existing output directory only when the Nextflow session is running in resume mode.
Examples
AWS Secrets Manager
Use getAWSSecret() to retrieve the SecretString value of an AWS Secrets Manager secret:
include { getAWSSecret } from 'plugin/nf-fl86'
workflow {
def databaseCredentials = getAWSSecret('pipelines/database', 'us-east-1')
}
The region is optional; when omitted, the AWS CLI uses its configured region. The aws command and suitable credentials must be available on the host running Nextflow, with secretsmanager:GetSecretValue permission and, when applicable, kms:Decrypt permission. Avoid logging the returned value or otherwise exposing it in workflow logs and generated command files.
Launch a Seqera workflow
Use call_seqera_action() from a script-level workflow.onComplete handler to launch another workflow using an existing Seqera Action as its template:
include { getAWSSecret; call_seqera_action } from 'plugin/nf-fl86'
workflow {
// Call processes and compose the workflow here.
workflow.onComplete = {
if (workflow.success) {
def token = getAWSSecret('seqera/platform-token', 'us-east-1')
def response = call_seqera_action(
token,
"${workflow.runName}-follow-up",
[input: params.outdir],
'ACTION_ID', //action id
'123456789012345' //worspace id
)
if (!response) {
log.warn 'The follow-up workflow was not launched'
}
}
}
}
The function retrieves the Action, removes identifiers that cannot be reused, uses its compute environment, replaces runName, serializes the provided parameter map as paramsText, and submits the resulting launch configuration. The optional sixth argument overrides the default API base https://api.cloud.seqera.io for Seqera Enterprise installations. Pass the workspace ID as a string; convert a numeric value with toString().
Missing tokens, invalid inputs, connection failures, unexpected responses, and non-2xx HTTP responses produce a warning and return an empty map. The access token and API response body are never included in errors or logs. Store the token securely and never provide it as a pipeline parameter.
Notion lifecycle updates
Configure endpoint templates in nextflow.config to update a Notion-backed run tracker automatically:
notion {
beginning_endpoint = 'https://example.execute-api.us-east-2.amazonaws.com/prod/update-status-to-mapping-underway?ngsrun={NGSRUN}'
complete_endpoint = 'https://example.execute-api.us-east-2.amazonaws.com/prod/update-status-to-mapped?ngsrun={NGSRUN}&seqeraPlatformUrl={seqeraPlatformUrl}'
}
Use single-quoted endpoint templates so that the plugin, rather than Groovy, replaces the placeholders at runtime:
{NGSRUN}is the first value matchingNGSRUN\d+inworkflow.runName. For example,NGSRUN123_nxf_mapping_1becomesNGSRUN123.{seqeraPlatformUrl}is the URL reported by thenf-towerobserver. It is available to the successful-completion endpoint and is empty when Platform monitoring is unavailable.
Placeholder values are URL-encoded. Change the query parameter names around the placeholders if the API expects different names.
Each endpoint is optional. The beginning endpoint is called from workflow startup; the completion endpoint is called only when the workflow succeeds. Requests use POST with X-HTTP-Method-Override: PATCH and an empty JSON body. Invalid configuration, missing NGSRUN identifiers, timeouts, connection errors, and non-2xx responses are logged as warnings and do not fail the workflow.
Command-line plugin selection
The plugin can also be selected on the command line instead of in nextflow.config:
nextflow run hello \
-plugins nf-fl86@0.2.0 \
--outdir 's3://scratch/TEST' \
--sample_sheet ./sample_sheet.csv
License
nf-fl86 is licensed under the Apache License 2.0.
| Nextflow version | >=25.10.0 |
|---|---|
| Depends On | - |
| Release Date | 19 Aug 2026 15:41:58 (UTC) |
| Release Notes | - |
| Download URL | https://registry.nextflow.io/api/v1/plugins/nf-fl86/0.2.0/download/nf-fl86-0.2.0.zip |
| Store URL | https://public.cr.seqera.io/v2/nextflow/plugin/nf-fl86/blobs/sha256:9011c42b636400496ccc6f7405ecfba931e1d12baf02bd68d03dec4bf0d9a068 |
| Size | 50.1 KB |
| Checksum | 6579652228efcf9d8a79bf42511aa95ded513d00e34bf1e92cd7c9ed597ffd74d8ff7672695fe6be2a36a20add59e715a782096f9b429642688fa73ebf648db9 |
| Total downloads | 109 View trends |
| Security Scan |
| Version | Nextflow version | Date | Status | Downloads |
|---|---|---|---|---|
| 0.6.4 | >=25.10.0 | 18 Sep 2026 11:43:45 (UTC) | 93 | |
| 0.6.3 | >=25.10.0 | 17 Sep 2026 19:58:01 (UTC) | 34 | |
| 0.6.2 | >=25.10.0 | 17 Sep 2026 18:30:37 (UTC) | 32 | |
| 0.6.1 | >=25.10.0 | 17 Sep 2026 14:40:32 (UTC) | 38 | |
| 0.6.0 | >=25.10.0 | 17 Sep 2026 13:05:43 (UTC) | 32 | |
| 0.5.1 | >=25.10.0 | 16 Sep 2026 14:24:10 (UTC) | 35 | |
| 0.5.0 | >=25.10.0 | 09 Sep 2026 14:49:37 (UTC) | 57 | |
| 0.4.0 | >=25.10.0 | 09 Sep 2026 14:07:16 (UTC) | 52 | |
| 0.3.3 | >=25.10.0 | 23 Aug 2026 19:41:51 (UTC) | 103 | |
| 0.3.2 | >=25.10.0 | 23 Aug 2026 19:10:43 (UTC) | 99 | |
| 0.3.1 | >=25.10.0 | 23 Aug 2026 18:29:23 (UTC) | 99 | |
| 0.3.0 | >=25.10.0 | 23 Aug 2026 17:36:48 (UTC) | 100 | |
| 0.2.0 | >=25.10.0 | 19 Aug 2026 15:41:58 (UTC) | 109 | |
| 0.1.0 | >=25.10.0 |