Skip to main content

Module params

Module params 

Source
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}/runs with {"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;

Modules§

bind
Binding ${param.NAME} references to supplied values (#444).
spec
Serde types + validation for the top-level params: block (#444).