Skip to content

Release Checklist — MyHoreca Pay ​

Чеклист безопасного выпуска на test/staging и production.

Связанные документы: UAT Checklist · Production Readiness Report · Quality Gate · Environment Variables


Release metadata ​

FieldValue
Release version / tagfill before deploy
Target environmenttest / staging / production
Release owner
Planned window
Rollback owner

1. Pre-release documentation checks ​

  • [ ] api.md отражает публичные контракты
  • [ ] environment-variables.md актуален для целевого контура
  • [ ] current-implementation-state.md обновлён после последней итерации
  • [ ] production-readiness-report.md просмотрен; Go/No-Go согласован
  • [ ] Изменения миграций описаны в release notes
  • [ ] Нет незакоммиченных секретов в diff

2. Backend build / test checks ​

  • [ ] dotnet restore — успех
  • [ ] dotnet build — успех
  • [ ] dotnet test — успех (или зафиксирован scope)
  • [ ] MyHoreca.Pay.ArchitectureTests — успех при структурных изменениях

3. Frontend build / test checks ​

  • [ ] npm install (при изменении lockfile)
  • [ ] npm run build — успех
  • [ ] npm run lint — успех (если в scope релиза)
  • [ ] npm run test:mocked или targeted Playwright — успех
  • [ ] mhpay-e2e-smoke — успех (mocked operator flow)

4. Database / migration checks ​

  • [ ] Список новых EF migrations идентифицирован
  • [ ] Migration 20260624120000_CounterpartyMatchExplainability (если в релизе) — план apply на target DB
  • [ ] Backup PostgreSQL перед apply на staging/prod
  • [ ] Rollforward plan при failed migration
  • [ ] Seed/admin users не перезаписывают prod unintentionally

5. Configuration and environment variables ​

  • [ ] .env / deployment secrets соответствуют .env.example (ключи, не значения)
  • [ ] JWT_SIGNING_KEY — достаточная длина на prod
  • [ ] VITE_API_BASE_URL корректен для контура
  • [ ] Syrve/iiko always-on runtime:
    • [ ] removed capability/verification/bypass keys отсутствуют в deployment profile
    • [ ] connection secrets доступны через approved secret provider
    • [ ] новые postings создаются только в ApprovalRequired
    • [ ] scoped RBAC, idempotency, business/anomaly и method-specific preflight проверены
  • [ ] CORS origins ограничены

6. Bank format / parser checks ​

  • [ ] GET /api/bank-statements/supported-banks возвращает ожидаемый каталог
  • [ ] Новые/изменённые adapters покрыты unit tests
  • [ ] Sanitized fixtures не содержат raw PII
  • [ ] Beta/Experimental adapters помечены в UI для оператора

7. Import pipeline smoke (live — после deploy) ​

Выполнять на целевом контуре; не отмечать без evidence.

  • [ ] Upload sample-bank-statement.csv или pilot file
  • [ ] Import status Parsed / Failed с понятным сообщением
  • [ ] Transactions visible on import detail
  • [ ] Quality report открывается
  • [ ] Duplicate tab (если применимо)

8. Matching / allocation smoke (live) ​

  • [ ] Unmatched list loads (/name-matching)
  • [ ] Manual match (test data)
  • [ ] Allocation preview warnings readable
  • [ ] Confirm allocation + detail page
  • [ ] Idempotent re-confirm returns same allocation

9. Syrve dry-run / posting gate smoke (live) ​

  • [ ] Connection health OK on test connection
  • [ ] Document sync or existing snapshots available
  • [ ] Posting preview / dry-run без unintended live write
  • [ ] Mandatory approve respected for every new posting
  • [ ] Deprecated DB capability fields не меняют результат

10. Audit log verification ​

  • [ ] После match/allocate/posting — записи в /audit-log
  • [ ] User id и timestamp корректны

11. Permissions verification ​

  • [ ] Viewer cannot upload (403)
  • [ ] Operator can upload in assigned location
  • [ ] Cross-location mutation denied

12. Rollback plan ​

StepAction
1Stop traffic / notify operators
2Redeploy previous API + frontend image tags
3Stop/scale payment posting consumers and restrict approved write traffic if incident on posting
4DB: forward-fix preferred; restore backup only if agreed
5Verify health endpoints and login
6Post-mortem + Plane tickets

13. Post-release monitoring ​

  • [ ] API error rate / 5xx (deployment tooling)
  • [ ] Bank import failure rate
  • [ ] Syrve posting worker failures
  • [ ] Open critical anomalies count
  • [ ] Review queue non-zero blocks investigated

14. Communication / handoff ​

  • [ ] Release notes для операторов/бухгалтерии (RU)
  • [ ] Ссылка на UAT Checklist для pilot users
  • [ ] Known limitations (Beta banks, no prod write)
  • [ ] Support contact / escalation path

Command matrix ​

Заполняйте колонку Result / evidence только после фактического запуска.

CommandWorking directoryPurposeBefore beta?Before production?Result / evidence
dotnet restorerepo rootRestore NuGetYesYesnot run in MHPAY-23 doc iteration
dotnet buildrepo rootCompile solutionYesYesnot run
dotnet testrepo rootUnit + integration testsYesYesnot run
dotnet test backend/tests/MyHoreca.Pay.ArchitectureTests/...repo rootLayer rulesIf structural changeYesnot run
cd frontend && npm run buildfrontend/SPA production buildYesYesnot run
cd frontend && npm run lintfrontend/ESLintRecommendedYesnot run
cd frontend && npm test -- mhpay-e2e-smokefrontend/Mocked operator E2EYesYesnot run
cd frontend && npm run test:mockedfrontend/Full mocked PlaywrightRecommendedYesnot run
cd docs && npm run builddocs/VitePress docs portalYesYesrun during MHPAY-23 — see implementation state
docker compose buildrepo rootContainer imagesRecommendedYesnot run
dotnet ef database updateAPI/Infrastructure projectApply migrationsOn deploy envYesnot run — requires target DB

Sign-off ​

CheckOwnerDateOK
Engineering[ ]
QA[ ]
Operations[ ]
Product[ ]

Release approved for deploy: [ ] Yes [ ] No

Comments:


Post-release record ​

ItemValue
Deploy completed at
Git commit / image tag
Migrations applied
Issues found
Rollback required?