mirror of
https://github.com/zvx-echo6/central.git
synced 2026-08-26 09:21:36 +00:00
v0.14.6: commit orphaned migration 036 + fix stale README/version metadata (#112)
Migration 036 (avalanche_org adapter row) was code-shipped in v0.10.10 (PR #98) but the SQL file was never committed to the repo. It has been applied in production since 2026-06-18; this commit adds the file so clean rebuilds can reach the same schema state. Also bumps pyproject.toml version from the stale 0.3.0 to 0.14.6 to match the deployed tag, and updates the README Status section to reflect current reality (~22 adapters, three systemd units, operational). Co-authored-by: Matt Johnson <mj@k7zvx.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
39161cc993
commit
d3a1be82fe
3 changed files with 37 additions and 4 deletions
|
|
@ -4,11 +4,11 @@ Central is the data hub spine for the Echo6 infrastructure. Adapters normalize u
|
|||
|
||||
## Status
|
||||
|
||||
**Live in production** (v0.14.5) on utility CT 104 (`central.echo6.mesh`).
|
||||
**Operational** (v0.14.6) — deployed on utility CT 104 (`central.echo6.mesh`).
|
||||
|
||||
~25 adapters across domains: traffic, wildfire, weather, space-weather, hydrology, earthquakes, avalanche, disasters, and satellite. Events flow CloudEvents -> NATS/JetStream -> TimescaleDB/PostGIS. FastAPI + HTMX GUI/API on :8000.
|
||||
~22 adapters live across traffic, wildfire, weather, space-weather, hydrology, earthquakes, avalanche, disasters, and satellite. CloudEvents published to NATS/JetStream, archived to TimescaleDB/PostGIS. FastAPI + HTMX GUI/API on :8000.
|
||||
|
||||
Three systemd services manage the deployment:
|
||||
Three systemd units on a single LXC:
|
||||
- `central-supervisor` — adapter lifecycle manager
|
||||
- `central-archive` — NATS consumer persisting events to TimescaleDB
|
||||
- `central-gui` — FastAPI + HTMX web interface / API (:8000)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|||
|
||||
[project]
|
||||
name = "central"
|
||||
version = "0.3.0"
|
||||
version = "0.14.6"
|
||||
requires-python = ">=3.12,<3.13"
|
||||
description = "Data hub spine — adapters, bus, archive."
|
||||
readme = "README.md"
|
||||
|
|
|
|||
33
sql/migrations/036_add_avalanche_org_adapter.sql
Normal file
33
sql/migrations/036_add_avalanche_org_adapter.sql
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
-- Migration 036: register avalanche_org adapter row in config.adapters (v0.10.10.1)
|
||||
--
|
||||
-- v0.10.10 (PR #98) shipped the avalanche_org adapter code, GUI templates,
|
||||
-- stream registry entry, and migration 035 (CENTRAL_AVY config.streams seed).
|
||||
-- It also (incorrectly) assumed the supervisor would schedule a new adapter
|
||||
-- the moment its code landed. It won't: supervisor.list_enabled_adapters()
|
||||
-- reads from config.adapters and skips any adapter without a row, so the
|
||||
-- v0.10.10 deploy left avalanche_org code-shipped-but-inactive.
|
||||
--
|
||||
-- This migration closes that gap. Mirrors the pattern of migration 031
|
||||
-- (itd_511) -- INSERT a row with default settings, idempotent via
|
||||
-- ON CONFLICT (name) DO NOTHING.
|
||||
--
|
||||
-- Unlike itd_511 (which shipped disabled because it needed an API key
|
||||
-- staged first), avalanche_org has no auth requirement and is enabled
|
||||
-- immediately: the upstream API is public and the off-season severity
|
||||
-- gate means the adapter yields zero events during summer regardless,
|
||||
-- so 'enabled at install' is the right default.
|
||||
--
|
||||
-- Settings JSON matches AvalancheOrgSettings: center_ids defaults to
|
||||
-- SNFAC + PAC (Idaho-region coverage). Operator can extend via GUI to
|
||||
-- any avalanche.org-recognised center (NWAC, CAIC, etc.).
|
||||
--
|
||||
-- Idempotent: re-running is a no-op for existing rows.
|
||||
|
||||
INSERT INTO config.adapters (name, enabled, cadence_s, settings)
|
||||
VALUES (
|
||||
'avalanche_org',
|
||||
true,
|
||||
1800,
|
||||
'{"center_ids": ["SNFAC", "PAC"]}'::jsonb
|
||||
)
|
||||
ON CONFLICT (name) DO NOTHING;
|
||||
Loading…
Add table
Add a link
Reference in a new issue