open-lakehouse-compute-fabric README

The project's README from github.com/jddevtime/open-lakehouse-compute-fabric. As one markdown file: README.md.

Open Lakehouse Compute Fabric: extend Microsoft Fabric to the compute you own, or run the whole lakehouse standalone

License: Apache 2.0 Python 3.11 to 3.13 Status: 0.1.0 beta AI agents welcome

Open Lakehouse Compute Fabric (OLCF)

An open-source lakehouse platform that extends Microsoft Fabric with Spark compute you own, and also runs completely on its own. Notebooks, SQL, pipelines and dashboards; a Spark fabric across your own machines; and OLCF Intelligence: discovery, lineage, a glossary and governance over everything it can see.

*Created and maintained by Justin Dodrill, a Microsoft Certified Technology Specialist and Database Administrator. Licensed under the Apache License 2.0. Not affiliated with or endorsed by Microsoft; see TRADEMARKS.md.*

Status: 0.1.0 beta, for evaluation on trusted infrastructure. It runs end to end on Linux and is covered by thousands of automated tests. Status and maturity has the details, and the release-readiness checklist lists what is still open.

Jump to: What it is | Three ways to run it | Extending Microsoft Fabric | OLCF Intelligence | Runtimes | Screenshots | Architecture | Install | Quickstart | AI and SI agents | Status | Documentation


What it is

OLCF gives you, on one laptop, a few on-premises machines, cloud VMs or Kubernetes:

Fabric is an adapter, not the core. Nothing in the platform needs a Microsoft subscription.

Capability map: lakehouse, SQL, notebooks, pipelines, compute fabric, Fabric extension, AI agents, security and operations, Intelligence, catalog and glossary, governance, runtimes

Three ways to run it

Three ways to run OLCF: standalone on one machine, a multi-machine Spark fabric, or extending Microsoft Fabric

Mode What you have Needs Start with
1. Standalone the full platform on one machine: console, SQL on DuckDB, Python notebooks, dashboards, pipelines, Intelligence, MCP and a sample Retail lakehouse Python only; no Spark, no Fabric, no cloud olcf quickstart
2. Multi-machine fabric the same plus a Spark Standalone cluster across several machines (servers, VMs, a rack, a cloud instance); several runtimes side by side; pools, queues, drain a Spark runtime (olcf runtime install --with-jdk) and machines that can reach the control plane olcf worker enroll-token, then olcf-worker run on each machine
3. Fabric-extended Fabric notebooks and pipelines whose heavy compute runs on your own hardware, reading and writing OneLake directly a Fabric tenant you control, the olcf_fabric wheel in a Fabric Environment, Entra and network set-up Fabric integration guide

A single machine is the same design as a cluster of one: an embedded worker agent enrols itself with the control plane, so growing from mode 1 to mode 2 is adding machines, not migrating.

Extending Microsoft Fabric

A Fabric notebook sends a signed capsule to the OLCF control plane, which runs it on your own Spark workers; workers read and write OneLake directly and the status flows back to the notebook

How it works.

  1. In a Fabric notebook you attach the small, standard-library-only olcf_fabric package and call olcf.run_remote().
  2. The SDK sends the notebook as a signed execution capsule (HMAC-signed, single-use nonce) over HTTPS to your OLCF control plane. Nothing needs inbound access to your workers: they connect outward.
  3. A deterministic compatibility analyzer (73 rules, shims for notebookutils and friends) checks the notebook first. Anything that cannot work on open-source Spark is rejected up front with the reason, not half-run.
  4. The scheduler places the job on your Spark workers. Executors read and write OneLake / ADLS Gen2 directly; data never detours through the control plane.
  5. Status, logs and the exit value stream back to the Fabric cell, and a Fabric pipeline's notebook activity sees the result like any local run.

What it is good for: running Fabric notebooks on hardware you already own, keeping heavy or sensitive compute inside your network, burst or batch work that should not consume Fabric capacity, development against a local copy of a lakehouse, and keeping a working path when Fabric is unavailable.

What it is not: it is not Microsoft's runtime and claims no parity with Fabric's proprietary optimisations (the runtimes are labelled Fabric Runtime 2.0 Compatible and 1.3 Compatible). The assumptions behind the Fabric, Entra and OneLake integration, and an acceptance matrix you can run against your own tenant, are in fabric-assumptions. Details: the extension model, the guide.

OLCF Intelligence: discovery, lineage, glossary, governance

Sources feed connectors and analyzers, which build one asset graph with stable ids, confidence and gaps; the graph serves catalog, lineage, glossary and governance

Intelligence is a module layered over the platform's catalog. It answers what do we have, where does it come from, what depends on it, who is responsible, and it is deliberately honest about how sure it is.

Lineage of a report visual back through a semantic model and tables to the notebook that wrote them (the sample's report is synthetic) Where does this come from: the origin of a column, with confidence on every step
Intelligence overview Governance: ownership, classification review and certification
Impact analysis Coverage and gaps

Read more: concepts, user guide, lineage support matrix, design decision.

Spark runtimes: Fabric 1.3 and 2.0 compatible, side by side

A runtime is an immutable, signed bundle: a Python environment with PySpark and every package pinned by hash, the Maven jars (Delta, Iceberg, S3, Azure) pinned by checksum, and an allow-list of the Spark settings a job may change. Several can be installed at once; the scheduler places a job only on a node where its runtime is ready.

Runtime id Family Spark Delta Iceberg Java Scala Python
olcf-rt-2.0.0 fabric-2.0-compatible 4.1.1 4.2.0 1.11.0 17 or 21 2.13 3.13
olcf-rt-1.3.0 fabric-1.3-compatible (legacy) 3.5.5 3.2.0 1.11.0 8, 11 or 17 2.12 3.11
olcf-rt-native-1.0.0 olcf-native 4.1.1 4.2.0 1.11.0 17 or 21 2.13 3.13
olcf-host-python (built in) host-python, no Spark n/a n/a n/a n/a n/a the worker's own Python

More: compute model.

Screenshots

The console has light and dark themes, is served entirely from the package (no CDN, no remote fonts), and works at phone width.

Notebooks. A Jupyter-compatible editor on a real kernel running on a worker node; here the sample Python notebook after Run all (DuckDB, pandas and matplotlib, no Spark).

The Python sample notebook after Run all: a chart and a table produced on a worker node

Home, Compute and Microsoft Fabric.

Home: fleet, cores, jobs, a guided checklist and a health strip Compute: every machine with CPU, memory, disk and a lamp per component
Fabric integration: readiness checklist and a stepwise connection test Runtimes installed side by side

SQL, lakehouse, dashboards, pipelines and AI agents.

SQL editor Lakehouse explorer
Dashboard Pipeline run graph with the critical path
Pipeline designer MCP console: ready-to-paste configuration and a try-it box

Dark theme example: home, notebook, lineage. More: docs/images/ui/.

What is in the box

Area What you get Guide
Workspaces and items multi-tenant workspaces; notebooks, lakehouses, SQL queries, pipelines, environments, Spark job definitions, variable sets, schedules, reports; versions, recycle bin, export/import, Git sync concepts
Lakehouse and SQL Files/Tables explorer, Delta protocol inspection with an interop policy, Iceberg discovery, maintenance (optimize, vacuum with safeguards), DuckDB and Spark SQL, history, exports, dashboards guide
Compute worker enrolment, pools, queues, cordon/drain, Spark Standalone clusters across machines, local, external-Spark, Kubernetes and Fabric-Livy providers, signed runtimes, per-job dependency layers guide
Fabric extension SDK, execution capsule, 73-rule compatibility analyzer, notebookutils shim, pull mode, OneLake access, diagnostics guide
Intelligence discovery, table and column lineage, impact analysis, glossary, domains, data products, ownership, classification, certification, policies (observe-only), quality score, gaps and coverage guide
Pipelines notebook, Spark job, script, SQL, copy, HTTP and control-flow activities; cron, webhook, storage and dependency triggers; outbound signed webhooks; alerts guide
Security RBAC with eight roles, OIDC / Microsoft Entra / LDAP, tamper-evident audit log, secret store, built-in CA with optional mTLS for workers, signed updates concepts
Operations encrypted backups and restore tests, signed updates and rollback, HA with PostgreSQL leader election, Prometheus and OTLP export, diagnostics and support bundles, retention operations
AI agents MCP endpoint with 29 tools (15 platform, 14 Intelligence), read-only by default, per-call authorisation and audit guide

Architecture

Clients call the control plane; machines in the worker fleet connect outward to it and read and write data directly; Intelligence observes the platform and, optionally, a Fabric tenant

More: architecture, components and data flow, architecture decisions.

Install

OLCF is a pure-Python package; nothing is compiled, no administrator rights are needed, and every dependency is a wheel. There is no package-index or release download yet, so every route below installs from this repository. Requirements and per-OS notes: docs/getting-started.

1. One-line installer (macOS and Linux, also a Mac without the Xcode Command Line Tools)

curl -fsSL https://raw.githubusercontent.com/jddevtime/open-lakehouse-compute-fabric/main/scripts/install.sh | sh

It downloads a checksum-verified uv, lets uv provide a private Python 3.13, installs OLCF from this repository's source archive (every dependency a wheel), runs olcf init, and installs the Spark runtime (with a downloaded Temurin JDK 21 if the machine has no suitable Java; --no-runtime skips this and the installer finishes anyway if the download fails). It needs no git, no system Python and no compiler, and never executes the macOS installer stubs. Useful options: --ref v0.1.0 (a tag, once one exists), --extras postgres,s3 (or all), --no-runtime, --prefix DIR, --dry-run, --help. To read the script first: scripts/install.sh.

2. uv (any OS, including Windows)

uv tool install --python 3.13 "olcf @ https://github.com/jddevtime/open-lakehouse-compute-fabric/archive/refs/heads/main.tar.gz"
olcf quickstart

Windows without uv: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" first. Optional extras: postgres, s3, azure, k8s, keyring, iceberg, ldap, sftp, zstd, plots, all (for example "olcf[all] @ https://..."). The Spark runtime is separate: olcf runtime install --with-jdk.

3. Docker Compose, all in one

Works the same on Docker Desktop (macOS, Windows, Linux) and Docker Engine, and is the alternative on a Mac that cannot install developer tools. Run from a clone or a source archive:

sh deploy/scripts/gen-env.sh        # writes deploy/.env (mode 0600) with fresh random secrets; never commit it
docker compose -f deploy/docker-compose.yml --profile allinone up -d --build
docker compose -f deploy/docker-compose.yml logs olcf | grep -i password    # first-administrator password, shown once
docker compose -f deploy/docker-compose.yml exec olcf olcf runtime install  # Spark runtime, once

Open http://127.0.0.1:8470. --profile cluster adds PostgreSQL, MinIO and two enrolling workers; --profile tls adds a reverse proxy. The images have not been built in the authoring environment (see status). Helm and Kubernetes: docs/operations/kubernetes.md.

4. From source (to develop)

git clone https://github.com/jddevtime/open-lakehouse-compute-fabric.git && cd open-lakehouse-compute-fabric     # or unpack the source archive: git is not required
uv venv --python 3.13 && uv pip install -e ".[dev]"      # or: python3 -m venv .venv && . .venv/bin/activate && pip install -e ".[dev]"
olcf init && olcf serve

Developer setup, tests and conventions: docs/development/setup.md and CONTRIBUTING.md.

The Fabric SDK

To extend Fabric notebooks, build the standard-library-only olcf_fabric wheel (sh scripts/build_fabric_sdk.sh writes dist/olcf_fabric-<version>-py3-none-any.whl) and attach it to a Fabric Environment; see the Fabric integration guide.

macOS without the Xcode Command Line Tools

OLCF is designed to work on a Mac where the Command Line Tools cannot be installed. There /usr/bin/git, /usr/bin/python3 and /usr/bin/java are installer stubs that open a dialog, so OLCF never executes them: every lookup of git, python, pip or java goes through olcf.core.hostbin, which rejects the stubs and continues down PATH; the installer provides its own uv, Python and JDK. Workspace Git sync needs a real git (without one, the Git endpoints answer 503 git_unavailable with remediation; everything else works). The stub handling is covered by tests that put dialog-opening stubs for these commands on PATH. Details: docs/getting-started/install-macos-no-clt.md.

Quickstart

olcf quickstart       # init + start the server + install the sample workspace + print what works, then the optional Spark runtime, then open the UI

olcf quickstart prints the console URL (http://127.0.0.1:8470) and the generated admin password once. Nothing in steps 1 to 5 needs Spark: Python notebooks run on the worker's own Python.

  1. Log in to the console with admin and that password (the CLI is already logged in as context local; check with olcf whoami).
  2. Sample lakehouse. Sample Retail (80,001 order lines in Delta tables, nine saved queries, a dashboard, three notebooks) is installed by quickstart. Try olcf sql run -w "Sample Retail" "select count(*) from retail_lakehouse.fact_sales".
  3. Notebook. Open Workspaces > Sample Retail > 02_Retail_Explore_Python and choose Run all (charts need pip install "olcf[plots]"; without it the notebook prints tables).
  4. Dashboard. Dashboards > Retail Sales Overview: KPIs, trends and a table with period and category filters.
  5. Intelligence. Open Intelligence > Lineage, pick the Revenue (card) visual and follow it upstream through the model and tables to the notebook that wrote them; every line says how sure it is. (The sample's Power BI report and model are invented for the sample and labelled synthetic wherever they appear.) Or ask from the CLI: olcf intelligence --help.
  6. Connect an AI agent over MCP. Open AI agents in the console, or run olcf mcp config --client claude-desktop (or --client claude-code) and paste the printed configuration. Ask: "Where does Revenue originate, and what would break if I changed it?"

Stop the server with olcf stop. Next: first-run tour, adding machines, connecting Microsoft Fabric, Intelligence guide.

AI and SI agents are welcome

AI agents can use OLCF over MCP with the permissions of the person who created the token, and can contribute to an agent-friendly repository

Everyone is invited to point their AI or super-intelligence (SI) agent at this repository, for either of two jobs:

A prompt that works with most coding agents: "Read AGENTS.md in https://github.com/jddevtime/open-lakehouse-compute-fabric, install OLCF on this machine, run olcf quickstart, and tell me what you did." Contributions need a Developer Certificate of Origin sign-off from the human who submits them, and AI assistance should be disclosed in the pull request (how).

The platform also serves agents directly: the MCP endpoint lets Claude Desktop, Claude Code or any MCP client browse the catalog, follow lineage and run read-only SQL, audited and limited to the token owner's permissions. Where help is most valuable right now: Windows and macOS runs, Fabric / Power BI tenants with different settings, PostgreSQL with two replicas, Kubernetes clusters, and large Intelligence estates (the open gates).

Status and maturity

Beta for evaluation on trusted infrastructure; trusted-user compute (no OS sandbox between users' code). OLCF 0.1.0 implements the core platform described above and runs end to end on Linux. Use it with infrastructure and users you trust; do not describe it as a multi-tenant, hardened or production-supported service.

Area State
Server, console, SQL on DuckDB, Python notebooks, pipelines, dashboards, MCP, Intelligence runs end to end on Linux; thousands of automated tests (testing); browser tests drive the console in headless Chromium
Microsoft Fabric, Entra, OneLake, the Fabric and Power BI scanner built to Microsoft's documented APIs and covered by the automated suite; assumptions and an acceptance matrix for your own tenant
Spark and Delta on Spark tested with a prebuilt runtime; the first-run runtime download needs the network and Maven Central (run python scripts/verify_spark_delta.py to verify yours)
Windows, macOS supported targets; installer behaviour is covered by tests of install.sh, including a Mac without the Command Line Tools
Docker images, Helm chart, Kubernetes, Livy covered by rendered-manifest and protocol tests
PostgreSQL, multi-node HA SQLite is the verified store; PostgreSQL variants exist and several were run, but the Intelligence PostgreSQL tests and real failover drills were not
Production runtime trust the bundled runtime manifests are signed with a development key whose private half is public; production installs re-sign with their own key

Known limits that matter: notebook and job code runs with the privileges of the worker's operating-system user (the SQL guard and the scrubbed environment are not an OS sandbox, and there is no per-pool isolation); Spark RPC is neither authenticated nor encrypted by OLCF, so keep Spark ports on a private network; Intelligence governance observes and never enforces; lineage is never claimed complete for any source. Out of scope for 0.1.0: a general JDBC/ODBC gateway, external catalog adapters (Hive, Glue, Unity), Iceberg management beyond discovery, R/Scala/C# notebook cells (Java/Scala jar jobs do run), signed OS installers and per-pool isolation.

Three external code reviews of the project (8, 9 and 10 October 2026) are answered, finding by finding, in docs/dev/: first, second and third. The acceptance work for each area (Fabric and Power BI tenants, Kubernetes, Livy, Windows, recovery, multi-node PostgreSQL, supply chain) is the checklist in release-readiness.md. requirements-traceability.md maps every section of the original requirements to code and tests with its status.

Documentation

Start here
docs/README.md index of all documentation
Getting started install per OS, quickstart, first-run tour, upgrade and uninstall
Concepts architecture, compute model, the Fabric extension model, Intelligence, security model
Guides Fabric integration, clusters, notebooks, SQL, pipelines, Intelligence, MCP, SSO, backup, HA, TLS, observability, troubleshooting
Reference CLI, REST API, SDK, configuration, permissions, events, errors, health checks, ports, lineage support, glossary, FAQ
Operations runbook, sizing, hardening and production checklists, Kubernetes
Development dev setup, repository map, extending OLCF, tests, release process
Architecture decisions why it is built the way it is

Project policies: CONTRIBUTING.md, AGENTS.md, CODE_OF_CONDUCT.md, SECURITY.md, CHANGELOG.md, TRADEMARKS.md, THIRD_PARTY_NOTICES.md.

Author and licence

Open Lakehouse Compute Fabric was created and is maintained by Justin Dodrill, a Microsoft Certified Technology Specialist and Database Administrator. Copyright 2026 Justin Dodrill. Licensed under the Apache License, Version 2.0; see NOTICE for third-party attributions. To cite it, see CITATION.cff.

"Microsoft", "Fabric", "OneLake", "Azure", "Entra", "Power BI", "Delta Lake", "Apache Spark" and other names are trademarks of their owners, used only to describe compatibility. The runtimes are labelled Fabric Runtime 2.0 Compatible and 1.3 Compatible; they are not, and never claim to be, Microsoft's runtime.

open-lakehouse-compute-fabric (jddevtime/open-lakehouse-compute-fabric)

lakehouse
Searching Database…

Open Lakehouse Compute Fabric: an open-source lakehouse platform with Microsoft Fabric Compute Extension.

Creator
jddevtime
Size
13.5 MB
Stars
236
Updated
CommitOct 13
Age
6d
Commits · 90 Days