Deployment Procedure
Implements: Change Management Policy Owner: Security Lead Last Updated: 21 May 2026 Next Review: 21 November 2026
Cloudflare Workers Deployment
All Cloudflare Workers deploy via GitHub Actions CI/CD. Manual deployment is only used for emergencies.
Automated (Standard)
- PR merged to
main - CI runs: lint, test, build
- CI deploys to sandbox (if applicable)
- Sandbox deployment verified
- CI deploys to production (for repos with production deployment in CI)
- Post-deploy health checks run automatically
Pre-Deploy Checklist
Before merging to main:
- PR approved by required reviewer(s)
- CI passes (all checks green)
- No unresolved review comments
- If API change: backward compatibility confirmed or migration communicated
- If secret change: secret updated in Cloudflare before deploy
Post-Deploy Verification
After deployment:
- Worker responds to health check endpoint (where available)
- No spike in error rates on Cloudflare dashboard
- Key flows work end-to-end (challenge → proof → verification)
- Monitor for 30 minutes (standard) or 2 hours (significant change)
Manual Emergency Deployment
# Deploy directly from local machine
cd /path/to/repo
wrangler deploy --env production
Only used when CI is unavailable and a P1/P2 incident requires an immediate fix.
Mobile App Deployment (Provii mobile wallet client repository, MaelstromAI GitHub enterprise)
iOS
- Merge to
maintriggers CI build - CI builds.ipa and uploads to TestFlight
- Internal testing on TestFlight (minimum 24 hours for significant changes)
- Submit to App Store Connect for review
- Apple review (typically 24-48 hours)
- Release to App Store (phased rollout: 1%, 5%, 10%, 50%, 100%)
Android
- Merge to
maintriggers CI build - CI builds.aab and uploads to Google Play Console
- Internal testing track (minimum 24 hours for significant changes)
- Promote to production track
- Google Play review (typically 2-7 days)
- Staged rollout: 5%, 20%, 50%, 100%
Mobile Rollback
- iOS: Cannot roll back. Must submit a new version with the fix.
- Android: Can halt rollout in Google Play Console. Must submit a new version to fix.
Deployment Freeze Periods
No non-emergency deployments during:
- Active P1/P2 incidents
- Public holidays (Australian national holidays)
- Pre-announced maintenance windows for Cloudflare
During freeze periods, only emergency changes per the Emergency Change Process are permitted.