Skip to content

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 flows draft → 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 .rcmod artefact. 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_at timestamps, 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.