Files
recflare/SERVICES.md
Crasho 26270e9c25 [studio] beta studio (#114)
* rrs stuff

* studio service yay

* rrs whitelist

* moree studiooooooo fellowwww

* rec room studio room loading yay

* fixes yay

* fix 2 because idk  yayuh

* Update cdn.app.ts

* ccontent length fix?

* Preserve content-length and upgrade metadata

Return a real zero-filled byte array for CDN HEAD responses so the runtime preserves Content-Length while still sending no payload. In notify, re-create the Request with its original headers, set OWNER_HEADER from the validated token, and forward that Request to hub.fetch to avoid losing WebSocket upgrade metadata (which could trigger 500s in Durable Objects). These changes ensure the editor's size checks and WebSocket upgrades remain reliable.

* fix x524234

* shirt thing?

* [auth] remove grant table as we already have audit_log for now

* rename table to generic device_grant

* cleanup/lint

---------

Co-authored-by: Devin Zuczek <devin.zuczek@gmail.com>
2026-10-05 14:39:22 -04:00

26 KiB
Raw Permalink Blame History

Services

This is a list of every RecNet service the client discovers, taken from the service-discovery map in apps/ns/src/endpoints.ts. Each is reached at https://<subdomain>.<your-domain>. Services with a worker in apps/ are implemented here; the rest are advertised in the endpoints document but not yet backed by a Worker. Not all services are fully implemented.

The subdomains below are the defaults. Any of them can be redirected from .env via RECFLARE_SUBDOMAINS, keyed by the subdomain in this table — which both moves where the worker deploys and what ns advertises. Pointing one service at another merges them, e.g. '{"moderation":"api"}' sends the client's Moderation calls to the api worker, where the /api/PlayerReporting/… routes already live. See DEPLOYING.md.

That override is still the one to set for Moderation: the moderation worker deploys but is a stub, so with no override the client's reporting calls reach it and 404 rather than reaching the routes in api. Drop the override once moderation serves them itself.

A small ns worker itself serves this discovery document at the apex/ns host and isn't listed within it. Each implemented worker has its own README.md under apps/<name>/ documenting its routes.

Service Subdomain Worker Notes
Accounts accounts accounts Player accounts & profile reads/writes (D1)
AI ai ai Game AI access check (always refuses — no model runs here)
API api api Core Game API — config, social, avatar, rooms, image uploads (D1, R2)
Auth auth auth OAuth tokens, plus Studio device login (POST /connect/deviceauthorization, device-code grant on /connect/token); (D1)
BugReporting bugreporting — Not yet implemented
Cards cards cards Stub — deploys and answers, no card endpoints yet
CDN cdn cdn Binary CDN — room data, and Studio room bundles at /unityasset/{filename} (R2, D1 lookup). The editor's studiocdn host is this same app on a combined deploy
Chat chat chat Player chat service (not in room)
Clubs clubs clubs Clubs, not yet implemented
CMS cms — Not yet implemented
Commerce commerce commerce Store / purchase endpoints
Data data — Not yet implemented
DataCollection datacollection datacollection Client telemetry / analytics sink
Discovery discovery discovery Discovery page layouts (static assets)
Econ econ econ Economy & avatar endpoints (separate from api)
GameLogs gamelogs — Not yet implemented
Geo geo — Not yet implemented
Images img img Image storage & signed delivery (R2)
Leaderboard leaderboard leaderboard Per-room stat leaderboards, one board per stat channel (D1)
Link link link Stub — deploys and answers, no link endpoints yet
Lists lists lists Curated & algorithmic discovery lists (canned — nothing ranks yet)
Matchmaking match match Matchmaking & per-player presence (D1, KV)
Moderation moderation moderation Stub — the reporting routes still live in api; see note below
Notifications notify notify Real-time notifications over SignalR/WebSockets (Durable Object)
PlatformNotifications platformnotifications platformnotifications Stub — deploys and answers, no notification endpoints yet
PlayerSettings playersettings playersettings Per-player settings (KV)
RoomComments roomcomments roomcomments Notes pinned in a room’s scene — read & create (D1)
RoomieIntegrations roomieintegrations — Not yet implemented
Rooms rooms rooms Room storage & queries; seeds the Dorm & Orientation rooms (D1)
Storage storage — Room uploader
Strings strings — Not yet implemented
StringsCDN strings-cdn — Not yet implemented
Studio studio studio GET /cloud-builds/for-room lists that room's cloud builds. POST /cloud-builds/from-editor stores a locally built Windows and Android asset-bundle pair as a finished cloud build on the latest save, and sets BecameRRStudioRoomAt the first time. The game loads those bundles from Rooms (CurrentSave.UnitySubAssets, GET …/unityasset) and CDN /unityasset/{filename}. GET /collaboration/owners-in-room lists co-owners whose presence is in that room and subroom. Device login stays on Auth; GET /account/me stays on Accounts; the approval page is WWW /device
Thorn thorn — Not yet implemented
Videos videos — Not yet implemented
WWW www www Website, including the Studio sign-in page at /device