diff --git a/docs/cli.md b/docs/cli.md index 19159df922..119c23ea75 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -1267,7 +1267,7 @@ The `run` command is used to execute a local pipeline script or remote pipeline : Create workflow execution timeline. `-with-tower` (`https://api.tower.nf`) -: Monitor workflow execution with [Tower](https://cloud.tower.nf/). +: Monitor workflow execution with [Seqera Platform](https://cloud.tower.nf/) (formerly Tower Cloud). `-with-trace` (`trace-.txt`) : Create workflow execution trace file. @@ -1331,7 +1331,7 @@ The `run` command is used to execute a local pipeline script or remote pipeline $ nextflow run main.nf -entry workflow_A ``` -- Execute a pipeline with integrated monitoring in [Tower](https://cloud.tower.nf). +- Execute a pipeline with integrated monitoring in [Seqera Platform](https://cloud.tower.nf). ```console $ nextflow run nextflow-io/hello -with-tower diff --git a/docs/config.md b/docs/config.md index b5b7e74b21..34613bcfaf 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1513,25 +1513,25 @@ The following settings are available: ### Scope `tower` -The `tower` scope controls the settings for the [Nextflow Tower](https://tower.nf) monitoring and tracing service. +The `tower` scope controls the settings for the [Seqera Platform](https://tower.nf) (formerly Tower Cloud). The following settings are available: `tower.accessToken` -: The unique access token specific to your account on an instance of Tower. +: The unique access token specific to your account on an instance of Seqera Platform. - Your `accessToken` can be obtained from your Tower instance in the [Tokens page](https://tower.nf/tokens). + Your `accessToken` can be obtained from your Seqera Platform instance in the [Tokens page](https://tower.nf/tokens). `tower.enabled` -: When `true` Nextflow sends the workflow tracing and execution metrics to the Nextflow Tower service (default: `false`). +: When `true` Nextflow sends the workflow tracing and execution metrics to Seqera Platform (default: `false`). `tower.endpoint` -: The endpoint of your Tower deployment (default: `https://tower.nf`). +: The endpoint of your Seqera Platform instance (default: `https://tower.nf`). `tower.workspaceId` -: The ID of the Tower workspace where the run should be added (default: the launching user personal workspace). +: The ID of the Seqera Platform workspace where the run should be added (default: the launching user personal workspace). - The Tower workspace ID can also be specified using the environment variable `TOWER_WORKSPACE_ID` (config file has priority over the environment variable). + The workspace ID can also be specified using the environment variable `TOWER_WORKSPACE_ID` (config file has priority over the environment variable). (config-trace)= diff --git a/docs/developer/nextflow.trace.md b/docs/developer/nextflow.trace.md index ae90c9be4d..e5e4257c97 100644 --- a/docs/developer/nextflow.trace.md +++ b/docs/developer/nextflow.trace.md @@ -14,4 +14,4 @@ Some classes may be excluded from the above diagram for brevity. ## Notes -The `TraceObserver` interface defines a set of hooks into the workflow execution, such as when a workflow starts and completes, when a task starts and completes, and when an output file is published. The `Session` maintains a list of all observers and triggers each hook when the corresponding event occurs. Implementing classes can use these hooks to perform custom behaviors. In fact, this interface is used to implemented several core features, including the various execution reports, DAG renderer, and the integration with Nextflow Tower. +The `TraceObserver` interface defines a set of hooks into the workflow execution, such as when a workflow starts and completes, when a task starts and completes, and when an output file is published. The `Session` maintains a list of all observers and triggers each hook when the corresponding event occurs. Implementing classes can use these hooks to perform custom behaviors. In fact, this interface is used to implemented several core features, including the various execution reports, DAG renderer, and the integration with Seqera Platform. diff --git a/docs/google.md b/docs/google.md index 39cabf5722..74ecc5c346 100644 --- a/docs/google.md +++ b/docs/google.md @@ -236,7 +236,7 @@ process.scratch = false tower.accessToken = '' ``` -The [Tower](https://cloud.tower.nf) access token is optional, but it enables higher API rate limits for the {ref}`wave-page` service required by Fusion. +The [Seqera Platform](https://cloud.tower.nf) access token is optional, but it enables higher API rate limits for the {ref}`wave-page` service required by Fusion. By default, Fusion mounts a local SSD disk to the VM at `/tmp`, using a machine type that can attach local SSD disks. If you specify your own machine type or machine series, they should be able to attach local SSD disks, otherwise the job scheduling will fail. diff --git a/docs/plugins.md b/docs/plugins.md index 1ceeb18bb1..cf6fa4aa95 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -8,13 +8,13 @@ Nextflow has a plugin system that allows the use of extensible components that a The following functionalities are provided via plugin components, and they make part of the Nextflow *core* plugins: -- `nf-amazon`: Support for Amazon cloud. -- `nf-azure`: Support for Azure cloud. +- `nf-amazon`: Support for Amazon Web Services. +- `nf-azure`: Support for Microsoft Azure. - `nf-cloudcache`: Support for the cloud cache (see `NXF_CLOUDCACHE_PATH` under {ref}`config-env-vars`). - `nf-console`: Implement Nextflow [REPL console](https://www.nextflow.io/blog/2015/introducing-nextflow-console.html). - `nf-ga4gh`: Support [GA4GH APIs](https://www.ga4gh.org/). -- `nf-google`: Support for Google cloud. -- `nf-tower`: Support for [Tower](https://tower.nf) cloud platform. +- `nf-google`: Support for Google Cloud. +- `nf-tower`: Support for [Seqera Platform](https://tower.nf) (formerly Tower Cloud). - `nf-wave`: Support for [Wave containers](https://seqera.io/wave/) service. diff --git a/docs/secrets.md b/docs/secrets.md index 1f6253a69f..c755a7579e 100644 --- a/docs/secrets.md +++ b/docs/secrets.md @@ -69,5 +69,5 @@ The secrets are made available in the process context running the command script ::: :::{note} -This feature is only available when using the local or grid executors (Slurm, Grid Engine, etc). The AWS Batch executor allows the use of secrets when deploying the pipeline execution via [Nextflow Tower](https://seqera.io/blog/pipeline-secrets-secure-handling-of-sensitive-information-in-tower/). +This feature is only available when using the local or grid executors (Slurm, Grid Engine, etc). The AWS Batch executor allows the use of secrets when deploying the pipeline execution via [Seqera Platform](https://seqera.io/blog/pipeline-secrets-secure-handling-of-sensitive-information-in-tower/). ::: diff --git a/docs/wave.md b/docs/wave.md index f632850a3b..58d3579f6c 100644 --- a/docs/wave.md +++ b/docs/wave.md @@ -38,7 +38,7 @@ tower { ``` :::{note} -The Tower access token is not mandatory, but it is recommended in order to access private container repositories and pull public containers without being affected by service rate limits. Credentials should be made available to Wave using the [credentials manager](https://help.tower.nf/latest/credentials/overview) in Tower. +The Seqera Platform access token is not mandatory, but it is recommended in order to access private container repositories and pull public containers without being affected by service rate limits. Credentials should be made available to Wave using the [credentials manager](https://docs.seqera.io/platform/latest/credentials/overview) in Seqera Platform. ::: ## Use cases @@ -47,9 +47,9 @@ The Tower access token is not mandatory, but it is recommended in order to acces ### Authenticate private repositories -Wave allows the use of private repositories in your Nextflow pipelines. The repository access keys must be provided in the form of [Tower credentials](https://help.tower.nf/latest/credentials/overview/). +Wave allows the use of private repositories in your Nextflow pipelines. The repository access keys must be provided in the form of [Seqera Platform credentials](https://docs.seqera.io/platform/latest/credentials/overview/). -Once the credentials have been created, simply specify your [Tower account access token](https://help.tower.nf/22.2/api/overview/#authentication) in your pipeline configuration file. If the credentials were created in a Tower organization workspace, specify the workspace ID as well in the config file as shown below: +Once the credentials have been created, simply specify your [personal access token](https://docs.seqera.io/platform/23.3.0/api/overview#authentication) in your pipeline configuration file. If the credentials were created in a Seqera Platform organization workspace, specify the workspace ID as well in the config file as shown below: ```groovy tower { @@ -159,7 +159,7 @@ In the above configuration replace `docker.io/user/repo` with a repository of yo should be uploaded. :::{note} -When using a private repository, the repository access keys must be provider via Tower credentials manager (see {ref}`above `). +When using a private repository, the repository access keys must be provided via the Seqera Platform credentials manager (see {ref}`above `). Moreover the access to the repository must be granted in the compute nodes by using the command `singularity remote login `. Please see Singularity documentation for further details. @@ -178,7 +178,7 @@ wave.build.cacheRepository = 'example.com/your/cache-repo' The first repository is used to store the built container images. The second one is used to store the individual image layers for caching purposes. -The repository access keys must be provided as Tower credentials (see +The repository access keys must be provided as Seqera Platform credentials (see [Authenticate private repositories](#authenticate-private-repositories) above). ### Run pipelines using Fusion file system @@ -208,10 +208,10 @@ It is also suggested to specify a custom cache repository via the setting `wave. container freeze mode, the container repository authentication needs to be managed by the underlying infrastructure. `wave.build.repository` -: The container repository where images built by Wave are uploaded (note: the corresponding credentials must be provided in your Nextflow Tower account). +: The container repository where images built by Wave are uploaded (note: the corresponding credentials must be provided in your Seqera Platform account). `wave.build.cacheRepository` -: The container repository used to cache image layers built by the Wave service (note: the corresponding credentials must be provided in your Nextflow Tower account). +: The container repository used to cache image layers built by the Wave service (note: the corresponding credentials must be provided in your Seqera Platform account). `wave.build.conda.basePackages` : One or more Conda packages to be always added in the resulting container (default: `conda-forge::procps-ng`). diff --git a/modules/nextflow/src/main/groovy/nextflow/cli/CmdRun.groovy b/modules/nextflow/src/main/groovy/nextflow/cli/CmdRun.groovy index 98b90f5d01..a0869b8bce 100644 --- a/modules/nextflow/src/main/groovy/nextflow/cli/CmdRun.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/cli/CmdRun.groovy @@ -160,7 +160,7 @@ class CmdRun extends CmdBase implements HubOptions { launcher.options.ansiLog = value } - @Parameter(names = ['-with-tower'], description = 'Monitor workflow execution with Seqera Tower service') + @Parameter(names = ['-with-tower'], description = 'Monitor workflow execution with Seqera Platform (formerly Tower Cloud)') String withTower @Parameter(names = ['-with-wave'], hidden = true) diff --git a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerClient.groovy b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerClient.groovy index a216fa1a6c..076b672854 100644 --- a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerClient.groovy +++ b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerClient.groovy @@ -268,7 +268,7 @@ class TowerClient implements TraceObserver { */ @Override void onFlowCreate(Session session) { - log.debug "Creating Tower observer -- endpoint=$endpoint; requestInterval=$requestInterval; aliveInterval=$aliveInterval; maxRetries=$maxRetries; backOffBase=$backOffBase; backOffDelay=$backOffDelay" + log.debug "Creating Seqera Platform observer -- endpoint=$endpoint; requestInterval=$requestInterval; aliveInterval=$aliveInterval; maxRetries=$maxRetries; backOffBase=$backOffBase; backOffDelay=$backOffDelay" this.session = session this.aggregator = new ResourcesAggregator(session) @@ -293,7 +293,7 @@ class TowerClient implements TraceObserver { final ret = parseTowerResponse(resp) this.workflowId = ret.workflowId if( !workflowId ) - throw new AbortOperationException("Invalid Tower response - Missing workflow Id") + throw new AbortOperationException("Invalid Seqera Platform API response - Missing workflow Id") if( ret.message ) log.warn(ret.message.toString()) @@ -367,7 +367,7 @@ class TowerClient implements TraceObserver { final payload = parseTowerResponse(resp) this.watchUrl = payload.watchUrl this.sender = Threads.start('Tower-thread', this.&sendTasks0) - final msg = "Monitor the execution with Nextflow Tower using this URL: ${watchUrl}" + final msg = "Monitor the execution with Seqera Platform using this URL: ${watchUrl}" log.info(LoggerHelper.STICKY, msg) } @@ -379,7 +379,7 @@ class TowerClient implements TraceObserver { ? env.get('TOWER_ACCESS_TOKEN') : session.config.navigate('tower.accessToken', env.get('TOWER_ACCESS_TOKEN')) if( !token ) - throw new AbortOperationException("Missing Nextflow Tower access token -- Make sure there's a variable TOWER_ACCESS_TOKEN in your environment") + throw new AbortOperationException("Missing personal access token -- Make sure there's a variable TOWER_ACCESS_TOKEN in your environment") return token } @@ -538,7 +538,7 @@ class TowerClient implements TraceObserver { return new Response(httpClient.responseCode, httpClient.getResponse()) } catch( ConnectException e ) { - String msg = "Unable to connect to Tower API: ${getHostUrl(url)}" + String msg = "Unable to connect to Seqera Platform API: ${getHostUrl(url)}" return new Response(0, msg) } catch (IOException e) { @@ -556,7 +556,7 @@ class TowerClient implements TraceObserver { String msg if( code == 401 ) { - msg = 'Unauthorized Tower access -- Make sure you have specified the correct access token' + msg = 'Unauthorized Seqera Platform API access -- Make sure you have specified the correct access token' } else { msg = parseCause(httpClient.response) ?: "Unexpected response for request $url" @@ -743,7 +743,7 @@ class TowerClient implements TraceObserver { def cause = parseCause(resp.cause) def msg = """\ - Unexpected Tower response + Unexpected Seqera Platform API response - endpoint url: $endpoint - status code : $resp.code - response msg: ${resp.message} diff --git a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerFactory.groovy b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerFactory.groovy index 3133a5270b..e446e41203 100644 --- a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerFactory.groovy +++ b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerFactory.groovy @@ -92,7 +92,7 @@ class TowerFactory implements TraceObserverFactory { protected XAuthProvider provider(String endpoint, String accessToken) { if (endpoint.endsWith('/')) - throw new IllegalArgumentException("Tower endpoint URL should not end with a `/` character -- offending value: $endpoint") + throw new IllegalArgumentException("Seqera Platform endpoint URL should not end with a `/` character -- offending value: $endpoint") final refreshToken = env.get('TOWER_REFRESH_TOKEN') return new TowerXAuth(endpoint, accessToken, refreshToken) } diff --git a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerJsonGenerator.groovy b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerJsonGenerator.groovy index 11251c2a2c..d9850b41e4 100644 --- a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerJsonGenerator.groovy +++ b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerJsonGenerator.groovy @@ -125,7 +125,7 @@ class TowerJsonGenerator extends DefaultJsonGenerator { final result = seq.toString().substring(0,max) // show only the first 100 chars in the log as a preview final preview = result.length()>100 ? result.substring(0,100) + '(truncated)' : result - log.warn "Tower request field `$key` exceeds expected size | offending value: `${preview}`, size: ${seq.size()} (max: $max)" + log.warn "Seqera Platform request field `$key` exceeds expected size | offending value: `${preview}`, size: ${seq.size()} (max: $max)" return result } return seq diff --git a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerPlugin.groovy b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerPlugin.groovy index 72d6e6fd34..dff8bcf3d3 100644 --- a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerPlugin.groovy +++ b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerPlugin.groovy @@ -23,7 +23,7 @@ import nextflow.plugin.BasePlugin import nextflow.cli.PluginExecAware import org.pf4j.PluginWrapper /** - * Nextflow Tower plugin + * Seqera Platform plugin * * @author Paolo Di Tommaso */ diff --git a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerReports.groovy b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerReports.groovy index 80fea24635..14897101da 100644 --- a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerReports.groovy +++ b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerReports.groovy @@ -212,7 +212,7 @@ class TowerReports { it.flush() } catch (Throwable e) { - log.error ("Unexpected error writing Tower report entry '${destination.toUriString()}'", e) + log.error ("Unexpected error writing report entry '${destination.toUriString()}'", e) } }