Home Schema

Galaxy workflow test-data refs

JSON Schema for the test data each Galaxy workflow input gets, written by the test-data-resolution chain and read by implement-galaxy-workflow-test.

Revised
2026-10-15
Rev
1
schema test-data-refs @galaxy-foundry/gxwf-foundry @ 0.2.0 upstream ↗

Galaxy workflow test-data refs

Test data for each Galaxy workflow input, written by the test-data-resolution chain (a source-specific Mold, then find-test-data) and read by implement-galaxy-workflow-test. One ref per workflow input; an input no leg could resolve stays in the list as an honest gap.

5 sections. Anchor links per section (e.g. #root) are stable.

DataElement

DataElement

An element of a resolved collection: it carries a located fixture, or nested elements that each do.

Element

Element
field type req description
identifier string ✓
elements → Element[]
fixture → Fixture

Fixture

Fixture
field type req description
checksum string | null ✓ Integrity hash when available, e.g. SHA-1:<hex>; null when unknown.
location string | null ✓ Concrete URL, repo-relative path, or data-table string when known; null when the fixture still needs resolution.
provenance string ✓ Where this fixture comes from or how it was chosen, e.g. a translated source test-data reference, a Zenodo record, or a note that test-data-resolution must supply it.
storage string | null ✓ Where the fixture data lives or should live: remote-url (Zenodo/EBI/SRA location), in-repo (committed test-data path), cvmfs-string (data-table/built-in-index bare string), generated-toy (to be synthesized), or unresolved (not yet sourced).

Ref

Ref
field type req description
collection_shape string | null ✓ Galaxy collection shape when the input is a collection, e.g. list, paired, list:paired, record; null for a single dataset.
datatype string | null ✓ Galaxy datatype/extension, e.g. fastqsanger.gz, fasta, tabular; null when undecided.
fixture → Fixture ✓ Where the data lives. For a collection whose elements carry their own fixtures, storage and location may be null.
reason string | null ✓ Why the input is unresolved; null when resolved.
resolved boolean ✓ true when the ref points at real data of the required shape; false for an honest gap.
resolved_by string | null ✓ Name of the Mold that resolved this input, e.g. nextflow-to-test-data or find-test-data; null while unresolved.
workflow_label string ✓ Workflow input this ref feeds: its label in the Galaxy interface brief, or its input port in the CWL design.
elements → Element[] Collection elements, nested for nested shapes (list:paired → sample → forward/reverse). Identifiers must match the staged test file.
prep string | null Data-import-boundary prep needed to reach the Galaxy shape from the source data: a subset, split, or concatenation. A note on the ref, not an analysis step.

TestDataRefs

TestDataRefs
field type req description
refs → Ref[] ✓ One entry per workflow input label. A later leg of the chain keeps every entry an earlier leg resolved, unchanged, and replaces only unresolved ones.

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:

  1. packages/gxwf-foundry/src/schemas/test-data-refs/test-data-refs.schema.json — the canonical JSON, hand-edited.
  2. packages/gxwf-foundry/scripts/sync-schema.mjs regenerates the typed test-data-refs.schema.generated.ts wrapper at prebuild.
  3. Published in @galaxy-foundry/gxwf-foundry as testDataRefsSchema, with the foundry validate-test-data-refs subcommand.
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 — true when the ref points at real data of the required shape, false for an honest gap with a reason. Whether the chain is done is a deterministic question: does any ref have resolved: 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 has storage: unresolved and 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.

Incoming References (5)

  • foundry validate-test-data-refs related note — AJV gate for the test-data-refs document the test-data-resolution chain writes.
  • cwl-to-test-data schema of artifact output — Resolve a CWL workflow's own declared test cases into Galaxy workflow test-data refs.
  • find-test-data schema of artifact output — Search IWC fixtures and public sources for test data matching a data-flow shape.
  • nextflow-to-test-data schema of artifact output — Resolve a Nextflow pipeline's own declared test fixtures into Galaxy workflow test-data refs.
  • paper-to-test-data schema of artifact output — Resolve the test data a paper names into refs for each workflow input.