IFrame
Embed an external app inside a Liferay page.
# 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
- 01Set
url:to the app you want embedded (usually served by another host). - 02Optionally give the iframe a friendly URL and a category.
- 03Deploy — users add the iframe widget to a page like any other widget.
# required fields
| field | type | description |
|---|---|---|
urlrequired | string | URL rendered inside the iframe. |
# optional fields
| field | type | description |
|---|---|---|
name | string | Display name. |
friendlyURLMapping | string | Friendly-URL prefix. |
instanceable | boolean | Allow multiple iframe instances per page. |
portletCategoryName | string | Menu category. |
# example
client-extension.yaml
my-external-app:
type: iframe
name: External Analytics
url: https://analytics.example.com/dashboard
friendlyURLMapping: analytics