Embedding is available to all Lightdash Cloud users and Enterprise On-Prem customers. Get in touch to have this feature enabled in your account.
Standalone data app embedding is in early access and gated behind a feature flag. Contact Lightdash to enable it for your workspace.
Overview
Standalone data app embedding lets you render a data app on its own — no dashboard, no surrounding chrome — inside an iframe in your application. The app runs in the same sandboxed environment as it does in Lightdash, with every metric query proxied through Lightdash and authorized against the embed JWT. Use standalone embedding when you want to surface an entire data app as a feature in your product (for example, a customer-facing report or interactive narrative) rather than embedding it as one tile on a Lightdash dashboard.How it compares to other embed types
| Standalone data app | Data app tile on an embedded dashboard | Embedded chart | |
|---|---|---|---|
| Content | One data app, full screen | One data app inside a dashboard | One saved chart |
JWT content.type | dataApp | dashboard with canViewDataApps: true | chart |
| URL path | /embed/{projectUuid}/app/{appUuid} | /embed/{projectUuid} | React SDK only |
| Filters / tile chrome | None | Dashboard filters and tile chrome | None |
Setup
1. Enable the data app in embed settings
Open Settings → Embedding for your project and use the Allowed content section to authorize the data apps you want to embed:- Toggle Allow all data apps to permit any app in the project, or
- Add specific data apps to the allowlist.
2. Mint a data app JWT
Sign a JWT withcontent.type: 'dataApp' and the appUuid of the data app you want to embed. The JWT must be signed with your project’s embed secret.
dataApp token can only render the app named in its appUuid claim. It cannot be reused to render any other data app, chart, or dashboard.
3. Construct the embed URL
Data app embeds use the path/embed/{projectUuid}/app/{appUuid} with the JWT in the URL hash fragment:
4. Render the iframe
How access works
AdataApp JWT is intentionally narrow: it authorizes the named app for the named project and nothing else. In practice, this means:
- The token grants the embed user permission to view the specified data app only.
- The data app can run arbitrary metric queries across the project’s tables. Embedding an app means you are accepting project-wide column access for that token.
- Row-level filtering still applies. User attributes on the JWT are enforced inside every query, just like they are for dashboard and chart embeds. SQL filters defined on your tables continue to apply.
- A
dataApptoken cannot be used to load dashboards, charts, or the explore page. Each embed token is scoped to a single content type.
Limitations
- Standalone data app embedding is iframe-only. There is no React SDK component for it yet.
- The standalone embed has no filter bar or tile chrome — the app is rendered in isolation.
- Interactivity options like
canExportCsv,canExplore, anddashboardFiltersInteractivitydo not apply todataApptokens.