Skip to content

Rehearse and execute the modernized production rollout with a tested rollback #176

Description

@coder13

Goal

Ship the Node 22, Vite, MongoDB 7, Redis, Docker Compose, and PostgreSQL dual-write stack without making production the first full migration test.

Acceptance criteria

  • Complete the integrated release candidate in Integrate the remaining modernization work on dev and cut a release candidate #173.
  • Capture a fresh MongoDB backup and successfully restore it into a non-production rehearsal environment.
  • Rehearse the Compose deployment, Prisma migrate deploy, API/socket startup, and health checks using production-shaped configuration.
  • Verify login, room create/join/rejoin, spectating, result submission/editing, room expiry, and Redis-backed multi-process Socket.IO behavior.
  • Configure PostgreSQL credentials, METRICS_HASH_SECRET, retention, TLS/CA settings where applicable, and confirm secrets are not logged.
  • Define rollback triggers and rehearse rollback to the previous app revision without deleting or downgrading data.
  • Promote the reviewed dev → master release and monitor API/socket errors, auth failures, room events, PostgreSQL write failures, and resource use.
  • Record the deployed commit and post-deploy verification results.

References

Activity

  1. added
    enhancementNew feature or request
    priority: P0Release blocker or critical operational prerequisite
    area: dataMongoDB, PostgreSQL, migrations, backfills, and data integrity
    area: platformBuild, CI, deployment, operations, and repository infrastructure
    on Jul 10, 2026
  2. coder13 commented on Jul 14, 2026

    @coder13
    OwnerAuthor

    Completed a safe, hermetic rollout safeguard in #245, promoted through #246 to master (1aefb3a). The new CI rehearsal verifies the existing MongoDB backup/restore command contract with synthetic bytes only: backup archive creation, explicit restore confirmation, no Docker action before confirmation, and the expected mongorestore drop/archive/gzip invocation. Master CI, Cypress, and CodeQL passed.\n\nThis is intentionally not a substitute for the remaining acceptance items: a fresh backup restored into a real non-production environment, production-shaped Compose/migration/startup rehearsal, rollback rehearsal against deployed-like services, and separately authorized production rollout/monitoring.

  3. coder13 commented on Jul 14, 2026

    @coder13
    OwnerAuthor

    Further rollout preparation completed in #247 and promoted through #248 to master (5dd4256). The CI configuration now runs a live, isolated MongoDB rehearsal: two disposable mongo:7 containers on a temporary network, one synthetic attempt, mongodump, mongorestore --drop, verification, and cleanup. It passed locally and in PR/dev/master CI, Cypress, and CodeQL.\n\nThis validates the backup/restore mechanics without reading, copying, or restoring user data. It does not satisfy the remaining real non-production restore, production-shaped Compose/migration/rollback, or authorized production rollout requirements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: dataMongoDB, PostgreSQL, migrations, backfills, and data integrityarea: platformBuild, CI, deployment, operations, and repository infrastructureenhancementNew feature or requestpriority: P0Release blocker or critical operational prerequisite

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions