Blueprints¶
A blueprint is a YAML file under blueprints/ that declares parameters and a
list of flowgroup specs. An instance file names the blueprint with
use_blueprint: and supplies parameter values under parameters:; LHP
expands each spec once per instance, so a blueprint with N specs and M instances
yields N × M generated flowgroups. A blueprint file has the shape:
name: <blueprint_name>
version: "1.0"
description: <text>
parameters:
- name: <param_name>
required: <bool>
default: <value>
flowgroups:
- pipeline: "%{param_name}_..."
flowgroup: "%{param_name}_..."
actions:
- ...
See also
How-to guide: Fan one blueprint across tenants and regions.
Blueprint file fields¶
Top-level fields of a blueprint file.
Field |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Blueprint identifier. Unique across the project; referenced by |
|
string |
No |
|
Version string for the blueprint. |
|
string |
No |
— |
Free-text description of the blueprint. |
|
list[mapping] |
No |
|
Parameter declarations (entry schema below). |
|
list[mapping] |
Yes |
— |
Flowgroup specs. Each entry is expanded once per instance (spec schema below). |
Parameter fields¶
Keys of a single entry in the parameters: list.
Key |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Parameter name. An instance binds a value to this key, and |
|
bool |
No |
|
When |
|
any |
No |
— |
Value used when |
|
string |
No |
— |
Human-readable note. |
Flowgroup spec fields¶
Keys of a single entry in the flowgroups: list. Same schema as a flowgroup
file’s fields.
Field |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Target pipeline name. Template string; only |
|
string |
Yes |
— |
Target flowgroup name. Template string; only |
|
string |
No |
— |
Optional job name passed through to the flowgroup. |
|
mapping |
No |
— |
Local |
|
list[string] |
No |
|
Preset names applied to the spec’s actions. |
|
string |
No |
— |
Name of a template expanded into the spec’s actions. |
|
mapping |
No |
— |
Values supplied to the referenced template. |
|
list[mapping] |
No |
|
Inline action list. Same schema as flowgroup actions. |
|
bool or list[string] |
No |
— |
Toggle metadata columns, or a list of metadata column names. |
name: erp_ingestion
version: "1.0"
description: "ERP ingestion, one instance per site"
parameters:
- name: site_name
required: true
- name: partition_key
required: false
default: order_date
flowgroups:
- pipeline: "%{site_name}_erp_raw"
flowgroup: "%{site_name}_orders"
actions:
- name: load_orders
type: load
source:
type: cloudfiles
path: "${landing_volume}/%{site_name}/orders"
format: json
target: v_orders_raw
- name: write_orders
type: write
source: v_orders_raw
write_target:
type: streaming_table
catalog: "${catalog}"
schema: bronze
table: "%{site_name}_orders_raw"
partition_columns:
- "%{partition_key}"
Instance file fields¶
An instance file names one blueprint and supplies its parameter values. The
file is strict — unknown top-level keys are rejected. The legacy blueprint:
key with flat parameter siblings is deprecated and removed in V0.9; use
use_blueprint: with a nested parameters: block.
Field |
Type |
Required |
Default |
Description |
|---|---|---|---|---|
|
string |
Yes |
— |
Name of the blueprint to instantiate. Must match a discovered blueprint’s |
|
mapping |
No |
— |
Flat |
|
mapping |
No |
— |
Reserved for future use; accepted but currently unused. |
use_blueprint: erp_ingestion
parameters:
site_name: apac_sg
partition_key: order_date
Discovery¶
Blueprint files are discovered under blueprint_include; instance files under
instance_include. Both default to the globs below and are configurable in
lhp.yaml.
blueprint_include: ["blueprints/**/*.yaml", "blueprints/**/*.yml"]
instance_include: ["pipelines/**/*.yaml", "pipelines/**/*.yml"]
Discovery routes by content shape, not by path: a document with top-level
parameters: and flowgroups: (and no actions:) is a blueprint; a
document with use_blueprint: (or legacy blueprint:) is an instance.