AlertTrigger Schema
Description: Match/fire ledger row — simultaneously the fire-loop work queue, the idempotency guard, and the user-visible audit trail.
One row per (subscription, event group, kind): redelivered notices are
no-ops, and an event group fires a subscription exactly once. For
``kind=update`` the single row is *reused* — each new refinement notice
resets it to ``pending`` with the latest ``alert_event_id`` — because
LVK/Swift send several updates per event.
Properties
| Name | Type | Description |
|---|---|---|
| id | Integer |
No description |
| subscription_id | Integer |
No description |
| alert_event_id | Integer |
No description |
| event_group_key | String(255) |
No description |
| kind | Enum(fire, update, retraction) |
No description |
| status | Enum(pending, processing, fired, skipped, failed) |
No description |
| skip_reason | String(255) (Optional) |
No description |
| error | String(Unbounded) (Optional) |
No description |
| attempts | Integer |
No description |
| created_on | DateTime |
No description |
| processed_on | DateTime (Optional) |
No description |
| observation_id | Integer (Optional) |
Provenance link to the observation created by a successful kind=fire trigger (first spec when a subscription has several). |
Relationships
| Relationship Name | Type |
|---|---|
| subscription | AlertSubscription |
| alert_event | AlertEvent |
| observation | Observation |