sources.yaml is a catalogue, not a build list
Three correct shapes of the file. Walk them, then read what the engine builds from each.
The figures below come from running the real engine on this exact manifest.
What sources.yaml is
sources.yaml is the file that declares every input the job may read. One root key,
sources, holding a mapping: each key is an identifier you invent, each value is a
declaration of one system to read from.
It is one of the three required files of a job, next to destinations.yaml and
pipeline.yaml. Only transformations.yaml may be omitted.
What it contains
- Identifiers — names local to the job.
pipeline.frompoints to one of them;join.right,merge.rightandunion.rightmay point to others. - Declarations — four keys each:
typenames the connector,connectionsays how to reach the system,extractwhat to read,schemahow to type it. Their shape is the subject of the connectors page.
Declared is not opened
This is the idea worth keeping. The file is a catalogue, not a build list. The engine instantiates a connector only when something references its identifier — so a second source sitting in the file untouched is never built, its type never checked, its file never looked for.
What the engine requires
- The file must exist and declare at least one entry. It is one of the three required files
of a job, next to
destinations.yamlandpipeline.yaml. - Every referenced identifier must exist. That link is checked from pipeline, which names the two ends of the job.
- Unreferenced entries are not checked at all. Convenient while you draft, worth a second look before you commit.