Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
5642525
feat(compute-envs): add CloudWatch log group and DRAGEN options to AW…
cristianrcv Oct 2, 2026
ab7c9dc
feat(compute-envs): add --propagate-head-job-options to HPC platforms
cristianrcv Oct 2, 2026
4ee5cd4
feat(compute-envs): add --data-retention-policy to Seqera Compute
cristianrcv Oct 2, 2026
2cc169a
feat(compute-envs): add log group and project ID cloud options
cristianrcv Oct 2, 2026
be7c471
feat(compute-envs): add enable and disable commands
cristianrcv Oct 2, 2026
e0c5267
feat(launch): add --tower-config option
cristianrcv Oct 2, 2026
2a19581
feat(runs): add 'tw runs star' and 'tw runs unstar'
cristianrcv Oct 2, 2026
b331c35
feat(runs): delete several runs in one 'tw runs delete'
cristianrcv Oct 2, 2026
b21111e
feat(runs): add 'tw runs view log' to print a run or task execution log
cristianrcv Oct 2, 2026
45a4efa
feat(runs): page through run logs with --next
cristianrcv Oct 2, 2026
b32f4f3
fix(pipelines): keep labels and icon on 'tw pipelines update'
cristianrcv Oct 2, 2026
4fa3264
feat(pipelines): add 'tw pipelines schema' to read a pipeline's param…
cristianrcv Oct 2, 2026
c968b07
feat(studios): add extend and rename-checkpoint
cristianrcv Oct 2, 2026
8b87123
feat(studios): show progress warnings while waiting
cristianrcv Oct 2, 2026
98bbddb
feat(data-links): add delete-content and download-script
cristianrcv Oct 2, 2026
7adcc8f
fix(data-links): stop printing a Jersey warning on delete-content
cristianrcv Oct 2, 2026
23b5cc2
feat(datasets): disable dataset versions
cristianrcv Oct 2, 2026
52edfd3
feat(teams): add view, update and workspaces commands
cristianrcv Oct 2, 2026
e6b6978
fix(teams): find teams by name beyond the first page
cristianrcv Oct 2, 2026
7bcb946
feat(organizations): add quotas command
cristianrcv Oct 2, 2026
e9377d3
feat(access-tokens): add access-tokens list, add and delete commands
cristianrcv Oct 2, 2026
03a046c
feat(managed-identities): add managed identities and their SSH creden…
cristianrcv Oct 2, 2026
a8b1ecc
fix(managed-identities): list credentials for every member
cristianrcv Oct 2, 2026
65ce579
test: capture the native binary's output verbatim
cristianrcv Oct 2, 2026
f9f5838
docs: document the commands and options added for API 1.101.0
cristianrcv Oct 2, 2026
49b33e3
build(native): register reflection metadata for the new commands
cristianrcv Oct 2, 2026
72a4526
build(native): register every field of the new response classes
cristianrcv Oct 2, 2026
075f501
feat(ssh-keys): add ssh-keys list, add, view and delete commands
cristianrcv Oct 2, 2026
5247a4b
docs: document the ssh-keys commands added for API 1.113
cristianrcv Oct 2, 2026
349ef6b
build(native): register reflection metadata for the ssh-keys commands
cristianrcv Oct 2, 2026
8a4780b
feat(studios): mount data-link folders
cristianrcv Oct 5, 2026
2f1e5f4
fix(studios): mount data links stored with a trailing slash
cristianrcv Oct 5, 2026
6de652d
feat(datasets): link datasets from a URL
cristianrcv Oct 5, 2026
6bb2f3b
feat(members): add roles command
cristianrcv Oct 5, 2026
457b5d8
feat(roles): add custom role commands
cristianrcv Oct 5, 2026
baef0f1
docs: document the commands and options added for API 1.145
cristianrcv Oct 5, 2026
7074dd0
build(native): register reflection metadata for the API 1.145 commands
cristianrcv Oct 5, 2026
388c307
feat(compute-envs): add Intelligent Compute options to cloud platforms
cristianrcv Oct 5, 2026
7ece82e
feat(organizations): add IdP group and SCIM commands
cristianrcv Oct 5, 2026
497d1a9
feat(teams): link teams to IdP groups
cristianrcv Oct 5, 2026
24f17fe
feat(audit-logs): add audit-logs command
cristianrcv Oct 5, 2026
b5e9185
fix(audit-logs): delete the downloaded CSV after export
cristianrcv Oct 5, 2026
46f67e2
docs: document the commands and options added for API 1.167
cristianrcv Oct 5, 2026
24a2d7e
build(native): register reflection metadata for the API 1.167 commands
cristianrcv Oct 5, 2026
548c50b
feat(info): add 'tw info versions' to list launchable Nextflow versions
cristianrcv Oct 5, 2026
b099b28
feat(studios): add star and unstar
cristianrcv Oct 5, 2026
ebab378
docs: document the commands added for API 1.190
cristianrcv Oct 5, 2026
a1a7bf9
build(native): register reflection metadata for the API 1.190 commands
cristianrcv Oct 5, 2026
872ee48
feat(lineage): add lineage command
cristianrcv Oct 5, 2026
a9830b5
feat(studios): add logs
cristianrcv Oct 5, 2026
573023c
feat(compute-envs): add per-user CPU and spot attempt limits to Intel…
cristianrcv Oct 5, 2026
c5ad14b
docs: document the commands added for API 1.200
cristianrcv Oct 5, 2026
645c985
build(native): register reflection metadata for the API 1.200 commands
cristianrcv Oct 5, 2026
162b1da
build(deps): bump tower-java-sdk to 1.230.0 [COMP-2645]
cristianrcv Oct 5, 2026
fdc1287
fix(launch): keep waiting through failed status polls after submit [C…
cristianrcv Oct 5, 2026
fb751a8
fix(build): allow PATCH requests on Java 25 [COMP-2645]
cristianrcv Oct 5, 2026
d3af4bf
fix(build): open the JDK packages for PATCH in the native image too […
cristianrcv Oct 5, 2026
7c5f113
feat(service-accounts): add service account commands [COMP-2645]
cristianrcv Oct 5, 2026
4aaae21
feat(launch): add --fusion-version [COMP-2645]
cristianrcv Oct 5, 2026
c5a9fd2
feat(info): list Fusion versions from the compatibility catalog in 't…
cristianrcv Oct 5, 2026
bce3732
feat(credentials): add credentials federation-setup command [COMP-2645]
cristianrcv Oct 5, 2026
45026ec
feat(compute-envs): add --key-vault-url to azure-cloud [COMP-2645]
cristianrcv Oct 5, 2026
8aac8c9
feat(compute-envs): add --billing-export-table to google-cloud [COMP-…
cristianrcv Oct 5, 2026
ec321d8
feat(lineage): resolve runs by session ID and run name, and show the …
cristianrcv Oct 5, 2026
63f6531
docs: document the commands and options added for API 1.230.0 [COMP-2…
cristianrcv Oct 5, 2026
df53985
build(native): register reflection metadata for the API 1.230 command…
cristianrcv Oct 5, 2026
50ca839
feat(agents): add agents command
cristianrcv Oct 5, 2026
cd76eb6
feat(agents): add agents launch
cristianrcv Oct 5, 2026
74d8393
feat(agents): add agents runs list and view
cristianrcv Oct 5, 2026
4a1b4a4
feat(agents): set an agent's service account and GitHub App credentials
cristianrcv Oct 5, 2026
35a4330
docs: document the agents commands
cristianrcv Oct 5, 2026
72f3deb
build(native): register reflection metadata for the agents commands
cristianrcv Oct 5, 2026
785123a
feat(actions): add and update bucket-event actions
cristianrcv Oct 5, 2026
536d48f
fix(actions): list actions that have no endpoint
cristianrcv Oct 5, 2026
d985612
fix(actions): show 'Last event' once in 'actions view'
cristianrcv Oct 5, 2026
3880c75
feat(actions): add and update cron (scheduled) actions
cristianrcv Oct 5, 2026
e9cb5ce
feat(actions): add and update pipeline-status actions
cristianrcv Oct 5, 2026
470e1ef
feat(actions): add 'actions triggers list' and 'actions triggers view'
cristianrcv Oct 5, 2026
4ff56df
docs: document the actions sources and trigger history
cristianrcv Oct 5, 2026
81b351b
build(native): register reflection metadata for the actions commands
cristianrcv Oct 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,108 @@ $ tw data-links browse -w seqeralabs/showcase -i v1-user-6d8f44c239e2a098b3e02e9
FOLDER | technical/ | 0
```

## Organization administration

These commands act on an organization (`-o`/`--organization`). Most require the organization `OWNER` role.

### Service accounts

Run `tw service-accounts -h` to view the supported operations: `list`, `add`, `view`, `update`, and `delete`. Service accounts are non-human organization members. Add one to a workspace with `tw participants add -t MEMBER -n <name>`.

```bash
tw service-accounts add -o my-org -n ci-bot -d "CI pipeline launcher"
tw service-accounts list -o my-org
tw service-accounts list -w my-org/my-workspace
```

### Custom roles

Run `tw roles -h` to view the supported operations: `list`, `view`, `add`, `update`, `delete`, and `permissions`. `tw participants update --role` accepts custom role names.

```bash
tw roles permissions -o my-org
tw roles add -o my-org -n launcher -d "Launch only" -p <permission>,<permission>
```

### Teams, IdP groups and SCIM

- `tw teams view|update|workspaces`: view a team, update its name, description or linked IdP group (`--idp-group`, `--unlink-idp-group`), and list its workspaces.
- `tw organizations idp-groups list|add|delete`: manage the identity provider groups available to the organization.
- `tw organizations scim view|create-token|rotate-token|revoke-token`: manage SCIM provisioning.
- `tw organizations quotas` and `tw members roles -u <user>`: view organization quotas and a member's workspace roles.

## Personal access

### SSH keys

Run `tw ssh-keys -h` to view the supported operations: `list`, `add`, `view`, and `delete`. Use `-k -` to read the public key from stdin.

```bash
tw ssh-keys add -n laptop -k ~/.ssh/id_ed25519.pub
```

### Access tokens

Run `tw access-tokens -h` to view the supported operations: `list`, `add`, and `delete`. The token value is only shown when the token is created.

```bash
tw access-tokens add -n ci
```

## Managed identities

Managed identities give organization members individual SSH access to an HPC cluster (Slurm, LSF, UGE, Altair PBS, or Moab). Run `tw managed-identities -h` to view the supported operations. Each member then adds their own credentials:

```bash
tw managed-identities add -o my-org -n hpc1 -p slurm -H login.hpc.example.com
tw managed-identities credentials -o my-org -n hpc1 add -l my_linux_user -k ~/.ssh/id_rsa
```

## Agents

Run `tw agents -h` to view the supported operations: `list`, `view`, `add`, `update`, `delete`, `enable`, `disable`, `launch`, and `runs list|view`. Agents must be enabled for the organization.

```bash
tw agents add -w my-org/my-workspace -n triage --instructions-file triage.md
tw agents launch -w my-org/my-workspace -n triage
tw agents runs list -w my-org/my-workspace
```

## Lineage

Run `tw lineage -h` to view the supported operations: `resolve`, `view`, `search`, `upstream`, and `downstream`. Lineage must be enabled for the workspace.

```bash
tw lineage resolve -w my-org/my-workspace --file-path s3://bucket/results/out.bam
tw lineage upstream -w my-org/my-workspace -i <lid>
```

## Audit logs

Run `tw audit-logs -h` to view the supported operations: `list`, `view`, and `export`. These commands require a root user.

```bash
tw audit-logs export --after 2026-09-01T00:00:00Z --before 2026-09-30T23:59:59Z -o september.csv
```

## Other additions

- `tw compute-envs enable|disable`: enable or disable a compute environment.
- `tw compute-envs add`:
- Intelligent Compute options on `aws-cloud`, `azure-cloud`, and `google-cloud`. Run `tw compute-envs add <platform> -h` for the options each platform supports.
- AWS Batch: CloudWatch log group and DRAGEN options.
- AWS Cloud: `--log-group`. Google Cloud: `--project-id`.
- HPC platforms: `--propagate-head-job-options`.
- Seqera Compute: `--data-retention-policy`.
- `tw launch`, `tw pipelines add|update`, `tw runs relaunch`, and `tw actions add|update`: `--fusion-version` and `--tower-config`. List the versions you can launch with `tw info versions`.
- `tw runs star|unstar`, `tw runs view log [--next <cursor>]`, and `tw runs delete -i <id>,<id>`.
- `tw pipelines schema`: show a pipeline's parameter schema.
- `tw actions add cron|bucket|pipeline-status` and `tw actions triggers list|view`.
- `tw studios star|unstar|extend|logs|rename-checkpoint`. `--mount-data-uris` also accepts a folder inside a data link.
- `tw data-links delete-content|download-script`.
- `tw datasets add --url`, `tw datasets update --url`, and `tw datasets disable-version`.
- `tw credentials federation-setup -p aws|google`: show the values to configure in your cloud provider before adding workload identity credentials.

[compute-envs]: https://docs.seqera.io/platform/latest/compute-envs/overview
[credentials]: https://docs.seqera.io/platform/latest/credentials/overview
[git-integration]: https://docs.seqera.io/platform/latest/git/overview
Expand Down
15 changes: 13 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,13 @@ license {
exclude('conf/**')
}

// Jersey's HttpURLConnection connector can only send PATCH by reflecting into these JDK internals
// (HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, enabled by the SDK's ApiClient)
def jerseyPatchOpens = ['java.base/java.net', 'java.base/sun.net.www.protocol.https']

application {
mainClass.set('io.seqera.tower.cli.Tower')
applicationDefaultJvmArgs = jerseyPatchOpens.collect { "--add-opens=${it}=ALL-UNNAMED" }
}

java {
Expand All @@ -118,6 +123,8 @@ graalvmNative {
buildArgs.add('-H:+AddAllCharsets')
buildArgs.add('-H:EnableURLProtocols=https,http')
buildArgs.add('-H:+ReportExceptionStackTraces')
// Native images enforce module encapsulation for setAccessible too, so the reflection entries alone are not enough
buildArgs.addAll(jerseyPatchOpens.collect { "--add-opens=${it}=ALL-UNNAMED" })

javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(25)
Expand Down Expand Up @@ -168,7 +175,7 @@ tasks.named('run') {

// Run with GraalVM Tracing Agent enabled
if (System.getProperty('tracing-agent')?.toBoolean()) {
jvmArgs = ["-agentlib:native-image-agent=access-filter-file=conf/access-filter-file.json,config-merge-dir=conf/"]
jvmArgs += ["-agentlib:native-image-agent=access-filter-file=conf/access-filter-file.json,config-merge-dir=conf/"]
}
}

Expand All @@ -181,6 +188,9 @@ tasks.register('runReflectionConfigGenerator', JavaExec) {
}

tasks.named('shadowJar') {
manifest {
attributes 'Add-Opens': jerseyPatchOpens.join(' ')
}
archiveBaseName.set('tw')
archiveClassifier.set('')
archiveVersion.set('')
Expand All @@ -190,9 +200,10 @@ tasks.named('test') {
// Use junit platform for unit tests
useJUnitPlatform()
dependsOn tasks.named('checkLicenses')
jvmArgs jerseyPatchOpens.collect { "--add-opens=${it}=ALL-UNNAMED" }
// Run tests with GraalVM Tracing Agent enabled
if (System.getProperty('tracing-agent')?.toBoolean()) {
jvmArgs = ["-agentlib:native-image-agent=access-filter-file=conf/access-filter-file.json,config-merge-dir=conf/"]
jvmArgs += ["-agentlib:native-image-agent=access-filter-file=conf/access-filter-file.json,config-merge-dir=conf/"]
}
}

Expand Down
Loading
Loading