streambuild_project.toml. Legacy YAML project files are rejected.
name and default_target are required. adapter defaults to clickhouse.
Classify a production target in committed configuration even when its name is not prod or
production:
PRODUCTION challenge to target reset. It is not
accepted in streambuild.local.toml, so a local override cannot weaken or add production status.
Commands that connect to ClickHouse require host, port, username, and password after all
configuration layers are merged. StreamBuild supplies no connection defaults. Use password = ""
when the ClickHouse account intentionally has an empty password.
Connection settings
settings sends ClickHouse session settings on every statement StreamBuild runs, including replay:
true becomes "1").
These override the server’s defaults for StreamBuild’s own connection only; nothing else querying
the server is affected. Use this when replay needs a different execution profile from the rest of
the warehouse — for example capping max_threads so a large replay does not exhaust
max_memory_usage, since read memory scales with thread count.
A target’s settings table replaces the project-level one rather than merging key by key.
ClickHouse rejects unknown setting names, so a typo fails on connect.
Kafka and retention defaults
Set a broker list once for every managed Kafka source in the project:broker_list overrides this value. A managed Kafka source must resolve a broker list
from one of those levels. The default supports normal project and environment interpolation.
Set an optional project-wide TTL for StreamBuild-managed Kafka landing tables:
_replay_landed_at is the recommended clock because it
tracks when StreamBuild persisted the Kafka record, independently of the event timestamp. A managed
source can override this default with its own ttl. When neither level defines a value, StreamBuild
does not add a TTL clause and retains landing data indefinitely.
Set an independent default for table models:
ttl in MODEL() overrides model_ttl. When neither level defines a model TTL,
StreamBuild creates the table without a TTL clause. The effective TTL is validated against output
columns and participates in storage identity and drift detection. Terminal views do not inherit a
model TTL.
Pipeline naming
Pipeline names must start withpl__ by default:
pipeline_naming_macro is optional. It names a Python macro that accepts a
PipelineNamingContext and returns the required pipeline directory name. A mismatch stops
discovery; StreamBuild never renames project files. Pipeline, source, and model names must be unique
across the project.
Model relation naming
Set project-wide prefixes for table and terminal-view relations:pipeline.toml, and a model can set an exact relation_name in MODEL(). Resolution order is exact
model name, pipeline prefix, project prefix, then built-in prefix. Logical model identity remains
the SQL filename stem, so __ref(), selectors, tests, and audits do not change when warehouse
naming changes.
kafka__, raw__, and mv__ are reserved for StreamBuild internals. Deployment suffixes are also
internal and cannot be configured. Effective relation names must be unique unqualified identifiers.
Pipeline build modes
Direct mode is the project default. Set it explicitly with:pipeline.toml can override the project default:
stb plan and stb build accept mixed selections. StreamBuild stages the virtual phase first and
starts the immediately-applied direct phase only after virtual staging succeeds.
Build limits
Set an absolute maximum for the distinct pipelines in a build’s expanded downstream scope:streambuild_local.toml; local-only targets inherit
the project default.
Sensor automation
Enable durable event and polling sensors per target:Deployment readiness
Virtual deployment audits use configurable project-wide thresholds:maximum_lag accepts an <int><s|m|h|d> duration and defaults to 30s.
minimum_staged_row_ratio accepts a number from 0 to 1 and defaults to 0.5. These thresholds
contribute to the overall ready, caution, or not_ready assessment reported by
stb deployment audit; replay evidence and applicable SQL audits also contribute. The assessment
remains advisory and does not block promotion.
Run recovery window
stb dev blocks a new build while a durable run is still running or unresponsive. Configure how
long a silent run remains blocking:
<int><s|m|h|d> duration, defaults to 10m, and must exceed the 45-second
unresponsive threshold. Once the window expires, the run is displayed as presumed_failed and a
fresh build may start. This setting is committed project policy because overlapping writes affect
everyone using the target database.
Local overrides
Use ignoredstreambuild_local.toml for developer-specific values:
Precedence
Target
- CLI
--target - local
target - project
default_target
Variables, lowest to highest
- project
[vars] - selected project target vars
- selected local target vars
- local
[vars] - CLI
--vars
Database
- CLI
--database - selected local target database
- selected project target database
Connection, lowest to highest
- project connection
- selected project target connection
- selected local target connection
- local connection
STREAMBUILD_CLICKHOUSE_HOST,STREAMBUILD_CLICKHOUSE_PORT,STREAMBUILD_CLICKHOUSE_USERNAME, andSTREAMBUILD_CLICKHOUSE_PASSWORD- CLI connection flags
Interpolation
Use project variables and environment variables in values:stb discover and
stb compile remain connection-free.
