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; for example 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:

  1. The addition of the --sb-schema argument. This argument allows you to provide and reuse an existing sb_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.
  2. Removal of the --entrypoint argument. Working under the assumption that the entrypoint information has already been included in the sb_nextflow_schema.yaml file under app_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).