[Phase 1] SLA Management UI and Configuration — Phase 9: Acceptance Criteria #40
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#40
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 9: Acceptance Criteria
Decomposed from msp_c2#10
⏸ Needs Decision
Blocking factors:
Scope: medium Risk: medium Spec: aligned Type: feature
Summary: Issue #40 implements the full SLA management subsystem — policy config, business hours, rules engine, breach notifications, compliance dashboard, and reporting — building on the existing basic SLA timestamp fields and breach detection service.
Suggestion: Work incrementally: (1) new DB models for SLA policy + business_hours, (2) CRUD API router at /api/v1/sla/, (3) extend sla.py service with configurable rules engine, (4) wire breach detection into webhook system, (5) frontend pages for config, dashboard compliance widget, and reporting page, (6) tests for each layer. The existing Ticket model already has sla_response_due/sla_resolve_due columns and a basic sla.py breach detector — leverage and extend these rather than rebuilding.
Rationale: SCOPE=medium: ~10-14 files across models, API, services, frontend pages, and tests — a full new subsystem but not 15+ files. RISK=medium: additive to the existing ticket model, doesn't touch core CRUD paths, but business hours logic and notification integration have moderate edge-case complexity. SPEC=aligned: directly maps to ROADMAP.md section 1.5 (SLA Management Enhancements, Phase 1, Q2 2026) — the roadmap even notes 'Basic tracking exists, needs UI and rules' which matches exactly what the existing sla_response_due/sla_resolve_due columns provide. TYPE=feature: entirely new capability, not a bugfix or chore. Note: the existing dashboard router queries Ticket.due_date which doesn't exist in the model — that field appears to be dead code or a separate concern that should either be removed or migrated to sla_resolve_due as part of this work.
Action: Review each blocking factor above. Remove
blocked:needs-decisionlabel to route back to triage.