Expand description
Typed pipeline parameters — the params: block and the ${param.NAME}
interpolation namespace (#444).
A config declares the values that change per run:
version: 1
params:
tenant_id: { type: string, required: true, description: "Tenant to sync" }
since: { default: "1970-01-01" }
api_token: { required: true, secret: true }
pipeline:
source:
type: rest
config:
url: "https://api.example.com/${param.tenant_id}/events?since=${param.since}"
auth: { type: bearer, config: { token: "${param.api_token}" } }and every runtime supplies them the same way:
faucet run --param tenant_id=acme/faucet validate(placeholders),faucet template run <id> --param tenant_id=acme,POST /v1/templates/{id}/runswith{"params": {...}, "env": {...}}.
spec is the declaration grammar + coercion; bind is the pre-parse
substitution pass. The persistent registry that stores parameterized configs
server-side lives in crate::templates (the templates build feature).
Re-exports§
pub use bind::BindMode;pub use bind::BoundParams;pub use bind::PARAM_ID;pub use bind::PARAMS_KEY;pub use bind::SuppliedParams;pub use bind::bind_document;pub use bind::collect_cli_params;pub use bind::collect_env_overrides;pub use bind::declared;pub use bind::parse_cli_param;pub use bind::resolve;pub use spec::ParamSpec;pub use spec::ParamType;pub use spec::ParamsSpec;