{
  "id": 4666668,
  "title": "spfx-estate-doctor: Inventory an SPFx Estate Without Touching a Tenant",
  "url": "https://urgent.news/2026/08/31/spfx-estate-doctor-inventory-an-spfx-estate-without-touching-a-tenant",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-31T16:01:41.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/vystartasv/spfx-estate-doctor-inventory-an-spfx-estate-without-touching-a-tenant-3o89"
  },
  "original_language": "en",
  "account": "The spfx-estate-doctor tool allows for a deep inspection of a single SPFx project, but its purpose is to provide an inventory of an organization's collection of projects. The tool can identify which solutions are present, which use outdated SPFx versions, which lack owner information, and if projects reuse component or solution IDs. It also checks if directories are simply folders of files, rather than packaged solutions.\n\nTo use the tool, the user runs the command 'npx spfx-estate-doctor scan' followed by the path to the webparts directory. The user can provide a newline-delimited manifest file, like 'projects.txt', to scan multiple projects at once. The tool scans only the directories explicitly given by the user and does not perform recursive discovery.\n\nPer project, the tool checks the package identity, SPFx dependency and version, SPFx-to-Node compatibility snapshot, solution manifest shape, and component manifest shape. Across the estate, it identifies duplicate component IDs across projects and duplicate solution IDs across projects. Missing files are reported as \"skipped,\" not marked as \"healthy.\" This distinction is important because the absence of a package-solution.json file means the project was not checked, not that it is verified.\n\nThe tool does not make any network calls, execute project commands, read credentials, invoke Microsoft 365 CLI, or write files inside the inspected projects. Its JSON output contains no timestamps or absolute machine paths, allowing for byte-identical reports over time. The report provides an offline inventory of local project files only, and it is not meant for tenant validation, App Catalog state, deployment status, or security audits.\n\nThe tool is designed to be simple and boring, focusing solely on inventory and not on tenant validation, deployment status, or security audits. It produces explicit evidence rather than vague health scores. Verified locally, the tool passes 15 deterministic tests, includes TypeScript checks and build passing, ensures no npm audit vulnerabilities, and scans for cross-project duplicate IDs. The tool's deterministic report and read-only behavior are confirmed.\n\nThe repository for the tool is available at github.com/vystartasv/spfx-estate-doctor. The public question is whether the tool remains useful when pointed at real project directories without turning into an invasive dashboard or a machine that claims certainty.",
  "summary": "spfx-estate-doctor: Inventory an SPFx Estate Without Touching a Tenant A single SPFx project can be inspected deeply. An organisation's collection of projects is a different problem. Which solutions are present? Which use old SPFx versions? Which have no owner information? Which projects reuse a component or solution ID? Which directories are not packaged solutions at all? I built…",
  "key_points": [
    "spfx-estate-doctor inventories SPFx projects without touching tenants.",
    "Tool checks solutions, versions, owners, and duplicate IDs.",
    "JSON output provides offline inventory of local files only."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}