From 2f0bba7f796aea62b8c78551f25bce60a988f40d Mon Sep 17 00:00:00 2001 From: echo6-autocommit Date: Sat, 27 Jun 2026 12:00:08 +0000 Subject: [PATCH] auto: docs sync 2026-06-27T12:00:08+00:00 Files changed: .claude/settings.local.json engine/changelog.md engine/lint-report.md vault/docs/software/central.md --- .claude/settings.local.json | 7 ++++- engine/changelog.md | 2 ++ engine/lint-report.md | 2 +- vault/docs/software/central.md | 48 ++++++++++++++++++---------------- 4 files changed, 35 insertions(+), 24 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index fd86264..deec62d 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -18,7 +18,12 @@ "Bash(dig +short MX echo6.co)", "Bash(dig +short mail.echo6.co)", "Bash(dig +short A mail.echo6.co)", - "Bash(dig +short TXT echo6.co)" + "Bash(dig +short TXT echo6.co)", + "Bash(gh auth *)", + "Bash(git clone *)", + "Bash(git *)", + "Bash(scp zvx@192.168.1.104:/opt/central/sql/migrations/036_add_avalanche_org_adapter.sql /tmp/claude-1000/-home-zvx-projects--ref/0b576082-6442-481f-ad79-12a39da62765/scratchpad/central/sql/migrations/036_add_avalanche_org_adapter.sql)", + "Bash(gh pr create --title 'v0.14.6: commit orphaned migration 036 + fix stale README/version metadata' --body ' *)" ] } } diff --git a/engine/changelog.md b/engine/changelog.md index 2ffd55e..a7f2af8 100644 --- a/engine/changelog.md +++ b/engine/changelog.md @@ -131,3 +131,5 @@ ## 2026-06-25T09:00:01Z — sweep deferred (competing GPU process: 4201 node /usr/bin/peertube-runner server --enable-job vod-hls-transcoding --enable-job vod-audio-merge-transcoding --enable-job live-rtmp-hls-transcoding --enable-job video-studio-transcoding --enable-job video-transcription) ## 2026-06-26T09:00:01Z — sweep deferred (competing GPU process: 4201 node /usr/bin/peertube-runner server --enable-job vod-hls-transcoding --enable-job vod-audio-merge-transcoding --enable-job live-rtmp-hls-transcoding --enable-job video-studio-transcoding --enable-job video-transcription) + +## 2026-06-27T09:00:01Z — sweep deferred (competing GPU process: 4201 node /usr/bin/peertube-runner server --enable-job vod-hls-transcoding --enable-job vod-audio-merge-transcoding --enable-job live-rtmp-hls-transcoding --enable-job video-studio-transcoding --enable-job video-transcription) diff --git a/engine/lint-report.md b/engine/lint-report.md index 659369b..8d3b946 100644 --- a/engine/lint-report.md +++ b/engine/lint-report.md @@ -1,6 +1,6 @@ # Vault Lint Report -Generated: 2026-06-27T00:00:08Z | Docs scanned: 95 | Elapsed: 0.0s +Generated: 2026-06-27T06:00:07Z | Docs scanned: 95 | Elapsed: 0.0s ## Summary diff --git a/vault/docs/software/central.md b/vault/docs/software/central.md index 5809a9f..85b6960 100644 --- a/vault/docs/software/central.md +++ b/vault/docs/software/central.md @@ -3,7 +3,7 @@ title: central — Data-Hub Spine type: reference tags: [recon] related: ["[[navi]]", "[[services]]", "[[environment]]"] -updated: 2026-06-18 +updated: 2026-06-27 --- # central — Data-Hub Spine @@ -13,8 +13,8 @@ central is a multi-domain real-time data-hub spine. Adapters normalize upstream - **URL (internal):** http://central.echo6.mesh:8000 (mesh-only, no public exposure) - **Host:** utility CT 104 (unprivileged Ubuntu LXC) -- **Repo:** github.com/zvx-echo6/central (public, Python, branch ) -- **Deploy path:** (Python venv, system user) +- **Repo:** github.com/zvx-echo6/central (public, Python, deployed at detached HEAD, tag v0.14.5) +- **Deploy path:** /opt/central (venv: /opt/central/.venv, env: /etc/central/central.env, system user: central) ## Host @@ -22,23 +22,23 @@ central is a multi-domain real-time data-hub spine. Adapters normalize upstream |-----------|-------| | Container | utility CT 104 | | Local IP | 192.168.1.104 | -| Tailscale / mesh | 100.64.0.12 → | +| Tailscale / mesh | 100.64.0.12 → central.echo6.mesh | | Resources | 4 cores / 12 GB RAM / 100 GB disk | | OS | Ubuntu LXC (unprivileged) | ## Architecture -The data flow is: upstream APIs → adapters (central-supervisor) → NATS/JetStream :4222 → central-archive (TimescaleDB/PostGIS :5432). The central-gui (FastAPI + HTMX, :8000) exposes the API consumed by navi via . +The data flow is: upstream APIs → adapters (central-supervisor) → NATS/JetStream :4222 → central-archive (TimescaleDB/PostGIS :5432). The central-gui (FastAPI + HTMX, :8000) exposes the API consumed by navi via recon-vm's nginx (port 8440, `^~ /api/traffic/` → `central.echo6.mesh:8000`). ## Systemd Services -All three units are **enabled and active**; deployment survives reboot. +All three units are **enabled and active**; deployment survives reboot. Deps: `nats-server`, `postgresql@16-main`. | Unit | Role | |------|------| -| | Adapter scheduler + CloudEvents publisher | -| | JetStream → TimescaleDB consumer | -| | FastAPI + HTMX web app + API (the :8000 listener) | +| central-supervisor | Adapter scheduler + CloudEvents publisher | +| central-archive | JetStream → TimescaleDB consumer | +| central-gui | FastAPI + HTMX web app + API (the :8000 listener) | ## Ports @@ -49,7 +49,7 @@ All three units are **enabled and active**; deployment survives reboot. | :8222 | HTTP | NATS monitoring | | :5432 | TCP | PostgreSQL 16 + TimescaleDB/PostGIS | -## Adapters (~25 active) +## Adapters (23 configured, 22 enabled) | Domain | Sources | |--------|---------| @@ -60,7 +60,7 @@ All three units are **enabled and active**; deployment survives reboot. | Earthquakes | USGS | | Avalanche | avalanche.org | | Disasters | GDACS, EONET | -| Satellite | CelesTrak TLE, sat positions/orbits, N2YO passes, satpass predict | +| Satellite | CelesTrak TLE, sat positions/orbits, satpass_predict (n2yo_visualpasses disabled 2026-06-27) | ## GUI / API Surface @@ -70,14 +70,14 @@ Authenticated app with login/sessions/CSRF, first-run setup wizard, operator man | Endpoint | Format | |----------|--------| -| | PNG tile (raster) | -| | PBF tile (vector) | +| /api/traffic/flow/{z}/{x}/{y}.png | PNG tile (raster, image/png) | +| /api/traffic/flow/{z}/{x}/{y}.pbf | PBF tile (vector, application/x-protobuf) | -All other endpoints are auth-gated. +`/health` is also auth-exempt (returns `{"status":"ok"}`). All other `/api/` endpoints redirect to `/login`. ## Consumer — navi Integration -navi-traffic (navi's in-VM :8421 extraction service) was **retired on 2026-05-26** and cut over to central. recon-vm's nginx () now proxies → . Tile endpoints verified returning HTTP 200. +navi-traffic (navi's in-VM :8421 extraction service) was **retired on 2026-05-26** and cut over to central. recon-vm's nginx (`/etc/nginx/sites-available/navi.echo6.co`, port 8440) now proxies `^~ /api/traffic/` → `central.echo6.mesh:8000` with a 120s tile cache. navi-traffic:8421 is confirmed dead and disabled. Tile endpoints verified returning HTTP 200. ## Dependencies @@ -87,14 +87,18 @@ navi-traffic (navi's in-VM :8421 extraction service) was **retired on 2026-05-26 | PostgreSQL 16 + TimescaleDB + PostGIS | Local (central CT 104) | | Upstream APIs | ~20 external sources (see Adapters table) | -## Deploy / Drift Notes (as of 2026-06-18 audit) +## Data Plane -- **Deployed HEAD:** v0.14.4 -- **Repo :** v0.14.5 — deployment is **1 release behind** -- **Uncommitted local migration:** exists on disk in the deployment but was **never committed to the repo** -- **Stale README:** repo README still reads *"Phase 0 — scaffold, not yet operational"* — central is fully operational -- **Stale :** version field shows 0.3.0; real version is the git tag (v0.14.x) +Single TimescaleDB hypertable `public.events` (~22 GB, ~3.19 M rows, 331 chunks, compression not enabled). JetStream ~5.86 GB / 20 GB across 12 streams. + +## Deploy / Drift Notes (as of 2026-06-27) + +- **Deployed HEAD:** v0.14.5 (detached HEAD, not a branch) — caught up to latest tag since the 2026-06-18 audit. +- **Uncommitted local migration:** `sql/migrations/036_add_avalanche_org_adapter.sql` — untracked on disk, already applied in the DB (avalanche_org row live), but missing from the repo so a clean rebuild would skip it. A PR to commit it is in progress. +- **Stale `pyproject.toml`:** version field shows 0.3.0 (stale); being fixed in the same PR. +- **Stale README:** still reads *"Phase 0 — scaffold, not yet operational"* (stale); being fixed in the same PR. +- **Zero-event adapters:** `avalanche_org` (off-season severity gate — expected) and `eonet` (under investigation) are enabled but have produced no events. --- -*Last updated: 2026-06-18 — Initial documentation; central was previously undocumented. Deployment confirmed live, all three systemd units active.* +*Last updated: 2026-06-27 — Refreshed from live recon; blanks filled, drift notes current.*