Studio Dashboards
Data Quality Management Bundle integrates with the Pimcore Studio Dashboards Bundle and ships a set of dashboard widgets that visualize data quality information directly on a Studio dashboard.
Optional dependency: The dashboards integration is only active when the Studio Dashboards Bundle is installed. If it is not present, the bundle works as usual and simply does not register any widgets — there is no hard dependency between the two bundles.
The widgets are added 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 is read from the database, so it always reflects the current stored gradings (no index refresh 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 when its count is0, 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 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 (default
10).
Objects without a stored score are not listed.
Data Quality Rule Violations
Shows, for a whole class, one bar per failing rule check. The bar height is the number of objects that fail that check; bars are coloured by the derived rating mark and sorted by count.
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 behaviour.
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 of 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. The template is selected 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 id set would be incomplete, so the drill-down is disabled for that bar.
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
Note: Raising this value lets larger result sets be drilled into, but increases the widget payload size and the amount of data scanned per request. Increase it deliberately based on your data volume.
Storage location
Widget configurations are stored via Pimcore's location-aware configuration, so you can choose whether they are
written to Symfony config files (var/config/...) or to the settings store. This is configured per widget type
under the config_location node:
pimcore_data_quality_management:
config_location:
data_quality_score_widgets:
write_target:
type: 'settings-store' # or 'symfony-config'
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) and settings-store (database).
This mirrors the approach used by other Pimcore bundles that persist Studio Dashboards configuration.