Open Lakehouse Contract
The open standard for portable, executable lakehouse data contracts.
Documentation · Quickstart · Contract reference · Compatibility evidence
Define a data product's sources, schema, ownership, quality rules, PII handling, lineage, service levels (SLAs and SLOs), transformations and materialisation in one portable, vendor-neutral contract.
Open Lakehouse Contract (OLC) captures that definition in a portable YAML document.
The contract declares the intent. Any tool can validate its structure with JSON Schema, and a conforming runtime such as LakeLogic Core can execute that intent.
Validate a contract in 60 seconds
version: 1.0.0
info:
title: Orders
table_name: orders
model:
fields:
- name: order_id
type: integer
required: true
quality:
row_rules:
- name: positive_order_id
sql: "order_id > 0"
Clone the repository, install the CLI and validate the example:
git clone https://github.com/LakeLogic/open-lakehouse-contract.git
cd open-lakehouse-contract
python -m pip install -e .
olc validate examples/orders.olc.yaml
The validator uses the published JSON Schema. It does not require a data engine or LakeLogic Core.
What OLC gives you
- Earlier feedback. Reject invalid contracts in CI before a pipeline change reaches production.
- Clear accountability. Record who owns the data product and the downstream consumers that depend on it.
- Consistent governance. Keep schema, quality, PII handling, lineage and service-level expectations in one reviewable artifact.
- Executable intent. Let a conforming runtime validate, quarantine, transform and materialise data from the declaration.
- Portable definitions. Keep business intent separate from backend-owned engine, catalogue, storage and table-format settings.
- Safer automation. Give humans and AI agents a typed contract they can validate before proposing or applying changes.
Execute with LakeLogic Core
OLC is the standard. LakeLogic Core is the open-source reference runtime.
python -m pip install lakelogic
from lakelogic import DataProcessor
processor = DataProcessor("orders.olc.yaml", engine="duckdb", strict=True)
accepted, quarantined = processor.run(source_df)
You can use the OLC schema without LakeLogic Core, and another runtime may implement the same specification.
Contract coverage
| Concern | Examples |
|---|---|
| Sources and ingestion | Primary source, linked sources, load mode, watermark and post-ingestion lifecycle |
| Identity and ownership | Product metadata, accountable owner and downstream consumer ownership |
| Schema and keys | Fields, types, required values, primary keys and natural keys |
| Quality | Row rules, dataset rules, uniqueness and null thresholds |
| Transformation | SQL and typed transformation operations |
| Governance | PII classification, masking, compliance metadata and quarantine |
| Service levels | Freshness, availability and volume SLOs; downstream SLA expectations |
| Operations | Lineage, notifications and run controls |
| Materialisation and delivery | Write strategy, table format, target location and downstream consumers |
See the field reference for the complete vocabulary.
Compatibility and evidence
OLC separates portable contract intent from runtime and platform configuration. Support is demonstrated at different levels:
- Structural conformance proves a contract matches the public schema.
- Runtime conformance compares observable behaviour across supported engines.
- Provider evidence records what was deployed and materialised on each platform.
DuckDB and Polars run in the default executable-conformance suite. Other engines and platforms have their own stated scope and limitations. See the conformance suite and provider evidence matrix rather than assuming every engine × format × platform combination has identical coverage.
Documentation
- Getting started — validate and execute your first contract.
- What is OLC? — understand the contract/runtime boundary.
- Contract reference — define sources, ownership, quality, transformation, lineage, service levels and materialisation.
- Conformance — see how structural and runtime behaviour are tested.
- Providers — inspect evidence and limitations by platform.
- OLC and ODCS — understand how the standards complement each other.
Contributions are welcome. Start with the contributing guide.
Licence
Apache License 2.0. See LICENSE.
Release files for open-lakehouse-contract 0.14.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| open_lakehouse_contract-0.14.0.tar.gz | 84.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| open_lakehouse_contract-0.14.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 171.9 kB
Release files / open_lakehouse_contract-0.14.0.tar.gz
| Download URL | open_lakehouse_contract-0.14.0.tar.gz |
|---|---|
| Size | 84.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3202e039b263ec18385e44b2fbaefa7739d9f685785ba6600391439acdeb68e
|
|
BLAKE2b-256 checksum How to use checksums |
d73a57ff59bb8fa3f998b87f58cbc6ad777cde3e7e40d542e13b602f67a1843e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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 / open_lakehouse_contract-0.14.0-py3-none-any.whl
| Download URL | open_lakehouse_contract-0.14.0-py3-none-any.whl |
|---|---|
| Size | 87.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d99d5e81fb183533a54ea91112b63ec2c87786b67b675d01888f49e68ed35e4c
|
|
BLAKE2b-256 checksum How to use checksums |
355d5b5facf9126bed7abb6ca9d0034539ea77d9d1aaa302c0e7f7c07d272569
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.14 {"installer":{"name":"uv","version":"0.12.14","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}
|