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_id로GET /trace/:trace_id호출 시STRIPE_WEBHOOK_RECEIVED,PROVISION_JOB_CREATED등 이벤트 반환. - Pulumi — PR에서
prego-pulumi/**변경 시 Preview 코멘트. main push 또는 workflow_dispatch로pulumi up성공 (스택 sg).
Phase 2
- Usage Writer —
POST /usagewith{ "tenant_id": "<uuid>" }후 R2usage_raw/tenant_id=.../아래 객체 생성. - Aggregator — Cron 또는
POST /aggregate후 D1usage_rollups에 해당 tenant_id·dt·hour 행 존재 (또는 Upsert). - Cycle Close — (선택)
POST /cycle-close수동 실행 후usage_cycle_totals갱신. Stripe 연동 시 Usage Record 전송 확인.
Phase 3
- Audit —
GET /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 후 D1scaling_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 에러 시나리오 참조.