Skip to content

Artifact References

Artifact references are namespaced strings that appear as values in recipe step inputs and outputs.

Formats

FormatMeaning
job:nameA job-level input artifact named name
step:stepId.slotNameThe artifact produced by step stepId in slot slotName

job: references

job:input_las refers to an artifact named input_las that must be provided in the job's inputs map at submission time.

json
"inputs": { "input_las": "job:input_las" }

This tells the step: "bind your input_las slot to the job-level artifact named input_las."

The job submission must include:

json
"inputs": {
  "job:input_las": {
    "type": "las",
    "uri": "development/pineydam/mbes.las",
    "hash": "abc123def456"
  }
}

step: references

step:reproject.output_las refers to the artifact produced in the output_las slot of the step with ID reproject.

json
"inputs": { "input_las": "step:reproject.output_las" }

This tells the step: "bind your input_las slot to whatever the reproject step produced in its output_las slot."

How references flow through a DAG

In a two-step pipeline:

json
[
  {
    "id": "reproject",
    "type": "REPROJECT_LAS",
    "inputs":  { "input_las": "job:input_las" },
    "outputs": { "output_las": "step:reproject.output_las" }
  },
  {
    "id": "build_ept",
    "type": "BUILD_EPT",
    "inputs":  { "input_las": "step:reproject.output_las" },
    "outputs": { "output_ept": "step:build_ept.output_ept" }
  }
]
  • reproject reads from the job's initial input
  • reproject writes its result to step:reproject.output_las
  • build_ept reads from step:reproject.output_las — so it gets what reproject produced
  • Ordo enforces topological order: build_ept will not start until reproject completes

Slot names vs artifact names

The key in inputs/outputs is the executor's slot name (from step_executor.accepts / step_executor.produces). The value is the artifact name flowing through the DAG.

json
"inputs": { "input_las": "job:input_las" }
//          ^slot name    ^artifact name

Slot names must exactly match the executor's contract. Artifact names are yours to choose (as long as they're valid job: or step: references).