docs/en/low-code/health.md
//[doc-seo]
{
"Description": "Review the ABP Low-Code model health snapshot to inspect entities, pages, forms, page groups, permissions, and script assets before publishing runtime changes."
}
The Health section in the Low-Code Designer is a selected-layer readiness view. It helps you review the resolved low-code model for the currently selected layer before publishing changes or relying on the generated runtime pages.
Health works on the resolved view of the selected layer, not on raw JSON files. In practice, this means it shows the selected layer after lower-layer inheritance and descriptor materialization have been applied. It does not silently merge unrelated edits from another layer. To review runtime-only overrides, switch the Designer to Runtime JSON or use the runtime-focused MCP Integration workflow.
The health snapshot is a combined view of the current low-code model in the selected layer. It includes:
This makes Health the best place to review cross-descriptor relationships instead of checking each designer tab in isolation.
Health is most useful for selected-layer consistency problems that often appear only after several descriptors start referencing each other.
Typical problem classes include:
groupByProperty, a calendar page using invalid date or time fields, or a gallery page pointing to a non-image propertySome of these issues are also enforced by runtime validation and mutation rules. Health gives you a selected-layer review point before users discover the problem in the runtime UI.
Use Health in these moments:
If you automate low-code changes through MCP Integration, re-read the health snapshot after apply and treat that review as part of the success criteria.
Health is not a replacement for source-controlled file validation.
When you edit _Dynamic/model/**/*.json directly:
dotnet run --project <startup-project> -- --check-lowcode-model-files
The file checker catches JSON and category-level problems. Health complements it by helping you inspect the resolved model after descriptors, references, permissions, pages, and forms are all combined.
A useful example is form layout drift: a descriptor can still pass --check-lowcode-model-files while a source-controlled form renders with no visible fields because its layout placements are stale. Health and runtime preview are the places to catch that class of issue.