Skip to main content

minilake

MiniLake

CI Release License

MiniLake is a local emulator of the Databricks REST API, for developing and testing databricks-sdk, CLI and Terraform code without a workspace.

SQL statements run on DuckDB. EXTERNAL Delta tables are Parquet files with a _delta_log/, and writes to them go through a generated Spark job. Jobs run spark-submit in a sibling Docker container. Everything else in the API is either stored and read back, or answers 501 NOT_IMPLEMENTED. It is meant for one developer on localhost, not as a shared server.

Website: https://dmux.github.io/minilake/

Run it

pip install minilake
minilake --port 8000

# or
docker run -p 8000:8000 ghcr.io/dmux/minilake:latest

curl http://localhost:8000/_minilake/health

The web SQL editor is at http://localhost:8000/ui/. Any token is accepted. The image downloads nothing at runtime, so it also works offline (details).

Use it

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host="http://localhost:8000", token="dev")
w.catalogs.create(name="sales")
w.schemas.create(name="store", catalog_name="sales")
wh = w.warehouses.create(name="dev", cluster_size="Small")

def sql(statement):
    return w.statement_execution.execute_statement(warehouse_id=wh.id, statement=statement)

sql("CREATE TABLE sales.store.orders (id BIGINT, customer VARCHAR)")
sql("INSERT INTO sales.store.orders VALUES (1, 'Ana')")
print(sql("SELECT * FROM sales.store.orders").result.data_array)  # [[1, 'Ana']]

Documentation

Known Gaps

These are deliberate. MiniLake targets one developer running it locally.

  • No authentication. Any token is accepted. SCIM users and personal access tokens are records, not credentials.
  • No access control. The Permissions and Grants APIs store and return what you give them, and nothing is enforced. A test that passes here says nothing about grants in a real workspace.
  • The SQL dialect is DuckDB's, not Spark SQL.
  • Clusters are a state machine. There is no Spark on them; Spark runs through Jobs.
  • MANAGED tables are DuckDB tables with no files, so Spark cannot see them. Use EXTERNAL Delta tables when Spark has to read the data.
  • Single process. DuckDB is single-writer, so concurrent load serializes on a lock.
  • Not implemented, returns 501: Repos, DLT, Model Registry, Vector Search, Lakeview and Genie, Delta Sharing, and non-Python notebook languages.
  • Uneven test coverage. jobs.py, sql_statements.py and unity_catalog.py are tested mostly on the happy path.

MiniLake does not reproduce every quirk of the real service. Tests here run against the real databricks-sdk, and the Terraform provider and databricks bundle are exercised end to end, but a green run locally is not a substitute for a run against Databricks.

Contributing

See CONTRIBUTING.md.

License

MIT. See LICENSE.

Metadata

Release files for minilake 1.9.3

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

Source distribution (sdist)

Source distribution for minilake 1.9.3
File Size Uploaded Provenance Actions
minilake-1.9.3.tar.gz 7.7 MB With provenance Details for minilake-1.9.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for minilake 1.9.3
File Interpreter ABI Platform Actions
minilake-1.9.3-py3-none-any.whl Python 3 none any Details for minilake-1.9.3-py3-none-any.whl

Total release size: 14.6 MB

Release files / minilake-1.9.3.tar.gz

Download URL minilake-1.9.3.tar.gz
Size 7.7 MB
Tags Source
SHA-256 checksum
How to use checksums
86be143f84024edc9cc930602d9117d3b01a4b1ee8ae39ac43b643354f24cb50
BLAKE2b-256 checksum
How to use checksums
c6dfb712625fa2363c4d92c9f5f3fa6a1d8d232e29d94f72cd6a7f78923d1d11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / minilake-1.9.3-py3-none-any.whl

Download URL minilake-1.9.3-py3-none-any.whl
Size 6.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b14ab32cc3d4354adabd575f22880ec115de5a71b10be8f9f90066ed9c57f05d
BLAKE2b-256 checksum
How to use checksums
f3431452cca1255e2606a390d6b6e65f7befd33498c9f83ae2eb3182a33964c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Security for minilake 1.9.3

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for minilake-1.9.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

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