Installation of the version management feature
Requirements
Plugin PACKAGED_Versions
This plugin holds all the services needed for the correct execution of the version management feature and thus needs to be activated on a project that wants to use the feature.
Structure
The version management feature is available only for assets with a workcopy-compliant structure. An asset structure is considered workcopy-compliant if it includes the following properties:
Property | Type | Description |
---|---|---|
| Child → #self | References the current version of the asset to replace. |
| Text | Unique identifier linking asset versions in the format |
| Integer | Indicates the version number. |
These properties can be verified in the Wizards tab of the object structure administration interface.
Additionally, for identifying archived versions, a new property has been added:
Property | Type | Description |
| Word | Stores version-related data, such as the reason for archiving (e.g., obsolete). |
Configuration
Display Setup
The version management feature is accessible from the Versions tab on the asset detail page.
To configure the tab display, use the following entry point:
$.common.namedDisplays.defaultAssetDetailTabVersions
By default, this configuration is included in the tab settings delivered via:
$.common.namedDisplays.defaultAssetDetailMeta.column.tabs
Security Configuration
The tab’s visibility depends on its security configuration:
Entry Point:
defaultAssetDetailTabVersions.security
Default Security Domain:
["objectdata/insert"]
This default setup ensures the Versions tab is visible to users allowed to create instances. Additional security domains include:
objectactions/create
objectactions/multiupdate
objectactions/delete
objectactions/view
objectactions/changestatus
If multiple security domains are specified, the user must be granted all listed permissions to see the Versions tab.
Actions on Versions
The available actions depend on the version type and user permissions:
Draft Version
Preview & Edit: Allowed if the user can edit the instance.
Delete: Allowed if the user can delete the instance.
Publish: Accessible through the preview interface if the user has permission to execute a workflow action transitioning the instance to an online status.
Archived Version
Preview: Allowed if the user can edit the instance.
Delete: Allowed if the user can delete the instance.
Restore: Possible if the user has permission to transition the asset from archived to online status.
Current Version
No actions are available in the Versions tab. Related actions are accessible from the header section.
Version Identification
In certain situations, such as security assessments or base evaluations, it may be helpful to distinguish between the different types of versions. The table below describes how to do this:
Version Type | Description | Key Characteristics |
---|---|---|
Current Version | The active version of an asset. |
|
Draft Version | Represents the initial state of a new version. |
|
Archived Version | Represents past current versions, replaced by a draft version. |
|
Miscellaneous features
Tag: pkg/versions/keep/on/publish
The tag pkg/versions/keep/on/publish
identifies fields that must be retained when an instance is replaced by a new version.
Example:
Asset X (current version) is assigned to sections A and B.
A new draft version of X is created, retaining sections A and B.
While the draft is being worked on, Asset X is assigned to a new section C.
This assignment does not affect the draft version.
Result: After publishing the draft version, section C remains assigned due to the retention tag.
Filtering Archived Versions on the Frontend
Archived versions are hidden by default via the PACKAGED_Versions plugin. They are filtered when using these API endpoints:
api/rest/dam/asset
(ASSET)api/rest/dam/data/asset
(SEARCH)api/rest/dam/data/asset1,asset2
(TOPSEARCH)api/rest/dam/asset/aggs
(ASSET_AGGS)api/rest/dam/data/aggs/asset1,asset2
(MULTI_AGGS)
Customization Tip: Extend the APIBaseWhereBusinessServiceAdapter
using the versionsdata
field to filter additional endpoints as needed. Alternatively, consider submitting a product enhancement request.