Product
Instant, secure API for your data
A declarative access layer over the databases you already run. Applications and services get typed operations with authorization and an audit trail; the database itself stays private.
No-drama data access
- Zero-boilerplate deployment over an existing database
- Declarative config, versioned like any other code
- Authorization built in, expressed per operation
- Observability and an audit trail over every call
- Native MCP support for AI tooling
- Fronts legacy systems you are not ready to replace
One surface, not a connection string
Callers see declared operations with typed inputs and outputs. The database, its schema and its credentials stay on your side of the boundary.
Callers
- support-tool
- customer-portal
- mcp agent
- in
- customerId: string
- out
- [Order]
Schema and credentials never cross.
Typed access over operational databases
You declare the operations your systems are allowed to perform — not tables, not raw queries. Each one has a name, a typed input and a typed output, and that contract is what callers depend on. The underlying schema is then free to change without silently breaking four consumers, because a change that breaks a contract breaks the build rather than production.
Because the surface is declared rather than generated from the schema, you can expose exactly the shape the application wants and nothing else. A support tool that needs one customer's order history gets an operation that returns one customer's order history — not read access to the orders table.
# operations/orders.yaml
getCustomerOrders:
input: { customerId: string }
output: [Order]
source: postgres.main
allow: [support-tool, customer-portal, mcp-agent]
audit: trueAn operation declares its shape, its source, who may call it, and whether calls are recorded. Full schema reference is in the documentation.
Permissions and audit
Permissions per operation
Access is granted to named operations, not to tables or connections. Revoking a caller happens in one place and takes effect immediately — you never have to go looking for where a credential was copied to.
An audit trail that answers questions
Every call is recorded with the caller, the operation, the inputs and the outcome. "Who read this record, and under what authority" is a query rather than an investigation.
Fronting legacy systems
Point it at the database you have, including one you cannot safely modify. The legacy system keeps running while new consumers build against a stable contract rather than against its schema.
Safe for AI tooling
MCP support means assistants and internal tooling call the same declared operations, through the same permission boundary and the same audit trail, as everything else. Nothing gets a side door.
Deploy now
Tell us what you would put behind it and how access should be scoped. There is a free playground if you would rather try it first.