# Release Evidence Template (Sofiia Console)

Заповнювати після кожного релізу. Мета: мати короткий, відтворюваний артефакт виконаних дій і перевірок.

## 1) Release metadata

- Release ID:
- Date/Time UTC:
- Date/Time Europe/Kyiv:
- Operator:
- Target nodes: `NODA1` / `NODA2`
- Deployed SHAs:
  - `sofiia-console`:
  - `router`:
  - `gateway`:
  - `memory-service`:
- Change summary (1-3 bullets):
  - 

## 2) Preflight results

- Command:
  - `bash ops/preflight_sofiia_console.sh`
  - `STRICT=1 bash ops/preflight_sofiia_console.sh` (prod window)
- Status: `PASS` / `FAIL`
- WARN summary (if any):
  - 

## 3) Deploy steps performed

- NODA2 precheck: `OK` / `FAIL`
  - Notes:
- NODA1 rollout: `OK` / `FAIL`
  - Method (docker/systemd/manual):
  - Notes:
- NODA2 finalize: `OK` / `FAIL`
  - Notes:

## 4) Smoke evidence

- `GET /api/health`: status code / result
- `GET /metrics`: reachable `yes/no`
- Idempotency A/B smoke:
  - Command: `bash ops/redis_idempotency_smoke.sh`
  - Result: `PASS` / `FAIL`
  - `message_id`:
- `/api/audit` auth checks:
  - without key -> `401` confirmed: `yes/no`
  - with key -> `200` confirmed: `yes/no`

## 5) Post-release checks

- Key metrics deltas (optional):
  - `sofiia_rate_limited_total`:
  - `sofiia_idempotency_replays_total`:
- Audit write/read quick check: `OK` / `FAIL`
- Retention dry-run:
  - Command: `python3 ops/prune_audit_db.py --dry-run`
  - `candidates=`:
  - Notes:

## 6) Rollback plan & outcome

- Rollback needed: `no` / `yes`
- If yes:
  - reason:
  - rollback commands used:
  - result:
- Final service state: `healthy` / `degraded`

## 7) Sign-off

- Reviewer / approver:
- Timestamp UTC:
- Notes:
