diff --git a/spec/SDD-Keylime-Monitoring-Tool.md b/spec/SDD-Keylime-Monitoring-Tool.md index 2280170..bf2b710 100644 --- a/spec/SDD-Keylime-Monitoring-Tool.md +++ b/spec/SDD-Keylime-Monitoring-Tool.md @@ -1040,6 +1040,7 @@ Maximum 5 parallel concurrent log fetches to the Verifier API, enforced via Toki | Explicit date format selection | Eliminates locale-dependent ambiguity (e.g., 04/05 = April 5 vs May 4); ISO 8601 default for cross-region consistency | FR-079 | | Explicit time format selection (12h/24h) | Accommodates regional conventions (e.g., US 12-hour vs European 24-hour); 24h default avoids AM/PM ambiguity in operational contexts | FR-080 | | Sidebar alert indicator for service outages | Surfaces integration health at a glance without navigating away; shares cached TanStack Query data with Integrations page to avoid extra requests | FR-081 | +| Agent UUID hyperlinks in failure list | One-click drill-down from failure to agent detail eliminates manual navigation; uses React Router `` for SPA navigation without full reload | FR-082 | --- @@ -1139,6 +1140,7 @@ Maximum 5 parallel concurrent log fetches to the Verifier API, enforced via Toki | FR-079 | 3.8.2 | `visualizationStore`: date format selection (6 formats), ISO 8601 default, applied to all timestamp rendering | | FR-080 | 3.8.2 | `visualizationStore`: time format selection (12h/24h), 24h default, applied to all time-of-day rendering | | FR-081 | 3.2.2 | `Sidebar.tsx`: `useHasServiceDown()` hook queries integration health, renders exclamation badge on Integrations nav item | +| FR-082 | 3.2.2 | Failure categorization list renders agent UUIDs as React Router `` to `/agents/{agent_id}` detail page | ### 6.2 Non-Functional Requirements diff --git a/spec/SRS-Keylime-Monitoring-Tool.md b/spec/SRS-Keylime-Monitoring-Tool.md index dab2f70..79f111d 100644 --- a/spec/SRS-Keylime-Monitoring-Tool.md +++ b/spec/SRS-Keylime-Monitoring-Tool.md @@ -115,6 +115,7 @@ The System transforms Keylime from a CLI-driven security tool into a visual oper | FR-079 | Date format selection for timestamp rendering | MUST | Settings - Visualization | | FR-080 | Time format selection (12h/24h) for timestamp rendering | MUST | Settings - Visualization | | FR-081 | Sidebar alert indicator for integration service outages | MUST | Dashboard - Navigation Structure | +| FR-082 | Agent ID hyperlinks in failure categorization list | MUST | Attestation Analytics - Failure Categorization | ### 2.2 Non-Functional Requirements @@ -2549,6 +2550,34 @@ Feature: Sidebar Alert Indicator for Integration Outages Then the Integrations navigation item MUST NOT display an exclamation mark badge ``` +### FR-082: Agent ID Hyperlinks in Failure Categorization List + +**Description:** The System MUST render each agent UUID in the Attestation Analytics failure categorization list (FR-025) as a navigable hyperlink to the corresponding agent detail page (`/agents/{agent_id}`). The link text MUST display the agent UUID. Clicking the link MUST navigate the user to the agent detail view (FR-012) for the affected agent, enabling one-click drill-down from a failure entry to its agent context. + +**Trace:** Attestation Analytics - Failure Categorization + +```gherkin +Feature: Agent ID Hyperlinks in Failure Categorization + + Scenario: Agent UUID renders as a hyperlink + Given the failure categorization list contains a failure for agent "abc-123" + When the list renders + Then the agent UUID "abc-123" MUST be displayed as a hyperlink + And the hyperlink target MUST be "/agents/abc-123" + + Scenario: Clicking agent link navigates to agent detail + Given the failure categorization list displays a hyperlink for agent "abc-123" + When the user clicks the agent UUID hyperlink + Then the System MUST navigate to the agent detail page for "abc-123" + And the agent detail view (FR-012) MUST be displayed + + Scenario: Multiple failures for different agents each link independently + Given the failure categorization list contains failures for agents "abc-123" and "def-456" + When the list renders + Then agent "abc-123" MUST link to "/agents/abc-123" + And agent "def-456" MUST link to "/agents/def-456" +``` + --- ## 4. Non-Functional Requirements Detail