Files
weirsoe-party-protocol/docs/ISSUE-188-SPA-CUTOVER-HARDENING-ARTIFACT.md
Asger Geel Weirsoee a4c0d0603d
All checks were successful
CI / test-and-quality (push) Successful in 2m55s
CI / test-and-quality (pull_request) Successful in 2m56s
feat(cutover): harden SPA asset cache busting and rollback playbook (#188)
2026-03-01 20:52:04 +00:00

1.9 KiB

Issue #188 Artifact — SPA cutover hardening (asset versioning + rollback)

Scope

Acceptance for [READY][SPA][P11] Cutover hardening:

  1. Dokumenteret strategi for cache-busting/versionering af SPA assets i Django staticfiles/reverse proxy setup.
  2. Konfigurerbar rollback-procedure for USE_SPA_UI (trin-for-trin, target <10 min).
  3. Smoke-artefakt for både SPA on/off i samme release-vindue.
  4. Ingen gameplay-ændringer.

1) Asset versioning/cache-busting strategi

Implementeret i SPA shell render-path:

  • Konfiguration i partyhub/settings.py:
    • WPP_SPA_ASSET_BASE (eksisterende)
    • WPP_SPA_ASSET_VERSION (ny)
  • lobby/ui_views.py injicerer spa_asset_version til template-context.
  • lobby/templates/lobby/spa_shell.html appender ?v={{ spa_asset_version }} på:
    • styles.css
    • main.js

Effekt:

  • Ny release-version (fx SHA/tag) kan tvinge cache-miss i browser/proxy uden ændring af route.
  • Rollback kan pege på tidligere stabil version-token med samme mekanisme.

2) Rollback playbook (USE_SPA_UI) — target <10 min

Dokumenteret i docs/spa-cutover-flag.md:

  1. Sæt USE_SPA_UI=false.
  2. Sæt WPP_SPA_ASSET_VERSION til sidste stabile release-token.
  3. Deploy/reload app-processer.
  4. Verificér legacy routes (/lobby/ui/host + /lobby/ui/player).
  5. Kør hurtig smoke sanity.
  6. Log trigger/timestamp/resultat i smoke artifact.

3) Smoke artifact for SPA OFF/ON i samme release-vindue

Dokumenteret i:

  • docs/UI_SMOKE.md (sektion: "Samme release-vindue: SPA OFF + ON verifikation")
  • docs/STAGING_GAMEPLAY_SMOKE_ARTIFACT.md (template udvidet med release-window check + WPP_SPA_ASSET_VERSION)

Krav:

  • OFF-pass (legacy) og ON-pass (SPA) køres i samme deploy/release-vindue.
  • Begge passes logges i samme artifact med UTC timestamps og version-token.

Non-goals bekræftet

  • Ingen gameplay-regler ændret.
  • Ingen API-kontrakter ændret.
  • Ingen UX-redesign; kun drift/cutover-hardening.