Manage Nextflow apps on the Platform
Copying Nextflow apps between projects on the Platform
When an app is on the Platform, you can copy it and use it on other Platform projects. To copy Nextflow apps between projects, use the sbcopy command that is a part of the sbpack utility:
sbcopy [--profile PROFILE...] --appid APPID --projectid PROJECTID
The command takes the following arguments:
PROFILE
: refers to the Seven Bridges Platform profile containing the Platform API endpoint and authentication token, as set in the Seven Bridges credentials file. If you are using Enterprise, and want to copy an app from one division to another, provide two profiles—first profile for the source app (appid
), and second for the destination project (projectid
).APPID
: specifies the identifier of the app on the Platform. Takes the form{user or division}/{project}/{app_id}
. If you are using Enterprise, the{user or division}
part is name of your Division on the Platform; otherwise, specify your Platform username. The{project}
part is the source project where the app is located and{app_id}
is the ID of the app you want to copy; forexample my-division/my-new-project/my-nextflow-app
. Each division uses a different API token and has a different profile associated with it, so to copy from one division to another, both the origin and destination tokens must be provided.PROJECTID
: is the identifier of the destination project where the app will be copied. Takes the form{user or division}/{project}
. If you are using Enterprise, the{user or division}
part is name of your Division on the Platform; otherwise, specify your Platform username.
The final command should be, for example:
sbcopy --profile sbpla sevenbridges-division/origin-project/test-app sevenbridges-division/destination-project
or if you are using Enterprise and copying from one division to another:
sbcopy --profile origin destination --appid origin/example-project/example-app --projectid destination/example-project
Note that Nextflow app copies made through standard visual interface or API methods instead of using sbcopy will still point to the originally pushed code package and the original project where it is located. This might cause failures due to lack of permissions, if users who need to run the copied instances of the app aren't added to the project where the original code package is located. To avoid this, please use sbcopy to copy Nextflow apps between projects on the Platform, as described above.
Updating already converted and optimized apps
If you have already converted your app, made optimizations in the sb_nextflow_schema.yaml
file, and pushed the app to the Platform, all subsequent updates to the app's Nextflow code and the process of propagating the update to the Platform are quite straightforward.
If the updates you made do not require changes to manually configured parameters in the sb_nextflow_schema.yaml
file (such as inputs, outputs, requirements, etc.), create a new code package by running a command in the following format:
sbpack_nf --profile PROFILE --appid APPID --workflow-path WORKFLOW_PATH --sb-schema SB_SCHEMA
This command is almost the same as the initial app conversion step, but differs in that:
- The addition of the
--sb-schema
argument. This argument allows you to provide and reuse an existingsb_nextflow_schema.yaml
configuration file where you have already made optimizations (configuration of inputs, outputs, requirements, etc.) for the execution of your app on the Seven Bridges Platform. - Removal of the
--entrypoint
argument. Working under the assumption that theentrypoint
information has already been included in thesb_nextflow_schema.yaml
file underapp_contents.entrypoint
.
The command will generate a new code package based on your updated Nextflow code provided through --workflow-path
and the YAML or JSON configuration file provided through --sb-schema
, and push the updated app to the Platform creating a new revision (version).
Updated 2 days ago