GENI Workflows

Tagging support for workflows

You can set tags for workflow at registration (geni workflow create) or using geni workflow update. Tags on a given workflow are replicated for its submissions. You can override workflow tag value using geni submission create. Or even changing using geni submission update.

New workflow versions already inherent existing tags.

Tag at registration

Terminal window
geni workflow create \
--workflow-name wgs-germline \
--workflow-version v2.1.0 \
--file wgs-germline.zip \
--tag Client=Hospital \
--tag Project=PROAD

Every run of wgs-germline from now on carries Client=Hospital and Project=PROAD.

Change them later

Terminal window
geni workflow update wgs-germline \
--edit-tag client=acme \
--add-tag Stage=PROD \
--remove-tag Project

Tags live on the workflow, not the version, so this applies to v1.0.0 and v2.1.0 alike.

Filter by them

Terminal window
geni workflow list --tag client=acme --show-tag stage

Repeating --tag narrows the result to workflows carrying all the given tags. --show-tag adds a tag as a column.

Details

A submission tag wins. If a submission passes --tag client=other, that value overrides the workflow’s client for that run. Inheritance is a default, not a lock.

Keys must be registered first. As with submission tags, the key has to exist in the tag registry, which only an administrator can add to. An unregistered key fails the request with 422.

Terminal window
geni tag create Client

Re-uploading a version never clears tags. Only the keys you supply are upserted; anything you do not mention is left alone. That means pushing v2.2.0 of a workflow does not wipe the labels you set six months ago. To actually remove one, use geni workflow update --remove-tag.

Attaching the label to the workflow moves that decision to the place where it is actually known: when you register the pipeline, you already know which client it belongs to.

Full details in the tagging guide.