Skip to main content
Glama
types.ts3.69 kB
/** * Redash API Type Definitions */ // ======================================== // Data Source Types // ======================================== export interface DataSource { id: number; name: string; type: string; syntax?: string; paused?: boolean; pause_reason?: string; options?: Record<string, unknown>; created_at?: string; updated_at?: string; } export interface DataSourceList { count: number; page: number; page_size: number; results: DataSource[]; } // ======================================== // Query Types // ======================================== export interface Query { id: number; name: string; description?: string; query: string; data_source_id: number; created_at: string; updated_at: string; is_archived: boolean; is_draft: boolean; user: { id: number; name: string; email: string; }; last_modified_by?: { id: number; name: string; email: string; }; visualizations?: Visualization[]; options?: Record<string, unknown>; version?: number; tags?: string[]; } export interface QueryList { count: number; page: number; page_size: number; results: Query[]; } // ======================================== // Query Execution Types // ======================================== export interface QueryResult { id: string; query_hash: string; query: string; data: { columns: Array<{ name: string; friendly_name: string; type: string; }>; rows: Array<Record<string, unknown>>; }; data_source_id: number; runtime: number; retrieved_at: string; } export interface Job { id: string; status: 1 | 2 | 3 | 4; // 1: pending, 2: started, 3: success, 4: failure query_result_id?: string; error?: string; updated_at: number; } export interface JobResponse { job: Job; } export interface QueryExecutionRequest { query: string; data_source_id: number; max_age?: number; parameters?: Record<string, unknown>; } export interface QueryExecutionResponse { job: Job; } // ======================================== // Dashboard Types // ======================================== export interface Dashboard { id: number; name: string; slug: string; user_id: number; layout: string; dashboard_filters_enabled: boolean; is_archived: boolean; is_draft: boolean; created_at: string; updated_at: string; user: { id: number; name: string; email: string; }; widgets?: Widget[]; tags?: string[]; } export interface DashboardList { count: number; page: number; page_size: number; results: Dashboard[]; } export interface Widget { id: number; width: number; options: { position: { col: number; row: number; sizeX: number; sizeY: number; }; }; dashboard_id: number; text?: string; visualization?: Visualization; created_at: string; updated_at: string; } // ======================================== // Visualization Types // ======================================== export interface Visualization { id: number; type: string; name: string; description?: string; options: Record<string, unknown>; query: { id: number; name: string; description?: string; }; created_at: string; updated_at: string; } // ======================================== // API Error Types // ======================================== export interface RedashApiError { message: string; status?: number; job?: Job; } // ======================================== // Configuration Types // ======================================== export interface RedashClientConfig { apiKey: string; baseUrl: string; timeout?: number; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jasonsmithj/redash-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server