2.4 KiB
2.4 KiB
Production Readiness Checklist - WhatsApp Inbox
Pre-Deployment
- Semua migration sudah terapkan (
npm run db:deploy). - Seed data baseline siap (
npm run db:seed) jika memang dibutuhkan environment pertama. - Environment sudah lengkap:
DATABASE_URLAUTH_SECRETAPP_URL(atauOPS_BASE_URL)WHATSAPP_WEBHOOK_VERIFY_TOKEN+WHATSAPP_WEBHOOK_SECRETCAMPAIGN_RETRY_JOB_TOKEN- optional production hardening:
HEALTHCHECK_TOKENWEBHOOK_FAILURE_RATE_THRESHOLD_PER_HOURRETRY_WORKER_STALE_MINUTESWHATSAPP_WEBHOOK_RATE_LIMIT_GETWHATSAPP_WEBHOOK_RATE_LIMIT_POSTWHATSAPP_WEBHOOK_RATE_LIMIT_WINDOW_MSAUTH_TOKEN_CONSUMED_RETENTION_HOURSCAMPAIGN_RETRY_STALE_LOCK_MINUTESWEBHOOK_EVENT_RETENTION_DAYSAUDIT_LOG_RETENTION_DAYS
- Run
npm run typecheck. - Run
npm run build. - Run
npm run ops:smokesebelum deploy dan setelah restart service. - Review
.envtidak mengandung placeholder (contohchange-me,your-*).
Runtime Readiness (Post-Deploy)
- Start app (
npm startatau platform runner). - Start campaign retry worker:
- one-shot cron, or daemon (
npm run job:campaign-retry:daemon) - token dan url job benar.
- run
npm run ops:maintenanceon a broader schedule (daily/weekly) for cleanup.
- one-shot cron, or daemon (
- Run ops readiness:
npm run ops:readiness. - Check endpoint health:
GET /api/health. - Verify webhook endpoint reachable:
POST /api/webhooks/whatsapp. - Verify campaign retry endpoint state:
GET /api/jobs/campaign-retry?token=<CAMPAIGN_RETRY_JOB_TOKEN>
Observability
- Pastikan alert webhook di
CAMPAIGN_RETRY_ALERT_WEBHOOK_URLaktif. - Pantau dashboard:
super-admin/alertsuntuk channel disconnect/webhook retry warning.super-admin/webhook-logsuntuk event gagal.
- Jadwalkan pengecekan:
/api/healthsetiap 1 menit.- campaign retry satu run berkala (cron/daemon) sesuai SLA.
Incident & Recovery
- SOP fallback jika
/api/healthstatusdown:- cek
prisma.backgroundJobState(campaign-retry-worker) - cek
prisma.webhookEventstatusfailed - cek status channel di
super-admin/channels - cek koneksi provider WhatsApp
- cek
- SOP rollback:
git checkout/release target sebelumnya- restart aplikasi
- verifikasi
/api/healthkembaliok - jalanin
npm run ops:readiness