Internal data agents over production data
Let internal tools and Slack bots answer questions from production data with per-principal policies and a tamper-evident audit trail.
The problem
Internal “ask the database” bots are the fastest way to leak data across teams. Finance shouldn’t read HR rows; a bot shouldn’t run an unbounded join at 3am. But building bespoke guardrails per bot is slow and inconsistent.
With OrmAI
One declarative policy per principal governs which models, fields, and operations each internal agent can touch. Every call is logged with the principal and a trace ID, so access is auditable after the fact.
The primitives doing the work
Per-principal policy
Different agents/teams get different model, field, and write permissions from the same policy model.
Immutable audit log
principal, trace ID, sanitized inputs, and policy decision are written before every result returns.
Join-depth & timeout limits
Runaway analytical queries are rejected at compile time.
The policy, in a few lines
policy = (
PolicyBuilder(DEFAULT_PROD)
.register_models([Deal, Account, Usage])
.deny_fields("*ssn*", "*salary*")
.max_join_depth(3)
.statement_timeout_ms(2000)
.build() Keep reading
Other use cases