Skip to main content

DFE Schemas

Shared schema definitions for the Data Fusion Engine (DFE) platform - the single source of truth for the data-structure definitions that multiple DFE components must agree on (dfe-engine, dfe-loader, dfe-receiver, dfe-archiver).

Usage

Install the Python package. The schema trees ship as package data under dfe_schemas/data/, alongside the dfe_schemas.clickhouse engine resolver and the declared deploy defaults:

pip install dfe-schemas
python -c "import dfe_schemas; print(dfe_schemas.schemas_root())"

Point DFE_SCHEMAS_DIR at your own directory to override the shipped trees:

export DFE_SCHEMAS_DIR=/opt/dfe/schemas

Validate locally (needs dfe-engine importable - point PY at an interpreter that has it):

make validate PY=../dfe-engine/.venv/bin/python

Structure

dfe-schemas/
|-- common-header/     # header profiles: timeseries (9 col, default),
|                      #   minimal (5 col), passthrough (4 col)
|-- meta/              # source meta schemas, by provider (aws/ azure/ gcp/ m365/
|                      #   runzero/ ...)
|-- additional/        # extra-field overlays: aws/, and snapshot/envelope.yaml,
|                      #   the store-snapshot envelope every dump store composes
|-- hunts/             # hunt output (results.yaml) + runner checkpoint schema
|-- tables/            # tables in exact ClickHouse types: otel/ + engine internal/
|-- sources/           # engine-owned source definitions (main, the landing table)
|-- scripts/           # validate_schemas / annotate_meta_schemas /
|                      #   generate_meta_schemas (a meta schema from live rows)
|-- docs/meta-schema.md  # the YAML format reference (version tree, columns, types)
|-- docs/tables.md     # the tables/ format reference (clauses, exact CH columns)
'-- Makefile           # validate

Every schema YAML carries its own version tree - each version entry is a complete column snapshot with SchemaVer semantics (model / addition / revision), published versions are immutable, and consumers pin versions independently. Full format reference, column fields, the 13-primitive type system, and the @directive expression language: docs/meta-schema.md.

How these reach ClickHouse

One applier, three callers. The dfe-schema entry point in the dfe-engine image reads this tree and reconciles ClickHouse against it: dfe-infra runs it as a Job before the data plane starts, dfe-docker runs it as a compose init service, and the engine repeats it idempotently at boot. Rendering SQL here and applying it separately was a SECOND definition of the same tables, so it is gone -- there is one DDL path and it reads these files.

Consumers

Project Language Role Schema types used
dfe-engine Python DDL generation, schema builder, hunt output All
dfe-loader Rust Table creation, field enrichment, auto-init common-header
dfe-receiver Rust Field validation common-header
dfe-archiver Rust Table detection common-header

Rust services slave from the DEPLOYED ClickHouse schema at runtime (system.columns) - they never read this YAML directly.

Updating schemas

  1. Branch here, add a NEW version entry (complete column snapshot - never modify a published version), update current, commit, PR to main.
  2. Cut a release (CI workflow_dispatch, from-head=true) so the wheel carrying the new trees reaches PyPI.
  3. Raise the dfe-schemas floor in each consumer and relock (dfe-engine: pyproject.toml + uv.lock).
  4. Copy changed common-header profiles to the consumers' bundled fallback locations (dfe-engine: src/dfe_engine/schema/profiles/), which is what answers when neither DFE_SCHEMAS_DIR nor the package is available.

Shipped files here are read-only defaults - customise by pointing DFE_SCHEMAS_DIR at your own directory with only the profiles you override.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dfe_schemas-0.2.3.tar.gz (36.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dfe_schemas-0.2.3-py3-none-any.whl (69.9 kB view details)

Uploaded Python 3

File details

Details for the file dfe_schemas-0.2.3.tar.gz.

File metadata

  • Download URL: dfe_schemas-0.2.3.tar.gz
  • Upload date:
  • Size: 36.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dfe_schemas-0.2.3.tar.gz
Algorithm Hash digest
SHA256 8731677305e25e18a340eebbbf4e7d0d4383462aec298bbfd1a3184215d3dc40
MD5 bdf1fc9a1fcbdcb832f3bb1965c6450f
BLAKE2b-256 d90547701e499f3c79dca87fd79e55cefabcd9f253426d05c1c7132535145020

See more details on using hashes here.

File details

Details for the file dfe_schemas-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: dfe_schemas-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 69.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dfe_schemas-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 22a3bcfa80afdf54111df0ce1f6be43203721139520ca87fa201ac36e277ebcf
MD5 48013886ca033adc97f69fb4241ce00a
BLAKE2b-256 adc083c226685771e78572339d4ffa6f9a8e73d3197dd6cb0ab3dbd48d8536c7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page