d582f15681
- Implemented tests for import polling functionality, ensuring correct behavior for active and terminal import statuses. - Created tests for the login page, validating user interactions and error handling. - Added unit tests for money utility functions, covering parsing, formatting, and summation of monetary values. - Developed tests for query keys, ensuring proper scoping and invalidation roots. chore: setup testing environment and configuration - Added setup file for testing with Vitest and Testing Library. - Configured TypeScript and Vite for the frontend project. - Created Docker and Nginx configurations for local development and production environments. - Established a PostgreSQL initialization script for setting up application roles. docs: add README and environment configuration for infra - Included README for the infra directory, detailing local development setup and service descriptions. - Created an example environment configuration file for local development with placeholders for sensitive information.
2.6 KiB
2.6 KiB
Beta Release Runbook (closed beta)
Status: template. No release has been executed. Every unchecked item is still open; do not check items from this document without doing them.
Preconditions (launch gate)
- One-shot Alembic migration applied from an empty database on staging.
- Provider-neutral images built and tagged (API/worker:
infra/docker/Dockerfile.backend; frontend:infra/docker/Dockerfile.frontend) and pushed to the registry. - Same-origin reverse proxy live at the edge with TLS + HSTS;
/api/v1verified end-to-end (login round-trip). /healthz(API) and readiness probes wired to the platform; queue-depth and parser-failure metrics visible.- Backups configured and a restore drill passed (
backup-and-restore.md). - KEK and secrets present in the secret manager; nothing secret in
VITE_*or Git (ADR 0004). - Legal/privacy gate for RF data localization signed by qualified counsel — hard gate before any real invite.
- Deletion workflow (30-day window, purge, ledger) reviewed against
deletion-ledger.md. - Bank adapters enabled only per
docs/parsers/private-fixture-gate.md; unsupported formats are not advertised. - Invites limited to an explicit allowlist; public registration stays off.
Launch sequence
- Deploy images; run migrations one-shot (
alembic upgrade head), never on container start. - Smoke test on production data (synthetic only): invite → register → create space/account → plan month → manual operation → import synthetic statement → review/confirm → close month → reports.
- Verify Mailpit-equivalent SMTP path against the production SMTP relay (invite email delivered).
- Enable email invites for the allowlist; monitor error rates, queue depth, parser failures for the first sessions.
Rollback
- Redeploy previous image tags; migrations are forward-fix preferred.
- Downgrade only where the migration is marked reversible in Alembic; otherwise restore from backup and re-apply the deletion ledger (see
backup-and-restore.md). - Never roll forward a parser version without a review diff (ADR 0003).
Incidents
- Financial-data suspected exposure: revoke sessions, rotate
SESSION_SECRET, preserve audit events, follow the (to-be-written) privacy incident procedure. - Break-glass access: separate role, mandatory reason, short-lived grant, append-only audit — never through ordinary admin tooling.
Post-launch
- Record adapter gate statuses and any layout-drift events.
- Keep the restore drill quarterly; update
backup-and-restore.mddrill log.