Concepts
Site-based Host Configuration
Each OpenDXP site can be individually configured for the headless bundle via the site's Additional Settings in the admin panel. The Headless scope provides three settings:
| Setting | Type | Description |
|---|---|---|
| General Domain | Checkbox | Marks this site as the general domain used across the application. Only one site should be marked at a time. |
| Flush Frontend Cache | Checkbox | When enabled, a cache flush request is sent to this site's frontend whenever content is saved (documents, data objects, assets, translations). |
| Asset Base URI | Text | A base URL prepended to all asset paths for this site. Overrides the global assets.host setting. |
General Domain
Mark exactly one site as the General Domain. The headless bundle reads this site's main domain and uses it as the application's base host wherever a general domain is needed. The value is cached and automatically cleared when site settings change.
Asset Base URI
Every asset path in API responses gets a base URL prepended to it. The bundle resolves the asset base URI in the following order:
- Context site – if the current request has a headless context site, its Asset Base URI setting is used (falling back to the global
assets.hostif not set on the site). - Global
assets.host– if no context site is available butassets.hostis configured, that value is used directly. - General Domain site – if no context site is available and
assets.hostis not configured, the site marked as General Domain is used as a fallback source for its Asset Base URI. null– if none of the above apply, no base URI is prepended.
See Asset Routing for the global
assets.hostconfiguration.
Flush Frontend Cache
Sites with Flush Frontend Cache enabled receive a request to their frontend whenever content is saved. The full URL is built from the site's main domain and the globally configured path:
https://{site.mainDomain}{api_flush_cache_trigger.path}
Multiple sites can be enabled at the same time — each gets its own request.
The HTTP method and API key come from the global api_flush_cache_trigger bundle configuration.
See Flush API Cache Trigger for configuration details.