Open source

Safety for operating production databases.

deitafix

Go · PostgreSQL · MySQL · Docker · Kubernetes · MCP · Apache 2.0

A self-hosted service for running occasional writes on production databases. It replaces direct access with full credentials with a single controlled entry point: first you preview the impact, then you confirm exactly what you previewed.

On many teams, a one-off UPDATE or DELETE in production means connecting with full credentials and writing SQL by hand. A DELETE without a WHERE, a leaked token or someone in a hurry in the middle of the night is enough for an incident. The problem isn't running SQL: it's who can run what, within which limits, and seeing the impact before confirming.

See the code on GitHub

-- 1. preview: the engine's real parser + transaction with rollback
UPDATE orders SET status = 'cancelled' WHERE id = 4812;
→ 1 row affected · single-use token, expires in 120 s

-- 2. confirm: accepts only the token, never new SQL
→ executed

DELETE FROM customers;
→ rejected: DELETE without WHERE
  1. 1

    Preview

    The statement is analyzed with the engine's real parser, checked against the guards and run inside a transaction with rollback to measure how many rows it affects. It returns a single-use token with an expiration.

  2. 2

    Confirm

    Only accepts the token, never new SQL. It runs exactly what was previewed.

Containment in the engine

A dedicated, restricted database user: allowed tables only, data only, no DDL, DROP or TRUNCATE. If everything else fails, the database limits the damage.

Mandatory preview

No operation runs without first seeing its real impact.

Statement guards

A real parser, not regular expressions: it rejects UPDATE and DELETE without WHERE, caps the number of affected rows and validates table and operation.

AI with human approval

An AI layer that proposes and never executes.

Every AI suggestion goes through the same guards and the same preview. Running it is always a person's decision.

MCP server
An AI agent can propose writes; its confirmation only requests human approval.
Plain language to SQL
You describe the intent and the AI proposes a candidate statement, which then goes through the preview.
Impact explanation
Translates the affected rows into plain language and flags the risk level.
Reviewer
Points out suspicious patterns, such as an overly broad WHERE or sensitive columns.

Ready to run

  • PostgreSQL and MySQL / MariaDB, each with its own engine parser.
  • Mobile-first web interface embedded in the binary, for emergencies from a phone.
  • Docker image and Kubernetes manifests: non-root user, read-only file system and health checks.
  • Without an AI key, everything else works the same.

← Back to home