Skip to content

Catalog

A Catalog is a set of reference data — a dictionary or lookup table used during transformation and validation. A Kontenrahmen (chart of accounts) mapping code → name is a typical example.

How catalogs are used

During a transform, a catalog is made available to DuckDB as a temporary table, so a Transformer mapping or a Business Rule can look values up:

(SELECT "name" FROM dict_kontenplan WHERE "code" = "Konto")

Storage

Catalog data is stored as Parquet (written via polars), not in PostgreSQL rows. A catalog can also be schema-first — defined with columns but no data yet — so you can wire up the structure before the reference data arrives.

Scoping

Catalogs have the richest scoping of any object — four tiers:

  1. Org-level — reusable everywhere.
  2. Project-scoped — bound to one project, auto-available within it.
  3. Provider-scoped — bound to a specific Data Provider.
  4. Org-level attached to a project via a join table.

A project-scoped catalog overrides an attached org-level catalog of the same name, the same way entities resolve.

Importing data can reshape the schema

Importing rows into a catalog collapses its schema to whatever columns are present in the imported file. If you need to keep extra columns, include them (even if blank) in the import.