Skip to main content
Version: 2025.4

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

WidgetType (backend enum)VisualizationsConfiguration
Data Quality Scoredata_quality_scoreSingle value, Bar chartCheck (class::field)
Data Quality Worst Offendersdata_quality_worst_offendersTableCheck (class::field), identifier column, limit
Data Quality Rule Violationsdata_quality_violationsBar chartClass

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 is 0, 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 path or key.
  • 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.ids column 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.