Skip to main content

DAM Bundle

Requirements

  • OpenDxp Core >= 1.0
  • OpenDxp Headless Bundle >= 1.0
  • OpenDxp Dynamic Search Bundle >= 1.0
  • OpenDxp Toolbox Bundle >= 1.0

Install

Install / Upgrade

Require the bundle

composer require open-dxp/dam-bundle
  • Extend the config/bundles.php file:
return [
// ...
OpenDxp\Bundle\DamBundle\OpenDxpDamBundle::class => ['all' => true],
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
];

Installation

This will install permissions, classes, translations and add the extra db structure.

Execute: $ bin/console opendxp:bundle:install OpenDxpDamBundle Execute: $ bin/console doctrine:migrations:migrate --prefix 'OpenDxp\Bundle\DamBundle\Migrations'

Upgrade

  • Execute: $ bin/console doctrine:migrations:migrate --prefix 'OpenDxp\Bundle\DamBundle\Migrations'

Setup

User Class

Add OpenDxp\Bundle\DamBundle\Model\ApiDamUser as parent class to your existing User Dataobject class.

Required Parameters

parameters:
index_stack_media_list: 'dam_media_%kernel.environment%'
os_hosts:
- 'http://localhost:9200'
os_credentials: [ ]

Example Configuration

# config/packages/opendxp_dam.yaml
opendxp_dam:
dynamic_search:
index_stack:
-
search_type: !php/const OpenDxp\Bundle\DamBundle\DynamicSearch\SearchTypes::DAM_MEDIA_LIST
index: '%index_stack_media_list%'
security:
openid:
enable_user_refresh_check: false
remote_route_after_handshake: 'azure_token_handover'
user_storage_folder_path: '/dam/user'
#required_roles: []
required_groups:
- '%env(string:default::DAM_GROUP_ID)%'
assigned_groups:
- 'my_dam_group_identifier'

Azure Configuration

# .ddev/.env or server .env
DAM_AZURE_TENANT=12345678-1234-1234-1234-123456789012
DAM_AZURE_CLIENT_ID=12345678-1234-1234-1234-123456789012
DAM_AZURE_CLIENT_SECRET=12345678-1234-1234-1234-123456789012

Predefined Properties

Note: These properties will be installed automatically (See Section "Installation").

# var/config/predefined_properties/dam_asset_poster.yaml
opendxp:
properties:
predefined:
definitions:
dam_asset_poster:
name: 'DAM: Asset Poster'
description: 'Use this Property to define a Preview Image for given Asset'
key: dam_asset_poster
type: asset
data: ''
config: ''
ctype: asset
inheritable: false
creationDate: 1769169718
modificationDate: 1769169753
# var/config/predefined_properties/dam_is_collection.yaml
opendxp:
properties:
predefined:
definitions:
dam_is_collection:
name: 'DAM: Is Collection'
description: 'Use this Property on given Folder to promote it as Collection'
key: dam_is_collection
type: bool
data: ''
config: ''
ctype: asset
inheritable: false
creationDate: 1769169668
modificationDate: 1769169772
# var/config/predefined_properties/dam_collection_name.yaml
opendxp:
properties:
predefined:
definitions:
dam_collection_name:
name: 'DAM: Collection Name'
description: 'Use this Property on given Folder to define a Collection Name'
key: dam_collection_name
type: text
data: ''
config: ''
ctype: asset
inheritable: false
creationDate: 1769169668
modificationDate: 1769169772
# var/config/predefined_properties/dam_folder_name.yaml
opendxp:
properties:
predefined:
definitions:
dam_folder_name:
name: 'DAM: Folder Name'
description: 'Use this Property on given Folder to define a nice Name'
key: dam_folder_name
type: text
data: ''
config: ''
ctype: asset
inheritable: false
creationDate: 1769169668
modificationDate: 1769169772

Worker Message Translations

Note: Translation will be installed automatically (See Section "Installation").

Translation keys used for worker job messages (success info, warnings, errors).

KeyParametersDEEN
opendxp.dam.worker.assets_skippedskipped, total%skipped% von %total% Assets wurden übersprungen (fehlende Download-Berechtigung)%skipped% of %total% assets were skipped (missing download permission)
opendxp.dam.worker.error.authentication_requiredAuthentifizierung erforderlichAuthentication required
opendxp.dam.error.permission_deniedpermission, assetIdBerechtigung "%permission%" verweigert für Asset %assetId%Permission "%permission%" denied for asset %assetId%
opendxp.dam.error.asset_not_foundassetIdAsset mit ID "%assetId%" nicht gefundenAsset with ID "%assetId%" not found
opendxp.dam.error.collection_not_foundcollectionId, type%type% mit ID "%collectionId%" nicht gefunden%type% with ID "%collectionId%" not found
opendxp.dam.error.worker_processing_failedjobIdVerarbeitung des Jobs "%jobId%" fehlgeschlagenProcessing of job "%jobId%" failed
opendxp.dam.error.no_processor_foundpayloadClassKein Processor für Payload "%payloadClass%" gefundenNo processor found for payload "%payloadClass%"
opendxp.dam.error.invalid_data_objectUngültiges DatenobjektInvalid data object
opendxp.dam.error.exceptionmessageEin Fehler ist aufgetreten: %message%An error occurred: %message%

Reset

$ bin/console dynamic-search:os:rebuild-index-mapping -c opendxp_dam_media

Upgrade Info

Before updating, please check our upgrade notes!

License

DACHCOM.DIGITAL AG, Löwenhofstrasse 15, 9424 Rheineck, Schweiz
dachcom.com, [email protected]
Copyright © 2026 DACHCOM.DIGITAL. All rights reserved.

For licensing details please visit LICENSE.md