All Collections
Integrations
Adobe Experience Manager
Adobe Experience Manager - Technical details supplement
Adobe Experience Manager - Technical details supplement

Additional technical details to help support your specific AEM integration use case

Jessica Hamilton avatar
Written by Jessica Hamilton
Updated over a week ago

Given the wide variety of AEM deployment and implementation strategies, we've included further details on the AEM Assets ↔ Knak Integration to guide setup for your specific use case.

Access Requirements

To allow searching for Assets, Knak uses both the AEM Assets HTTP API and the AEM Query Builder API. The “endpoint URL” configured in Knak is the location where Knak will attempt to call these APIs. Contact Knak support if you need a list of IP addresses to whitelist for access.

Pointing to either a Publish instance or an Author instance is acceptable, but most commonly an Author instance URL is used. When using an Author instance, the URLs to publicly available assets are resolved as described next.

Asset Public URL construction

1. Using the “Public URL Prefix” configuration.

If the “Public URL Prefix” value is set for the integration, Knak will construct public URLs by appending the JCR path of the Asset to the prefix: <URL Prefix>/<JCRPath>.

For example if your assets are served publicly via a single host (such as a CDN), e.g. https://my.cdn.com/assets, and the jcr path is included in Asset URLs, e.g. https://my.cdn.com/assets/<jcr-path>.jpg, then you would set the “Public URL Prefix” to “https://my.cdn.com/assets” in Knak

2. Using JCR properties directly

If no “Public URL Prefix” is set, we use URLs provided by the Assets API and Search API directly. If we detect an author instance (e.g. port 4502 or https://author-* for cloud) we attempt to construct the corresponding URL for the publish instance by changing the port or URL host.

For customers who have a custom asset deployment methodology, we can also point to different JCR properties for your public URLs. Please contact Knak support with your use case.

Did this answer your question?