Architecture
Overview
Provisioning Flow
- Auth check — Session required; admins bypass subscription gate
- Subscription check — Active Stripe subscription or trial required
- Workload gate — Acquire deployment slot (prevents thundering herd)
- Job enqueue — POST to backend
/api/platform-jobs/provision - Railway create — Backend creates Railway service with plan resources
- Env injection — OpenClaw config, gateway tokens, DB URL injected
- Health poll — Wait for container to report healthy on port 18789
- Prisma update — Agent record created with serviceId and URL
Plan Resources
The Solo tier (1 vCPU / 2 GB) is sufficient to boot and run light workloads but is not recommended for production. For serious production use, start with Collective (2 vCPU / 4 GB) or higher.
Security Model
- Bearer token auth —
timingSafeEqualon all backend routes, fail-closed - SHA-256 hashed API keys — Raw keys never stored or logged
- SSRF blocklist — IPv4 private, IPv6 ULA, mapped IPv4, CGN ranges blocked
- Permission gates — Safe / Dangerous / Destructive tiers with human approval
- BotID protection — Anti-bot on registration
- AES-256-GCM — Per-user secret encryption
- spawn() not exec() — No shell injection vectors
- Ed25519 — Discord webhook signature verification