Roadmap
Runne Pass is in closed beta. This page states what is ready and what is deliberately deferred.
Ready in beta
- Customer IAM — registration, login, JWT sessions, logout with server-side revocation,
GET /v1/auth/me. - Workspaces — CRUD, ownership isolation, token balance (
1 token = 1 ₽). - API keys —
rn_live_…format, HMAC-SHA256 verification, dual-secret rotation, revocation. - Payments — YooKassa top-up (min 100 ₽), idempotent webhook, 54-ФЗ receipts for individuals.
- Ledger — atomic credit/debit/reservation/settlement/refund/adjustment with audit trail.
- Chat completions — OpenAI-compatible endpoint with a mock provider and real billing.
- Pricing catalog —
GET /v1/models, cost estimation, admin pricing updates. - Quotas —
tokens_per_monthenforced atomically; other limits declared. - Admin — dashboard, customer management, balance adjustment.
- Operations — reconciliation, orphan-reservation cleanup, receipt retry, monthly reset cron jobs.
Planned (post-beta)
- Real provider integration — wire OpenAI, Anthropic, DeepSeek, Zhipu, and Kimi in place of the mock provider.
- Full quota enforcement — extend enforcement to
max_workspaces,max_members_per_workspace,max_api_keys_per_workspace, andrequests_per_minute. - Dynamic pricing — move from the fixed
1 token = 1 ₽to a dynamic exchange rate, subscriptions, and volume discounts. - Service extraction — split the modular monolith into services once scaling signals appear.
- Receipt reconciliation — a cron job to reconcile receipt status with YooKassa.
Known gaps (low priority)
- Orphan
pendingpayments are not yet cleaned up. webhook.router.tsparses the body without atry/catch.adjustBalance/creditTokensare reachable only through admin/settlement paths, not standalone endpoints./healthdoes not probe database/Redis dependencies.- The monthly-reset cron is tied to process uptime (no distributed leader election beyond the existing lock).
What this means for integrators
- Assume the mock provider is the only chat behavior during beta; do not ship production workloads expecting real completions.
- Assume the 1 token = 1 ₽ rate can change without notice after beta.
- Build against the error codes, not messages — see Errors.
Related
- Introduction — beta scope.
- Architecture — modular monolith.
- Chat Completions — mock provider behavior.