Config export / import (locations, channels, subscriptions as JSON) #79

Closed
opened 2026-07-18 05:31:40 +00:00 by claude-bot · 1 comment
Contributor

One-click backup/restore of the whole configuration, independent of the Postgres backup gap (F-28); also makes dev↔prod parity and disaster recovery trivial. Missed because a single operator hand-configures once and forgets the rebuild cost. Effort S, value Medium.


Filed from the 2026-07-17 codebase audit (docs/.internal/report-2026-07-17.md), finding I-09.

One-click backup/restore of the whole configuration, independent of the Postgres backup gap (F-28); also makes dev↔prod parity and disaster recovery trivial. Missed because a single operator hand-configures once and forgets the rebuild cost. Effort S, value Medium. --- _Filed from the 2026-07-17 codebase audit (`docs/.internal/report-2026-07-17.md`), finding I-09._
Author
Contributor

Done in #97 (merged). Admin GET /api/config/export returns locations, notification channels, and subscriptions as JSON (full channel config — including secrets — so a restore is complete; flagged as sensitive), with a schema version. POST /api/config/import recreates them with natural-key dedup (location by name+lat/lon, channel by name+type), additive by default (a gated replace=true flag prunes absent items), triggering NWS re-resolution for new locations. Backup/restore UI added to the Settings page. Independent of the Postgres backup (#67) — good for dev↔prod parity and quick DR.

Done in #97 (merged). Admin `GET /api/config/export` returns locations, notification channels, and subscriptions as JSON (full channel config — including secrets — so a restore is complete; flagged as sensitive), with a schema version. `POST /api/config/import` recreates them with natural-key dedup (location by name+lat/lon, channel by name+type), additive by default (a gated `replace=true` flag prunes absent items), triggering NWS re-resolution for new locations. Backup/restore UI added to the Settings page. Independent of the Postgres backup (#67) — good for dev↔prod parity and quick DR.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/WeatherBot#79
No description provided.