cx-composer--for=liferay

IFrame

Embed an external app inside a Liferay page.

type: iframe·Frontend·Liferay docs →

# description

Wraps a URL in an `<iframe>` and exposes it as a Liferay widget. The fastest path to embedding a third-party or legacy app without touching Liferay code. Use IFrame when the embedded app is fully external and you only need a container — no cross-frame styling, no shared authentication (SSO is required separately for that). If you're shipping actual JavaScript that runs inside Liferay's page, use `customElement` instead: Custom Element allows shared styling, direct DOM access, and cheaper rendering.

UI extensions that render on Liferay pages or modify page appearance.

# when to use

  • You have an external app you want reachable from Liferay pages without SSO / integration work.
  • You need to prototype a widget-shaped surface before committing to a Custom Element rewrite.
  • Content is fully external and you just need a container.

# how to use

  1. 01Set url: to the app you want embedded (usually served by another host).
  2. 02Optionally give the iframe a friendly URL and a category.
  3. 03Deploy — users add the iframe widget to a page like any other widget.

# required fields

fieldtypedescription
urlrequiredstringURL rendered inside the iframe.

# optional fields

fieldtypedescription
namestringDisplay name.
friendlyURLMappingstringFriendly-URL prefix.
instanceablebooleanAllow multiple iframe instances per page.
portletCategoryNamestringMenu category.

# example

client-extension.yaml
my-external-app:
    type: iframe
    name: External Analytics
    url: https://analytics.example.com/dashboard
    friendlyURLMapping: analytics

# more in frontend