feat(webui): Sentry/GlitchTip observability console & correlation view (Closes #649)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Web Console: Sentry/GlitchTip Observability & Incident Bridge Console (#649)
|
||||
|
||||
This document describes the Phase 4 observability console surface integrated into the MCP Control Plane Web Console (`webui/`), backed by the #612 incident bridge and the #613 control-plane DB substrate.
|
||||
|
||||
## Architectural Authority Model (ADR Alignment)
|
||||
|
||||
Per the Web Console Architecture ADR (`docs/architecture/webui-control-plane-console-architecture-adr.md`):
|
||||
|
||||
| Layer | Responsibility | Authority |
|
||||
|---|---|---|
|
||||
| **Gitea** | Durable work record | Issues, PRs, comments, reviews, labels, merges |
|
||||
| **Control-plane DB** | Live coordination & linkage | `incident_links` table, session leases, allocations |
|
||||
| **Sentry / GlitchTip** | Observability input | Unresolved incidents, error events, stack traces |
|
||||
| **Incident Bridge (#612)** | Reconciliation engine | Reconciles provider observations into Gitea issues |
|
||||
| **Web Console (`webui/`)** | Read-only projection & gated actions | Projects connection health & correlation links; gates writes |
|
||||
|
||||
> **Key Rule:** Raw monitoring incidents are **never** assignable control-plane `work_items`. They remain observation input only.
|
||||
|
||||
## Redaction Boundary Invariants
|
||||
|
||||
1. **No secrets in returns or rendering:** Auth tokens (`SENTRY_AUTH_TOKEN`, `GLITCHTIP_AUTH_TOKEN`), DSNs, `Authorization` headers, and sensitive local file paths are passed through `webui.console_redaction` before leaving the server.
|
||||
2. **Safe projection:** Connection objects report `credentials_present: true/false` rather than exposing raw keys or headers.
|
||||
|
||||
## Console Endpoints
|
||||
|
||||
- **HTML Surface:** `GET /observability` — Renders provider connection cards, error correlation tables, and gated reconcile controls.
|
||||
- **Versioned API:** `GET /api/v1/observability` — Returns structured JSON snapshot with `schema_version`, `providers`, `links`, and `metrics`.
|
||||
- **Legacy Compatibility Alias:** `GET /api/observability` — Read-only compatibility alias for Phase 4.
|
||||
|
||||
## Gated Actions
|
||||
|
||||
- `observability_reconcile_incident` (`gitea_observability_reconcile_incident`): Triggers or previews dry-run issue reconciliation for a provider incident.
|
||||
- `observability_link_issue` (`gitea_observability_link_issue`): Links a provider incident to an existing Gitea tracking issue.
|
||||
|
||||
Both actions require `operator` role and gate through `task_capability_map`. Execution fails closed in read-only MVP mode.
|
||||
Reference in New Issue
Block a user