SPB Git forge

spb/websensor

Public
33commits 1branches 0releases
3.4 MBsize
maindefault branch
10 days agolast push
TypeScript 55.4% Python 43.2% SQL 1.2%
1.6 KB

# Connector: Status pages, non-Atlassian (statusjson)

Purpose: incidents, maintenances and degraded components on the other status-page providers, normalized to the exact item shape of statuspage so the downstream heuristics (incident created / updated / resolved, maintenance scheduled, component degraded) are shared.

  • Instatus — https://<page>/summary.json → { page:{name,url,status}, activeIncidents?, activeMaintenances? }
  • incident.io — https://<page>/api/v1/summary → { page_title, page_url, ongoing_incidents, in_progress_maintenances, scheduled_maintenances }
  • Status.io — https://api.status.io/1.0/status/<pageId> → { result:{ status_overall, status[].containers[], incidents[], maintenance:{active,upcoming} } }
  • incident.io multi-region — { subpages:[{ subpage:"eu", summary:{…} }, …] } (status.miro.com): sub-summaries are merged, keys prefixed by region. Sensor types: STATUSPAGE, JSON. Config: flavor? (auto-detected from the shape). Normalization: keyed list — incident:<id>, maintenance:<id>, component:<id> (Status.io, non-operational only), overall; compareFields: status, title, updatedAt. extra: flavor, indicator, counts. Finding pages: Instatus pages answer /summary.json; incident.io pages answer /api/v1/summary; Status.io pages embed the page id in their HTML (statusio_page_id) or expose /1.0/status/<id> via api.status.io. Hund, Better Stack, Sorry™ and Freshstatus are not supported yet (their RSS/history feeds work with rss). Tests: connectors2.test.ts (three fixtures inline). Verified: 2026-09-08 (status.incident.io, status.instatus.com).