Orunbase
Your platform, delivered. With a control plane behind it.
Orunbase is the managed backend for orun and a
complete multi-tenant SaaS control plane: workspaces and projects, deny-by-default access
control, remote state and live runs, an immutable audit log, usage metering, billing,
and signed webhooks — behind one versioned API, one TypeScript SDK, and one CLI.
$ curl -sX POST https://api.orunbase.com/v1/organizations/org_9f2c.../projects \
-H "Authorization: Bearer $SOURCEPLANE_TOKEN" \
-H "Idempotency-Key: 4c9d1e0a-create-checkout-api" \
-d '{"name": "checkout-api"}'
{
"data": {
"project": { "id": "prj_...", "name": "checkout-api", "slug": "checkout-api" }
},
"meta": { "requestId": "req_..." }
}Remote state & live runs
Point orun at Orunbase and every plan, run, and state transition is
stored, ordered, and streamed. Jobs coordinate across runners; the catalog of record
is derived from what actually shipped.
Workspaces, projects, environments
Accounts hold workspaces; workspaces hold projects (your repos) and their environments. Every resource is tenant-scoped in the URL — no ambient context, no tenant headers to forget.
Access control & audit
Deny-by-default RBAC with workspace, project, account, and team roles — every decision carries its provenance. Every state change lands in an immutable, queryable audit log.
API, SDK, CLI, webhooks
One versioned REST API with caller-owned idempotency and typed errors, a
zero-dependency TypeScript SDK, the orun-cloud CLI, and
HMAC-signed webhooks for everything that happens.
What Orunbase is
Orunbase is two things at once, by design:
For orun, the intent compiler
orun compiles platform intent into deterministic plans. Orunbase gives those plans a home: managed remote state, run coordination across runners, and a service catalog projected from real execution history.
Tenancy, access, and money
Identity, organizations, teams, RBAC, configuration, secrets metadata, audit, usage metering, quotas, billing, notifications, and webhooks — the primitives every production platform needs, shipped as bounded-context services behind one edge API.
Fork it, rebrand it, grow it
The whole platform is open source and written as portable component intent, converged by orun itself on every commit. Run your own from a clean clone — no committed resource IDs, ever.
Console, docs, CLI, cockpit
The console, these docs, and orun's CLI cockpit share the same tokens, glyphs, and status vocabulary. What you see in a CI log is what you see in the control room — and in the margin of this page.
The platform at a glance
┌──────────────────────── api.orunbase.com ───────────────────────┐
orun CLI · SDK ──────▶│ edge API · /v1 · auth resolution · idempotency · rate limits │
console · CI (OIDC) └──────┬────────────────────────────────────────────────┬─────┘
▼ ▼
┌── tenancy & access ──┐ ┌── platform primitives ──┐ ┌── delivery plane ──┐
│ identity · sessions │ │ config · feature flags │ │ remote state │
│ workspaces · teams │ │ audit · events │ │ run coordination │
│ RBAC (deny-default) │ │ metering · quotas │ │ catalog of record │
│ projects · envs │ │ billing · notifications │ │ repo links (GitHub)│
└──────────────────────┘ │ webhooks (signed) │ └────────────────────┘
└─────────────────────────┘
Every box is a bounded-context service with its own contract; nothing reaches the data plane except through the edge. The architecture page walks through each one.
How to read these docs
First call in five minutes
The quickstart takes you from sign-in to an authenticated API call. Vocabulary pins down accounts, workspaces, projects, and actors before anything else uses the words.
Platform, product by product
Each platform section — identity, access control, audit, billing, webhooks — explains the model first, then the operations, with the console and API side by side.
API, SDK, and CLI reference
The API section covers the mechanics every endpoint shares — auth, errors, pagination, idempotency, rate limits — then a reference per resource.
Security & self-hosting
The security model explains tenancy isolation end to end. Run your own covers forking the baseline and converging it with orun — the same way we deploy it.
Why this design
Tenancy in the path, not in headers
Every resource lives under /v1/organizations/{id}/…. The tenant is
visible in every URL, every log line, and every audit entry.
Deny by default
No role, no access. Permissions are explicit action strings evaluated by a single policy engine, and every decision records how it was derived.
Caller-owned idempotency
Unsafe requests accept an Idempotency-Key; replays return the recorded
response. Retries are safe because you name them, not because we guess.
Converged by its own thesis
The platform deploys through orun: every commit compiles a plan, every merge converges it. These docs ship the same way.
Ready to make your first call? Start with the quickstart, skim what Orunbase is for the full picture, or go straight to the API reference.