c3348a410a25c700eafc5eac61cae67b2de336e5
- Migration 004: acknowledged_by/acknowledged_at columns on alerts,
alert_comments table (FK cascade on delete)
- POST /api/alerts/{id}/acknowledge — stamps authed user + timestamp,
returns updated alert with acknowledged_by username
- DELETE /api/alerts/{id}/acknowledge — clears ack (204)
- GET /api/alerts/{id}/comments — list in chronological order
- POST /api/alerts/{id}/comments — add comment (returns 201)
- DELETE /api/alerts/{id}/comments/{commentID} — own comments only (204)
- All alert queries now LEFT JOIN users for ack username
Terminal Duty
Terminal Duty(termdut) is a server that helps teams manage alerts, oncall schedules etc.
- The app will integrate with alertmanager(prometheus alertmanager), as a receiver of alertmanager webhooks without the need for adapters.
- Incoming alerts will be logged to a database(postgres or sqlite).
- Alerts can be marked as "acknowledged", when someone is already working on it.
- Comments can be added to alerts, such as solutions, tips or actions.
- Statistics can be produced for the alerts in the database, such as most common alert, most busy times of the day/week etc.
- The server exposes a rest-api, where users, schedules, alerts etc can be managed.
- Alerts will be received from alertmanager with no authentication initially.
- The exposed api however(besides receiving alert from alertmanager) needs authentication.
- Authentication is managed on a user basis, each user has his or her own credentials, these are stored hashed in the database.
- Each user can be assigned to time slots in the oncall-schedule.
- The smallest unit of time managed in the schedule is a day. This may change later.
- The server is written in golang