feat(schema): add adapter column to events, drop source

Replaces module-path-based source column (e.g. "central/adapters/nws")
with stable adapter identifier (e.g. "nws") that foreign-keys to
config.adapters.name.

Migration 011:
- ADD COLUMN adapter TEXT
- Backfill via REPLACE(source, 'central/adapters/', '')
- SET NOT NULL + FK RESTRICT
- CREATE INDEX (adapter, received DESC) for dashboard queries
- DROP COLUMN source

Code changes:
- Event model: source field renamed to adapter
- All adapters: use adapter="name" instead of source="central/adapters/name"
- Archive: write adapter column instead of source

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Ubuntu 2026-05-17 16:07:35 +00:00
commit 8601a19f60
10 changed files with 150 additions and 18 deletions

View file

@ -288,7 +288,7 @@ class TestSubjectGeneration:
def test_subject_format(self):
event = Event(
id="test",
source="central/adapters/firms",
adapter="firms",
category="fire.hotspot.viirs_snpp.high",
time=datetime.now(timezone.utc),
severity=3,
@ -302,7 +302,7 @@ class TestSubjectGeneration:
def test_subject_nominal_confidence(self):
event = Event(
id="test",
source="central/adapters/firms",
adapter="firms",
category="fire.hotspot.viirs_noaa20.nominal",
time=datetime.now(timezone.utc),
severity=2,