Is It Us
When something breaks, find out whether it is upstream before assuming it is you.
check reads the public status pages for GitHub, Cloudflare and AWS, writes
one record per provider, and rolls them up into a single summary. The rollup
works out which open incidents are new since the previous check and carries
a ready-made alert title, message and ntfy priority.
Alerts on what is new, not on what is open
A push fires when an incident appears that the last check had not seen. An outage that stays open for hours, or an AWS regional event that stays open for months, pushes once. A status page that is briefly unreachable keeps its incidents marked as seen, so it does not re-alert when it comes back. The first check alerts on everything already open, since that is when watching began.
Pieces
@skunk-ape/is-it-us— the behavior. One read-only method,check: one GET per provider. It fails only when every provider is unreachable, since a rollup of nothing would read as all clear.@skunk-ape/is-it-us/rollup— a report attached to the behavior by default: one table of providers, their open incidents, new ones marked.
The push goes through @mgreten/ntfy-notify. The README has a workflow that
runs check and then send, guarded so send is skipped when nothing is
new.
Sources
GitHub and Cloudflare publish Atlassian Statuspage summary.json. AWS
publishes its Health Dashboard feed as UTF-16 JSON, which is decoded before
parsing. Scheduled maintenance is not counted as an incident.
Global Arguments
| Argument | Type | Description |
|---|---|---|
| providers? | array | Which status pages to read. All three by default; drop one you do not depend on so its incidents never page you. |
| awsRegions? | array | AWS region codes to care about, such as "us-east-1", plus "global" for events that have no region. Empty keeps every region. Worth setting: AWS events in regions you do not use can stay open for months. |
| timeoutSeconds? | number | Per-provider wall-clock cap. A provider that times out is reported as unreachable; the others still count. |
| userAgent? | string | User-Agent sent to the status pages. |
Resources
Roll GitHub, Cloudflare and AWS status into one table, marking incidents new since the last check.
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Docs keep secrets in a vault1/1earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License2/2earned
- Verified public repository2/2earned
- (extension) — Written with the current behavior spelling on purpose. Installing needs a swamp client from after the rename.