Appearance
Release Checklist — MyHoreca Pay
Чеклист безопасного выпуска на test/staging и production.
Связанные документы: UAT Checklist · Production Readiness Report · Quality Gate · Environment Variables
Release metadata
| Field | Value |
|---|---|
| Release version / tag | fill before deploy |
| Target environment | test / 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
| Step | Action |
|---|---|
| 1 | Stop traffic / notify operators |
| 2 | Redeploy previous API + frontend image tags |
| 3 | Stop/scale payment posting consumers and restrict approved write traffic if incident on posting |
| 4 | DB: forward-fix preferred; restore backup only if agreed |
| 5 | Verify health endpoints and login |
| 6 | Post-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 только после фактического запуска.
| Command | Working directory | Purpose | Before beta? | Before production? | Result / evidence |
|---|---|---|---|---|---|
dotnet restore | repo root | Restore NuGet | Yes | Yes | not run in MHPAY-23 doc iteration |
dotnet build | repo root | Compile solution | Yes | Yes | not run |
dotnet test | repo root | Unit + integration tests | Yes | Yes | not run |
dotnet test backend/tests/MyHoreca.Pay.ArchitectureTests/... | repo root | Layer rules | If structural change | Yes | not run |
cd frontend && npm run build | frontend/ | SPA production build | Yes | Yes | not run |
cd frontend && npm run lint | frontend/ | ESLint | Recommended | Yes | not run |
cd frontend && npm test -- mhpay-e2e-smoke | frontend/ | Mocked operator E2E | Yes | Yes | not run |
cd frontend && npm run test:mocked | frontend/ | Full mocked Playwright | Recommended | Yes | not run |
cd docs && npm run build | docs/ | VitePress docs portal | Yes | Yes | run during MHPAY-23 — see implementation state |
docker compose build | repo root | Container images | Recommended | Yes | not run |
dotnet ef database update | API/Infrastructure project | Apply migrations | On deploy env | Yes | not run — requires target DB |
Sign-off
| Check | Owner | Date | OK |
|---|---|---|---|
| Engineering | [ ] | ||
| QA | [ ] | ||
| Operations | [ ] | ||
| Product | [ ] |
Release approved for deploy: [ ] Yes [ ] No
Comments:
Post-release record
| Item | Value |
|---|---|
| Deploy completed at | |
| Git commit / image tag | |
| Migrations applied | |
| Issues found | |
| Rollback required? |