Managing Outputs¶
The tracker outputs subgroup inspects and manages the S3 outputs that a workflow run published. Two flavors of operation:
- Tracker-managed:
tracker outputs deleteenqueues a server-side job that deletes S3 files and updates tracker's index in one step. - Hand-managed:
tracker outputs update-db ...reflects S3 changes you made yourself (viaaws s3or S3 Batch Operations) into tracker's index. No S3 mutations happen.
Look up a run by S3 URL¶
tracker outputs info s3://bucket/runs/foo/sample.bam
tracker outputs info s3://bucket/runs/foo/
Returns the workflow run(s) whose Output.destination matches the URL as a substring (case-insensitive). Works for full file URLs and rundir prefixes alike.
foo-run-001 id=550e8400-e29b-41d4-a716-446655440000
Delete a run's outputs¶
tracker outputs delete RUN_NAME [--wait]
Enqueues a server-side job that deletes every S3 object under the run's output_dir and sets outputs_deleted_at on the run. The CLI returns immediately with a job_id; pass --wait to block until the job reaches a terminal state.
Enqueued delete job 7f3e... for 'foo-run-001' (enqueued).
Check progress: tracker outputs job-status 7f3e...
Authorization: You must be the run's owner, a cluster admin for the run's cluster, or a global admin.
Idempotent: if the outputs are already marked deleted, the command is a no-op. If a delete job is already running for the same run, delete returns the existing job id rather than starting a new one.
Exit codes (with --wait):
| Code | Meaning |
|---|---|
0 |
Job succeeded |
1 |
Job failed, or authentication/permission error |
124 |
Timed out before the job finished |
Check the status of a lifecycle job¶
tracker outputs job-status JOB_ID
Inspects an async lifecycle job (e.g., the delete_outputs job created by tracker outputs delete). Useful to poll progress without --wait, or to look up an old job by id. Prints a one-line summary plus extras for finished delete_outputs jobs:
delete_outputs succeeded (id=7f3e...)
run_id: 550e8400-e29b-41d4-a716-446655440000
started: 2026-05-13T19:02:11Z
completed: 2026-05-13T19:03:47Z
objects deleted: 1842
bytes deleted: 9876543210
Exit codes:
| Code | Meaning |
|---|---|
0 |
Job found |
1 |
Job not found, or authentication / server error |
Update tracker's index for hand-managed S3¶
Use these commands when you've already moved or deleted files in S3 and want tracker's record to match. They never touch S3.
Mark outputs as deleted (no S3 mutation)¶
tracker outputs update-db deleted RUN_NAME
Sets outputs_deleted_at on the run. Idempotent.
Rewrite output paths after a manual move¶
tracker outputs update-db moved RUN_NAME s3://new/prefix/
Rewrites every Output.destination row whose current destination sits under the run's output_dir, replacing the old prefix with s3://new/prefix/, and updates the run's output_dir itself. The destination prefix must be an s3:// URI ending with /.
Updated 'foo-run-001': 1842 output rows rewritten.
source: s3://old-bucket/runs/foo-run-001/
dest: s3://new-bucket/archive/foo-run-001/
Refuses to operate on a run whose outputs are already marked deleted.