A document's content is built from a tree of elements — layouts that arrange children, and cards/components that render data. This page gives a short tour of what's available. Full property-by-property references for individual card types are in the Element reference.
All generated element types extend CoreElement<T>, the document-safe subset of a component's UI schema (runtime-only fields like React nodes or callbacks are stripped out):
| Property | Type | Description |
|---|---|---|
|
| Element type discriminant (for example, |
|
| Unique identifier for the element within the document. |
|
| Override for the card's title. |
|
| Override for the card's description. |
|
| Visibility conditions — see Conditional rendering. |
Layouts arrange other elements. They're the glue that turns a flat list of cards into a page.
| Layout | type | Description |
|---|---|---|
Vertical layout |
| Stacks child elements top to bottom. |
Horizontal layout |
| Arranges child elements side by side; supports a |
Tabs layout |
| A set of |
Which elements are allowed inside which container is controlled by a set of layout-element unions (LayoutElement, TabsLayoutElement, InjectableDetailsLayoutElement, ExpandableContentLayoutElement) — not every element is valid everywhere. For example, a Tab can only appear where InjectableDetailsLayoutElement is expected (an Entity Details injection), not as a general layout child.
TabsLayout| Property | Type | Description |
|---|---|---|
|
| Discriminant. |
|
| Ordered list of tabs. |
TabSupports the Conditional mixin (see Conditional rendering).
| Property | Type | Description |
|---|---|---|
|
| Discriminant. |
|
| Unique tab identifier. Used as |
|
| Tab label shown in the tab bar. |
|
| Extended label shown in overflow menus or tooltips when the tab bar is too narrow to display the full title. |
|
| Cards and layouts rendered inside the tab. Nested |
|
| Tab is hidden when conditions aren't satisfied. See Conditional rendering. |
Compositions are the top-level content shape for "Definition" documents — they own an entire page, not just one card.
| Composition | Used by | Description |
|---|---|---|
|
| A full Entity Details page: optional header, health alert group definitions, and a |
|
| An Inventory Explorer type/subtype: display name, icon, a |
These are the data-rendering elements that typically appear as leaves in a layout. Each links to a full property-by-property reference:
dql-table) — tabular data driven by a DQL query, with columns, filters, grouping, perspectives, and row/cell/column actions.chart-group) — one or more charts (timeseries, single value, categorical, donut, meter bar, etc.) driven by DQL/metrics.filtering) — a filter bar of text, numeric, or predefined-value filters.metadata) — grouped key/value property display.message) — a card built from markdown-like content blocks, buttons, and slots.custom) — a placeholder that resolves to app-provided content at runtime. (limited access)Health indicator configuration (alertGroups) is shared across DetailsComposition, DqlTable, and ChartGroup — see Health indicators.
Instead of duplicating configuration, several document fields accept a reference to a pre-configured runtime object by name, alongside a fully custom inline definition:
| Reference | Appears in | Example |
|---|---|---|
| any action array |
|
| DQL table columns |
|
| filtering filters |
|
| DQL table query lookups |
|
Action arrays (toolbar, row, cell, column, chart, header actions) accept a mix of these built-in references and fully custom IntentAction objects, which invoke another Dynatrace App via an intent:
{ "displayName": "Open in App", "appId": "my-app", "intentId": "view" }
IntentAction| Property | Type | Description |
|---|---|---|
|
| Label shown on the action button. |
|
| Target Dynatrace App ID to open. |
|
| Intent ID to invoke on the target app. |
|
| Key-value pairs sent as the intent payload. |
|
| Visibility conditions — see Conditional rendering. |
ExtensionsInfrastructure Observability