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.6.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.6.0.tar.gz | 58.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| open_lakehouse_contract-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 126.8 kB
Release files / open_lakehouse_contract-0.6.0.tar.gz
| Download URL | open_lakehouse_contract-0.6.0.tar.gz |
|---|---|
| Size | 58.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc492d48b83b88db6a562e8cf8ff757e3b37b0ec324988d274f828b6d31d570e
|
|
BLAKE2b-256 checksum How to use checksums |
06fc9bdfedb43d083769087f2d9abfa405732ff646a1e7878c2d3a5d24288f89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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.6.0-py3-none-any.whl
| Download URL | open_lakehouse_contract-0.6.0-py3-none-any.whl |
|---|---|
| Size | 68.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0db131d92bdb7e707312fe18ad278c4fabf3d767932cac35694566674c8fe263
|
|
BLAKE2b-256 checksum How to use checksums |
20fd5b08e4dced867841c1aeee36654be96cdb2f6371154102b9d5dcdcb7760c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","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}
|