SQL
CREATE TABLE signals (
id TEXT PRIMARY KEY,
event_id TEXT NOT NULL UNIQUE,
-- NEW: 1:1 backing event for replayability
watcher_id TEXT,
-- NEW: optional provenance hook
signal_type TEXT NOT NULL,
value TEXT NOT NULL,
threshold TEXT,
direction TEXT,
severity TEXT,
window TEXT,
source TEXT NOT NULL,
reason_trace TEXT,
dedupe_key TEXT NOT NULL,
throttle_s INTEGER DEFAULT 0,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE RESTRICT DEFERRABLE INITIALLY DEFERRED,
FOREIGN KEY (watcher_id) REFERENCES watchers(id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED
)
Columns
| Column | Data type | Allow null | Primary key | Actions |
|---|---|---|---|---|
id |
TEXT |
✓ | ✓ | Rename | Drop |
event_id |
TEXT |
Rename | Drop | ||
watcher_id |
TEXT |
✓ | Rename | Drop | |
signal_type |
TEXT |
Rename | Drop | ||
value |
TEXT |
Rename | Drop | ||
threshold |
TEXT |
✓ | Rename | Drop | |
direction |
TEXT |
✓ | Rename | Drop | |
severity |
TEXT |
✓ | Rename | Drop | |
window |
TEXT |
✓ | Rename | Drop | |
source |
TEXT |
Rename | Drop | ||
reason_trace |
TEXT |
✓ | Rename | Drop | |
dedupe_key |
TEXT |
Rename | Drop | ||
throttle_s |
INTEGER |
✓ | Rename | Drop | |
created_at |
TEXT |
Rename | Drop |
Foreign Keys
| Column | Destination |
|---|---|
watcher_id |
watchers.id |
event_id |
events.id |
Indexes
| Name | Columns | Unique | SQL | Drop? |
|---|---|---|---|---|
| idx_signals_created_at |
created_at
|
SQL | Drop | |
| idx_signals_dedupe |
dedupe_key
|
✓ | SQL | Drop |
| idx_signals_source_at |
|
SQL | Drop | |
| idx_signals_type_at |
|
SQL | Drop | |
| idx_signals_watcher_at |
|
SQL | Drop | |
| sqlite_autoindex_signals_1 |
id
|
✓ | SQL | Drop |
| sqlite_autoindex_signals_2 |
event_id
|
✓ | SQL | Drop |