feat(gateway): surface security scan results in the AI Finder UI#1760
Conversation
Signed-off-by: Catarina Paralta <clouropa@cisco.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
| } | ||
|
|
||
| let colorClass = $derived(severityColorClass(scan.maxSeverity)); | ||
| let label = $derived(scan.isSafe ? 'Security Scanned' : 'Issues Found'); |
There was a problem hiding this comment.
can we maybe have this card display something like:
Security Posture: No issues found or Security Posture: X issues found
the other part is that it looks a bit strange the title of the card like: Security scanned Security Scan Results. This would be nicer a bit more unified like above
There was a problem hiding this comment.
Let me improve this, agreed 👍 the MCP behaviour scanner does not return findings (just safe or not safe) so Security Posture: X issues found is not a good fit here.
| {#if scanManifest} | ||
| <ScanBadge scan={scanManifest} /> | ||
| {/if} |
There was a problem hiding this comment.
can we put this below instead or below the stars/rating? seems too packed as part of the title
we can use the footer of the card on the dashboard to put extra things like security, metrics, and other details
There was a problem hiding this comment.
My plan was to add the badge close to the trusted badge, but it turned out a bit bloated indeed
| entry.Metadata = make(map[string]*structpb.Value) | ||
| } | ||
|
|
||
| entry.Metadata["scanManifest"] = val |
There was a problem hiding this comment.
the metadata keys per AI catalog spec require a bit more specific prefix to indicate the protocol that is injecting it. i would maybe consider having something like the protobuf name here of the object, ie. agntcy.dir.security.v1.ScanResult
| type ScanReportSummary interface { | ||
| GetScannerType() string | ||
| GetIsSafe() bool | ||
| GetMaxSeverity() string | ||
| GetUpdatedAt() time.Time | ||
| } |
There was a problem hiding this comment.
can we have the reason for the severities?
There was a problem hiding this comment.
The scanners currently return a list of raw findings which might lead to an extensive text for a new reason field, which would be hard to visualise in this UI. Check the skill example at #1757 (comment).
Signed-off-by: Catarina Paralta <clouropa@cisco.com>
@ramizpolic wdyt about these updates? |
|
@paralta looks better! my slight concern is that it may get mixed up with verifiable status for next iteration, we can include a filter in the search like |



This PR wires the reconciler's security scan results into the AI Finder UI. Scan summaries stored in the database are now preloaded alongside catalog entries and embedded into each record's
metadata.scanManifestfield — using the existingmap<string, Value>proto field, so no schema changes are needed. The UI consumes this to show a severity-colored "Security Scanned" / "Issues Found" chip inline on each card title, a per-scanner breakdown in the detail modal, and a "Safe" checkbox filter in the sidebar.PullReferreris a gRPC bidirectional stream with no HTTP gateway binding and therefore unreachable from the browser.