Sprint 1: Scanner entry point + vulnerability navigation (S1-T01 to T07)
S1-T01: Add "Scan Image" to sidebar under Security > Security Posture children
- New nav item with scanner:read scope, route /security/scan
S1-T02: Create Scan Image page (scan-submit.component.ts)
- Image reference input, force rescan toggle, metadata fields
- Submits POST /api/v1/scans/, polls for status every 3s
- Shows progress badges (queued/scanning/completed/failed)
- "View findings" link on completion
- Route registered in security.routes.ts
S1-T04: Rename "Triage" to "Vulnerabilities" in sidebar + breadcrumbs
- Sidebar label: Triage → Vulnerabilities
- Route title and breadcrumb data updated
- Internal route /triage/artifacts unchanged
S1-T05: Add 10 security terms to command palette quick actions
- Scan image, View vulnerabilities, Search CVE, View findings,
Create release, View audit log, Run diagnostics, Configure
advisory sources, View promotions, Check policy gates
S1-T06: Add CTA buttons to Security Posture page
- "Scan an Image" (primary) → /security/scan
- "View Active Findings" (secondary) → /triage/artifacts
S1-T07: Gateway routes for scanner endpoints
- /api/v1/scans → scanner.stella-ops.local (ReverseProxy)
- /api/v1/scan-policies → scanner.stella-ops.local (ReverseProxy)
- Added to both compose mount and source appsettings
Angular build: 0 errors.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,6 +54,8 @@
|
||||
{ "Type": "ReverseProxy", "Path": "^/api/v1/environments/(.*)/readiness(.*)", "IsRegex": true, "TranslatesTo": "http://concelier.stella-ops.local/api/v1/environments/$1/readiness$2", "PreserveAuthHeaders": true },
|
||||
{ "Type": "ReverseProxy", "Path": "^/api/v1/environments(.*)", "IsRegex": true, "TranslatesTo": "http://concelier.stella-ops.local/api/v1/environments$1", "PreserveAuthHeaders": true },
|
||||
{ "Type": "ReverseProxy", "Path": "^/api/v1/agents(.*)", "IsRegex": true, "TranslatesTo": "http://concelier.stella-ops.local/api/v1/agents$1", "PreserveAuthHeaders": true },
|
||||
{ "Type": "ReverseProxy", "Path": "^/api/v1/scans(.*)", "IsRegex": true, "TranslatesTo": "http://scanner.stella-ops.local/api/v1/scans$1", "PreserveAuthHeaders": true },
|
||||
{ "Type": "ReverseProxy", "Path": "^/api/v1/scan-policies(.*)", "IsRegex": true, "TranslatesTo": "http://scanner.stella-ops.local/api/v1/scan-policies$1", "PreserveAuthHeaders": true },
|
||||
{ "Type": "Microservice", "Path": "^/api/v1/vulnerabilities(.*)", "IsRegex": true, "TranslatesTo": "http://scanner.stella-ops.local/api/v1/vulnerabilities$1" },
|
||||
{ "Type": "Microservice", "Path": "^/api/v1/watchlist(.*)", "IsRegex": true, "TranslatesTo": "http://attestor.stella-ops.local/api/v1/watchlist$1" },
|
||||
{ "Type": "Microservice", "Path": "^/api/v1/triage(.*)", "IsRegex": true, "TranslatesTo": "http://scanner.stella-ops.local/api/v1/triage$1" },
|
||||
|
||||
Reference in New Issue
Block a user