CitMark Backend Demo (mock 版)
- GET /health
- POST /snapshots — 触发 mock 快照 {tier, brand{name,domain}, questions?, competitors?, chaos?}
- POST /snapshots/free — 免费快照(Turnstile 由 CITMARK_TURNSTILE_ENFORCED 开关,默认开;限频邮箱 24h×1 / IP 24h×3,超限 429)
- GET /snapshots — 快照列表
- GET /snapshots/{id} — 分数/报告(含 n+CI+分层,P-006 契约)
- GET /snapshots/{id}/answers — 原始回答明细
- GET /alerts — 告警(dead_letter / partial / failed)
- GET /auth/google/login — Google 登录入口(302 到 Google 授权页)
- GET /auth/google/callback — Google 回调(换 token → 发会话 cookie)
- GET /auth/shopify/login — Shopify 授权入口(带 shop 时 302 到店铺授权页;无 shop 出输店页)
- GET /auth/shopify/callback — Shopify 回调(换 token → 落 token,DB 持久化等 DATABASE_URL)
- POST /telegram/webhook — Telegram 推送 webhook(P-027,secret_token 校验;绑定码/退订/回消息路由)