Assets & Discovery
What it is
CMDash keeps two different views of your estate side by side, deliberately unmerged. Asset Inventory is your hand-curated list of what matters — the crown-jewel assets that feed FAIR's value derivation and the Maturity workspace's crown-jewel weighting. Asset Reconciliation is the opposite: a host list built automatically from every connected EDR, vulnerability scanner, and MDM, whose real value is showing you where those sources disagree. SaaS Discovery does the same job for applications instead of hosts, surfacing software your workforce is using that was never linked to a vendor record. Estate Diff watches the reconciled estate over time and reports what changed since the last run. Coverage Trend tracks where each coverage percentage has been, where it's headed, and whether it will hit a target you set.
When to use it
Use Asset Inventory to maintain the assets that matter for risk scoring and FAIR quantification — it's a lightweight, manually-owned list, not a discovery feed. Use Asset Reconciliation and SaaS Discovery when you want the estate to tell you what exists, rather than relying on someone remembering to add it. Use Estate Diff after you've reconciled at least once, to catch hosts that appeared, disappeared, or stopped reporting since your last check. Use Coverage Trend when a stakeholder — a board, an auditor — asks not just "what's your coverage today" but "is it getting better."
Before you start
| Page | Nav location | Tier | Role notes |
|---|---|---|---|
Asset Inventory (/assets) | Security | No tier gate | No feature flag. Listing and reading an asset has no role restriction — any authenticated member, including VIEWER, can view the inventory; creating, editing, setting criticality, and deleting an asset are OWNER/ADMIN — the web page itself hides the New asset control unless you're OWNER or ADMIN. |
Asset Reconciliation (/asset-reconciliation) | Security | Command and above | Viewing (joiner-leaver, coverage, assets, summary, match rules, field precedence) is open to any authenticated member including VIEWER; everything that changes data (sync, override, merge, link to inventory, setting or clearing field precedence) is OWNER/ADMIN. |
SaaS Discovery (/saas-discovery) | Security | Command and above | Reading is OWNER/ADMIN/VIEWER; syncing, uploading, and dismissing an app are OWNER/ADMIN. |
Estate Diff (/estate-diff) | Integrations | Command and above | Viewing diffs is open to any authenticated member, including VIEWER; running a diff is OWNER/ADMIN. |
Coverage Trend (/coverage-trend) | Security | Command and above | Reading the summary, a category's trend, and its target has no role restriction — any authenticated member, including VIEWER, can view them; setting or clearing a target is OWNER/ADMIN. |
Coverage Scorecard (/coverage-scorecard) | Security | Command and above | Group coverage across your business units and subsidiaries. The API checks, on every read, that you are an OWNER or ADMIN of the parent workspace. |
Import scan results (/file-ingest) | Security | No tier gate | OWNER/ADMIN only. SARIF, CycloneDX, SPDX or a control-results CSV, up to 25 MB. |
How to
Maintain your curated inventory
- Go to Security → Asset Inventory and click New asset.
- Assets carrying a NIST CSF function feed the Maturity workspace's crown-jewel weighting — set that field if the asset matters to your maturity scoring, not just your records.
- Record or edit assets as your estate changes. This list is not synced from an integration — it's the set you've deliberately chosen to track.
Reconcile hosts from your connected tools
- Go to Security → All Security tools → Asset Reconciliation. The page states its purpose directly: "One host list built from every connected EDR, vulnerability scanner and MDM — and, more usefully, the hosts they disagree about."
- Click How matching works to see the match rules the reconciliation engine uses to decide two sightings are the same host, and Source precedence to see (and reorder) which connected source wins when sources disagree about a field.
- Click Reconcile now to run the join. CMDash reports how many sightings were processed and from how many of your connected sources, flagging any source it skipped as stale.
- Click Curated inventory to jump back to Asset Inventory. It's a plain navigation link, not a promote action — nothing is copied automatically; add a reconciled host to your hand-maintained list the same way you'd add any other asset there.
Find ungoverned SaaS applications
- Go to Security → All Security tools → SaaS Discovery. This reads from IdP sign-in logs and expense data to surface applications your workforce is actually using that were never linked to a vendor record or TPRM assessment.
- Click Sync IdP sources to pull the latest sign-in-based signal, or Upload expense CSV to add spend-based signal CMDash can't get from your IdP alone.
- For an application that isn't a real governance gap (a personal tool, a false match), click Dismiss and give a reason when prompted — dismissed apps are excluded from the count going forward, but the reason is kept for the record.
Track what changed in your estate
- Go to Integrations → Estate Diff and click Run Now.
- CMDash reports new hosts, hosts that disappeared, sources that stopped reporting, and coverage drops since the last run — expand any entry for detail.
Watch coverage trend and set targets
- Go to Security → All Security tools → Coverage Trend. Each of the three estate-coverage categories — EDR, Vulnerability Scanning, MDM Enrollment — gets its own card showing history and a forecast of whether it's tracking toward a target. (The equivalent trend for people, not hosts, lives on Identity Coverage — see Access Reviews & Identity Coverage.)
- Click the edit control on a category to set or clear a target percentage; save it to see the forecast measured against that goal instead of just the raw trend line.
Read group coverage across business units and subsidiaries
- Go to Security → Coverage Scorecard. The top shows the group total, then business units, then
subsidiaries, each with EDR, Vulnerability Scanning and MDM Enrollment as
percentandnumerator of denominator. The group figure is recomputed from the summed counts, not an average of the entity percentages. - An entity that was never measured reads Not measured, and each total says how many entities it does not cover. Never measured is unknown, not zero.
- Click Show sources on an entity for each category's source count, stale sources and the time it was measured.
Import scan results from a file
- Go to Import scan results and choose a SARIF report, a CycloneDX or SPDX SBOM, or a CSV with
control_idandframeworkcolumns. The format is detected from the content, not the filename. - Optionally name the feed (for example
nightly-semgrep). Uploading the same scan again under the same name updates its rows instead of duplicating them. - Click Preview: it runs the same mapping as the commit and writes nothing, and shows how many observations and evidence records would be written. Click Commit this import to write them.
Common questions
Why are there two host lists — Asset Inventory and Asset Reconciliation? They serve
different jobs on purpose: Asset Inventory is hand-curated and answers "what do we consider a
crown-jewel asset," while Asset Reconciliation is discovered and answers "what does our tooling
actually see, and where does it disagree." CMDash does not merge or promote between them
automatically — the reconciliation API has a link-inventory route, but no page calls it today,
so moving a reconciled host into your inventory means re-entering it there by hand.
Does dismissing a SaaS application in SaaS Discovery remove it everywhere? It stops counting toward SaaS Discovery's open findings; it does not delete any underlying sign-in or expense data, and the reason you gave is retained.
Can a VIEWER see Asset Reconciliation or Estate Diff? Yes — viewing on both pages has no role restriction, so any authenticated member (including VIEWER) can view them on a Command+ tenant. Only the mutating actions (reconcile/sync, override, merge, link, run a diff) are restricted to OWNER/ADMIN.
How does a SaaS app become "Governed"? Only by being linked to a Vendor record with a clean assessment — CMDash never flips the status by hand. The API supports linking a discovered app to a vendor, but no button on the SaaS Discovery page calls it today; Dismiss is the only action available there. See "Limits" below.
Limits: there is no page that shows Asset Inventory and Asset Reconciliation side by side in one reconciled diff view — cross-referencing the two today means opening both pages. There is also no button to link a discovered SaaS app to a Vendor record from the SaaS Discovery page, even though the underlying API endpoint exists.