Feat(service-status): add npm (#516)

npm's status page (status.npmjs.org) runs on Atlassian Statuspage and serves
both /api/v2/summary.json and /api/v2/incidents.json, so it is one provider
row plus its card in ServiceStatus.vue. Its six components are all real
services, so no exclude list is needed.

Refs #513
This commit is contained in:
anux authored and GitHub committed 2026-10-23 20:46:37 +08:00
1 parent 29bdac244c
commit 6fcaadc751
3 files changed
+3 -1

No files matched your search

@@ -213,6 +213,7 @@ const PROVIDERS = [
{ id: 'figma', name: 'Figma', icon: 'simple-icons:figma' },
{ id: 'linear', name: 'Linear', icon: 'simple-icons:linear' },
{ id: 'stripe', name: 'Stripe', icon: 'simple-icons:stripe' },
{ id: 'npm', name: 'npm', icon: 'ri:npmjs-line' },
];
const placeholderSizes = [10, 7, 9, 6, 8];
+1
View File
@@ -56,6 +56,7 @@ export const STATUS_PROVIDERS = [
// non-Statuspage schema; www.stripestatus.com is its Statuspage mirror,
// which exposes the /api/v2 endpoints this poller needs.
{ id: 'stripe', name: 'Stripe', api: 'https://www.stripestatus.com', page: 'https://www.stripestatus.com' },
{ id: 'npm', name: 'npm', api: 'https://status.npmjs.org', page: 'https://status.npmjs.org' },
];
// Whitelist used by requireValidProviderId() — the per-provider detail
+1 -1
View File
@@ -3,7 +3,7 @@
// Rather than fetch upstream status pages on each visitor request, a single
// background timer refreshes all providers every REFRESH_INTERVAL and keeps
// the latest normalized snapshot in memory. Request handlers just read the
// snapshot — upstream load is constant (16 providers × 2 endpoints / 5 min,
// snapshot — upstream load is constant (17 providers × 2 endpoints / 5 min,
// +1 per incident.io page) no matter how much traffic the site gets.
//
// Mirrors the bootstrap-at-boot + start-scheduler shape of the MaxMind / CAIDA