Installation
Headless Documents is an enterprise bundle. It requires a Pimcore enterprise subscription.
Prerequisites
The bundle requires Pimcore 2026.1 or later and PHP 8.4 or 8.5.
Datahub 2026.1.3 or later
is a Composer dependency. Composer pulls it in automatically, but Headless Documents does not register it as a
dependent bundle, so it must be enabled in config/bundles.php and installed on its own, see steps 2 and 3 below.
Installation Process
- Install the package:
composer require pimcore/headless-documents
- Enable the bundle in
config/bundles.php. Make surePimcoreDataHubBundleis listed beforePimcoreHeadlessDocumentsBundle:
use Pimcore\Bundle\DataHubBundle\PimcoreDataHubBundle;
use Pimcore\Bundle\HeadlessDocumentsBundle\PimcoreHeadlessDocumentsBundle;
// ...
return [
// ...
PimcoreDataHubBundle::class => ['all' => true],
PimcoreHeadlessDocumentsBundle::class => ['all' => true],
// ...
];
- Install Datahub, if it is not installed yet. Enabling it in
config/bundles.phponly loads it, it does not create theplugin_datahub_configpermission and the Datahub permission category that Headless Documents depends on:
bin/console pimcore:bundle:install PimcoreDataHubBundle
- Install the bundle:
bin/console pimcore:bundle:install PimcoreHeadlessDocumentsBundle
Datahub is required, not optional. The bundle registers itself as a Datahub adapter type only when the
pimcore_data_hub extension is present, but its service definitions always register a GraphQL document type that
depends on Datahub services. Running without the Datahub bundle leaves those container dependencies unresolved.
User Permissions
Access is checked on several levels, depending on what a user configures:
- Creating or editing headless document templates and bricks in Pimcore Studio requires the
pimcore_headless_documents_configpermission ("Headless Documents Configuration"), or anadminuser. It gates the Studio endpoints for both templates and bricks (tree, detail, create, update, delete, inline help) as well as the brick list. The template list endpoint is intentionally left ungated: the document configuration sidebar uses it to populate its template selector, so any Studio user can read the list of template names. - Opening the Datahub configuration panel at all requires the
plugin_datahub_configpermission, or anadminuser. This permission comes from Datahub and is shared with every adapter, including Headless Documents. - The installer adds
plugin_datahub_adapter_headlessDocuments("Datahub Adapter - Headless Documents") to the Datahub permission category. For a given Datahub configuration, this permission is only consulted as a fallback: if the configuration's own Permissions tab has no user or role entries, access falls back to whether the user holds this permission. As soon as the Permissions tab has at least one entry, only those entries are checked and the adapter-level permission is ignored for that configuration. Users withadminrights or theplugin_datahub_adminpermission always have access.
Access to an individual Datahub configuration (read, update, delete) is granted per user and role in its Permissions tab, see Configuration.
Upgrading
See Upgrade Notes for version-specific changes when updating an existing installation.