mirror of
https://github.com/zvx-echo6/central.git
synced 2026-06-10 20:04:43 +02:00
Second CENTRAL_TRAFFIC adapter. Production code; central-supervisor + central-gui
restart (new adapter class + ADAPTER_GROUPS). No new stream -> no archive restart;
migration 026 adds the adapter row only. Ships disabled.
Two-endpoint join per layer: GET /map/mapIcons/<Layer> (markers: itemId + coords)
joined on id with POST /List/GetData/<Layer> (DataTables detail: roadwayName,
description, county, severity). The marker feed has coords but no text; the List
feed has text but no coords.
Layers -> event_types (wzdx category/subject precedent): Incidents->incident,
Closures->closure, Construction (type "Roadwork")->work_zone. category is
"<event_type>.state_511_atis"; subject central.traffic.<event_type>.<state>.
Severity 3 if isFullClosure else 1. Cadence 300s. Dedup inherited from the
v0.9.1 SourceAdapter mixin. enrichment_locations canonical (latitude,longitude)
from the marker join; county/state come upstream.
Templatized per state via settings {"states":[{code,base_url}]} but ships
Idaho-only: cross-state spot-checks refuted the shared-URL hypothesis (Oregon
TripCheck is HTML, Wyoming wyoroad 404 -- neither is Castle Rock). Add states as
settings rows once each host is verified.
Also fixes a latent test bug: test_consumer_doc per-adapter heading regex was
[a-z_]+ (no digits); state_511_atis is the first adapter name with digits, so
widened to [a-z0-9_]+.
Full suite: 759 passed, 1 skipped (central and unprivileged zvx, 3x each).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
15 lines
649 B
SQL
15 lines
649 B
SQL
-- Migration: 026_add_state_511_atis_adapter
|
|
-- Adds the state_511_atis adapter (Castle Rock ATIS 511) onto the EXISTING
|
|
-- CENTRAL_TRAFFIC stream. No new stream -> no central-archive restart needed
|
|
-- (see feedback_new_stream_needs_archive_restart). Ships disabled with the one
|
|
-- verified Idaho deployment; future verified Castle Rock states are settings rows.
|
|
-- Additive-only: idempotent via ON CONFLICT DO NOTHING.
|
|
|
|
INSERT INTO config.adapters (name, enabled, cadence_s, settings)
|
|
VALUES (
|
|
'state_511_atis',
|
|
false,
|
|
300,
|
|
'{"states": [{"code": "ID", "base_url": "https://511.idaho.gov"}]}'::jsonb
|
|
)
|
|
ON CONFLICT (name) DO NOTHING;
|