Deactivate and delete expired assets

sagarkmr09 28-08-2019


Is there a way to deactivate and delete the asset as soon as its expired i.e. the assets reaches the expiry date set for the asset?



Mark Solution

Are these answers useful?
Help other community members by marking useful answers as accepted.

Accepted Solutions (0)

Answers (3)

Answers (3)

himanshusinghal 29-08-2019

Digital Rights Management in Assets

Have you tried setting up the "Adobe CQ DAM Expiry Notification".

As per official documentation, if the configuration is set, the scheduler runs a check and deactivate the expired assets. However, it doesn't delete the assets and I don't think it does delete OOTB. For that you'll have to write custom code.

theop76211228 28-08-2019


An expired asset is deactivated when is passes it's expiry date: "[...] ensures that the published asset is unpublished when it expires" (Digital Rights Management in Assets).

To delete the assets, you will have to create a workflow that finds all expired assets using a query, and deletes those nodes. Here is a query to find all assets expired at a given date (JCR SQL-2 does not have a DATE() function to get the current date, you will have to supply this date in Java):

SELECT asset.* FROM [dam:Asset] AS asset

INNER JOIN [dam:AssetContent] AS jcrContent ON ISCHILDNODE(jcrContent, asset)

INNER JOIN [nt:unstructured] as metadata ON ISCHILDNODE(metadata, jcrContent)

WHERE ISDESCENDANTNODE(asset, '/content/dam')

AND NAME(metadata) = 'metadata'

AND metadata.[prism:expirationDate] <= CAST('2019-08-28T23:59:59.999Z' AS DATE)

You can run this query now by going to CRXDE > Tools > Query, selecting SQL2, pasting the query in the text area and clicking execute:

Peek 2019-08-28 22-48.gif