YAML reference
A DRE project is YAML and SQL files. Each kind of YAML file has a reference page that lists every key with its type, default and meaning. The pages are generated from the same JSON Schemas that give editors autocomplete, so they can’t miss a key.
| File | What it holds | Reference |
|---|---|---|
dre_project.yml |
The project: default connection and output, variables, week settings, folder config | dre_project.yml |
reports/**/*.yml |
A report: queries, output, destinations, Sets, templates | Report YAML |
sets.yml |
Named variants a report can run as | sets.yml |
schedules.yml |
Named schedules your orchestrator fires | schedules.yml |
timings.yml |
Named timings that schedules share | timings.yml |
profiles.yml |
Connections and destinations, with their targets (kept outside the project) | profiles.yml |
sources/*.yml (any YAML with sources:) |
dbt-style source declarations: tables, columns, the connection they live on | Sources |
dependencies.yml |
Plugin packages and macro packages | dependencies.yml |
lookups/<name>.yml |
The config of a lookup file | Lookup config |
The options of each format and destination (for example delimiter, or an email’s to) are
documented with their plugins in Plugins; that reference comes from the plugins
themselves.
For editor autocomplete and validation, see Editor setup.
For copyable projects, see examples. Project configuration explains how defaults, folders and Sets combine; the glossary defines the terms.
Reusing YAML: x-* keys and anchors
Section titled “Reusing YAML: x-* keys and anchors”Every YAML file DRE reads accepts top-level keys starting with x-, as docker-compose does, and
ignores them. They’re where YAML anchors live: name a block once with &name, then reuse it with
an alias (*name) or merge it with <<: *name, overriding keys after the merge. Anchors work
within one file.
x-finance-mail: &finance_mail profile: finance_email subject: "Monthly report {{ run.date.iso }}"queries: [monthly]output: format: xlsx destination: - <<: *finance_mail to: finance@example.com - <<: *finance_mail to: audit@example.com subject: "For audit: monthly report {{ run.date.iso }}"To share settings across files, use default_output, format_options and the folders’ +output,
+vars and +profile in dre_project.yml.