Studio Dashboards
The Data Quality Management bundle integrates with the Pimcore Studio Dashboards Bundle and ships dashboard widgets that visualize data quality information on a Studio dashboard.
The dashboards integration is only active when the Studio Dashboards Bundle is installed. Without it, the bundle works as usual and registers no widgets; there is no hard dependency between the two bundles.
Add the widgets from the dashboard's Add widget dialog under the Data Quality entries.
Widget types
| Widget | Type (backend enum) | Visualizations | Configuration |
|---|---|---|---|
| Data Quality Score | data_quality_score | Single value, Bar chart | Check (class::field) |
| Data Quality Worst Offenders | data_quality_worst_offenders | Table | Check (class::field), identifier column, limit |
| Data Quality Rule Violations | data_quality_violations | Bar chart | Class |
All widget data comes from the database, so it always reflects the current stored gradings; no index refresh is required.
Data Quality Score
Shows the overall data quality for a single check.
- Single value - the average quality score as a percentage.
- Bar chart - the distribution of objects across the rating marks (
A/B/C/D). Every configured mark is always rendered, even at a count of0, so the distribution stays consistent.
Clicking a bar opens the object grid filtered to that mark; see Drill-down. Objects without a stored score are excluded from both the average and the distribution.
Data Quality Worst Offenders
Lists the lowest-scoring objects for a single check as a table.
- Identifier column - choose whether the row identifier is the object
pathorkey. - Limit - the maximum number of rows to display. The widget dialog offers
5,10,20and50, and defaults to10. A limit set directly in YAML is capped at200.
Objects without a stored score, and objects with a perfect score for the check, are excluded from the list.
Data Quality Rule Violations
Shows, for a whole class, one bar per failing rule check. Bar height is the number of objects failing that check; bars are sorted by count. Each bar's color reflects the check's failure rate mapped through the same score ranges as object-level scores: a check failing on few objects gets a good mark, one failing on most objects gets a poor mark.
Clicking a bar opens the object grid restricted to exactly the objects failing that check; see Drill-down. See Limitations for the drill-down cap behavior.
Drill-down
The Score and Rule Violations widgets are interactive: clicking a bar opens the native Studio object grid, pre-filtered to the relevant objects.
- The Score widget filters the grid by the clicked rating mark.
- The Rule Violations widget restricts the grid to the pre-computed failing object ids for that check (using
the built-in
system.idscolumn filter; no PQL is involved).
Saved grid template
Each interactive widget can reference a saved grid configuration (a global grid template of the target class). When set, the drill-down grid opens with that template's columns instead of the default columns. Select the template in the widget configuration dialog ("Saved template"); leaving it empty uses the default grid columns.
Limitations
- The widgets are only available when the Studio Dashboards Bundle is installed (optional dependency).
- Rule Violations drill-down cap: for payload and performance reasons, the number of object ids collected per check for the drill-down is capped; see Increasing the drill-down limit. When a check fails on more objects than the cap, the collected id set would be incomplete, so the drill-down is disabled for that bar (its tooltip flags it as disabled, and clicking it shows an explanatory message instead of opening a partial grid). The full failing count is still shown on the bar either way.
Increasing the drill-down limit
The Rule Violations drill-down cap is configurable. The full failing count is always reported; only the number of collected object ids (and therefore whether the drill-down stays enabled) is affected.
pimcore_data_quality_management:
dashboards:
# Maximum number of object ids collected per check for the Rule Violations drill-down.
# Default: 1000. Minimum: 1.
violation_drilldown_limit: 5000
Raising this value allows drilling into larger result sets, but increases the widget payload size and the amount of data scanned per request. Increase it deliberately, based on data volume.
Storage location
Widget configurations are stored using Pimcore's location-aware configuration, so each widget type can write to
either Symfony config files (var/config/...) or the settings store. Configure this per widget type under the
config_location node:
pimcore_data_quality_management:
config_location:
data_quality_score_widgets:
write_target:
type: 'settings-store' # 'symfony-config', 'settings-store', or 'disabled'
data_quality_worst_offenders_widgets:
write_target:
type: 'settings-store'
data_quality_violations_widgets:
write_target:
type: 'settings-store'
Valid type values are symfony-config (YAML files under var/config, the default), settings-store
(database), and disabled (prevents editing the widget configuration through Pimcore Studio; the configuration
stays fixed at whatever is defined in YAML). This mirrors the approach used by other Pimcore bundles that persist
Studio Dashboards configuration.