|
|
ad8c8a9f4c
|
feat(ops): release observability dashboard and incident-response flow
Quality gates / quality (pull_request) Successful in 1m44s
Implements issue #41 acceptance criteria without touching the live host:
- src/release-observability.js: sanitizeEvidence() allowlists bounded,
privacy-safe evidence (release tag, commit, UTC time, per-check
id/boundary/status/failure-class/latency/counters) and drops session
identifiers, credentials, environment dumps, photo payloads, base64,
image hashes, note text, emails, and any oversized/suspicious value.
- buildDashboard(): app/api/queue/model boundary rollups, failure-class
counts, manual-fallback state; evaluateAlerts() with owner, threshold,
severity, and runbook anchor per rule.
- scripts/release_dashboard.mjs: local operator CLI over sanitized
evidence files or a loopback drill fixture; never contacts a live
host and exits nonzero without echoing rejected input.
- docs/RELEASE-OBSERVABILITY.md: alert inventory, evidence schema,
simulated worker-outage drill, incident flow, privacy boundary.
- Tests: sanitizer hostile-payload coverage, dashboard/alert rules,
end-to-end loopback outage drill asserting exactly one actionable
page alert plus graceful manual fallback, runbook/package contract.
|
2026-08-22 20:33:10 +00:00 |
|