Skip to main content
Version: 2026.2

Configuration

The Studio Dashboards Bundle is configured under the pimcore_studio_dashboards key. All settings live in your Symfony configuration files (e.g. config/packages/pimcore_studio_dashboards.yaml) or in the Pimcore configuration directory for user-editable storage.

Widget Types

Control which widget types are available in the add-widget dialog:

pimcore_studio_dashboards:
widget_types:
- 'wysiwyg'
- 'notifications'
- 'recently_modified'
- 'last_changes'
- 'workflow_state_distribution'
- 'workflow_pending_items'

Remove an entry to hide that widget type for all users. Custom widget types added by third-party bundles are registered the same way - see Creating Custom Widgets.

Layout Options

Users choose a layout when adding a new row to a dashboard. Each layout defines a grid structure as a named set of CSS-grid cell definitions:

pimcore_studio_dashboards:
layout_options:
layout_default:
rows: 3
columns: 8
items:
- { id: 1, col_span: 2, row_span: 1, col_start: 1, row_start: 1 }
- { id: 2, col_span: 2, row_span: 2, col_start: 1, row_start: 2 }
- { id: 3, col_span: 6, row_span: 3, col_start: 3, row_start: 1 }
FieldDescription
rowsTotal number of rows in the grid
columnsTotal number of columns in the grid
items[].idWidget slot identifier (referenced in dashboard configs)
items[].col_spanHow many columns the slot spans
items[].row_spanHow many rows the slot spans
items[].col_startStarting column (1-based)
items[].row_startStarting row (1-based)

The bundle ships with five pre-defined layouts (layout_default, layout_1layout_4). Add new entries to offer additional layout options to users.

Managing Dashboards in the Studio UI

Dashboards and widgets are primarily managed directly in Pimcore Studio - no YAML configuration is required for day-to-day use:

  • Dashboards - create, rename, and delete dashboards from the dashboards menu.
  • Rows and layouts - add rows to a dashboard by picking one of the configured grid layouts (see Layout Options) and rearrange widgets via drag and drop.
  • Widgets - add widgets through the add-widget dialog: select a widget type, a visualization, and fill in the type-specific configuration form. Existing widgets can be edited or removed at any time.
  • Sharing - share dashboards globally or with specific users/roles. All editing features are gated by the permission set described in Installation (view, edit, edit_all, share, export, import).
  • Menu shortcuts - pin dashboards as quick-access items in the navigation bar.
  • Export / Import - export a dashboard as a ZIP archive and re-import it on another instance.

Changes made in the UI are saved through the Studio API to the configured write target of the underlying LocationAwareConfigRepository (the settings store by default, or the Pimcore configuration directory) and are merged at read time with any YAML-defined configuration. Dashboards and widgets defined in read-only YAML locations are not editable in the UI. See Configuration Storage for the storage locations.

Widget-Specific Configuration

Each built-in widget type stores its per-widget configuration in the Pimcore configuration directory. The <widget-id> key in the examples below is a unique identifier for the widget instance - use a UUID v4 (e.g. 1f063aa2_615c_6edc_bc45_a174d6b82eb6) or any string that is unique within the type. This ID must match the id field in the dashboard definition row's widget list.

The following options are available when pre-configuring widget instances via YAML.

WYSIWYG Widget

pimcore_studio_dashboards:
wysiwyg_widgets:
<widget-id>:
wysiwyg: "<p>HTML content shown in the widget</p>"
name: "My Note"
icon:
type: name # 'name' for icon identifier, 'path' for custom image path
value: info
color: White
visualization: null

Notifications Widget

pimcore_studio_dashboards:
notifications_widgets:
<widget-id>:
page: 1
pageSize: 50
dateFilterValue: null
dateFilterOperator: null
senderFilter: null
typeFilter: null
onlyUnread: false
name: "My Notifications"
icon:
type: name
value: bell
color: White
visualization: null

Recently Modified Widget

pimcore_studio_dashboards:
recently_modified_widgets:
<widget-id>:
elementType: asset # 'asset', 'document', or 'data-object'
name: "Recently Modified Assets"
icon:
type: name
value: folder
color: White
visualization: null

Last Changes Widget

pimcore_studio_dashboards:
last_changes_widgets:
<widget-id>:
showAssets: true
showDataObjects: true
showDocuments: true
name: "Last 30 Days"
icon:
type: name
value: history
color: White
visualization: line_chart # 'table' or 'line_chart'

Workflow State Distribution Widget

Shows how many elements currently sit in each place (state) of a workflow, rendered as a donut chart.

pimcore_studio_dashboards:
workflow_state_distribution_widgets:
<widget-id>:
workflowName: my_workflow # required - name of a configured Pimcore workflow
elementType: null # null (all), 'asset', 'document', or 'data-object'
name: "Workflow Overview"
icon:
type: name
value: workflow
color: White
visualization: donut_chart

Workflow Pending Items Widget

Lists the elements that are currently pending in a specific workflow place (state) as a table. The key column links to the element, and pending items can be transitioned in bulk directly from the widget.

pimcore_studio_dashboards:
workflow_pending_items_widgets:
<widget-id>:
workflowName: my_workflow # required
stateName: review # required - the workflow place to list
elementType: null # null (all), 'asset', 'document', or 'data-object'
limit: 10 # maximum number of rows, integer >= 1
pathColumn: fullPath # 'fullPath' or 'objectKey'
name: "Pending Review"
icon:
type: name
value: workflow
color: White
visualization: table

Custom Reports Widget

The Custom Reports widget is enabled automatically when PimcoreCustomReportsBundle is present. No additional configuration is needed. Any published Custom Report is available for selection in the widget configuration dialog.

Data Quality Widgets

The data_quality_score, data_quality_worst_offenders, and data_quality_violations widget types are provided by PimcoreDataQualityManagementBundle and become available automatically when that bundle is installed. They are configured under the bundle's own pimcore_data_quality_management configuration root - see the Data Quality Management Bundle dashboards documentation for the widget descriptions and configuration options.

Configuration Storage

Widget configurations and dashboard definitions are stored via Pimcore's LocationAwareConfigRepository, which supports reading from YAML files and writing back to the Pimcore configuration directory. The storage locations are:

DataDefault path
Dashboard definitionsvar/config/studio_dashboards/
WYSIWYG widget configsvar/config/studio_dashboards_widgets/wysiwyg_widgets/
Notifications widget configsvar/config/studio_dashboards_widgets/notifications_widgets/
Recently Modified widget configsvar/config/studio_dashboards_widgets/recently_modified_widgets/
Last Changes widget configsvar/config/studio_dashboards_widgets/last_changes_widgets/
Workflow State Distribution widget configsvar/config/studio_dashboards_widgets/workflow_state_distribution_widgets/
Workflow Pending Items widget configsvar/config/studio_dashboards_widgets/workflow_pending_items_widgets/
Custom Reports widget configsvar/config/studio_dashboards_widgets/custom_reports_widgets/

Commit these YAML files to version control for reproducible setups. Storage paths are overridable via Symfony configuration - see Pimcore's LocationAwareConfigRepository documentation for details.