* 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>
26 KiB
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 |