PostgreSQL Release Readiness Checklist
Use this runbook for final release hardening when PostgreSQL is the active datastore path.
Scope
- validates schema migration safety
- validates API/UI/gateway/runtime quality gates
- validates Postgres datastore behavior gate in CI and local runs
- confirms security and operations runbook coverage before release cut
Preconditions
- Postgres is reachable from the execution environment.
DATABASE_URLorFREEBOARD_POSTGRES_URLis set.DB_BACKEND=postgres.SECURITY_LIMITER_BACKENDis either:postgres(recommended for release checks)memory(local-only troubleshooting mode)
Full Validation Matrix
Primary command (runs full Sprint 30.9 matrix):
bash
npm run check:releaseOptional (skip browser smoke temporarily):
bash
npm run check:release -- --skip-e2eE2E bootstrap port behavior:
check:releasebootstraps a disposable Postgres compose container by default for the full matrix (including schema checks), then shuts it down at the end.- The disposable container uses host port
55432by default to avoid collisions with local/staging Postgres already using5432. - Override port with
CHECK_RELEASE_E2E_POSTGRES_PORT=<port>when needed. - Disable automatic bootstrap only if you intentionally want an external DB:
CHECK_RELEASE_BOOTSTRAP_POSTGRES=0- or
npm run check:release -- --no-bootstrap-postgres
Equivalent manual command set:
bash
npm run check:db:ready:strict
npm run db:schema:status
npm run db:schema:apply
npm run db:schema:status
npm run format:check
npm run lint
npm run check:ts:debt
npm run check:ts:source-artifacts
npm run test:shared
npm run test:api
npm run test:api:smoke
npm run test:ui
npm run test:gateway
npm run test:e2e:smoke
npm run build:verify
npm run typecheck
npm run db:schema:statusSecurity and Ops Runbook Pass
Before signoff, verify the following runbooks are current and validated for the target environment:
- Secrets Operations Runbook
- Security Controls Rollout Runbook
- Credential Key Rotation
- Realtime Operations Runbook
- Installation and Usage
Minimum explicit checks:
SECURITY_LIMITER_BACKENDmatchesDB_BACKENDfor non-development runtime.SECURITY_LIMITER_FAILURE_MODE=fail-closedandREALTIME_LIMITER_FAILURE_MODE=fail-closedunless a temporary degraded-mode change is approved.- bootstrap admin flow is disabled after first login (
CREATE_ADMIN=false). - Postgres credentials and application secrets are non-default.
Signoff Record Template
Record completion evidence in your release notes/change log:
- validation matrix run ID and timestamp
- CI run URL with passing required jobs
- schema status output (pre/post)
- runbook owner signoff (engineering + operations)