2.7 KiB
2.7 KiB
Findings Compare Baseline Availability UI
Module
Web
Status
VERIFIED
Description
The embedded compare surface on /security/findings now treats active-scan as a first-class current target, shows an explicit unavailable state when no baseline exists, disables export until comparison data is real, and keeps detail mode on live findings data without the stale Export Audit Pack control.
Implementation Details
- Feature directories:
src/Web/StellaOps.Web/src/app/features/findings/src/Web/StellaOps.Web/src/app/features/compare/
- Primary implementation files:
src/Web/StellaOps.Web/src/app/features/findings/container/findings-container.component.tssrc/Web/StellaOps.Web/src/app/features/compare/components/compare-view/compare-view.component.tssrc/Web/StellaOps.Web/src/app/features/findings/findings-list.component.ts
- Focused regression files:
src/Web/StellaOps.Web/src/app/core/testing/findings-container.component.spec.tssrc/Web/StellaOps.Web/src/tests/findings/findings-list.audit-export.behavior.spec.tssrc/Web/StellaOps.Web/tests/e2e/findings-compare-baseline-availability.spec.ts
- Canonical route:
/security/findings
Verification
- Run:
npm test -- --watch=false --include src/tests/findings/findings-list.audit-export.behavior.spec.tsnpx playwright test --config playwright.config.ts tests/e2e/findings-compare-baseline-availability.spec.ts --workers=1npm run build
- Tier 0 (source): pass
- Tier 1 (build/tests): pass
- Tier 2 (behavior): pass
- Notes:
- Focused unit coverage passed:
1/1tests infindings-list.audit-export.behavior.spec.ts. - Deterministic Playwright passed:
2/2scenarios for no-baseline diff behavior and detail-mode audit-export removal. - Live authenticated replay on
https://stella-ops.local/security/findings?tenant=demo-prod®ions=us-east&environments=stage&timeWindow=7dshowedActive scan, renderedNo baseline recommendations available for this scan, keptExportdisabled, and issued no/api/compare/deltarequest without a selected baseline. - Production build passed; existing bundle-budget warnings remain unchanged from the baseline.
- Focused unit coverage passed:
- Verified on (UTC): 2026-03-08T13:04:26Z
Verified Behavior
/security/findingspasses the embedded compare surface the active/current scan context instead of relying on standalone compare route params.- When
/api/compare/baselines/active-scanreturnsselectedDigest: null, the page shows a truthful unavailable state instead of fake zero-change content. - Export remains disabled until both current and baseline targets exist.
- Detail mode renders live findings rows and does not expose the removed
Export Audit Packaction.