Skip to main content
Version: 2026.2

Upgrade Notes

Upgrade to 2026.1.0

PHP / Dependency Updates

  • Added support for PHP 8.5.
  • Removed support for PHP 8.3 and Symfony v6.

Removed ExtJS / Admin Classic UI

  • PimcoreDataHubWebhooksBundle no longer implements PimcoreBundleAdminClassicInterface and no longer uses BundleAdminClassicTrait.
  • The Admin Classic UI JavaScript and CSS assets have been removed:
    • js/pimcore/adapter/webhooks.js
    • js/pimcore/configuration/configItem.js
    • js/pimcore/configuration/gridConfigDialog.js
    • js/pimcore/configuration/workspace/asset.js
    • js/pimcore/configuration/workspace/document.js
    • js/pimcore/configuration/workspace/object.js
    • js/pimcore/configuration/workspace/nodeHelper.js
    • js/pimcore/configuration/components/logTab.js
    • css/icons.css
  • ConfigController has been removed (it served the ExtJS-based configuration UI).
  • StudioRouteLoader has been removed; Studio routes are now registered via the standard bundle configuration.

Messenger Transport DSN Rename

  • The messenger transport DSN is now configured via the %pimcore.messenger.transport_dsn_prefix% container parameter (previously %pimcore.messenger.transport_dsn%). If you override the transport DSN configuration, update your environment variable from PIMCORE_MESSENGER_TRANSPORT_DSN to PIMCORE_MESSENGER_TRANSPORT_DSN_PREFIX.

Classes Marked as @internal and/or final

The classes listed below are now marked as @internal, and all of them are also final unless noted otherwise. If you were extending or instantiating any of these directly, refactor to use composition, decoration, or event subscribers instead.

The public surface is unchanged: Processors\WebhookProcessorInterface, the Processors\DataExtractor\OutputFormatter interfaces, Event\Studio\PreResponse\ConfigurationDetailEvent, the Exception\* classes and the bundle class PimcoreDataHubWebhooksBundle are not marked @internal. PimcoreDataHubWebhooksBundle is final, so decorate or compose instead of subclassing it.

Controllers

  • Controller\Studio\Config\GetController
  • Controller\Studio\Config\TestSubscribersController
  • Controller\Studio\Config\UpdateController

DependencyInjection

  • Configuration
  • PimcoreDataHubWebhooksExtension
  • CompilerPass\EventConfigurationServicePass

EventListeners

  • EventListener\ElementDeleteEventListener
  • EventListener\ElementEventListener
  • EventListener\WorkflowEventListener

Installer

  • Installer

Logger

  • Log\WebhookLogger

Maintenance

  • Maintenance\QueueProcessingDispatchingTask

Messenger

  • Messenger\Handler\WebhookHandler
  • Messenger\WebhookMessage

Processors

  • Processors\AbstractWebhookProcessor (@internal, not final)
  • Processors\AssetWebhookProcessor
  • Processors\DataObjectWebhookProcessor
  • Processors\DocumentWebhookProcessor
  • Processors\WorkflowWebhookProcessor
  • Processors\DataExtractor\ElementDataExtractor (@internal, not final)
  • Processors\DataExtractor\OutputFormatter\Loader\TaggedIteratorOutputFormatterLoader
  • Processors\DataExtractor\OutputFormatter\Formatter\HotspotImageFormatter
  • Processors\DataExtractor\OutputFormatter\Formatter\ImageFormatter
  • Processors\DataExtractor\OutputFormatter\Formatter\ImageGalleryFormatter
  • Processors\DataExtractor\OutputFormatter\Formatter\VideoFormatter

Queue

  • Queue\QueueService

Services

  • Service\ConfigService
  • Service\Studio\ConfigurationService
  • Service\Studio\SubscriberTestService

Tools

  • Tool\AssetRelationFixer

Visibility Tightening

The following methods and properties had their visibility changed (e.g. protectedprivate, or made readonly). If you extended any of these classes, update your subclass accordingly:

  • WebhookHandler: constructor parameters are now private readonly.
  • QueueService: getDb(), getCurrentQueueTableOperationTime() and createQueueTableIfNotExisting() changed from protected to private.
  • WebhookLogger: $fileObject changed from protected to private; constructor parameter is now private readonly.
  • Installer::createAdapterPermission() changed from protected to private.

Update to Version 2.2

With this version and the Pimcore Studio integration, we introduced a new architecture for schema definitions. We are moving from the tree-based schema definition (also used in the grid configuration of the Admin Classic UI) to a pipeline-based approach (also used in Pimcore Studio grids). This change is driven by technical and maintenance considerations, as the tree-based implementation has limitations in terms of consistency, flexibility, and extensibility. The new architecture aligns with how Pimcore Studio grids work internally, streamlining the implementation across adapters and improving consistency, stability, and extensibility.

Existing configurations created in the Admin Classic UI remain functional and continue to execute without changes. However, a configuration must be fully migrated to the new pipeline-based format before it can be edited in Pimcore Studio. Migration must be done manually by following the steps provided in Pimcore Studio.

Read-only support for the legacy tree-based schema definitions will be removed in version 2027.1.0.

Update to Version 2.0

Pimcore\Bundle\DataHubWebhooksBundle\Configuration\Dao was removed and replaced by Pimcore\Bundle\DataHubWebhooksBundle\Service\ConfigurationServiceInterface.