Skip to main content

App registration

This reference provides configuration options, parameters, and structure for registering an embedded app so it appears in the sidebar or as an asset profile tab. Use this document to look up field names, allowed values, and conditional rendering rules.

Make sure you have deployed your app and added authentication so it can receive user context. If not, see Embed your app.

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