This page is auto-rendered from the JSON Schema authored in this repo. Each $def becomes a section below with a stable anchor ID, e.g. test-data-refs#Ref.
Source-of-truth chain:
packages/gxwf-foundry/src/schemas/test-data-refs/test-data-refs.schema.json— the canonical JSON, hand-edited.packages/gxwf-foundry/scripts/sync-schema.mjsregenerates the typedtest-data-refs.schema.generated.tswrapper atprebuild.- Published in
@galaxy-foundry/gxwf-foundryastestDataRefsSchema, with thefoundry validate-test-data-refssubcommand.
foundry validate-test-data-refs test-data-refs.json
What This Models
The pipelines’ test-data-resolution branch is a chain that fills gaps, not a choice between alternatives. A source-specific Mold (nextflow-to-test-data, cwl-to-test-data, paper-to-test-data) maps the data the source declares. find-test-data then searches for whatever the first leg left unresolved. Anything still unresolved goes to the user. Every leg writes the same test-data-refs.json.
refs[]— one entry per workflow input label.resolved—truewhen the ref points at real data of the required shape,falsefor an honest gap with areason. Whether the chain is done is a deterministic question: does any ref haveresolved: false?resolved_by— the Mold that resolved the input. A later leg keeps an earlier leg’s resolved entries, this field included, and replaces only the unresolved ones.fixture— the same shape as galaxy-workflow-test-plan#Fixture (storage class, location, checksum, provenance), so a ref’s fixture drops into a test plan unchanged. An unresolved ref hasstorage: unresolvedand no location.elements[]— collection elements, nested for nested shapes (list:paired→ sample →forward/reverse), each with its own fixture. A resolved collection has either a location or at least one element, and each of its elements reaches a located fixture, directly or through nested elements.prep— the import-boundary prep (subset, split, concatenation) needed to reach the Galaxy shape from the source data.
Not Enforced Here
- One entry per label. JSON Schema can’t express uniqueness by key; find-test-data‘s eval checks full input coverage.
- The data exists. The schema checks shape, not that a URL resolves or a checksum matches.