Static data table card
The Static data table card extracts an array from the dashboard interpolation context and renders it as a searchable, sortable table.
When to use it
Use it for JSON arrays nested in already-loaded dashboard data, such as a fact payload on the selected device. Use Table when rows should come from a paginated Neops entity search.
Live example
The Card Lab supplies a deterministic selected-device fact payload to the production static table.
Open the Static data table Card Lab in a new page
Requirements
| Requirement | Value |
|---|---|
| Dashboard types | Standard and aggregation |
| Minimum size | 5 columns by 5 rows |
| Data | A non-empty JSON array reachable from dashboard interpolation context |
| Backend capabilities | None beyond whatever populated the dashboard context |
| Permissions | Read access to the source context and its displayed values |
Configuration
This card has no guided editor in SDK 5.2.0; configure it in expert JSON.
The paths below are relative to cardConfig.data.
Card and table fields
| Path | Type | Required | Default and effect |
|---|---|---|---|
title |
Interpolated string | No | No heading. Evaluated against the complete dashboard interpolation context. |
description |
String | No | No description. Shown directly below the card title. |
jmesPathToTableDataJsonArray |
JMESPath expression | Yes | No default. Must resolve to a non-empty array or the card shows a diagnostic with the returned value. |
tableConfigArguments |
Object | Yes | Runtime fallback is an object with no columns. Contains all table presentation settings. |
tableConfigArguments.description |
String | No | No generic-table description. This is separate from the card-level description. |
tableConfigArguments.searchDisabled |
Boolean | No | false. Hides the table search when true. |
tableConfigArguments.size |
String | No | md. Carbon row size supported by the installed table component. |
tableConfigArguments.sortable |
Boolean | No | false. Enables sorting where a column supplies an order key. |
tableConfigArguments.itemsPerPageOptions |
Integer array | No | [5, 10, 20, 50]. Supplies page-size choices. |
tableConfigArguments.allowToHidePagination |
Boolean | No | false. Allows pagination controls to disappear when all rows fit on one page. |
tableConfigArguments.toolbarDisabled |
Boolean | No | false. Hides the table toolbar when true. |
tableConfigArguments.columns |
Array | Yes | Empty array. Defines visible columns in order. |
Column fields
| Path | Type | Required | Default and effect |
|---|---|---|---|
tableConfigArguments.columns[].header |
Object | Yes | Contains the column heading settings. |
tableConfigArguments.columns[].header.data |
String | No | -. Visible heading text. |
tableConfigArguments.columns[].header.orderKey |
String | No | Not sortable. Supplies the sort key. |
tableConfigArguments.columns[].header.columnSize |
String | No | Grow to available width. Values: xs, sm, md, lg, xl, xxl, grow. |
tableConfigArguments.columns[].header.visible |
Boolean | No | true. Hides the column when false. |
tableConfigArguments.columns[].labelExpression |
JMESPath expression | Yes | No default. Evaluated against each row to produce the cell value. |
tableConfigArguments.columns[].linkExpression |
JMESPath expression | No | No link. Evaluated against each row to make the cell clickable. |
tableConfigArguments.columns[].domain |
String | No | Text-like fallback. Values include text, ip, date, number, choices, multiChoices, boolean, check, button, croneExpression. |
tableConfigArguments.columns[].showAs |
String | No | Renderer inferred from domain. Values include text, date, boolean-success, boolean-checkbox, action-cron, button-checks-facts. |
tableConfigArguments.columns[].showAsConfig |
Object | No | No renderer-specific settings. Its shape depends on showAs. |
tableConfigArguments.columns[].listItemProperty |
String | For multiChoices |
No default. Selects the label field from each object in an array. |
tableConfigArguments.columns[].editorConfig |
Object | No | Ignored by this read-only static table implementation in SDK 5.2.0. |
Examples
Device fact rows
{
"cardId": "static-data-table",
"data": {
"title": "Installed modules",
"description": "Modules reported by the selected device",
"jmesPathToTableDataJsonArray": "device.facts.inventory.modules",
"tableConfigArguments": {
"sortable": true,
"allowToHidePagination": true,
"columns": [
{
"header": { "data": "Name", "orderKey": "name" },
"labelExpression": "name",
"listItemProperty": "name"
},
{
"header": { "data": "Serial", "orderKey": "serial" },
"labelExpression": "serial",
"listItemProperty": "serial"
}
]
}
}
}
The card rebuilds its local data service from the selected device’s module array and renders two sortable columns.
Behavior
The JMESPath expression is evaluated once on initialization and whenever the dashboard interpolation context changes.
Date domains render as dd.MM.yyyy; boolean and check domains retain boolean semantics; multi-choice cells can extract one property from each array item.
The table is read-only and does not open row edit actions.
Limitations and safety
An empty array is treated as invalid input and shows the diagnostic state rather than an empty table. The full row objects remain in the browser even when only selected columns are visible.
Related cards
See Table for backend-paginated entity rows.

