Lumida: light on your data
Point Lumida at your databases, read-only. It finds the relationships nobody documented, learns what normal looks like for every table and column, and tells you every morning what's wrong, what it breaks and why, with the evidence.
It runs entirely on your own machines. There's no account, no sign-up and no telemetry. Your data, and even your table names, never reach Lumida's makers.
Install
pip install lumida # Postgres support included
pip install "lumida[all]" # + MySQL, Oracle, Snowflake drivers
Requires Python 3.12+.
Start
lumida setup # where Lumida keeps what it learns (any Postgres), and your admin account
lumida serve # runs Lumida: the nightly checks, and the web app
Open http://127.0.0.1:8000, log in, and go to Databases → Add a database. It shows a script for the read-only login and tests the connection; then press Run now.
Connection URLs stay in .env on your machine, under a name you choose:
SHOP_DB_URL=postgresql+psycopg://readonly_user:<password>@db-host:5432/shop
Prefer Docker? One docker compose up -d brings Lumida and its own Postgres. See the install guide.
What it finds
- Structure: missing keys, dropped columns, changed types, unindexed links.
- Relationships: links nobody declared, orphan rows, duplicates.
- Values: sudden empties, out-of-range numbers, "USA" next to "US", near-duplicate emails.
- Business rules: "shipped after ordered", "total = sum of lines". AI proposes, you approve.
- Loads: volume drops, tables that stopped updating, missed deadlines; it knows weekdays and closed days.
- Unusual rows, copies that disagree (app database vs warehouse) and personal data in unexpected places.
Every problem comes with real numbers and the IDs of the rows involved. Confirm or dismiss it, and Lumida remembers.
How it stays safe
- Read-only: a read-only login, read-only transactions, timeouts on every query. It never writes to your databases.
- Counted in place: the counting happens inside your database. Only counts, statistics and row IDs come back.
- AI is optional and yours: bring any OpenAI-compatible service, a local model (Ollama, LM Studio, vLLM) or Gemini, with your own key. AI only proposes; people approve.
LUMIDA_OFFLINE=trueblocks every outside connection.
In CI
Keep approved rules in git and fail the build when data breaks them:
lumida rules export shop -o lumida-rules.yaml
lumida check --rules lumida-rules.yaml --connection-ref STAGING_DB_URL
Supports PostgreSQL, MySQL/MariaDB, SQL Server, Oracle and Snowflake.
Open source under the Apache 2.0 licence: https://github.com/Rohan708/Lumida
Metadata
Release files for lumida 0.4.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 | |
|---|---|---|---|
| lumida-0.4.0.tar.gz | 244.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lumida-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 556.8 kB
Release files / lumida-0.4.0.tar.gz
| Download URL | lumida-0.4.0.tar.gz |
|---|---|
| Size | 244.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
098a2428e10ab18cf4b8e7df3f64b27ffeee82cbeecc541d308c76511198a90c
|
|
BLAKE2b-256 checksum How to use checksums |
28b4a225258bcb0fc5e598db41cc67a947188d7d2c17c6a8baeba9f2eff53375
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 19, 2026.
Transparency logRelease files / lumida-0.4.0-py3-none-any.whl
| Download URL | lumida-0.4.0-py3-none-any.whl |
|---|---|
| Size | 311.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
17c6aead1d1d890e52d305fb2b5e3afd6073d300f712d3c409599cc5e92e3cc5
|
|
BLAKE2b-256 checksum How to use checksums |
ae33d08c4e8dda5f528f5d3e7992488887166e46fc6611ead9ed5a8cd90e3476
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 19, 2026.
Transparency log