Skip to main content
Version: 4.5.0

Function: Dashboard(config)

Creates a Dashboard (par_dashboard).

Usage

Dashboard({
$id: Now.ID['my-dashboard'],
name: 'My Dashboard',
tabs: [
{
$id: Now.ID['tab-1'],
name: 'Overview',
widgets: [
{
$id: Now.ID['widget-1'],
component: 'component-id',
componentProps: { key: 'value' },
height: 12,
width: 12,
position: {
x: 0,
y: 0,
}
},
],
},
],
permissions: [
{
$id: Now.ID['perm-1'],
user: 'user-sys-id',
canRead: true,
canWrite: true,
canShare: true,
owner: true,
},
],
visibilities: [],
})

Parameters

config

Dashboard

an object containing the following properties:

Properties:

  • $id (required): string | number | ExplicitKey<string>

  • name (required): string Name of the dashboard

  • $meta (optional): object

    • installMethod: 'first install' | 'demo' Map a record to an output folder that loads only in specific circumstances. 'first install' - > 'unload', 'demo' -> 'unload.demo'
  • active (optional): boolean Whether the dashboard is active (defaults to true)

  • permissions (optional): DashboardPermission[] Array of user permissions for the dashboard

  • tabs (optional): DashboardTab[] Array of tabs in the dashboard

  • topLayout (optional): DashboardTopLayout Array of top-level widgets (displayed outside of tabs)

  • visibilities (optional): DashboardVisibility[] Array of visibility rules for the dashboard

See

Examples

dashboard-basic

// Source: packages/api/tests/dashboard-plugin/dashboard-plugin.test.ts

import { Dashboard } from '@servicenow/sdk/core'

export const BasicDashboardExample = Dashboard({
$id: Now.ID['basic-dashboard'],
name: 'Test Dashboard',
tabs: [
{
$id: Now.ID['overview-tab'],
name: 'Overview',
widgets: [
{
$id: Now.ID['widget-1'],
component: '23051643b7e03010097cb81cde11a910',
componentProps: {
selectedElements: [],
chartVariation: 'stacked',
},
height: 12,
width: 12,
position: { x: 0, y: 0 },
},
],
},
],
visibilities: [],
permissions: [],
})

dashboard-with-permissions

// Source: packages/api/tests/dashboard-plugin/dashboard-plugin.test.ts

import { Dashboard } from '@servicenow/sdk/core'

export const DashboardWithPermissionsExample = Dashboard({
$id: Now.ID['secure-dashboard'],
name: 'Secure Dashboard',
tabs: [],
visibilities: [],
permissions: [
{
$id: Now.ID['user-permission'],
canRead: true,
canShare: true,
canWrite: true,
owner: true,
user: Now.ref('sys_user', { sys_id: '6816f79cc0a8016401c5a33be04be441' }),
},
{
$id: Now.ID['group-permission'],
group: Now.ref('sys_user_group', { sys_id: 'abc123def456group' }),
canRead: true,
canWrite: false,
canShare: false,
owner: false,
},
{
$id: Now.ID['role-permission'],
role: Now.ref('sys_user_role', { sys_id: 'xyz789abc012role' }),
canRead: true,
canWrite: true,
canShare: false,
owner: false,
},
],
})

dashboard-with-visibilities

// Source: packages/api/tests/dashboard-plugin/dashboard-plugin.test.ts

import { Dashboard } from '@servicenow/sdk/core'

export const DashboardWithVisibilitiesExample = Dashboard({
$id: Now.ID['visible-dashboard'],
name: 'Visible Dashboard',
tabs: [],
visibilities: [
{
$id: Now.ID['visibility-1'],
experience: Now.ref('sys_ux_page_registry', { sys_id: 'abc123def456789' }),
},
],
permissions: [],
})