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.
Open source
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.
-- 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 WHEREThe 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.
Only accepts the token, never new SQL. It runs exactly what was previewed.
A dedicated, restricted database user: allowed tables only, data only, no DDL, DROP or TRUNCATE. If everything else fails, the database limits the damage.
No operation runs without first seeing its real impact.
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
Every AI suggestion goes through the same guards and the same preview. Running it is always a person's decision.