All checks were successful
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
1.7 KiB
1.7 KiB
Bug Report Triage
Public bug report submission with severity-based routing and SLA timers.
Features
- Public entry — anyone with the link can submit a bug report (no auth)
- Progressive fieldsets — two-step form (Report Details + Reproduction)
- Branch rules — severity=critical routes to senior queue, otherwise standard queue
- SLA timer — critical fixes have a 1-hour SLA (fires
workflow.sla_breachevent) - Team assignment — classify, fix, and verify stages are team-scoped
Stage Flow
[submit] → [classify] → [fix-critical] → [verify]
public team ↘ [fix-normal] ↗ team
team
Installation
# Via admin API
curl -X POST $BASE/api/v1/admin/packages/install \
-H "Authorization: Bearer $TOKEN" \
-F "file=@packages/bug-report-triage"
API Walkthrough
# 1. Start public instance (no auth)
curl -X POST $BASE/api/v1/public/workflows/$WF_ID/start \
-H 'Content-Type: application/json' \
-d '{"data": {"reporter_email": "user@example.com", "summary": "Login broken", "component": "ui", "severity": "critical", "steps": "1. Click login", "expected": "Login page", "actual": "500 error"}}'
# 2. Resume (check status)
curl $BASE/api/v1/public/workflows/resume/$ENTRY_TOKEN
# 3. Team claims classify assignment
curl -X POST $BASE/api/v1/teams/$TEAM/assignments/$ASSIGN_ID/claim \
-H "Authorization: Bearer $TOKEN"
# 4. Advance classify (triggers branch rule)
curl -X POST $BASE/api/v1/teams/$TEAM/instances/$INST/advance \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{"data": {"severity": "critical", "notes": "Confirmed production issue"}}'