Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions api/health.js
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@ const STANDALONE_KEYS = {
displacement: `displacement:summary:v1:${new Date().getUTCFullYear()}`,
displacementPrev: `displacement:summary:v1:${new Date().getUTCFullYear() - 1}`,
dtmDisplacement: 'displacement:dtm:v1',
idmcIduDisplacement: 'displacement:idmc-idu:v1',
acledIntel: 'conflict:acled:v1:all:0:0',
satellites: 'intelligence:satellites:tle:v1',
portwatch: 'supply_chain:portwatch:v1',
Expand Down Expand Up @@ -1594,6 +1595,20 @@ const SEED_META = {
activationKey: 'seed-activated:displacement:dtm',
},
},
// IDMC Internal Displacement Updates from HDX (seed-idmc-idu-displacement.mjs,
// daily health bundle, #9014). 48h = two missed ticks.
idmcIduDisplacement: {
key: 'seed-meta:displacement:idmc-idu',
maxStaleMin: 2880,
minRecordCount: 500,
activationKey: 'seed-activated:displacement:idmc-idu',
cutover: {
mode: 'activation-marker',
fromKey: null,
issue: 9014,
activationKey: 'seed-activated:displacement:idmc-idu',
},
},
bocValet: {
key: 'seed-meta:economic:boc-valet',
maxStaleMin: 4320,
Expand Down Expand Up @@ -2143,6 +2158,8 @@ const ON_DEMAND_KEYS = new Set([
// daily tick publishes. seed-dtm-displacement.mjs SETs the marker after its
// first successful publish.
'dtmDisplacement',
// Same bridge for the IDMC IDU events (seed-idmc-idu-displacement.mjs).
'idmcIduDisplacement',
// Same bridge for the oil trade series: the reader ships before the energy
// bundle's first tick publishes. seed-oil-trade-series.mjs SETs the marker.
'oilTradeSeries',
Expand Down Expand Up @@ -2298,6 +2315,8 @@ const ACTIVATION_MARKERS = {
cbrRates: 'seed-activated:economic:cbr-rates',
// Written by scripts/seed-dtm-displacement.mjs in runSeed's afterPublish hook.
dtmDisplacement: SEED_META.dtmDisplacement.activationKey,
// Written by scripts/seed-idmc-idu-displacement.mjs in runSeed's afterPublish hook.
idmcIduDisplacement: SEED_META.idmcIduDisplacement.activationKey,
// Written by scripts/seed-oil-trade-series.mjs in runSeed's afterPublish hook.
oilTradeSeries: SEED_META.oilTradeSeries.activationKey,
// Written by scripts/seed-cross-border-arrivals.mjs in runSeed's afterPublish hook.
Expand Down
4 changes: 2 additions & 2 deletions docs/api-platform.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ Monitor availability via UptimeRobot / Better Stack with `?compact=1` and alert
"status": "HEALTHY",
"checkedAt": "2026-08-07T12:00:00Z",
"summary": {
"total": 327,
"ok": 327,
"total": 328,
"ok": 328,
"warn": 0,
"containedWarn": 0,
"onDemandWarn": 0,
Expand Down
4 changes: 2 additions & 2 deletions docs/health-endpoints.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ The top-level `status` describes user-visible platform availability, not perfect
{
"status": "HEALTHY | WARNING | DEGRADED | UNHEALTHY | REDIS_DOWN | REFRESH_PENDING",
"summary": {
"total": 327,
"ok": 327,
"total": 328,
"ok": 328,
"warn": 0,
"containedWarn": 0,
"onDemandWarn": 0,
Expand Down
2 changes: 1 addition & 1 deletion docs/source-attribution.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ This generated inventory covers **785 active source hosts** representing **770 a
| data-api.ecb.europa.eu (data-api.ecb.europa.eu) | structured — scripts/seed-ecb-fx-rates.mjs, scripts/seed-ecb-short-rates.mjs, scripts/seed-yield-curve-eu.mjs |
| data.api.abs.gov.au (data.api.abs.gov.au) | structured — scripts/seed-world-cpi-abs.mjs |
| data.ecb.europa.eu (data.ecb.europa.eu) | structured — scripts/seed-fsi-eu.mjs |
| data.humdata.org (data.humdata.org) | structured — scripts/_conflict-hapi.mjs, scripts/benchmark-resilience-external.mjs, scripts/seed-resilience-static.mjs |
| data.humdata.org (data.humdata.org) | structured — scripts/_conflict-hapi.mjs, scripts/benchmark-resilience-external.mjs, scripts/seed-idmc-idu-displacement.mjs, scripts/seed-resilience-static.mjs |
| data.norges-bank.no (data.norges-bank.no) | structured — scripts/seed-yield-curve-no.mjs |
| data.snb.ch (data.snb.ch) | structured — scripts/seed-yield-curve-ch.mjs |
| data.unhcr.org (data.unhcr.org) | structured — scripts/seed-cross-border-arrivals.mjs |
Expand Down
4 changes: 2 additions & 2 deletions docs/zh/api-platform.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ description: "World Monitor 平台基础设施端点完整参考:涵盖引导
"status": "HEALTHY",
"checkedAt": "2026-08-07T12:00:00Z",
"summary": {
"total": 327,
"ok": 327,
"total": 328,
"ok": 328,
"warn": 0,
"containedWarn": 0,
"onDemandWarn": 0,
Expand Down
4 changes: 2 additions & 2 deletions docs/zh/health-endpoints.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ description: "World Monitor 提供两个健康检查端点用于持续监控数
{
"status": "HEALTHY | WARNING | DEGRADED | UNHEALTHY | REDIS_DOWN | REFRESH_PENDING",
"summary": {
"total": 327,
"ok": 327,
"total": 328,
"ok": 328,
"warn": 0,
"containedWarn": 0,
"onDemandWarn": 0,
Expand Down
1 change: 1 addition & 0 deletions scripts/railway-services.json
Original file line number Diff line number Diff line change
Expand Up @@ -821,6 +821,7 @@
"scripts/seed-displacement-summary.mjs",
"scripts/seed-dtm-displacement.mjs",
"scripts/seed-health-air-quality.mjs",
"scripts/seed-idmc-idu-displacement.mjs",
"scripts/seed-vpd-tracker.mjs",
"scripts/shared/compare-and-delete-script.cjs",
"scripts/shared/country-name-to-iso2.cjs",
Expand Down
1 change: 1 addition & 0 deletions scripts/seed-bundle-health.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ await runBundle('health', [
{ label: 'Displacement', script: 'seed-displacement-summary.mjs', seedMetaKey: 'displacement:summary', intervalMs: DAY, timeoutMs: 300_000 },
{ label: 'Cross-Border-Arrivals', script: 'seed-cross-border-arrivals.mjs', seedMetaKey: 'displacement:cross-border', canonicalKey: 'displacement:cross-border:v1', completionMetaKey: 'seed-completion:displacement:cross-border', intervalMs: DAY, timeoutMs: 300_000 },
{ label: 'DTM-Displacement', script: 'seed-dtm-displacement.mjs', seedMetaKey: 'displacement:dtm', canonicalKey: 'displacement:dtm:v1', completionMetaKey: 'seed-completion:displacement:dtm', intervalMs: DAY, timeoutMs: 180_000 },
{ label: 'IDMC-IDU-Displacement', script: 'seed-idmc-idu-displacement.mjs', seedMetaKey: 'displacement:idmc-idu', canonicalKey: 'displacement:idmc-idu:v1', completionMetaKey: 'seed-completion:displacement:idmc-idu', intervalMs: DAY, timeoutMs: 300_000 },
]);
Loading
Loading