- Which physical device produced this scan or hook event?
- Which OS username was active on that device?
- Which Runlayer user should own the resulting discovery or activity?
What AI Watch Sends
AI Watch attaches device context to scans and org-key hook events:| Field | Purpose |
|---|---|
device_id | Stable per-device identifier stored locally and reused by scans and hooks |
hostname | Device name for investigation and audit context |
os / os_version | Operating system context |
username | OS login username detected on the device |
runlayer scan --username <value>. For legacy enrollment flows, deployment-specific username fields may also be used. Prefer full email values when you do use an override; they reduce collisions across shared or multi-domain organizations.
Automatic Resolution
Runlayer resolves a raw device username to a single active Runlayer user inside the same organization. It stops at the first unique match:- Exact email match, such as
alex@example.com identity_attributes.usernamefrom directory sync or user metadata- Email local-part match, such as
alexforalex@example.com - Name-pattern matches, such as
first.last,firstlast, first initial + last name, first name, or last name - Persisted AI Watch mappings from prior scans or admin matches
Unresolved Usernames
Unresolved usernames appear in Settings → MDM Configuration → Unresolved usernames. Use this workflow when a device username cannot be matched automatically or was intentionally left unresolved because the match was ambiguous.Review Unresolved usernames
Each row shows the raw username, how many devices reported it, and when it was last seen.
Match the correct user
Search for the Runlayer user, then click Match. The mapping applies to all unresolved devices reporting that username in your organization.
Buffered Activity
Enforce and Sessions events can arrive before Runlayer knows which user a device username belongs to. In org-key deployments, Runlayer buffers unattributed hook activity instead of dropping it. A later successful scan, admin username match, or device back-link can replay that buffered activity so Sessions and audit logs show the correct user. This means there can be a short delay between resolving a username and seeing older hook/session activity appear.Avoiding Bad Matches
- Keep Runlayer users in sync with your identity provider so emails and names are current.
- Populate
identity_attributes.usernamewhen your OS usernames do not match email local-parts. - Prefer full email usernames for custom scans or legacy enrollment overrides.
- Avoid broad shared usernames like
admin,developer, oruser; they are likely to stay unresolved or ambiguous. - For shared workstations, only add a manual match when the OS username uniquely identifies one Runlayer user.
Troubleshooting Attribution
If an attribution looks wrong after username resolution, use Troubleshooting: Interpreting Discovery Results as the canonical workflow for checking whether the finding came from config on disk, project paths, shared devices, or username resolution.Related Resources
Detect
Discover shadow MCP servers, skills, and plugins
Troubleshooting
Diagnose attribution and deployment issues
Re-analyzing Classifications
Refresh Shadow AI inventory after changes
Deploy AI Watch
Install and configure AI Watch