Places

System map

Data architecture

Active external sources flow through app APIs and shared caches to the pages that use them. Cache durations are server-side; refresh notes describe browser behavior.

Each page appears once. Shared page groups receive multiple incoming connections.

Click any card to highlight its data flow.

Environment Canada weather

GeoMet SWOB and citypage UV forecasts, Datamart citypage XML, AQHI, and weather.gc.ca pages

/api/weather and /api/mabel-drive

5 min weather, route, and AQHI forecast cache; 60 sec AQHI current cache

Open-Meteo

Alternate current conditions, hourly route-arrival weather, daily forecasts, and UV-index forecasts

/api/weather and /api/mabel-drive

5 min weather and route cache

ThingSpeak

Cabin, lake, condo, CO2, light, and telemetry channels

/api/sensors, /api/chart-sensors, and direct chart embeds

60 sec current; 2 min chart/lake; embeds bypass app cache

Water Office

Shuswap River station 08LC002 current and historical services

/api/water-level/summary

10 min current; 6 hr historical; stale data allowed

Environment Canada climate history

Climate stations and historical CSV exports

Offline-generated precipitation snapshot

Committed static data; API response cached 15 min

Neon PostgreSQL

Historical sensor observations and calculated overlays

APIServer-only database connection; URL not exposed

Database, almanac, and chart overlay APIs

8 hr database; 1 hr almanac and overlays

GitHub raw snapshots

Published lake almanac metric JSON files

Direct browser fetch and server Markdown fetch

No page app cache; Markdown response cached 1 hr

Environment Canada weather

SWR focus/reconnect; no interval polling

Environment Canada or Open-Meteo route weather

SWR focus/reconnect; no interval polling

Environment Canada or Open-Meteo weather + source-comparison UV

SWR focus/reconnect; no interval polling

Environment Canada weather + ThingSpeak + Neon

One-shot and chart-control fetches; no interval polling

ThingSpeak + Neon

SWR focus/reconnect; no interval polling

Water Office

SWR focus/reconnect; no interval polling

BC Wildfire and Open Data + climate history

Polls incidents every 15 min and fire bans every 60 min

Environment Canada climate history

Snapshot updated offline; no browser polling

Neon PostgreSQL

SWR focus/reconnect; no interval polling

GitHub raw snapshots

SWR focus/reconnect; no interval polling