[Phase 1] SLA Management UI and Configuration — Phase 6: 3. SLA Breach Notifications #37
Labels
No labels
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-implement
blocked:gate-plan
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-procedure
blocked:preflight
bug
feature-request
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-task
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/msp_c2#37
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 6: 3. SLA Breach Notifications
Decomposed from msp_c2#10
⏸ Needs Decision
Blocking factors:
Scope: medium Risk: low Spec: aligned Type: feature
Summary: Add SLA breach notification system with email alerts for upcoming/breached SLAs and dashboard indicators for at-risk tickets.
Suggestion: Reuse existing services/sla.py for breach detection; create a services/notification.py using the 'emails' library (already in requirements.txt); add an SLANotification model to track sent alerts and prevent duplicates; use Celery beat (celery already in requirements) for periodic breach scanning; add an at-risk tickets endpoint to the dashboard router; surface at-risk indicators on the frontend DashboardPage as colored badges or a new card.
Rationale: Medium scope because it spans backend (new notification service, scheduler task, tracking model), frontend (dashboard at-risk indicators), and potentially a new migration. Low risk because SLA detection logic already exists and is tested, email infrastructure is additive with no breaking changes to existing endpoints, and the dashboard already has an Overdue SLA card to extend. Fully aligned with the spec which lists SLA timestamps as a core ticketing feature and overdue SLA as a dashboard metric.
Action: Review each blocking factor above. Remove
blocked:needs-decisionlabel to route back to triage.