Skip to main content

dfe-schemas

The one place a DFE deployment's ClickHouse databases, tables, views, roles and grants and its Kafka bootstrap topics are defined. dfe-engine reads this package at boot and applies what is missing, so nothing else in a DFE deployment creates any of them.

It ships the schema trees as package data, with the renderer that turns them into ClickHouse DDL for the platform a connection reaches and into topic specs for Kafka. load_manifest(root=...) renders a tree of your own instead.

What it gives you

  • manifest.yaml: every object a deployment creates, in dependency order. A new table is an entry there plus its definition file, with no engine release.
  • One table shape on every ClickHouse: the argumentless Replicated<variant> engine with no ON CLUSTER, which ClickHouse Cloud rewrites to SharedMergeTree.
  • PlatformProbe, which tells ClickHouse Cloud from self-hosted on a live connection, and whose require_replication() refuses a self-hosted server with no Keeper.
  • A per-object checksum, the same on every platform, so an applier can tell what changed.
  • Kafka bootstrap topics with their replication clamped to the deployment's broker count.
  • The ClickHouse role and grant catalogue, and the declared ClickHouse settings defaults every DFE deployment applies.
  • The registries of table engines, column types and default field maps that dfe-engine validates source definitions against.

Example

uv add dfe-schemas
from dfe_schemas.clickhouse import Platform
from dfe_schemas.manifest import load_manifest
from dfe_schemas.render import Renderer

manifest = load_manifest()
renderer = Renderer(manifest, platform=Platform.SELF_HOSTED, data_database="dfe")

first = renderer.render(manifest.objects[0])
print(first.id, first.checksum[:12])
for statement in first.statements:
    print(statement)
db.data 8a39e4f8fa91
CREATE DATABASE IF NOT EXISTS dfe ON CLUSTER '{cluster}'
ENGINE = Replicated('/clickhouse/databases/dfe', '{shard}', '{replica}')

Platform.CLOUD renders the same object for ClickHouse Cloud. Against a live server, PlatformProbe(client).platform names it for you.

Docs and source are at https://github.com/hyperi-io/dfe-schemas. Requires Python 3.14 or later. Licensed BUSL-1.1: https://github.com/hyperi-io/dfe-schemas/blob/main/LICENSE.

Metadata

Release files for dfe-schemas 0.2.22

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dfe-schemas 0.2.22
File Size Uploaded Provenance Actions
dfe_schemas-0.2.22.tar.gz 1.3 MB Without provenance Details for dfe_schemas-0.2.22.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dfe-schemas 0.2.22
File Interpreter ABI Platform Actions
dfe_schemas-0.2.22-py3-none-any.whl Python 3 none any Details for dfe_schemas-0.2.22-py3-none-any.whl

Total release size: 4.1 MB

Release files / dfe_schemas-0.2.22.tar.gz

Download URL dfe_schemas-0.2.22.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
dd93806ed3a34ab71601e775c72585c810af1c999aea7a981a85fb6ff9cb25bd
BLAKE2b-256 checksum
How to use checksums
8653f508fa8d07409535d5434b17b26f59a18344161cc2980f7c3c6a7a039550
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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}

Release files / dfe_schemas-0.2.22-py3-none-any.whl

Download URL dfe_schemas-0.2.22-py3-none-any.whl
Size 2.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
df764d74ac1e34a5a0264c7374c58ee2aadbbc0142ea735e1f8f4d1740fd8f1e
BLAKE2b-256 checksum
How to use checksums
2534111ddb2648397c8c8d1dd81d5b6ec32bef7e998e99c292a724b431d92f9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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}

Security for dfe-schemas 0.2.22

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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