Overrides¶
Variant C manifests are resolved from multiple layers into a deterministic final process.
Resolution layers¶
The final process is assembled in this order:
- Registry defaults.
- Convention defaults.
- File-level
vars. - File-level
defaults. - Item-level configuration.
Later layers override earlier layers according to the merge rules below.
Merge rules¶
- Dictionary plus dictionary uses recursive deep merge.
- Scalar values replace previous values.
- Lists replace previous lists by default.
- Top-level
depends_onandtransformsuse append semantics.
Append semantics allow defaults to define shared dependencies while individual tables add local dependencies without rewriting the full list.
Template rendering¶
Templates can reference resolved values from the manifest context.
If a value consists only of {{ expr }}, the original type is preserved. For example, booleans and lists remain booleans and lists instead of becoming strings.
Naming policy¶
Prefer putting naming templates in naming or convention sections instead of copying string patterns into every table.
Debugging commands¶
Inspect the resolved config:
Inspect why a field has a specific value:
Inspect task-level provenance:
Practical guidance¶
- Put repeated connection, strategy, and task-group settings in
defaults. - Put naming policy in conventions.
- Use templates for metadata such as labels and table descriptions.
- Use registry entries for source metadata such as host, type, owner, and team.
- Keep item-level overrides for true per-table differences.