The honest answer to "how does oakallow actually work?" From the sign-in screen to the permission decision, here's what each request touches and where the data lives.
Every oakallow request runs on a Cloudflare Worker at the edge, reads from a single shared D1 database, and returns a decision in milliseconds. No separate backend hop, no third-party in the auth path.
Four hostnames, four different audiences. Each one is its own Cloudflare deployment with its own auth posture.
oakallow.comPublic landing pages. What you're reading right now. Doesn't touch customer data.
oakallow.ioThe web app where teams manage orgs, tools, approval rules, billing, and members. Cloudflare Pages + Workers.
api.oakallow.ioThe edge worker that every governed tool call routes through. Authenticates the caller (a REST API key, or the MCP connector), resolves the permission, optionally gates on approval, deducts credits, writes the audit row.
iOS + AndroidNative apps for approving or denying agent actions on the go. Same APIs, same identity, same audit trail.
What happens between your agent deciding to call a tool and the result coming back.
allowed receipt authorizes the run; a disabled receipt is the proof oakallow blocked it.The walkthrough above follows a REST API key (oak_live_), the path your own backend uses. An AI agent can also reach the same runtime through the MCP connector at /mcp: a person-driven client (Claude, ChatGPT) authenticates with OAuth, and an autonomous agent that runs on its own uses a scoped oak_agent_ token. Whichever credential is used, the permission cascade, the approval gate, and the audit row are identical, the credential only changes who is calling.
See Agents for autonomous-agent identities and the MCP docs for the connector.
Three identity paths for humans, all converging on the same session model.
WebAuthn on web, native passkey on iOS and Android. Face ID, Touch ID, Windows Hello, fingerprint, or a hardware key.
For first sign-in, new devices, or when no passkey is enrolled. Six digits, five-minute lifetime, hashed at rest.
Microsoft Entra today. Your IdP handles authentication and MFA; we just receive the assertion and provision the account.
All three workers (the customer dashboard, the agent runtime, and the internal admin app) read and write the same D1 database. That keeps the customer view and the runtime decision in lockstep. When you change a permission rule on the dashboard, the next agent request sees it.
Cloudflare KV holds short-lived caches (API key lookups, OAuth grants). Cloudflare R2 holds support attachments and blog media. See the Trust page for the full vendor list.
The Info page collects every FAQ we've written, including the technical ones on permission resolution, signed decision receipts, and audit guarantees.
Read the full FAQ