Creating, updating, and managing dashboards with tiles, filters, and tabs.
interface Dashboard {
organizationUuid: string;
projectUuid: string;
uuid: string;
name: string;
description?: string;
updatedAt: Date;
tiles: DashboardTile[];
filters: DashboardFilters;
tabs?: DashboardTab[];
spaceUuid: string;
slug: string;
}
interface CreateDashboard {
name: string;
description?: string;
tiles?: DashboardTileTypes[];
filters?: DashboardFilters;
spaceUuid?: string;
}
interface UpdateDashboard {
name?: string;
description?: string;
tiles?: DashboardTile[];
filters?: DashboardFilters;
tabs?: DashboardTab[];
}enum DashboardTileTypes {
SAVED_CHART = 'saved_chart',
MARKDOWN = 'markdown',
LOOM = 'loom',
SQL_CHART = 'sql_chart'
}
interface DashboardChartTile {
uuid: string;
type: DashboardTileTypes.SAVED_CHART;
x: number; y: number; h: number; w: number;
tabUuid?: string;
properties: {
savedChartUuid: string | null;
title?: string;
hideTitle?: boolean;
};
}
type DashboardTile = DashboardChartTile | DashboardMarkdownTile | DashboardLoomTile | DashboardSqlChartTile;
function isDashboardChartTileType(tile: DashboardTile): tile is DashboardChartTile;
function hasChartsInDashboard(dashboard: Dashboard): boolean;
function getDefaultChartTileSize(chartKind: ChartKind | null | undefined): { h: number; w: number };type DashboardFilters = {
dimensions: DashboardFilterRule[];
metrics: DashboardFilterRule[];
tableCalculations: DashboardFilterRule[];
};
// See filters.md for DashboardFilterRule detailsinterface DashboardTab {
uuid: string;
name: string;
order: number;
}