Show HN: Dbward – Approval workflows for production databases Dbward, an open-core project, has launched approval workflows and audit logs for production databases, featuring multi-step approvals, tamper-evident audit trails, and AI agent guardrails. The core components are Apache-2.0 licensed, with some features under a commercial license. The tool includes standalone Rust binaries with embedded SQLite, MCP-native integration, Slack approvals, and a break-glass emergency bypass, aiming to prevent accidental or unauthorized database operations. Open-core projectβ€” core components are Apache-2.0 . Some features and pre-built binaries include code under the dbward Commercial License . See License for details. Approval workflows and audit logs for your production database. Stop accidents before they hit production. Add approval gates, audit trails, and AI agent guardrails to every database operation β€” with standalone binaries and embedded SQLite. No external control-plane DB required. - πŸ” Approval workflows β€” multi-step, conditional auto-approve, TOML policy engine - πŸ“‹ Audit logs β€” tamper-evident hash chain, 24 event types, SQL redaction - πŸ€– MCP-native β€” 12 tools, 6 prompts, elicitation support. AI agents operate safely. Remote HTTP transport for team setups - ⚑ Standalone binaries β€” CLI, server, and agent ship as self-contained Rust binaries with embedded SQLite. No external control-plane DB - πŸ”’ Agent isolation β€” DB credentials never leave the agent. CLI/AI never touch your database directly - πŸ›‘οΈ SQL safety review β€” risk classification, DDL detection, DROP blocking. Auto-approve safe queries, require approval for risky ones - πŸ” Preflight β€” analyze SQL before submitting. Get risk level, EXPLAIN plan, review findings, and fix hints without creating a request. AI agents converge on safe SQL before asking for approval - 🧠 Auto schema context β€” the agent collects table structures, columns, FKs, and row counts automatically. AI tools access schema via MCP resources β€” no manual documentation needed - πŸ’¬ Slack approvals β€” approve/reject from Slack with one click. dbward slack init generates the app manifest - 🚨 Break-glass β€” emergency bypass with mandatory reason and audit. Operator/admin only, not available via MCP - πŸ†“ Core features free β€” approval, audit, MCP, Slack, break-glass all included under Apache-2.0 /dbward-dev/dbward/blob/main/LICENSE-APACHE . Team features OIDC, group auth require a commercial license /dbward-dev/dbward/blob/main/LICENSE-COMMERCIAL β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ dbward client CLI / MCP β”‚ β”‚ No DB credentials β€” sends requests, receives results β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ REST API β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ dbward server β”‚ β”‚ Approval engine β”‚ Policy engine β”‚ Audit log hash chain β”‚ β”‚ Ed25519 token signing β”‚ OIDC/API auth β”‚ Webhooks β”‚ β”‚ In-memory result relay β”‚ NO database credentials β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–² Agent polls outbound HTTPS β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ dbward agent β”‚ β”‚ DB credentials here only β”‚ Executes approved operations β”‚ β”‚ Token verification Ed25519 β”‚ Multiple DB support β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό Target Database PostgreSQL / MySQL Key principle : The client requests. The server decides. The agent executes. No component has more access than it needs. Try the approval flow in 2 minutes Docker : git clone https://github.com/dbward-dev/dbward.git && cd dbward/examples/quickstart docker compose up -d docker compose run --rm alice execute "SELECT version " -e development Then submit β†’ approve β†’ execute β†’ audit. Full walkthrough: Quickstart with Docker https://dbward.dev/docs/quickstart-docker/ Quick smoke test local install : curl -fsSL https://dbward.dev/install.sh | sh dbward dev --database-url "postgres://user:pass@localhost:5432/mydb" In another terminal: dbward --config ~/.dbward/dev/client.toml --database app execute "SELECT 1" Dev mode auto-approves everything for fast iteration. See Connect Your Database https://dbward.dev/docs/quickstart-local/ for details. Full reference: docs/reference/mcp.md { "mcpServers": { "dbward": { "command": "dbward", "args": "mcp" } } } MCP Tools 12 : | Tool | Description | |---|---| dbward execute query | Execute SQL SELECT/DML via approval workflow | dbward migrate status | Show migration status | dbward migrate up | Apply pending migrations | dbward migrate down | Rollback migrations | dbward migrate create | Create migration file local | dbward wait request | Wait for request completion and return result | dbward list pending | List pending approval requests | dbward who can approve | Show who can approve a request | dbward find similar requests | Find similar past requests | dbward preflight sql | Analyze SQL safety without creating a request | dbward explain policy failure | Explain why approval is needed | dbward inspect schema | Inspect database schema list tables or describe columns | MCP Prompts 6 : review migration , explain request , draft migration , draft rollback , summarize audit trail , prepare approval comment Elicitation: On production operations, dbward asks the AI client for a reason before proceeding if the client supports MCP elicitation . Remote MCP HTTP : For team setups, the server exposes MCP over HTTP β€” no local binary needed 9 tools, excludes local-only migration tools : { "mcpServers": { "dbward": { "type": "streamable-http", "url": "https://your-server.example.com/mcp" } } } dbward uses on-demand execution : the agent does not execute on approval. Instead, the client explicitly resumes the request when ready to receive the result. 1. Client creates request β†’ server evaluates policy β†’ pending / auto approved 2. If pending Human approves via CLI 3. Client resumes dbward request resume