Trust Model

Built for sensitive data workflows. Deterministic enforcement. No AI in the proxy.

ValkDB does not store query results. In production hash-only mode, raw SQL is not stored by default; audit logs store query hashes and decision metadata.

What ValkDB stores

DataStoredNotes
Query hash (SHA-256)AlwaysIrreversible hash of SQL text
Decision (allowed/blocked)AlwaysWhat happened and why
Rows returned (count)AlwaysCount only, not the data
Budget stateAlwaysUsed/limit at time of query
Tables touchedAlwaysTable names accessed
Columns touchedAlwaysColumn names via AST analysis
Agent/session/task IDWhen providedIdentity metadata
Timestamp + latencyAlwaysWhen and how long

What ValkDB does NOT store

DataStoredReason
Query resultsNeverResults returned to agent and discarded
Raw SQL textNot in hash_onlyOnly SHA-256 hash stored
WHERE clause valuesNot in hash_onlyHashed, not stored in cleartext
Customer database contentNeverValkDB proxies, does not persist

Security architecture

What ValkDB can tell you after the fact

  1. Which agent queried (agent_id)
  2. Which session it was (session_id)
  3. What task it was performing (task_id)
  4. How many rows it consumed (cumulative)
  5. Which tables it touched
  6. Which columns it accessed
  7. How many queries it executed
  8. Whether it was blocked and why
  9. When each query happened
  10. How long each query took

Recommended usage

ValkDB should be used alongside scoped DB credentials, RLS, read replicas, and least-privilege access. It adds session budgets on top of your existing security stack — it does not replace it.

Current limitations