Skip to content

Users

Users are people, sourced from Microsoft Entra ID and linked to the assets they own. The list lives at Inventory → Users (/users); clicking a row opens the user detail at /user/<upn>.

The Users list

Populated from the entra_users collection. Columns: Name (display name + UPN), Department, Title, Groups (membership count), and Status (Enabled / Disabled). Tools:

  • Search across name, UPN, email, and department.
  • An Enabled only checkbox to hide disabled accounts.
  • Simple prev/next pagination (25 per page).

Clicking a row opens the full user detail.

The user detail page

The detail page loads the Entra user (GET /entra/user/<upn>) plus its linked assets and enrichment.

Header, badges & KPIs

The header shows an avatar, display name, and title · department. Two status chips can appear on the right:

  • Enabled / Disabled — the account state.
  • Door admin — shown when the user is flagged as a badge-system administrator (the badge_admin flag rolled up from badge-access enrichment).

Four KPI cards summarize Assets (linked devices), Groups (memberships), Status, and Department.

Linked assets

Assets are linked to a user by UPN and display name across sources: Intune devices carry the owner UPN, and inventory_items carry the user’s email and name. Matches are resolved to a device id (preferring the Intune UUID) so each linked asset deep-links to its asset detail.

Group memberships

The user’s Entra group memberships render as chips; when there are more than eight, a filter box appears to search within them.

Source-grouped Attributes

The detail page uses the same runZero-style Attributes panel as the asset detail — a vertical SourceTabs rail plus an AttributeTable. Each tab is one source:

TabSource
entra.idEntra profile (UPN, mail, job title, department, office, mobile, SAM account, account enabled, aliases)
badge.accessBadge / door-access system (via CSV enrichment)
hr.rosterHR roster (via CSV enrichment)

Only sources that actually have data for the person appear. See the Frontend reference for the component details.

Alias-based linking to badge / HR

Badge and HR data come from CSV sources (csv_users) keyed by email, but a badge or roster row often uses an alias address rather than the person’s UPN. To link them correctly, the backend collects the user’s UPN, primary mail, and every SMTP alias (from Entra proxyAddresses) and matches enrichment rows against that whole set. When several alias-matched rows share a source, they are merged into one tab. If any matched badge row carries the admin flag, the top-level Door admin badge is set.