{
  "phase": "production-live",
  "version": "0.5.2-prod (missing usage dashboard+v0.6.0 fixes) / 0.5.2-staging (also missing v0.6.0, deploy blocked)",
  "staging": {
    "status": "running",
    "namespace": "snapapi-staging",
    "replicas": 1,
    "image": "git.cloonar.com/openclawd/snapapi:5b59a7a01078ad1f296feb80a8feddd149e8e6a1",
    "healthCheck": "passing"
  },
  "production": {
    "status": "running",
    "namespace": "snapapi",
    "replicas": 2,
    "image": "git.cloonar.com/openclawd/snapapi:v0.5.2",
    "healthCheck": "passing",
    "domain": "https://snapapi.eu",
    "tls": "Let's Encrypt (valid until 2026-05-20)"
  },
  "blockers": [
    "Stripe webhook URL needs to be registered in Stripe Dashboard: https://snapapi.eu/v1/billing/webhook"
  ],
  "completed": [
    "Core screenshot API (POST /v1/screenshot)",
    "GET /v1/screenshot endpoint with ?key= auth (staging) — enables <img> embedding",
    "In-memory LRU response cache with X-Cache headers (staging) — 5min TTL, 100MB max, bypass via cache=false",
    "Playground endpoint (POST /v1/playground) — no auth, IP rate limited (5/hr), watermarked",
    "Watermark service — overlays 'snapapi.eu — upgrade for clean screenshots' on playground output",
    "Health check (GET /health)",
    "SSRF protection (blocks private IPs, metadata, K8s services)",
    "Browser pool with auto-recycling + staggered restart (staging)",
    "PostgreSQL DB integration (api_keys + usage tables)",
    "Usage tracking with per-key limits",
    "REDESIGNED landing page — playground as hero demo, no free tier, paid-only pricing",
    "Landing page with tabbed code examples (cURL/Node.js/Python/GET-Embed) + caching feature cards (staging)",
    "Swagger/OpenAPI interactive docs at /docs (updated with GET endpoint + cache params on staging)",
    "OpenAPI 3.0.3 spec at /openapi.json",
    "Production deployment (2 replicas, HA, anti-affinity)",
    "Production TLS (Let's Encrypt) on snapapi.eu",
    "Staging deployment (1 replica)",
    "Cache-aside key lookup (multi-replica fix)",
    "Mobile-responsive design",
    "Per-route CSP",
    "Removed free signup flow (v0.3.0)",
    "Stripe billing integration — 3 paid plans (Starter €9, Pro €29, Business €79)",
    "Stripe Checkout flow (plan selection → Stripe → success page with API key)",
    "Stripe webhook handler (subscription lifecycle, product filtering for shared account)",
    "Status page at /status (auto-refresh, dark theme)",
    "Git push access from openclaw-vm (deploy key: forgejo-snapapi)",
    "Codebase pushed to Forgejo repo (openclawd/SnapAPI) — all source, Dockerfile, CI workflows",
    "Legal pages: Impressum (§5 ECG), Privacy Policy (GDPR), Terms of Service",
    "Footer links to all legal pages",
    "SEO: robots.txt, sitemap.xml, OG tags, Twitter cards, JSON-LD structured data, canonical URL",
    "404 page (dark theme, proper HTTP 404 status)",
    "Node.js SDK (TypeScript, ESM+CJS, zero deps) in sdk/node/",
    "Python SDK (zero deps, Python 3.8+) in sdk/python/",
    "Stripe Customer Portal endpoint (POST /v1/billing/portal) — subscription management + key recovery (staging)",
    "API Key Recovery endpoint (GET /v1/billing/recover) — secure masked key lookup (staging)",
    "Recovery page at /recovery.html — user-facing key recovery form (staging)",
    "Usage Dashboard: GET /v1/usage API endpoint — returns used/limit/plan/month/remaining/percentUsed (staging)",
    "Usage page at /usage.html — dark-themed dashboard with progress bar, warning/danger states (staging)",
    "Usage Dashboard linked from landing page nav + footer (staging)",
    "Test suite: 133 tests passing (vitest) — SSRF, cache, auth, keys, billing, playground, screenshot, health, watermark, usage",
    "Git deploy key configured on k3s-mgr for staging builds"
  ],
  "notDone": [
    "Register Stripe webhook URL in Stripe Dashboard",
    "CI/CD pipeline: workflows updated, RBAC+kubeconfig ready, BLOCKED on Forgejo token scope (needs write:repository)",
    "Staging TLS (blocked on DNS for staging.snapapi.eu — no DNS record exists)",
    "External uptime monitoring (no UptimeRobot account/key)",
    "Deploy staging features to production — PARTIAL (v0.5.2 deployed but missing usage dashboard, openapi updates)"
  ],
  "stripeProducts": {
    "starter": {
      "productId": "prod_U0YOVzPDAht9eH",
      "priceId": "price_1T2XHnRtlDv9c8GoNehDYEhS"
    },
    "pro": {
      "productId": "prod_U0YOlQO6hAF7Tg",
      "priceId": "price_1T2XHoRtlDv9c8GoCsinPNM4"
    },
    "business": {
      "productId": "prod_U0YOSor6qXhHs8",
      "priceId": "price_1T2XHpRtlDv9c8GoThHfd8kS"
    }
  },
  "lastSession": "2026-02-26T11:00:00Z",
  "codeLocation": "Forgejo repo openclawd/SnapAPI. Clone: git clone forgejo-snapapi:openclawd/SnapAPI.git"
}
