Skip to content

Data sources (CSV/Excel)

Some of the tools in your stack don’t have an API — a privilege-management console, a physical badge system, an HR platform, a one-off vendor report. The Data Sources screen lets you feed those into Lockstep VM by uploading their CSV or Excel export. Each source has a purpose-built parser that maps its columns into your inventory, so the data lands in the same reconciled place as the API integrations.

The engine behind this screen is documented in the CSV provider framework; this page is the task-oriented walkthrough.

The Data Sources hub

Open Data Sources from the navigation (the /inventory screen). You’ll see a grid of cards, one per available source. Each card shows:

  • an icon and the source name;
  • a category badge — software, identity or access;
  • a short description of what the source contributes;
  • a footer with the record count (software rows or records) and a status pill: Set up (no uploads yet), Processing, Imported, or Failed.

The four sources shipped today:

SourceCategoryWhat it contributes
Software Inventory CSVsoftwareGeneric installed-software export → the software inventory
AutoElevate (CyberFOX)identityPrivilege-management posture per endpoint → asset detail
Badge / Access ControlaccessPhysical badge roster + door-admin role → user profiles (per site)
HR RosteridentityEmployee roster (title, manager, department, location) → user profiles

Click a card to open its detail page.

A source’s detail page

The detail page is where you upload and review data for one source. It has four parts.

1. Stats

Three tiles at the top: Software rows / Records (total imported), Last upload (timestamp), and Total uploads.

2. Upload dropzone

Drag a file onto the dropzone, or click to browse. The card’s subtitle tells you what the source accepts, and the Expected columns line below the dropzone lists the columns the parser looks for.

To upload:

  1. Export the file from the source tool (CSV, or .xlsx where the source supports Excel — e.g. HR Roster).
  2. Drag it onto the dropzone (one file at a time).
  3. The file uploads and parsing begins in the background — you’ll see “Uploaded … Parsing…”. The page polls automatically and refreshes when the job finishes.

3. Upload history

A table of every parse job for this source: File, Status (Processed / Processing / Failed), Rows (read from the file), Imported (records written), and When. Any parser warnings (e.g. “No rows had a recognizable application column”) show below the table.

4. Purge data

When the source has data, a Purge data button appears in the upload-history header. It removes all imported records for that source (and its upload history) after a confirmation. For software sources this also re-runs the software rollup so the removed rows disappear from the inventory.

Reviewing an upload (raw data + metrics)

Click any row in the upload history to open the upload drill-in. It shows exactly what the parser produced:

  • Rows in file, Imported, In database, and the detected Shape.
  • Any warnings from the parse.
  • Field coverage (of sampled rows) — a chip per field with the percentage of sampled rows where that field was populated (green at 100%, amber at 50%+). This is the quick way to spot a column that didn’t map — if manager reads 0%, the export probably used a header the parser didn’t recognize.
  • Raw data — a table of the first parsed records (attributes flattened into columns) so you can confirm the mapping looks right.

Where the data appears afterward

What a source writes depends on its target — this is what makes the same upload flow feed different parts of the app:

SourceLands inWhere you’ll see it
Software Inventory CSVSoftware inventoryNew rows in the Software inventory, attributed to this source, rolled up with SentinelOne / Intune / Rapid7 / ConnectWise Automate
AutoElevate (CyberFOX)Asset enrichment (by hostname)An AutoElevate tab / attributes on the matching asset — UAC level, elevation mode, admin members, AV/patch flags. It links to an existing asset (matched on hostname, including the 15-char NetBIOS form); it never creates a duplicate asset
Badge / Access ControlUser enrichment (by email)Badge access, card number, site, and a door-admin flag on the matching user profile — scoped per physical site
HR RosterUser enrichment (by email)Employment details — job title, manager, department, location — on the matching user profile

Because device and user sources link to records that already exist (by hostname or email), an upload enriches your existing assets and people rather than creating parallel copies. Uploading a fresh export replaces the prior data for that source, so re-uploading a newer export keeps the enrichment current.

Adding a new source

The available sources come from a registry in the backend. Adding a new one (a new parser) is a small code change — see How to add a new provider. Once registered, it automatically appears as a new card here with its own dropzone, history and purge.

See also