Skip to content

Glossary

One definition per term, with a link to the chapter that explains it.

Advisory diff — a diff taken before promotion. It shows what the change does to the rows as of the pinned inputs. Compare authoritative diff. → Branches and promotion

AST hash — a fingerprint of a model’s SQL structure, not its text. Reformatting, recasing, and comment edits produce the same hash and trigger no work. → Models and lineage

Authoritative diff — the diff Reble computes at promote time, after any forced re-run. It is the one that matches what lands in production. → Branches and promotion

Base — the ref a branch forks from, main by default. Configured as warehouse.default_base. → Configuration

Change-set — the id Reble stores its state under, and the unit a data branch is derived from. Comes from --change-set, REBLE_CHANGE_SET, or the git branch. → Running and scheduling

Data branch — the Iceberg branch refs Reble creates on each table in scope, so a change is built in isolation from main. Metadata only; no data is copied. → Branches and promotion

Diff key — the column or columns that identify a row, declared as -- key: in a model header. Without one, reble diff falls back to hashing whole rows or errors, per diff.on_missing_key. → Models and lineage

Downstream closure — everything built on top of a set of models. A model whose inputs changed is itself changed, so the closure is always pulled into scope. → Models and lineage

Drift — a pinned input no longer equals current main: production moved since the branch was built. Reported by reble status as exit 3. Not an error. → Branches and promotion

Fast-forward — moving main to the branch head when the branch was built from current data. One metadata write per table, and the only way a change reaches production. → Branches and promotion

Model — one SQL file that produces one table. The only unit of work. → Models and lineage

Pin — an Iceberg tag recording the exact version of an upstream input at the moment a branch first ran, so reruns are reproducible. Named reble_pin__<branch>__<table>. → Branches and promotion

Promote — apply a branch to production. Either a fast-forward or a scoped re-run followed by one. Never a merge. → Branches and promotion

Provenance — the reble.* properties written into every snapshot summary: which model, which SQL hash, which run. Answers “what produced this table state” from the catalog itself. → Iceberg refs

Ref — a named pointer to an Iceberg snapshot. Branches are movable refs; tags are immutable ones. → Iceberg refs

Refreshreble run --refresh: a run whose scope comes from data movement rather than SQL edits. The scheduled case. → Running and scheduling

Run — one execution of a scope: create or advance the branch, pin inputs, execute models in dependency order. → Running and scheduling

Scope — the set of models a run rebuilds: the seed models plus their downstream closure. Computed, never declared. → Models and lineage

Seed snapshot — a zero-row snapshot Reble writes on main when a model’s table does not exist yet, because Iceberg cannot branch a table with no snapshots. Main stays empty until promote. → Iceberg refs

Snapshot — an immutable, complete view of an Iceberg table at one commit. Reading a snapshot gives the same rows forever. → Iceberg refs

Upstream input — a table a model reads that is not itself a model, typically filled by your ingestion. Reble never builds one; it pins them. → Models and lineage