{"ok":true,"overall":"degraded","generated_at":"2026-09-11T17:37:17.553438+00:00","components":{"detection_api":{"name":"Detection API","state":"operational","detail":"This endpoint responded"},"ml_scorer":{"name":"ML scorer","state":"degraded","detail":"ml_is_stub=true — heuristic/page/ASN scoring only (artifact=missing trained_at=n/a)","metric":0,"ml_is_stub":true,"model_path":null,"trained_at":null},"enrichment":{"name":"Enrichment queue (24h high/crit incomplete)","state":"operational","detail":"incomplete_high_crit_24h=0","metric":0},"visual_clone":{"name":"Visual clone pipeline (24h)","state":"operational","detail":"alerts_24h=1 customer_visible=0 cv_rate=0.00%","metric":{"alerts_24h":1,"customer_visible_24h":0}},"zonefile":{"name":"Zonefile ingestion","state":"degraded","detail":"latest=ok/biz com_consec_ok=0 last_com_ok_parsed=None age_hours=11.9","metric":{"latest":{"id":"ea8bd733-3284-458b-9c2c-76c572142f03","status":"ok","run_at":"2026-09-11T05:42:25.116609+00:00","source":"zonefile","tld":"biz","domains_parsed":1352551,"duration_seconds":363.94,"error_message":null},"com_consecutive_ok":0,"last_com_ok":null,"recent_failures":[],"critical_fix_2026_07_14":{"sort_unit_fix":true,"hardlink_trap_fix":true,"systemd_timer":"phishdetect-zonefile.timer@02:00UTC","max_runtime_seconds":18000},"disk_note":"com failures often errno 28 (disk full) — retain snapshots + monitor free space"}},"free_scan":{"name":"Free Scan","state":"operational","detail":"scans_last_hour=30","metric":30},"gtc":{"name":"GTC routing","state":"unknown","detail":"metric unavailable (APIError)"},"content_engine":{"name":"Content engine (Threat Radar digests)","state":"operational","detail":"pending_emails=0 subscribers≈6 | schedule: weekly Mon ~07:10 UTC via content_engine_worker; POST /api/v1/public/content/subscribe for Threat Radar","metric":{"pending_emails":0,"subscribers":6},"honest_label":"Threat Radar emails only send when Resend works and subscribers opted in"},"customer_visible_alerts":{"name":"Customer-visible alerts (24h)","state":"operational","detail":"cv_alerts_24h=6","metric":6},"certstream_product_flow":{"name":"Certstream product flow","state":"degraded","detail":"last_alert_age_h=12.3 alerts_24h=5","metric":5,"last_alert_at":"2026-09-11T05:20:15.818482+00:00"},"domain_watch":{"name":"Domain Watch (SoR lifecycle)","state":"operational","detail":"pipeline=domain_watch age_s=84 errors=0 checked=37 backlog=8 intake_24h=3 mirror_fail_24h=0 hint=ok (SoR=domain_watchlist; WD legacy non-load-bearing)","metric":3,"last_run_at":"2026-09-11T17:36:01.514416+00:00"},"coverage_beta":{"name":"Coverage Beta (social + app store, 24h)","state":"operational","detail":"social=0 app_store=0 (Beta — not full platform crawl)","metric":{"social_impersonation_24h":0,"app_store_abuse_24h":0}},"notifications":{"name":"Notifications dispatched (24h)","state":"operational","detail":"dedup_24h=0; idempotency_24h=0 | channel=email (Resend); Slack/Teams deferred","metric":{"dedup_24h":0,"idempotency_24h":0,"total_24h":0}},"funnel_analytics":{"name":"Funnel analytics (first-party + optional GA4)","state":"operational","detail":"events_24h=6","metric":6},"ga4":{"name":"GA4 dual-write","state":"operational","detail":"GA4_MEASUREMENT_ID+GA4_API_SECRET configured","metric":{"configured":true}},"billing_stripe":{"name":"Stripe billing path","state":"operational","detail":"secret_key=yes webhook_secret=yes plans_with_price_ids=3 webhook=POST /api/v1/webhooks/stripe","metric":{"secret_configured":true,"webhook_secret_configured":true,"plans_with_price_ids":3}},"openrouter_visual":{"name":"OpenRouter visual verify (optional LLM fallback)","state":"operational","detail":"MultiHash primary; OpenRouter second opinion. enabled=True key=yes model=google/gemini-2.5-flash","metric":{"key_present":true,"enabled":true,"model":"google/gemini-2.5-flash","role":"fallback_after_multihash"}},"email_delivery":{"name":"Email delivery (Resend)","state":"operational","detail":"RESEND_API_KEY configured","metric":{"resend_configured":true}}},"groups":{"core":["detection_api","enrichment","zonefile","free_scan"],"detection":["visual_clone","gtc","customer_visible_alerts","domain_watch"],"coverage_beta":["coverage_beta"],"comms":["content_engine","notifications","funnel_analytics","email_delivery"],"growth":["funnel_analytics","ga4","billing_stripe"],"optional":["openrouter_visual"]},"notes":["Metrics are aggregate and non-sensitive.","Worker process inventories are not fully exposed publicly.","Unknown means the metric source was unavailable, not necessarily an outage.","Social + app store coverage is Beta (heuristic / partial — not a full store crawl).","Critical fixes 2026-07-14 closed: zonefile sort/OOM + hardlink trap, brand_matcher attribution, ai_investigator escaped-quote corruption.","Full .com e2e verified: 173,366,957 domains status=ok wall_s=1344.8.","Automation: systemd timer phishdetect-zonefile.timer daily 02:00 UTC.","brand_matcher + ai_investigator critical-path smoke verified on canary/demo tenant.","See docs/CRITICAL_FIXES_20260714.md and docs/FINAL_THREE_FIXES_REPORT.md.","P1 scope 2026-07-15: GA4 dual-write funnel, visual MultiHash yield fix (root_domain_id + direct alert fallback), notifications/digest verify, evidence PDF polish.","POST /api/v1/public/funnel supports trial/upgrade events; optional GA4_MEASUREMENT_ID + GA4_API_SECRET.","FINAL_MANUAL_P3: client assets at /api/v1/public/assets/unison-funnel.js and unison-alert-fields.js; Stripe webhook /api/v1/webhooks/stripe; MultiHash primary over OpenRouter.","Coverage Beta (social + app store) is partial heuristic coverage — not a full platform crawl.","Threat Radar: opt-in via /api/v1/public/content/subscribe; weekly enqueue + outbox drain.","MANUAL5 2026-07-15: GA4 measurement id live (G-H04FSKCB7E); client gtag+funnel assets; Stripe webhook→api.unisonsecurity.com; plans price IDs filled; Slack/Teams UI settings/notifications; OpenRouter optional gated."]}