Matthew Slim
Jun 2, 2023
visibility 3955
star star star star star star
(2 votes)

Caching & Rendering of metadata from the DAM

For the EPiServer.Cms.WelcomeIntegration.UI 1.2.0 release, we have facilitated the ability to cache and render metadata from assets within the DAM.

We have enabled the retrieval of metadata for assets from Welcome's DAM via a C# API. This allows the metadata to be utilised to determine how the asset is rendered in the delivery site.

We have also enabled caching of the metadata, so in the event where the Welcome DAM library may be temporarily unavailable, as long as the metadata has been cached, it can still be used to establish how the asset is to be rendered in the delivery site. By default, caching has been set to a time period of 10 minutes, but the option to confiugure this is available.

The existing Welcome DAM asset picker integration has not changed, and when new attributes have been added in the Welcome DAM and are included in the metadata, it will be available in the API without any necessary code changes.

Configuration

Pre-requisite: Install Optimizely.Cmp.Client

We've added a second, optional parameter to the AddDAMUi method where you have to provide the credentials as shown in the picture below.

You can also provide the Client ID and Client Secret via appsettings.json, as the second parameter is an Options configuration - CmpClientOptions

To use this feature, there are three possible options:

  1. Use the provided C# service to get the metadata from Welcome by injecting the IDAMAssetMetadataService where you wish to use it.
    • The IDAMAssetMetadataService contains one method, GetAssetMetadata(Guid id) which can be used to retrieve metadata from Welcome using the GUID of a specific asset. This GUID can be found within the information dialog of any asset in Welcome.
  2. Use our HtmlHelper extension method, RenderTagWithMetadata which will render an appropriate HTML tag, based on what the asset being retrieved is.
    • To use it, you have to import @using EPiServer.Cms.WelcomeIntegration.UI.Helpers; inside a .cshtml page of choice, as well as use the page model which contains a ContentReference property
    • Then, call the @await Html.RenderTagWithMetadata(x => x.YourWelcomeContentReference) with an expression which provides a ContentReference. This ContentReference should be linked to a Welcome Asset
    • Your page should now render either an image, a video or a link to the supported file with the respective metadata attached to the HTML tag
  3. Use our TagHelper called DAMAssetTagHelper which does the same thing as above, but is used a bit differently
    • To use it, first add the tag helper in your _ViewImports.cshtml file:@addTagHelper *, EPiServer.Cms.WelcomeIntegration.UI
    • Add <dam-asset content-reference="@Model.YourWelcomeContentReference"/> to your .cshtml page of choice
    • Your page should now render either an image, a video or a link to the supported file with the respective metadata attached to the HTML tag

Note:

  • We currently support images, videos and some files, such as PDFs, Word Documents, Excel Spreadsheets, Zip and 7Zip files. In the case of files, an anchor tag will be rendered to link to that specific file.
  • Currently, this is only supported in CMS 12.

Example

Quick example with HtmlHelper and TagHelper on Alloy site:

End result:

Jun 02, 2023

Comments

Hadi
Hadi Nov 6, 2024 03:21 AM

Hi,

I have tried both following HtmlHelper and TagHelper, however both don't pull the alt text for the DAM image I set in CMP?

Can you please confirm ? Thanks.

@await Html.RenderTagWithMetadata(x => x.YourWelcomeContentReference) 

<dam-asset content-reference="@Model.YourWelcomeContentReference"/>

Thanks,

Hadi

error Please login to comment.
Latest blogs
Architecting an Enterprise-Grade Development Pipeline in Optimizely SaaS CMS

Most enterprise teams show up to Optimizely SaaS CMS with a clear roadmap for their release pipeline: DEV → QA → Stage → Prod. Four logical...

Vipin Banka | Jul 12, 2026

Bynder DAM Connector for Optimizely SaaS CMS: Improved Metadata Property Synchronization

While working with the Bynder DAM Connector for Optimizely SaaS CMS , one of the key areas I explored was how Bynder asset metadata is synchronized...

Vipin Banka | Jul 11, 2026

Optimizely DXP: Every Supported Culture, One Searchable Page

Quick one for anyone building multi-language sites on Optimizely DXP. I put together a reference tool listing all 806 supported cultures. More...

Adnan Zameer | Jul 10, 2026 |

A day in the life of an Optimizely OMVP: London Meetup 2026

On 2nd July 2026 the Optimizely London Developer Meetup returned to The Lightwell, and the running theme across the evening was less about individu...

Graham Carr | Jul 10, 2026

Optimizely’s Summer ’26 Roadmap: The CMS Is Starting to Look Less Like a Publishing Tool and More Like Marketing Infrastructure

Optimizely’s Summer ’26 Product Roadmap event was not just a list of product updates. At least, that is not the part I found most interesting. The...

Augusto Davalos | Jul 9, 2026

Optimizely Content JS SDK v2.1.0 — What's New and Why It Matters

  v2.1.0 of the Optimizely Content JS SDK and CLI landed on July 7, 2026. This is a substantial release bringing a wave of capabilities for...

Vipin Banka | Jul 8, 2026