UNPKG

@oriolrius/grafana-business-text

Version:

Data-driven text with Markdown and Handlebars support for Grafana

162 lines (136 loc) 2.9 kB
import { DataQueryResponse, DataSourceApi } from '@grafana/data'; /** * Data Source Query Configuration */ export interface DataSourceQueryConfig { /** * Query refId */ refId?: string; /** * Raw SQL query (for SQL data sources) */ rawSql?: string; /** * Query format */ format?: string; /** * Additional query parameters */ [key: string]: any; } /** * Data Source Information */ export interface DataSourceInfo { /** * Data source UID */ uid: string; /** * Data source name */ name: string; /** * Data source type */ type: string; /** * Whether the data source is accessible */ accessible?: boolean; } /** * Data Source Context API */ export interface DataSourceContext { /** * Execute a generic query against a data source */ query: (dataSourceUid: string, queryConfig: DataSourceQueryConfig) => Promise<DataQueryResponse>; /** * Execute SQL query against SQL-based data sources */ sql: (dataSourceUid: string, sqlQuery: string) => Promise<DataQueryResponse>; /** * Execute InfluxDB query */ influx: (dataSourceUid: string, influxQuery: string) => Promise<DataQueryResponse>; /** * Get list of available data sources */ getAvailable: () => DataSourceInfo[]; /** * Get data source by name (fallback helper) */ getByName: (name: string) => Promise<DataSourceApi | null>; /** * Utility functions for working with query results */ utils: { /** * Format query response for easier consumption */ formatResults: (response: DataQueryResponse) => { series: any[]; rows: Array<Record<string, any>>; fields: string[]; raw: DataQueryResponse; }; /** * Extract values from a specific field */ extractValues: (response: DataQueryResponse, fieldName?: string) => any[]; /** * Convert response to simple object array */ toObjects: (response: DataQueryResponse) => Array<Record<string, any>>; }; } /** * Data Source Panel Options */ export interface DataSourcePanelOptions { /** * Enable data source queries */ enableDataSourceQueries: boolean; /** * Default data source UID */ defaultDataSourceUid?: string; /** * Query timeout in milliseconds */ queryTimeout: number; /** * Enable query result caching */ enableCaching: boolean; /** * Show data source query errors as notifications */ showQueryErrors: boolean; } /** * Notification Context API */ export interface NotificationContext { /** * Show success notification */ success: (message: string) => void; /** * Show error notification */ error: (message: string) => void; /** * Show warning notification */ warning: (message: string) => void; /** * Show info notification */ info: (message: string) => void; }