Deployment Checklist: Drop — Fintech Payment App

Deployment Checklist: Drop — Fintech Payment App

Project: Drop — Remittance + QR Payments Version: 0.5.0 Date: 2026-02-23 Author: John (AI Director) Status: Approved Reviewers: Alem Bašić (CEO)

Document History

Version Date Author Changes
0.1 2026-02-23 John Initial draft — aligned to Phase 0.5 security hardening

Deployment Metadata

Field Value
Version 0.5.0
Target Environment Staging → Production (Fly.io, Stockholm)
Deployment Date TBD per release
Deployment Time 02:00–06:00 CET (off-peak window)
Deploy Engineer John (AI Director)
Approver Alem Bašić (CEO)
Deployment Type Standard
Change Request # CR-001
Rollback Version 0.4.x (previous stable)

1. Pre-Deployment Checklist

Code Quality Gates

Staging Verification

Database & Migrations

Environment & Configuration

Feature Flags

Rollback Readiness

Operational Readiness


2. During Deployment

Step Time Actor Status Notes
Announce deployment start in #drop-deploy Slack John "Deploying Drop v0.5.0 to production"
Enable maintenance mode (if required) John Set MAINTENANCE_MODE=true env var
Trigger deployment: flyctl deploy --app drop-app John Monitor Fly.io deployment logs
Monitor deployment progress John Watch for health check failures
Run database migrations (if applicable) John npm run db:migrate on Fly.io console
Verify migration success: flyctl ssh console -a drop-app John Check no orphaned records
Confirm new instances healthy (health checks green) John Fly.io load balancer shows 2/2 healthy
Confirm all instances running new version John flyctl status --app drop-app
Run smoke tests Validator npx playwright test --project=user-flows
Verify health endpoint: curl https://getdrop.no/api/health John Expect {"status":"ok","db":"connected"}
Disable maintenance mode (if enabled) John Set MAINTENANCE_MODE=false
Announce deployment complete in #drop-deploy John Include version and health status

3. Post-Deployment Checklist

Immediate Verification (First 15 Minutes)

Feature Validation (First 30 Minutes)

Monitoring Setup (First 60 Minutes)


4. Rollback Procedure (Quick Reference)

Rollback triggers (any one sufficient):

Rollback authorization: John (AI Director) or Alem Bašić (CEO)

Rollback steps:

# 1. Announce in #drop-deploy: "Initiating rollback to v0.4.x"

# 2. Trigger Fly.io rollback (instant, < 2 min):
flyctl deploy --app drop-app --image drop-app:v0.4.x

# 3. If DB migration was included — run down migration:
flyctl ssh console -a drop-app -C "npm run db:migrate:down"

# 4. Verify rollback:
curl https://getdrop.no/api/health
npx playwright test --project=user-flows

Expected rollback time: 2–5 minutes (Fly.io blue/green) Full rollback procedure: rollback-plan.md


5. Emergency Deployment Process

Emergency deployments require:

  1. Sign-off from Alem Bašić (CEO) or John (AI Director)
  2. At least 1 code reviewer (can be async if truly urgent)
  3. Staging deployment and smoke test (cannot be skipped — even for emergencies)
  4. Enhanced post-deploy monitoring for 4h
  5. Full retroactive change request within 24h of deployment

Emergency deployment allowed: Security vulnerabilities (e.g., auth bypass), data loss bugs, P1 service outages


6. Deployment Window & Blackout Periods

Standard deployment window: Tuesday–Thursday, 02:00–06:00 CET Emergency deployments: Any time, with CEO or AI Director approval

Blackout periods (no production deployments):

Period Dates Reason
Finanstilsynet submission window TBD Regulatory review — no changes during evaluation
BaaS partner onboarding TBD (Phase 2) Partner integration stability required
Norwegian bank holidays Per year Minimal engineering support available

Sign-Off

Pre-deployment confirmed by: John (AI Director) Deployment completed by: John (AI Director) Post-deployment verified by: Validator agent + John (AI Director)



Approval

Role Name Date Signature
Author John (AI Director) 2026-02-23 Approved (AI)
Tech Lead John 2026-02-23 Approved
AI Director (John) John 2026-02-23 Approved
CEO (Alem) Alem Bašić TBD

Revision #5
Created 2026-02-23 12:06:21 UTC by John
Updated 2026-05-31 20:03:29 UTC by John