Description
Implement and validate the correlation_id grouping mechanism that allows multiple notifications about the same underlying entity (e.g. an alert when a host goes down and a success when it recovers) to be associated with each other. Includes the REST filter and any query helpers needed to retrieve a correlated group.
User Story
As a user investigating an alert, I want to be able to see all notifications related to the same host or event in one view, so that I can understand the full timeline — when it went wrong, whether it recovered, and what actions were taken.
Acceptance Criteria
Definition of Done
Assumptions and Constraints
- Assumption: The caller is responsible for using a meaningful, stable
correlation_id — typically the record_id of the root entity (e.g. the host's UUID).
- Constraint: The system does not enforce or validate relationships between correlated notifications. Correlation is purely a grouping convention.
Dependencies
No response
Additional Notes
No response
Description
Implement and validate the
correlation_idgrouping mechanism that allows multiple notifications about the same underlying entity (e.g. an alert when a host goes down and a success when it recovers) to be associated with each other. Includes the REST filter and any query helpers needed to retrieve a correlated group.User Story
As a user investigating an alert, I want to be able to see all notifications related to the same host or event in one view, so that I can understand the full timeline — when it went wrong, whether it recovered, and what actions were taken.
Acceptance Criteria
correlation_idstored correctly: The field is persisted verbatim from the dispatcher request. No server-side lookup or validation is performed on the value.GET /notifications?correlation_id=<value>returns all of the authenticated user's notifications sharing thatcorrelation_id, ordered bycreated_atascending (oldest first, to read as a timeline).(user_id, correlation_id)exists to make the filter performant.correlation_idare not returned when filtering by a specific value. A filter forcorrelation_id=nullis not supported (not a required use case).correlation_id(onealert, onesuccess) and verifies both are retrieved by the correlation filter.Definition of Done
Assumptions and Constraints
correlation_id— typically therecord_idof the root entity (e.g. the host's UUID).Dependencies
No response
Additional Notes
No response