Grammar element · destinations.<id>.connection
connection reaches the target system
Three valid CSV connections. Location stays separate from the file and write mode.
destinations.yaml4 steps
What connection resolves
The system or directory the selected writer can reach before loading begins.
What destinations.<id>.connection is
Destination connection is the mapping used to reach the system that will receive rows.
It does not name the table or decide append, replace, or upsert. Those are loading concerns and remain in load.
What it contains
- Connector-specific settings — CSV uses a base path; databases use network and database settings.
- References, not embedded policy — Secrets belong in placeholders and load behavior belongs elsewhere.
- A reusable boundary — One reachable system can host several target objects.
Reach the system before naming the object
Connection answers “where can this writer connect?” Load answers “what should it write there, and how?” Keeping those questions apart makes declarations portable.
Run the complete example
Copy this manifest from the verified documentation project, then run it from the repository root.
version: "1.0"
destinations:
dest_output:
type: csv
connection:
base_path: "examples/tutorial/dsl-elements/out"
load:
table: result.csv
mode: replace
batch_size: 10000
hdrctl run examples/tutorial/dsl-elements
✅ Pipeline completed successfully in 2.6s Rows read : 30 Rows written: 6
The relevant command syntax, copied from hdrctl run --help:
hdrctl run [PATH] -s, --sources FILE explicit path to sources.yaml -d, --destinations FILE explicit path to destinations.yaml -t, --transformations FILE explicit path to transformations.yaml -P, --param KEY=VALUE override a parameter, repeatable