mirror of
https://github.com/zvx-echo6/central.git
synced 2026-08-26 09:21:36 +00:00
Central - data hub spine. Adapters -> NATS/JetStream -> archive.
- Python 88.6%
- HTML 9.4%
- CSS 1.2%
- Shell 0.6%
- PLpgSQL 0.2%
Generalize the single system monitoring bbox into a named list of areas with set-union semantics: an event is kept by the archive (and at publish time) if its geometry intersects ANY configured area. No-geometry events are always kept; an empty list keeps everything (the pre-feature default). - Migration 042: new config.monitoring_areas table (name UNIQUE, north/south/ east/west, CHECK ordering); seeds 'default' from config.system.monitor_* so current bounds (N=49.0 S=41.8 E=-111.0 W=-117.5) are preserved. Old columns left in place for v0.14.0 (drop in v0.14.1). - monitoring_area.py: classify_geom_areas + load_monitoring_areas; single-area classify_geom / load_monitoring_area kept as back-compat shims. - archive + supervisor consumers load and apply the area list (set-union); _monitoring_area kept as a back-compat property over the internal list. - GUI /monitoring-area: list+create+update+delete (server-rendered forms), shared Leaflet map with per-name golden-angle colored rectangles, add/edit via leaflet.draw corner handles, empty-state banner, auto-fit to all areas. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| docs | ||
| etc-templates | ||
| scripts | ||
| sql | ||
| src/central | ||
| systemd | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| .python-version | ||
| CHANGELOG.md | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
Central
Central is the data hub spine for the infrastructure. Adapters normalize upstream sources into a canonical event shape, publish CloudEvents to NATS/JetStream, and archive to TimescaleDB for historical query. Single-LXC deployment.
Status
Phase 0 — scaffold. Not yet operational.
Architecture
- Python 3.12 (uv-managed)
- NATS + JetStream for live event bus
- TimescaleDB + PostGIS for archive and geospatial query
- One supervisor process managing adapter lifecycle
- One archive consumer process persisting events to TimescaleDB
- Both processes systemd-managed
Testing
See docs/test-database.md for test database setup.
License
MIT. See LICENSE.