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:
| Source | Category | What it contributes |
|---|---|---|
| Software Inventory CSV | software | Generic installed-software export → the software inventory |
| AutoElevate (CyberFOX) | identity | Privilege-management posture per endpoint → asset detail |
| Badge / Access Control | access | Physical badge roster + door-admin role → user profiles (per site) |
| HR Roster | identity | Employee 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:
- Export the file from the source tool (CSV, or
.xlsxwhere the source supports Excel — e.g. HR Roster). - Drag it onto the dropzone (one file at a time).
- 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
managerreads 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:
| Source | Lands in | Where you’ll see it |
|---|---|---|
| Software Inventory CSV | Software inventory | New 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 Control | User enrichment (by email) | Badge access, card number, site, and a door-admin flag on the matching user profile — scoped per physical site |
| HR Roster | User 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
- CSV provider framework — how parsing, targets and the registry work.
- Software inventory, Assets, Users — where imported data surfaces.
- Data model — the collections behind it.