Skip to content

PREGO v4.0 인수·검증 체크리스트

배포 후 Phase별로 한 번씩 확인할 최소 항목. 상세 인수 시나리오는 구현 기획서 §9.3 참조.

Phase 1

  • Stripe Webhook — Stripe 대시보드에서 테스트 이벤트 전송 또는 체크아웃 1건 완료 후, Control Plane이 200 응답. D1 provider_events 에 해당 event_id 존재.
  • 프로비저닝 — 신규 구독 후 D1 tenants_master, provision_jobs 에 행 추가. (결정 ① 적용 시) GitHub Actions Pulumi Up workflow_dispatch 호출됨.
  • Trace — 동일 구독의 trace_idGET /trace/:trace_id 호출 시 STRIPE_WEBHOOK_RECEIVED, PROVISION_JOB_CREATED 등 이벤트 반환.
  • Pulumi — PR에서 prego-pulumi/** 변경 시 Preview 코멘트. main push 또는 workflow_dispatch로 pulumi up 성공 (스택 sg).

Phase 2

  • Usage WriterPOST /usage with { "tenant_id": "<uuid>" } 후 R2 usage_raw/tenant_id=.../ 아래 객체 생성.
  • Aggregator — Cron 또는 POST /aggregate 후 D1 usage_rollups 에 해당 tenant_id·dt·hour 행 존재 (또는 Upsert).
  • Cycle Close — (선택) POST /cycle-close 수동 실행 후 usage_cycle_totals 갱신. Stripe 연동 시 Usage Record 전송 확인.

Phase 3

  • AuditGET /audit?tenant_id=... 또는 GET /audit?limit=10 으로 audit_logs 반환. tenant_created 등 액션 존재.
  • Soft Delete — Stripe에서 구독 해지 후 D1 tenants_master.status = Pending_Deletion. audit_logs 에 subscription_deleted 기록.
  • Purge — (정책상 30일 후 또는 테스트용 수동) POST /purge 또는 Cron 후 해당 tenant의 D1 행 삭제. audit_logs 는 유지.

Phase 4

  • US 스택 — workflow_dispatch로 region=us 선택 후 Pulumi Up 성공. HCLOUD_TOKEN_US 사용 확인.
  • resolveRegion — Stripe metadata requested_region: "us" 로 체크아웃/구독 시 provision_jobs.region = us, workflow_dispatch region=us 호출.
  • Autoscaler — (전제: node_metrics_rollups 데이터 존재) POST /run 또는 Cron 후 D1 scaling_events 에 ScaleOut/ScaleIn 기록 가능.

Phase 5

  • EU 스택 — workflow_dispatch로 region=eu 선택 후 Pulumi Up 성공. HCLOUD_TOKEN_EU 사용.
  • resolveRegion — Stripe metadata requested_region: "eu"provision_jobs.region = eu.

실패 시: OPERATIONS.md, 구현 기획서 §8.6 에러 시나리오 참조.

Help