Files
api-company/docs/pre-launch-checklist.md
T
AI-Agent e3247de665
Validate Flux manifests / kustomize-build (pull_request) Failing after 24s
docs: add vin-decoder to pre-launch checklist quick-command snippets
Fix three omissions in the Quick Commands Reference section:
1. Pod-health loop: add vin-decoder to namespace list
2. DNS check loop: add vin subdomain (8th subdomain, not 7)
3. Health smoke-test loop: add vin.leeworks.dev/v1/health

Closes leeworks-agents/api-company#208
2026-06-05 05:02:07 +00:00

4.6 KiB

Pre-Launch Checklist

Use this checklist as the final go-live gate — run through every item the day before flipping the public switch. All items must be before announcing public availability.


Infrastructure

  • All Flux components READY=True (flux get all)
  • All three API pods Running and READY
    • zip-enrichment pod READY=1/1 (kubectl get pods -n zip-enrichment)
    • holidays pod READY=1/1 (kubectl get pods -n holidays)
    • air-quality pod READY=1/1 (kubectl get pods -n air-quality)
    • vin-decoder pod READY=1/1 (kubectl get pods -n vin-decoder)
  • docs-site pod Running and READY (kubectl get pods -n docs-site)
  • Prometheus scraping all three API services (check Prometheus Targets UI)
  • Grafana dashboard accessible at grafana.leeworks.dev

DNS & TLS

  • zip.leeworks.dev → cluster ingress IP (dig zip.leeworks.dev +short + curl -I https://zip.leeworks.dev)
  • holidays.leeworks.dev → cluster ingress IP
  • aqi.leeworks.dev → cluster ingress IP
  • docs.leeworks.dev → cluster ingress IP
  • status.leeworks.dev → cluster ingress IP
  • registry.leeworks.dev → cluster ingress IP
  • vin.leeworks.dev → cluster ingress IP (dig vin.leeworks.dev +short + curl -I https://vin.leeworks.dev)
  • grafana.leeworks.dev → cluster ingress IP
  • TLS certificates issued for all 8 subdomains (kubectl get certificates -A)

Functional Verification

  • GET /health returns HTTP 200 on zip-enrichment (curl https://zip.leeworks.dev/health)
  • GET /health returns HTTP 200 on holidays (curl https://holidays.leeworks.dev/health)
  • GET /health returns HTTP 200 on air-quality (curl https://aqi.leeworks.dev/health)
  • GET /zip/{zip} returns correct data for a sample ZIP code (e.g. curl https://zip.leeworks.dev/zip/10001)
  • GET /holidays/{year} returns correct data (e.g. curl https://holidays.leeworks.dev/holidays/2026)
  • GET /aqi/{city} returns correct data (e.g. curl https://aqi.leeworks.dev/aqi/New%20York)
  • GET /v1/health returns HTTP 200 on vin-decoder (curl https://vin.leeworks.dev/v1/health)
  • GET /v1/decode?vin=1HGCM82633A004352 returns correct make/model/year data
  • Request without X-RapidAPI-Proxy-Secret returns HTTP 403 on vin-decoder (curl https://vin.leeworks.dev/v1/decode?vin=1HGCM82633A004352)
  • Request without X-RapidAPI-Proxy-Secret returns HTTP 403 on all three APIs
  • docs.leeworks.dev/pricing loads correctly
  • status.leeworks.dev shows all four APIs as UP

  • docs/legal/terms-of-service.md committed and reachable at docs.leeworks.dev/legal/terms-of-service
  • docs/legal/privacy-policy.md committed and reachable at docs.leeworks.dev/legal/privacy-policy
  • docs/legal/acceptable-use-policy.md committed and reachable at docs.leeworks.dev/legal/acceptable-use-policy
  • All three APIs listed on RapidAPI with Free + 3 paid tiers (leeworks-agents/api-company#44)
  • VIN Decoder listed on RapidAPI with Free + 3 paid tiers (leeworks-agents/api-company#131)
  • rapidapi-proxy-secret updated with real RapidAPI value in vin-decoder namespace (leeworks-agents/api-company#128)
  • PayPal linked to RapidAPI (leeworks-agents/api-company#19)
  • rapidapi-proxy-secret updated with real RapidAPI values in all 3 namespaces (leeworks-agents/api-company#81)

Post-Launch

  • Alert channel confirmed — Slack webhook active (leeworks-agents/api-company#73)
  • Grafana alert rules firing correctly on synthetic test downtime
  • First STATUS.md post-launch update committed

Quick Commands Reference

# Flux overview
flux get all

# Check API pod health
for ns in zip-enrichment holidays air-quality vin-decoder docs-site; do
  echo "=== $ns ==="
  kubectl get pods -n $ns
done

# Verify TLS certs
kubectl get certificates -A

# Check all 8 DNS subdomains
for sub in zip holidays aqi vin docs status registry grafana; do
  echo "$sub.leeworks.dev -> $(dig $sub.leeworks.dev +short)"
done

# Smoke test health endpoints
for svc in "zip.leeworks.dev/health" "holidays.leeworks.dev/health" "aqi.leeworks.dev/health" "vin.leeworks.dev/v1/health"; do
  echo "$svc: $(curl -s -o /dev/null -w '%{http_code}' https://$svc)"
done

# Verify 403 on missing proxy secret
curl -s -o /dev/null -w "%{http_code}" https://zip.leeworks.dev/zip/10001
# Expected: 403

References: ROADMAP.md §Phase 6; leeworks-agents/api-company#33, #44, #19, #81, #73, #7, #8, #18