The worklist
Figures
Filters
One search box over host and provider, a row of state chips, and quiet scoping controls on the right.
Chips only appear when they can match something, so an empty
Workflow chip means no automation platform has been seen at all.
Columns
Click any row to expand it. The detail strip shows Why this
ranking (the reasons behind the risk level), exact first and last
seen timestamps, and the three action buttons.
How risk is ranked
Risk is derived from signals the inventory already carries. There is no hidden score and no model: recognition, capability, and exposure.
Unknown hosts rank high because nobody has verified where the data
goes. Workflow platforms rank high because an AI step inside an
automation can relay records between systems without a human in the
loop. Device spread ranks high because a tool on twenty laptops is a
policy problem, not an individual one.
Risk is only meaningful for undecided services. Anything sanctioned,
blocked, or managed resolves to low by definition, so the worklist
shows
— rather than pretending the ranking still says something.The three decisions
All three require theruntime_security.policy.manage permission and
write an audit record.
Which decision to reach for
A weekly triage pass
1
Filter to Needs review, sorted by highest risk
The default sort already does this. Set the time range to the last
7 days for the new arrivals, or all time to clear the backlog.
2
Start with the unknown hosts
Expand each row and read Why this ranking. Resolve the
hostname: is it an internal gateway, a new vendor, or something
nobody can account for?
3
Check exposure before deciding
A service on one device is usually a person to talk to. A service
on twenty is a policy to write. Use the device and user filters to
see who is behind it.
4
Decide
Sanction, block, or onboard. Every row you leave undecided is a
row the report will call ungoverned.
5
Confirm the block landed
Blocked services push a host rule to the fleet. Policy propagates
within about 30 seconds, or immediately if you Push policy
from Devices & Enrollment.
Insights
Runtime Security → Shadow AI → Insights is the read on the estate, where the worklist is the read on individual services. It deliberately repeats nothing from the inventory.
The trend needs at least a day of rollup data. Until agents have
reported, it says so rather than drawing a flat zero line.
Export the report
Export on the Shadow AI page generates a PDF built server-side.
The report leads with a narrative summary, then the risk-ranked
inventory, the traffic trend against the prior period, exposure
breakdowns, and a methodology section that states plainly that
detection is passive and destination-only.
Sanctioned services are approved tools, not shadow AI, so they are
excluded from the report everywhere: the table, the totals, and the
breakdowns. The inventory in the console still shows them, filtered
behind the Sanctioned chip.
shadow-ai-report-20260729.pdf or
shadow-ai-summary-20260729.pdf, so a monthly export drops cleanly
into an evidence folder.
API
The discovery routes live under/api/runtime-security/ and use the
same workspace authentication as the rest of the dashboard API.
runtime_security.view reads; runtime_security.policy.manage acts.
GET /discovery accepts status, days, device_id, and user
query parameters, matching the console’s filters:
Audit trail
Every decision is recorded in the audit trail against thers_discovered_service entity, with the acting user and
the hostname.
Forward them to your SIEM with the
audit webhook if shadow-AI decisions
are part of your control evidence.
Common workflows
Build the case for enforcement
Build the case for enforcement
- Run the fleet observe-only for two weeks.
- Export the full report for the last 14 days.
- Walk the risk drivers and the department breakdown with the data-protection owner.
- Decide the enforcement policy with real numbers rather than hypotheticals.
Clear the high-risk backlog
Clear the high-risk backlog
- Chip: High risk. Sort: Most devices.
- Work top-down. Broad exposure first, since it affects the most people.
- Blocked services push a host rule immediately; tell the affected teams before you block a tool they use daily.
Investigate one team
Investigate one team
- Set the User filter to a team member, or read the department breakdown on Insights.
- Switch the drill-down between device and user while staying filtered, the breakdowns stay populated.
- Sanction the tools the team genuinely needs and onboard the one handling sensitive data.
Bring a discovered service under full inspection
Bring a discovered service under full inspection
- Onboard as app on the row. An App is created and linked.
- Configure thresholds, custom PII rules, and tool policy on the new App, see Apps.
- Add an
inspecthost rule for the hostname pointing at that App, in DLP policy → AI host rules. - Confirm events start arriving with
source=agentin Observability.
Prove coverage to an auditor
Prove coverage to an auditor
- Export the full report with Anonymize on if the audience should not see identities.
- Pair it with the audit trail export for the same period, which carries the decisions and who made them.
- The methodology section states the detection limits explicitly, which is usually the auditor’s first question.

