Patches & build pipeline¶
The patch graph and build pipeline ship via /admin/patches plus the
game-scoped patch pages under /admin/games/:id/patches.
Concepts¶
- Patch (
cluster.patches) — a content delta belonging to one game. Status flowsdraft → published → preload → active → archived. - Preload window — clients download an encrypted blob during the
maintenance window; the decryption key is gated until the patch
flips to
active. - Build job (
cluster.build_jobs) — a queued / running content rebuild that produces an.rcmodartefact. Logs stream live. - OCI artefact — the artefact registry the launcher pulls
delivery archives from. Webhook + cache management lives under
/admin/games/:id/patches.
Patch list¶
- Per-game patch table with version, status, scheduled
preload_at/active_attimestamps, build status, file size. - Status transitions are gated by the patch scheduler; admins can override or reschedule.
- Diff viewer shows what tables changed between two patches (item edits, quest tweaks, NPC rebalances).
Patch encryption¶
Each patch ships an encrypted client.MPQ.enc (AES-256-GCM,
12-byte nonce prefix). The decryption key lives in the patch row;
GET /api/v1/launcher/patches/:id/unlock only returns it once the
patch has flipped to active. Pre-loaded clients can stage the
blob during the maintenance window and start the new patch
instantly when the unlock window opens.
Build jobs¶
Live job stream UI for queued / running / failed builds. Cancel, re-run, view full log. Failures attach the last 200 lines of build output for fast triage.
Mods + base content¶
The patch pipeline pulls from cluster.mods (operator-defined
modular content) and cluster.base_content (the canonical 3.3.5a
seed). See Mods & base content on the
designer side for the authoring workflow.