- Ya
- 25 Agosti 2026, 15:34 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 480ea74
Alertmanager webhook receiver at /api/internal/alerts/chat, so a KamoDesktop alert reaches a person instead of a dashboard. This is the BEST-EFFORT leg. Email is the guaranteed one, sent independently by Alertmanager, so an unresolvable chat thread — renamed member, deleted alias, fresh database — degrades to "email only" rather than to silence. A notifier that can fail closed and take the alert with it is worse than no notifier, because it still reads as coverage. Hence 200-with-an-outcome rather than a non-2xx Alertmanager would retry forever against a member who does not exist. A sender member distinct from the recipient is required: findOrCreateChatSession only matches two-participant sessions, so a self-addressed alert would mint a fresh session every time it fired and bury the chat list. That case is reported and skipped instead. Auth accepts X-Internal-Auth or Authorization: Bearer with the same secret — an AlertmanagerConfig webhook can only set Authorization, never a custom header. Compared constant-time and failing closed when unconfigured, deliberately not the looser equals() used by this service's older internal endpoints, where a blank configured secret matches a blank supplied header.