Skip to content

feat: security posture fix and egress UI in agent detail#72

Merged
garagon merged 9 commits intomainfrom
feat/security-posture-egress-ui
Mar 20, 2026
Merged

feat: security posture fix and egress UI in agent detail#72
garagon merged 9 commits intomainfrom
feat/security-posture-egress-ui

Conversation

@garagon
Copy link
Copy Markdown
Contributor

@garagon garagon commented Mar 20, 2026

Summary

Two fixes in one PR:

Security Posture: em dash cleanup

  • Replaced all em dashes with hyphens/commas across auditcheck findings
  • 8 files, ~25 occurrences in checks_openclaw, checks_nanoclaw, checks_mcp, sarif, tests
  • OpenClaw product description in dashboard also fixed

Agent Detail: Egress tab

  • New "Egress" tab on agent detail page showing:
    • Active integration presets as colored pills
    • Allowed and blocked domains
    • Per-tool restrictions table (tool name -> allowed domains, or "No egress allowed")
    • Available presets list (16 built-in) with hover descriptions
    • Config instructions for oktsec.yaml

Files changed

File Change
internal/auditcheck/checks_openclaw.go Em dash -> hyphen (10)
internal/auditcheck/checks_nanoclaw.go Em dash -> hyphen (6)
internal/auditcheck/checks_mcp.go Em dash -> hyphen (4)
internal/auditcheck/sarif.go Em dash -> hyphen (1)
internal/auditcheck/auditcheck_test.go Em dash -> hyphen (2)
internal/dashboard/tmpl_audit.go Sandbox label fix
internal/dashboard/handlers.go OpenClaw description + presetsList() helper
internal/dashboard/templates.go Egress tab + panel in agent detail

Test plan

  • go test ./... all green
  • CI passes
  • Manual: Security Posture page shows hyphens, no em dashes
  • Manual: Agent detail Egress tab shows presets list

garagon added 9 commits March 20, 2026 13:09
Replace all em dashes with hyphens or commas in:
- checks_openclaw.go (10 occurrences)
- checks_nanoclaw.go (6 occurrences)
- checks_mcp.go (4 occurrences)
- sarif.go (1 occurrence)
- auditcheck_test.go (2 occurrences)
- tmpl_audit.go sandbox label
- handlers.go OpenClaw product description
New "Egress" tab on agent detail showing:
- Active integration presets (colored pills)
- Allowed/blocked domains
- Per-tool restrictions table (tool -> allowed domains)
- Available presets list with descriptions
- Instructions for YAML config

Also: fix em dash in OpenClaw product description
Security Posture:
- Severity badges are now filled pills (background + text color)
  matching the dashboard design system, not just text with border

Agent detail:
- New "Sessions" section in Overview tab showing recent sessions
  for this agent with events, duration, threats, and risk score
- Links to session trace page

Egress tab:
- Shows integration presets, allowed/blocked domains, tool restrictions
- Available presets list with descriptions
Full CRUD for egress policies from the dashboard:
- Integration presets as checkboxes (16 services)
- Allowed/blocked domains as text inputs
- Per-tool restrictions with add/remove
- Saves to config on submit, persists to oktsec.yaml
- POST /dashboard/agents/{name}/egress endpoint
- listContains template function for checkbox state
Hero stat cells use flexbox column with justify-content:center
so all 4 cells align vertically regardless of content height
(the posture score ring is taller than plain numbers).
Move Sessions table out of the comm partners grid row into a new
ad-grid alongside Recent Messages so they display as 2 columns.
Row 1: Sessions + Recent Messages (2 columns)
Row 2: Top Triggered Rules + Communication Partners (2 columns)
Row 3: LLM Threat Intelligence (full width, if data exists)
Agents page uses 2-column layout when discovered agents exist:
left column is the registered agents grid, right column (280px)
is the discovered from traffic sidebar with register buttons.
@garagon garagon merged commit 5f60fe7 into main Mar 20, 2026
1 check failed
@garagon garagon deleted the feat/security-posture-egress-ui branch March 20, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant