Skip to content

@sqlrooms/mosaic / DashboardToolDeps

Interface: DashboardToolDeps

Dependencies injected into dashboard tool creation functions. Provides the resources and operations needed to create dashboard panels.

Properties

resolveArtifact

resolveArtifact: (artifactId?, createIfMissing?, context?) => string

Resolves the dashboard artifact ID. Use this when you only need the artifact and not table information.

Parameters

ParameterType
artifactId?string
createIfMissing?boolean
context?ChartToolExecutionContext

Returns

string


resolveTable

resolveTable: (artifactId, tableName?) => ResolvedTable

Resolves table name and columns for a given dashboard artifact. Use this when you need table-specific information.

Parameters

ParameterType
artifactIdstring
tableName?string

Returns

ResolvedTable


addPanel

addPanel: (dashboardId, panel) => string

Parameters

ParameterType
dashboardIdstring
panelany

Returns

string


updatePanel

updatePanel: (dashboardId, panelId, patch) => void

Parameters

ParameterType
dashboardIdstring
panelIdstring
patchPartial<PanelPatch>

Returns

void


getDashboard

getDashboard: (dashboardId) => { id: string; title: string; layoutType: "grid" | "dock"; selectedTable?: string; panels: ({ id: string; type: "vgplot"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { chartType: "histogram"; settings: { field?: string; maxBins?: number; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "count-plot"; settings: { field?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "line-chart"; settings: { x?: string; xInterval?: "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year"; yFields?: ...[]; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "bubble-chart"; settings: { x?: string; y?: string; size?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "heatmap"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "box-plot"; settings: { x: string; y: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "custom-spec"; settingsOpen?: boolean; settings: { vgPlotSpec?: unknown; }; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: string; settings: Record<string, unknown>; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; }; } | { id: string; type: "profiler"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { pageSize?: number; }; } | { id: string; type: "text"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { content: string; toolbarOpen: boolean; sourcePanelOpen: boolean; }; } | { id: string; type: string; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: Record<string, unknown>; })[]; layout: LayoutNode | null; updatedAt: number; } | undefined

Parameters

ParameterType
dashboardIdstring

Returns

{ id: string; title: string; layoutType: "grid" | "dock"; selectedTable?: string; panels: ({ id: string; type: "vgplot"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { chartType: "histogram"; settings: { field?: string; maxBins?: number; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "count-plot"; settings: { field?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "line-chart"; settings: { x?: string; xInterval?: "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year"; yFields?: ...[]; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "bubble-chart"; settings: { x?: string; y?: string; size?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "heatmap"; settings: { x?: string; y?: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "box-plot"; settings: { x: string; y: string; }; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: "custom-spec"; settingsOpen?: boolean; settings: { vgPlotSpec?: unknown; }; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; } | { chartType: string; settings: Record<string, unknown>; settingsOpen?: boolean; dataPolicy?: { disabled?: ... | ... | ...; maxRows?: ... | ...; reason?: ... | ...; }; }; } | { id: string; type: "profiler"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { pageSize?: number; }; } | { id: string; type: "text"; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: { content: string; toolbarOpen: boolean; sourcePanelOpen: boolean; }; } | { id: string; type: string; title: string; source?: { tableName?: string; sqlQuery?: string; }; config: Record<string, unknown>; })[]; layout: LayoutNode | null; updatedAt: number; } | undefined


getPanelIssue?

optional getPanelIssue?: (dashboardId, panelId) => ChartRuntimeIssue | undefined

Parameters

ParameterType
dashboardIdstring
panelIdstring

Returns

ChartRuntimeIssue | undefined


removePanel

removePanel: (dashboardId, panelId) => void

Parameters

ParameterType
dashboardIdstring
panelIdstring

Returns

void


setCurrentArtifact

setCurrentArtifact: (artifactId) => void

Parameters

ParameterType
artifactIdstring

Returns

void


maxDataPoints

maxDataPoints: number