XrmToolSuite.PortalHealthAnalyzer
1.2026.7.10
dotnet add package XrmToolSuite.PortalHealthAnalyzer --version 1.2026.7.10
NuGet\Install-Package XrmToolSuite.PortalHealthAnalyzer -Version 1.2026.7.10
<PackageReference Include="XrmToolSuite.PortalHealthAnalyzer" Version="1.2026.7.10" />
<PackageVersion Include="XrmToolSuite.PortalHealthAnalyzer" Version="1.2026.7.10" />
<PackageReference Include="XrmToolSuite.PortalHealthAnalyzer" />
paket add XrmToolSuite.PortalHealthAnalyzer --version 1.2026.7.10
#r "nuget: XrmToolSuite.PortalHealthAnalyzer, 1.2026.7.10"
#:package XrmToolSuite.PortalHealthAnalyzer@1.2026.7.10
#addin nuget:?package=XrmToolSuite.PortalHealthAnalyzer&version=1.2026.7.10
#tool nuget:?package=XrmToolSuite.PortalHealthAnalyzer&version=1.2026.7.10
🌐 Portal Health Analyzer
An XrmToolBox plugin that inventories a Power Pages website's configuration and scores its
health from metadata alone — broken page/template relationships, dead web files, missing or
duplicate site settings, broken data bindings, and anonymous-access/over-broad-permission risks —
across both the adx_ and mspp_ (enhanced data model) schemas. Read-only: it never creates,
updates, or deletes.
Features
| Area | What it checks |
|---|---|
| Website discovery | Lists every Power Pages website in the environment (adx_website + mspp_website) with a schema badge ([adx] / [mspp]); remembers your last selection |
| Configuration summary | Retrieves settings, roles, permissions, pages, templates, snippets, forms, lists, web files and redirects in one pass; shows counts per record type with the active schema labelled |
| Structural integrity | Web pages with a missing parent, no page template, or a dangling template reference → High; inactive pages/templates → Medium; web files referenced but absent → High |
| Data bindings | Basic/entity forms and entity lists bound to a non-existent or disabled Dataverse table → High (existence resolved via metadata) |
| Site settings | Missing required (baseline) site settings → High; duplicate/conflicting settings within a website → Medium (showing the conflicting values) |
| Security surface | Anonymous read/write/delete grants → per-permission High plus a Critical roll-up (pointing to the Portal Security Scanner for deep analysis); over-broad Global-scope permissions → Medium |
| Health score | Weighted severities produce a 0–100 score with a Low/Medium/High band (any Critical forces High); every actionable finding carries a plain-language recommendation |
Findings describe configuration risk, not live availability — scoring is metadata/static analysis only, with no runtime page hits.
Exports
The health report exports off the UI thread to:
- Excel workbook
- PDF report
- Word document
- JSON
- CSV
- HTML (self-contained)
Help & Support
A Help button on the right of the toolbar opens a Help & Support dialog with Documentation,
Report an issue, and a support link, each opened in your browser. The tool implements
IHelpPlugin and IGitHubPlugin, so XrmToolBox's own tool-menu links resolve to the same GitHub
project (kkora/XrmToolSuite).
Build & install
Fastest path — build straight into your local XrmToolBox on the same machine:
dotnet build src\Tools\XrmToolSuite.PortalHealthAnalyzer\XrmToolSuite.PortalHealthAnalyzer.csproj -c Release -p:DeployToXTB=true
This is not a single-DLL tool: it ships the Excel/PDF/Word export dependency chain (ClosedXML +
PdfSharp/MigraDoc-GDI). The one-step build copies the tool DLL and its dependency DLLs into the
XrmToolBox Plugins root (never a subfolder, or XrmToolBox silently drops the tool). For manual
distribution and troubleshooting, see ./DEPLOYMENT.md and the suite guide
Deployment_Guide_XrmToolBox.md. Restart XrmToolBox and
open Portal Health Analyzer.
Usage
- Connect to the environment hosting the portal (System Customizer or higher recommended).
- Load the website list and pick the site to analyze (its schema is detected automatically).
- Run the analysis to retrieve the configuration inventory and compute the health score.
- Review the summary cards and the categorized issue grid (severities + recommendations).
- Export to Excel / PDF / Word / JSON / CSV / HTML to share.
Notes & limitations
- Read-only by default — the tool never creates, updates, or deletes portal configuration.
- Static analysis only — findings describe configuration risk from metadata; there are no runtime page hits, so results are not a live-availability check.
- Supports both
adx_andmspp_schemas; a table that isn't provisioned degrades to an informational finding and never throws. - All Dataverse access runs off the UI thread via
RunAsync/RetrieveAll; the SDK-free scoring model is deterministic and unit-tested (testing/UnitTests/PortalHealthAnalyzerTests.cs). - The security checks are a health-level summary; for deep portal security analysis use the Portal Security Scanner.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net48 is compatible. net481 was computed. |
-
- XrmToolBox (>= 1.2025.10.74)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2026.7.10 | 253 | 7/11/2026 |
| 1.2026.7.9 | 122 | 7/11/2026 |
| 1.2026.7.8 | 130 | 7/11/2026 |
| 1.2026.7.7 | 145 | 7/11/2026 |
| 1.2026.7.6 | 131 | 7/10/2026 |
| 1.2026.7.5 | 136 | 7/9/2026 |
| 1.2026.7.3 | 133 | 7/7/2026 |
1.2026.7.10: Package health - deterministic CI builds with SourceLink and embedded symbols (PDB inside the DLL), and the package now links its GitHub source repository. No functional change to any tool.