Skip to main content

App registration

Configure where your embedded app appears in Atlan by registering iframe URL, allowed origins, and render locations — display as a sidebar navigation tab, asset profile tab, or both with conditional rendering rules. Verify your app is deployed and has authentication set up to receive user context (see Embed your app if needed), then use this reference to configure display name, icons, and conditional asset type rendering.

Configuration object

{
"app-id": {
"display_name": "App Display Name",
"iframe_url": "https://your-app.example.com",
"allowed_origins": ["https://your-app.example.com"],
"icon": "Analytics",
"description": "Brief description of your app",
"company": "Company name",
"render_at": [{ "slot": "nav-tab" }]
}
}

App fields

display_namestring
Required

Label shown in the Atlan UI.

Example:Data Quality Dashboard

iframe_urlstring
Required

URL Atlan loads in the iframe. Must start with http:// or https://. Atlan rejects javascript: and data: URLs.

Example:https://your-app.example.com

allowed_originsstring[]
Required

Origins allowed for postMessage. Use full origins such as https://app.example.com. Wildcards are supported, for example https://*.example.com.

Example:["https://your-app.example.com"]

iconstring
Optional

Icon name shown in the UI.

Default: Analytics
Example:Quality

descriptionstring
Optional

Short description shown in navigation.

Example:View data quality metrics

companystring
Optional

Company name for attribution.

Example:Company name

render_atRenderLocation[]
Required

Where the app renders.

Example:[{ "slot": "nav-tab" }]

Render locations

render_at is an array of objects. Each object specifies a slot and, for conditional slots, an optional when clause.

Slots

render_at[].slotstring
Required

Render slot for the app.

Allowed values:
nav-tabasset-profile-tab

nav-tabslot
Slot

Navigation sidebar item. Opens the app at /external/{app-id} in a full-screen view.

asset-profile-tabslot
Slot

Asset profile tab. Shows the app as a tab on asset pages when conditions match.

Conditional rendering (when)

Use when to control where the asset-profile-tab appears.

render_at[].whenobject
Optional

Conditions that control whether the asset-profile-tab slot renders.

render_at[].when.assetTypesstring[]
Optional

Asset type names (case-sensitive), such as Table, View, MaterialisedView, Column, AtlasGlossaryTerm.

Example:["Table", "View", "MaterialisedView"]

render_at[].when.routesstring[]
Optional

Route patterns with glob support, such as /assets/* or /glossary/**.

Example:["/assets/*", "/glossary/**"]

Examples

{
"analytics-dashboard": {
"display_name": "Analytics",
"iframe_url": "https://analytics.example.com",
"allowed_origins": ["https://analytics.example.com"],
"icon": "Analytics",
"description": "View platform analytics",
"render_at": [{ "slot": "nav-tab" }]
}
}

Asset profile tab (tables and views)

{
"data-quality": {
"display_name": "Data Quality",
"iframe_url": "https://dq.example.com",
"allowed_origins": ["https://dq.example.com"],
"icon": "Quality",
"description": "View data quality metrics",
"render_at": [
{
"slot": "asset-profile-tab",
"when": {
"assetTypes": ["Table", "View", "MaterialisedView"]
}
}
]
}
}

Multiple slots

{
"multi-location-app": {
"display_name": "My App",
"iframe_url": "https://myapp.example.com",
"allowed_origins": ["https://myapp.example.com"],
"icon": "Apps",
"render_at": [
{ "slot": "nav-tab" },
{
"slot": "asset-profile-tab",
"when": { "assetTypes": ["Table", "Column"] }
}
]
}
}

See also