@querypanel/node-sdk 1.0.23 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -274
- package/dist/index.cjs +1471 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +468 -0
- package/dist/index.d.ts +468 -0
- package/dist/index.js +1443 -0
- package/dist/index.js.map +1 -0
- package/package.json +53 -43
- package/dist/cjs/adapters/clickhouse.d.ts +0 -48
- package/dist/cjs/adapters/clickhouse.d.ts.map +0 -1
- package/dist/cjs/adapters/clickhouse.js +0 -284
- package/dist/cjs/adapters/clickhouse.js.map +0 -1
- package/dist/cjs/adapters/introspection.spec.d.ts +0 -2
- package/dist/cjs/adapters/introspection.spec.d.ts.map +0 -1
- package/dist/cjs/adapters/introspection.spec.js +0 -192
- package/dist/cjs/adapters/introspection.spec.js.map +0 -1
- package/dist/cjs/adapters/postgres.d.ts +0 -46
- package/dist/cjs/adapters/postgres.d.ts.map +0 -1
- package/dist/cjs/adapters/postgres.js +0 -457
- package/dist/cjs/adapters/postgres.js.map +0 -1
- package/dist/cjs/adapters/postgres.spec.d.ts +0 -2
- package/dist/cjs/adapters/postgres.spec.d.ts.map +0 -1
- package/dist/cjs/adapters/postgres.spec.js +0 -37
- package/dist/cjs/adapters/postgres.spec.js.map +0 -1
- package/dist/cjs/adapters/types.d.ts +0 -38
- package/dist/cjs/adapters/types.d.ts.map +0 -1
- package/dist/cjs/adapters/types.js +0 -3
- package/dist/cjs/adapters/types.js.map +0 -1
- package/dist/cjs/anonymize.spec.d.ts +0 -2
- package/dist/cjs/anonymize.spec.d.ts.map +0 -1
- package/dist/cjs/anonymize.spec.js +0 -78
- package/dist/cjs/anonymize.spec.js.map +0 -1
- package/dist/cjs/clickhouseClient.spec.d.ts +0 -2
- package/dist/cjs/clickhouseClient.spec.d.ts.map +0 -1
- package/dist/cjs/clickhouseClient.spec.js +0 -286
- package/dist/cjs/clickhouseClient.spec.js.map +0 -1
- package/dist/cjs/connectors/base.d.ts +0 -14
- package/dist/cjs/connectors/base.d.ts.map +0 -1
- package/dist/cjs/connectors/base.js +0 -3
- package/dist/cjs/connectors/base.js.map +0 -1
- package/dist/cjs/connectors/clickhouse.d.ts +0 -35
- package/dist/cjs/connectors/clickhouse.d.ts.map +0 -1
- package/dist/cjs/connectors/clickhouse.js +0 -292
- package/dist/cjs/connectors/clickhouse.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -498
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -849
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/index.test.d.ts +0 -2
- package/dist/cjs/index.test.d.ts.map +0 -1
- package/dist/cjs/index.test.js +0 -185
- package/dist/cjs/index.test.js.map +0 -1
- package/dist/cjs/introspectV3.d.ts +0 -45
- package/dist/cjs/introspectV3.d.ts.map +0 -1
- package/dist/cjs/introspectV3.js +0 -99
- package/dist/cjs/introspectV3.js.map +0 -1
- package/dist/cjs/multidb.spec.d.ts +0 -2
- package/dist/cjs/multidb.spec.d.ts.map +0 -1
- package/dist/cjs/multidb.spec.js +0 -76
- package/dist/cjs/multidb.spec.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/schema/types.d.ts +0 -73
- package/dist/cjs/schema/types.d.ts.map +0 -1
- package/dist/cjs/schema/types.js +0 -3
- package/dist/cjs/schema/types.js.map +0 -1
- package/dist/cjs/tenant-isolation.spec.d.ts +0 -2
- package/dist/cjs/tenant-isolation.spec.d.ts.map +0 -1
- package/dist/cjs/tenant-isolation.spec.js +0 -420
- package/dist/cjs/tenant-isolation.spec.js.map +0 -1
- package/dist/cjs/utils/clickhouse.d.ts +0 -9
- package/dist/cjs/utils/clickhouse.d.ts.map +0 -1
- package/dist/cjs/utils/clickhouse.js +0 -99
- package/dist/cjs/utils/clickhouse.js.map +0 -1
- package/dist/esm/adapters/clickhouse.d.ts +0 -48
- package/dist/esm/adapters/clickhouse.d.ts.map +0 -1
- package/dist/esm/adapters/clickhouse.js +0 -280
- package/dist/esm/adapters/clickhouse.js.map +0 -1
- package/dist/esm/adapters/introspection.spec.d.ts +0 -2
- package/dist/esm/adapters/introspection.spec.d.ts.map +0 -1
- package/dist/esm/adapters/introspection.spec.js +0 -190
- package/dist/esm/adapters/introspection.spec.js.map +0 -1
- package/dist/esm/adapters/postgres.d.ts +0 -46
- package/dist/esm/adapters/postgres.d.ts.map +0 -1
- package/dist/esm/adapters/postgres.js +0 -453
- package/dist/esm/adapters/postgres.js.map +0 -1
- package/dist/esm/adapters/postgres.spec.d.ts +0 -2
- package/dist/esm/adapters/postgres.spec.d.ts.map +0 -1
- package/dist/esm/adapters/postgres.spec.js +0 -35
- package/dist/esm/adapters/postgres.spec.js.map +0 -1
- package/dist/esm/adapters/types.d.ts +0 -38
- package/dist/esm/adapters/types.d.ts.map +0 -1
- package/dist/esm/adapters/types.js +0 -2
- package/dist/esm/adapters/types.js.map +0 -1
- package/dist/esm/anonymize.spec.d.ts +0 -2
- package/dist/esm/anonymize.spec.d.ts.map +0 -1
- package/dist/esm/anonymize.spec.js +0 -76
- package/dist/esm/anonymize.spec.js.map +0 -1
- package/dist/esm/clickhouseClient.spec.d.ts +0 -2
- package/dist/esm/clickhouseClient.spec.d.ts.map +0 -1
- package/dist/esm/clickhouseClient.spec.js +0 -281
- package/dist/esm/clickhouseClient.spec.js.map +0 -1
- package/dist/esm/connectors/base.d.ts +0 -14
- package/dist/esm/connectors/base.d.ts.map +0 -1
- package/dist/esm/connectors/base.js +0 -2
- package/dist/esm/connectors/base.js.map +0 -1
- package/dist/esm/connectors/clickhouse.d.ts +0 -35
- package/dist/esm/connectors/clickhouse.d.ts.map +0 -1
- package/dist/esm/connectors/clickhouse.js +0 -288
- package/dist/esm/connectors/clickhouse.js.map +0 -1
- package/dist/esm/index.d.ts +0 -498
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -844
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.test.d.ts +0 -2
- package/dist/esm/index.test.d.ts.map +0 -1
- package/dist/esm/index.test.js +0 -183
- package/dist/esm/index.test.js.map +0 -1
- package/dist/esm/introspectV3.d.ts +0 -45
- package/dist/esm/introspectV3.d.ts.map +0 -1
- package/dist/esm/introspectV3.js +0 -96
- package/dist/esm/introspectV3.js.map +0 -1
- package/dist/esm/multidb.spec.d.ts +0 -2
- package/dist/esm/multidb.spec.d.ts.map +0 -1
- package/dist/esm/multidb.spec.js +0 -74
- package/dist/esm/multidb.spec.js.map +0 -1
- package/dist/esm/schema/types.d.ts +0 -73
- package/dist/esm/schema/types.d.ts.map +0 -1
- package/dist/esm/schema/types.js +0 -2
- package/dist/esm/schema/types.js.map +0 -1
- package/dist/esm/tenant-isolation.spec.d.ts +0 -2
- package/dist/esm/tenant-isolation.spec.d.ts.map +0 -1
- package/dist/esm/tenant-isolation.spec.js +0 -418
- package/dist/esm/tenant-isolation.spec.js.map +0 -1
- package/dist/esm/utils/clickhouse.d.ts +0 -9
- package/dist/esm/utils/clickhouse.d.ts.map +0 -1
- package/dist/esm/utils/clickhouse.js +0 -92
- package/dist/esm/utils/clickhouse.js.map +0 -1
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
type DatabaseKind = "clickhouse" | "postgres" | string;
|
|
2
|
+
interface DatabaseIdentifier {
|
|
3
|
+
kind: DatabaseKind;
|
|
4
|
+
name: string;
|
|
5
|
+
schema?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
}
|
|
8
|
+
interface ColumnStatistics {
|
|
9
|
+
compressedBytes?: number;
|
|
10
|
+
uncompressedBytes?: number;
|
|
11
|
+
distinctValues?: number;
|
|
12
|
+
}
|
|
13
|
+
interface ColumnSchema {
|
|
14
|
+
name: string;
|
|
15
|
+
type: string;
|
|
16
|
+
rawType?: string;
|
|
17
|
+
nullable: boolean;
|
|
18
|
+
defaultKind?: string;
|
|
19
|
+
defaultExpression?: string;
|
|
20
|
+
comment?: string;
|
|
21
|
+
isPrimaryKey: boolean;
|
|
22
|
+
isForeignKey: boolean;
|
|
23
|
+
foreignKeyTable?: string;
|
|
24
|
+
foreignKeyColumn?: string;
|
|
25
|
+
maxLength?: number;
|
|
26
|
+
precision?: number;
|
|
27
|
+
scale?: number;
|
|
28
|
+
codec?: string;
|
|
29
|
+
ttlExpression?: string;
|
|
30
|
+
statistics?: ColumnStatistics;
|
|
31
|
+
}
|
|
32
|
+
interface IndexSchema {
|
|
33
|
+
name: string;
|
|
34
|
+
columns: string[];
|
|
35
|
+
unique: boolean;
|
|
36
|
+
type: string;
|
|
37
|
+
definition?: string;
|
|
38
|
+
}
|
|
39
|
+
interface ConstraintSchema {
|
|
40
|
+
name: string;
|
|
41
|
+
type: "PRIMARY KEY" | "FOREIGN KEY" | "UNIQUE" | "CHECK" | string;
|
|
42
|
+
columns: string[];
|
|
43
|
+
referencedTable?: string;
|
|
44
|
+
referencedColumns?: string[];
|
|
45
|
+
definition?: string;
|
|
46
|
+
}
|
|
47
|
+
interface TableStatistics {
|
|
48
|
+
totalRows?: number;
|
|
49
|
+
totalBytes?: number;
|
|
50
|
+
uncompressedBytes?: number;
|
|
51
|
+
}
|
|
52
|
+
interface TableSchema {
|
|
53
|
+
name: string;
|
|
54
|
+
schema: string;
|
|
55
|
+
type: "table" | "view" | string;
|
|
56
|
+
engine?: string;
|
|
57
|
+
comment?: string;
|
|
58
|
+
statistics?: TableStatistics;
|
|
59
|
+
columns: ColumnSchema[];
|
|
60
|
+
indexes: IndexSchema[];
|
|
61
|
+
constraints: ConstraintSchema[];
|
|
62
|
+
}
|
|
63
|
+
interface SchemaIntrospection {
|
|
64
|
+
db: DatabaseIdentifier;
|
|
65
|
+
tables: TableSchema[];
|
|
66
|
+
introspectedAt: string;
|
|
67
|
+
metadata?: Record<string, unknown>;
|
|
68
|
+
}
|
|
69
|
+
interface IntrospectOptions {
|
|
70
|
+
/** Optional allow-list of table names to introspect (schema-qualified or bare). */
|
|
71
|
+
tables?: string[];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
type DatabaseDialect = "clickhouse" | "postgres" | "mysql";
|
|
75
|
+
interface DatabaseExecutionResult {
|
|
76
|
+
fields: string[];
|
|
77
|
+
rows: Array<Record<string, unknown>>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Database adapter interface for abstracting database-specific operations.
|
|
81
|
+
* Allows the SDK to work with multiple database types.
|
|
82
|
+
*/
|
|
83
|
+
interface DatabaseAdapter {
|
|
84
|
+
/**
|
|
85
|
+
* Execute a SQL query and return results
|
|
86
|
+
* @param sql - The SQL query to execute
|
|
87
|
+
* @param params - Optional query parameters for parameterized queries
|
|
88
|
+
*/
|
|
89
|
+
execute(sql: string, params?: Record<string, string | number | boolean | string[] | number[]>): Promise<DatabaseExecutionResult>;
|
|
90
|
+
/**
|
|
91
|
+
* Validate SQL query (e.g., using EXPLAIN)
|
|
92
|
+
* Throws an error if the SQL is invalid
|
|
93
|
+
* @param sql - The SQL query to validate
|
|
94
|
+
* @param params - Optional query parameters for parameterized queries
|
|
95
|
+
*/
|
|
96
|
+
validate(sql: string, params?: Record<string, string | number | boolean | string[] | number[]>): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Introspect database schema metadata
|
|
99
|
+
*/
|
|
100
|
+
introspect(options?: IntrospectOptions): Promise<SchemaIntrospection>;
|
|
101
|
+
/**
|
|
102
|
+
* Get the database dialect/type
|
|
103
|
+
*/
|
|
104
|
+
getDialect(): DatabaseDialect;
|
|
105
|
+
/**
|
|
106
|
+
* Optional: Close/cleanup database connection
|
|
107
|
+
*/
|
|
108
|
+
close?(): Promise<void>;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
type QueryParams = {
|
|
112
|
+
query: string;
|
|
113
|
+
format?: string;
|
|
114
|
+
};
|
|
115
|
+
type ClickHouseSettings = Record<string, unknown>;
|
|
116
|
+
type Row = Record<string, unknown>;
|
|
117
|
+
interface ClickHouseAdapterOptions {
|
|
118
|
+
/** Optional logical database name used in introspection metadata. */
|
|
119
|
+
database?: string;
|
|
120
|
+
/** Override the default response format used for query execution. */
|
|
121
|
+
defaultFormat?: QueryParams["format"];
|
|
122
|
+
/**
|
|
123
|
+
* Optional database kind label. Defaults to "clickhouse" but allows
|
|
124
|
+
* sub-classing/custom branding if needed.
|
|
125
|
+
*/
|
|
126
|
+
kind?: SchemaIntrospection["db"]["kind"];
|
|
127
|
+
/**
|
|
128
|
+
* Optional allow-list of table names.
|
|
129
|
+
* When specified, introspection and queries are restricted to these tables only.
|
|
130
|
+
* ClickHouse tables are not schema-qualified, so just provide table names.
|
|
131
|
+
*/
|
|
132
|
+
allowedTables?: string[];
|
|
133
|
+
}
|
|
134
|
+
type ClickHouseQueryResult = {
|
|
135
|
+
json: () => Promise<unknown>;
|
|
136
|
+
};
|
|
137
|
+
type ClickHouseClientFn = (params: QueryParams & {
|
|
138
|
+
query_params?: Record<string, unknown>;
|
|
139
|
+
clickhouse_settings?: ClickHouseSettings;
|
|
140
|
+
}) => Promise<ClickHouseQueryResult | Array<Record<string, unknown>> | Row[]>;
|
|
141
|
+
declare class ClickHouseAdapter implements DatabaseAdapter {
|
|
142
|
+
private readonly clientFn;
|
|
143
|
+
private readonly databaseName;
|
|
144
|
+
private readonly defaultFormat;
|
|
145
|
+
private readonly kind;
|
|
146
|
+
private readonly allowedTables?;
|
|
147
|
+
constructor(clientFn: ClickHouseClientFn, options?: ClickHouseAdapterOptions);
|
|
148
|
+
execute(sql: string, params?: Record<string, string | number | boolean | string[] | number[]>): Promise<DatabaseExecutionResult>;
|
|
149
|
+
validate(sql: string, params?: Record<string, string | number | boolean | string[] | number[]>): Promise<void>;
|
|
150
|
+
getDialect(): "clickhouse";
|
|
151
|
+
introspect(options?: IntrospectOptions): Promise<SchemaIntrospection>;
|
|
152
|
+
/**
|
|
153
|
+
* Validate that the SQL query only references allowed tables.
|
|
154
|
+
* This is a basic validation that extracts table-like patterns from the query.
|
|
155
|
+
*/
|
|
156
|
+
private validateQueryTables;
|
|
157
|
+
close(): Promise<void>;
|
|
158
|
+
private query;
|
|
159
|
+
private extractRows;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
interface PostgresQueryResult {
|
|
163
|
+
rows: Array<Record<string, unknown>>;
|
|
164
|
+
fields: Array<{
|
|
165
|
+
name: string;
|
|
166
|
+
}>;
|
|
167
|
+
}
|
|
168
|
+
type PostgresClientFn = (sql: string, params?: unknown[]) => Promise<PostgresQueryResult>;
|
|
169
|
+
interface PostgresAdapterOptions {
|
|
170
|
+
/** Logical database name used in introspection metadata. */
|
|
171
|
+
database?: string;
|
|
172
|
+
/** Schema to assume when a table is provided without qualification. */
|
|
173
|
+
defaultSchema?: string;
|
|
174
|
+
/** Optional database kind label. Defaults to "postgres". */
|
|
175
|
+
kind?: SchemaIntrospection["db"]["kind"];
|
|
176
|
+
/**
|
|
177
|
+
* Optional allow-list of table names (schema-qualified or bare).
|
|
178
|
+
* When specified, introspection and queries are restricted to these tables only.
|
|
179
|
+
*/
|
|
180
|
+
allowedTables?: string[];
|
|
181
|
+
}
|
|
182
|
+
declare class PostgresAdapter implements DatabaseAdapter {
|
|
183
|
+
private readonly clientFn;
|
|
184
|
+
private readonly databaseName;
|
|
185
|
+
private readonly defaultSchema;
|
|
186
|
+
private readonly kind;
|
|
187
|
+
private readonly allowedTables?;
|
|
188
|
+
constructor(clientFn: PostgresClientFn, options?: PostgresAdapterOptions);
|
|
189
|
+
execute(sql: string, params?: Record<string, string | number | boolean | string[] | number[]>): Promise<DatabaseExecutionResult>;
|
|
190
|
+
/**
|
|
191
|
+
* Validate that the SQL query only references allowed tables.
|
|
192
|
+
* This is a basic validation that extracts table-like patterns from the query.
|
|
193
|
+
*/
|
|
194
|
+
private validateQueryTables;
|
|
195
|
+
/**
|
|
196
|
+
* Convert named params to positional array for PostgreSQL
|
|
197
|
+
* PostgreSQL expects $1, $2, $3 in SQL and an array of values [val1, val2, val3]
|
|
198
|
+
*
|
|
199
|
+
* Supports two formats:
|
|
200
|
+
* 1. Numeric keys: { '1': 'value1', '2': 'value2' } - maps directly to $1, $2
|
|
201
|
+
* 2. Named keys: { 'tenant_id': 'value' } - values extracted in alphabetical order
|
|
202
|
+
* 3. Mixed: { '1': 'value1', 'tenant_id': 'value' } - numeric keys first, then named keys
|
|
203
|
+
*/
|
|
204
|
+
private convertNamedToPositionalParams;
|
|
205
|
+
validate(sql: string, params?: Record<string, string | number | boolean | string[] | number[]>): Promise<void>;
|
|
206
|
+
getDialect(): "postgres";
|
|
207
|
+
introspect(options?: IntrospectOptions): Promise<SchemaIntrospection>;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
type ParamValue = string | number | boolean | string[] | number[];
|
|
211
|
+
type ParamRecord = Record<string, ParamValue>;
|
|
212
|
+
interface ContextDocument {
|
|
213
|
+
source?: string;
|
|
214
|
+
pageContent: string;
|
|
215
|
+
metadata?: Record<string, unknown>;
|
|
216
|
+
score?: number;
|
|
217
|
+
}
|
|
218
|
+
interface ChartEnvelope {
|
|
219
|
+
vegaLiteSpec: Record<string, unknown> | null;
|
|
220
|
+
notes: string | null;
|
|
221
|
+
}
|
|
222
|
+
interface AskOptions {
|
|
223
|
+
tenantId?: string;
|
|
224
|
+
userId?: string;
|
|
225
|
+
scopes?: string[];
|
|
226
|
+
database?: string;
|
|
227
|
+
lastError?: string;
|
|
228
|
+
previousSql?: string;
|
|
229
|
+
maxRetry?: number;
|
|
230
|
+
chartMaxRetries?: number;
|
|
231
|
+
disableAutoSync?: boolean;
|
|
232
|
+
}
|
|
233
|
+
interface AskResponse {
|
|
234
|
+
sql: string;
|
|
235
|
+
params: ParamRecord;
|
|
236
|
+
paramMetadata: Array<Record<string, unknown>>;
|
|
237
|
+
rationale?: string;
|
|
238
|
+
dialect: string;
|
|
239
|
+
queryId?: string;
|
|
240
|
+
rows: Array<Record<string, unknown>>;
|
|
241
|
+
fields: string[];
|
|
242
|
+
chart: ChartEnvelope;
|
|
243
|
+
context?: ContextDocument[];
|
|
244
|
+
}
|
|
245
|
+
interface SchemaSyncOptions {
|
|
246
|
+
tenantId?: string;
|
|
247
|
+
userId?: string;
|
|
248
|
+
scopes?: string[];
|
|
249
|
+
tables?: string[];
|
|
250
|
+
force?: boolean;
|
|
251
|
+
}
|
|
252
|
+
interface KnowledgeBaseAnnotation {
|
|
253
|
+
id: string;
|
|
254
|
+
organization_id: string;
|
|
255
|
+
target_identifier: string;
|
|
256
|
+
content: string;
|
|
257
|
+
created_by: string;
|
|
258
|
+
updated_by: string;
|
|
259
|
+
created_at: string;
|
|
260
|
+
updated_at: string;
|
|
261
|
+
}
|
|
262
|
+
interface KnowledgeBaseAnnotationInput {
|
|
263
|
+
targetIdentifier: string;
|
|
264
|
+
content: string;
|
|
265
|
+
userId: string;
|
|
266
|
+
tenantId?: string;
|
|
267
|
+
}
|
|
268
|
+
interface KnowledgeBaseChunkTable {
|
|
269
|
+
table_name: string;
|
|
270
|
+
gold_sql?: Array<{
|
|
271
|
+
sql: string;
|
|
272
|
+
description?: string;
|
|
273
|
+
name?: string;
|
|
274
|
+
}>;
|
|
275
|
+
glossary?: Array<{
|
|
276
|
+
term: string;
|
|
277
|
+
definition: string;
|
|
278
|
+
}>;
|
|
279
|
+
}
|
|
280
|
+
interface KnowledgeBaseChunkRequest {
|
|
281
|
+
database: string;
|
|
282
|
+
dialect: string;
|
|
283
|
+
tables: KnowledgeBaseChunkTable[];
|
|
284
|
+
tenantId?: string;
|
|
285
|
+
}
|
|
286
|
+
interface KnowledgeBaseChunksResponse {
|
|
287
|
+
success: boolean;
|
|
288
|
+
message: string;
|
|
289
|
+
chunks: {
|
|
290
|
+
total: number;
|
|
291
|
+
gold_sql: number;
|
|
292
|
+
glossary: number;
|
|
293
|
+
chunks_with_annotations: number;
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
interface SdkChart {
|
|
297
|
+
id: string;
|
|
298
|
+
title: string;
|
|
299
|
+
description: string | null;
|
|
300
|
+
sql: string;
|
|
301
|
+
sql_params: Record<string, unknown> | null;
|
|
302
|
+
vega_lite_spec: Record<string, unknown>;
|
|
303
|
+
query_id: string | null;
|
|
304
|
+
organization_id: string | null;
|
|
305
|
+
tenant_id: string | null;
|
|
306
|
+
user_id: string | null;
|
|
307
|
+
created_at: string | null;
|
|
308
|
+
updated_at: string | null;
|
|
309
|
+
active?: boolean;
|
|
310
|
+
database?: string | null;
|
|
311
|
+
}
|
|
312
|
+
interface SdkActiveChart {
|
|
313
|
+
id: string;
|
|
314
|
+
chart_id: string;
|
|
315
|
+
order: number | null;
|
|
316
|
+
meta: Record<string, unknown> | null;
|
|
317
|
+
organization_id: string | null;
|
|
318
|
+
tenant_id: string | null;
|
|
319
|
+
user_id: string | null;
|
|
320
|
+
created_at: string | null;
|
|
321
|
+
updated_at: string | null;
|
|
322
|
+
chart?: SdkChart | null;
|
|
323
|
+
}
|
|
324
|
+
interface ChartCreateInput {
|
|
325
|
+
title: string;
|
|
326
|
+
description?: string;
|
|
327
|
+
sql: string;
|
|
328
|
+
sql_params?: Record<string, unknown>;
|
|
329
|
+
vega_lite_spec: Record<string, unknown>;
|
|
330
|
+
query_id?: string;
|
|
331
|
+
database?: string;
|
|
332
|
+
}
|
|
333
|
+
interface ChartUpdateInput {
|
|
334
|
+
title?: string;
|
|
335
|
+
description?: string;
|
|
336
|
+
sql?: string;
|
|
337
|
+
sql_params?: Record<string, unknown>;
|
|
338
|
+
vega_lite_spec?: Record<string, unknown>;
|
|
339
|
+
database?: string;
|
|
340
|
+
}
|
|
341
|
+
interface ActiveChartCreateInput {
|
|
342
|
+
chart_id: string;
|
|
343
|
+
order?: number;
|
|
344
|
+
meta?: Record<string, unknown>;
|
|
345
|
+
}
|
|
346
|
+
interface ActiveChartUpdateInput {
|
|
347
|
+
chart_id?: string;
|
|
348
|
+
order?: number;
|
|
349
|
+
meta?: Record<string, unknown>;
|
|
350
|
+
}
|
|
351
|
+
interface PaginationQuery {
|
|
352
|
+
page?: number;
|
|
353
|
+
limit?: number;
|
|
354
|
+
}
|
|
355
|
+
interface PaginationInfo {
|
|
356
|
+
page: number;
|
|
357
|
+
limit: number;
|
|
358
|
+
total: number;
|
|
359
|
+
totalPages: number;
|
|
360
|
+
hasNext: boolean;
|
|
361
|
+
hasPrev: boolean;
|
|
362
|
+
}
|
|
363
|
+
interface PaginatedResponse<T> {
|
|
364
|
+
data: T[];
|
|
365
|
+
pagination: PaginationInfo;
|
|
366
|
+
}
|
|
367
|
+
interface ChartListOptions {
|
|
368
|
+
tenantId?: string;
|
|
369
|
+
userId?: string;
|
|
370
|
+
scopes?: string[];
|
|
371
|
+
pagination?: PaginationQuery;
|
|
372
|
+
sortBy?: "title" | "user_id" | "created_at" | "updated_at";
|
|
373
|
+
sortDir?: "asc" | "desc";
|
|
374
|
+
title?: string;
|
|
375
|
+
userFilter?: string;
|
|
376
|
+
createdFrom?: string;
|
|
377
|
+
createdTo?: string;
|
|
378
|
+
updatedFrom?: string;
|
|
379
|
+
updatedTo?: string;
|
|
380
|
+
includeData?: boolean;
|
|
381
|
+
}
|
|
382
|
+
interface ActiveChartListOptions extends ChartListOptions {
|
|
383
|
+
withData?: boolean;
|
|
384
|
+
}
|
|
385
|
+
interface IngestResponse {
|
|
386
|
+
success: boolean;
|
|
387
|
+
message: string;
|
|
388
|
+
chunks: number;
|
|
389
|
+
chunks_with_annotations: number;
|
|
390
|
+
schema_id?: string;
|
|
391
|
+
schema_hash?: string;
|
|
392
|
+
drift_detected?: boolean;
|
|
393
|
+
skipped?: boolean;
|
|
394
|
+
}
|
|
395
|
+
interface RequestOptions {
|
|
396
|
+
tenantId?: string;
|
|
397
|
+
userId?: string;
|
|
398
|
+
scopes?: string[];
|
|
399
|
+
}
|
|
400
|
+
declare class QueryPanelSdkAPI {
|
|
401
|
+
private readonly baseUrl;
|
|
402
|
+
private readonly privateKey;
|
|
403
|
+
private readonly organizationId;
|
|
404
|
+
private readonly defaultTenantId?;
|
|
405
|
+
private readonly additionalHeaders?;
|
|
406
|
+
private readonly fetchImpl;
|
|
407
|
+
private cachedPrivateKey?;
|
|
408
|
+
private databases;
|
|
409
|
+
private databaseMetadata;
|
|
410
|
+
private defaultDatabase?;
|
|
411
|
+
private lastSyncHashes;
|
|
412
|
+
private syncedDatabases;
|
|
413
|
+
constructor(baseUrl: string, privateKey: string, organizationId: string, options?: {
|
|
414
|
+
defaultTenantId?: string;
|
|
415
|
+
additionalHeaders?: Record<string, string>;
|
|
416
|
+
fetch?: typeof fetch;
|
|
417
|
+
});
|
|
418
|
+
attachClickhouse(name: string, clientFn: ClickHouseClientFn, options?: ClickHouseAdapterOptions & {
|
|
419
|
+
description?: string;
|
|
420
|
+
tags?: string[];
|
|
421
|
+
tenantFieldName?: string;
|
|
422
|
+
tenantFieldType?: string;
|
|
423
|
+
enforceTenantIsolation?: boolean;
|
|
424
|
+
}): void;
|
|
425
|
+
attachPostgres(name: string, clientFn: PostgresClientFn, options?: PostgresAdapterOptions & {
|
|
426
|
+
description?: string;
|
|
427
|
+
tags?: string[];
|
|
428
|
+
tenantFieldName?: string;
|
|
429
|
+
enforceTenantIsolation?: boolean;
|
|
430
|
+
}): void;
|
|
431
|
+
attachDatabase(name: string, adapter: DatabaseAdapter): void;
|
|
432
|
+
syncSchema(databaseName: string, options: SchemaSyncOptions, signal?: AbortSignal): Promise<IngestResponse>;
|
|
433
|
+
ingestKnowledgeBaseChunks(payload: KnowledgeBaseChunkRequest, options?: RequestOptions, signal?: AbortSignal): Promise<KnowledgeBaseChunksResponse>;
|
|
434
|
+
introspect(databaseName: string, tables?: string[]): Promise<SchemaIntrospection>;
|
|
435
|
+
ask(question: string, options: AskOptions, signal?: AbortSignal): Promise<AskResponse>;
|
|
436
|
+
upsertAnnotation(input: KnowledgeBaseAnnotationInput, options?: RequestOptions, signal?: AbortSignal): Promise<KnowledgeBaseAnnotation>;
|
|
437
|
+
listAnnotations(options?: RequestOptions, signal?: AbortSignal): Promise<KnowledgeBaseAnnotation[]>;
|
|
438
|
+
getAnnotation(targetIdentifier: string, options?: RequestOptions, signal?: AbortSignal): Promise<KnowledgeBaseAnnotation | null>;
|
|
439
|
+
deleteAnnotation(targetIdentifier: string, options?: RequestOptions, signal?: AbortSignal): Promise<void>;
|
|
440
|
+
createChart(body: ChartCreateInput, options?: RequestOptions, signal?: AbortSignal): Promise<SdkChart>;
|
|
441
|
+
listCharts(options?: ChartListOptions, signal?: AbortSignal): Promise<PaginatedResponse<SdkChart>>;
|
|
442
|
+
getChart(id: string, options?: RequestOptions, signal?: AbortSignal): Promise<SdkChart>;
|
|
443
|
+
updateChart(id: string, body: ChartUpdateInput, options?: RequestOptions, signal?: AbortSignal): Promise<SdkChart>;
|
|
444
|
+
deleteChart(id: string, options?: RequestOptions, signal?: AbortSignal): Promise<void>;
|
|
445
|
+
createActiveChart(body: ActiveChartCreateInput, options?: RequestOptions, signal?: AbortSignal): Promise<SdkActiveChart>;
|
|
446
|
+
listActiveCharts(options?: ActiveChartListOptions, signal?: AbortSignal): Promise<PaginatedResponse<SdkActiveChart>>;
|
|
447
|
+
getActiveChart(id: string, options?: ActiveChartListOptions, signal?: AbortSignal): Promise<SdkActiveChart>;
|
|
448
|
+
updateActiveChart(id: string, body: ActiveChartUpdateInput, options?: RequestOptions, signal?: AbortSignal): Promise<SdkActiveChart>;
|
|
449
|
+
deleteActiveChart(id: string, options?: RequestOptions, signal?: AbortSignal): Promise<void>;
|
|
450
|
+
private getDatabase;
|
|
451
|
+
private ensureSchemasSynced;
|
|
452
|
+
private resolveTenantId;
|
|
453
|
+
private headers;
|
|
454
|
+
private request;
|
|
455
|
+
private get;
|
|
456
|
+
private post;
|
|
457
|
+
private put;
|
|
458
|
+
private delete;
|
|
459
|
+
private generateJWT;
|
|
460
|
+
private buildSchemaRequest;
|
|
461
|
+
private hashSchemaRequest;
|
|
462
|
+
private mapGeneratedParams;
|
|
463
|
+
private ensureTenantIsolation;
|
|
464
|
+
private runSafeQueryOnClient;
|
|
465
|
+
}
|
|
466
|
+
declare function anonymizeResults(rows: Array<Record<string, unknown>>): Array<Record<string, string>>;
|
|
467
|
+
|
|
468
|
+
export { type ActiveChartCreateInput, type ActiveChartListOptions, type ActiveChartUpdateInput, type AskOptions, type AskResponse, type ChartCreateInput, type ChartEnvelope, type ChartListOptions, type ChartUpdateInput, ClickHouseAdapter, type ClickHouseAdapterOptions, type ClickHouseClientFn, type ContextDocument, type DatabaseAdapter, type DatabaseDialect, type IngestResponse, type KnowledgeBaseAnnotation, type KnowledgeBaseAnnotationInput, type KnowledgeBaseChunkRequest, type KnowledgeBaseChunkTable, type KnowledgeBaseChunksResponse, type PaginatedResponse, type PaginationInfo, type PaginationQuery, type ParamRecord, type ParamValue, PostgresAdapter, type PostgresAdapterOptions, type PostgresClientFn, QueryPanelSdkAPI, type SchemaIntrospection, type SchemaSyncOptions, type SdkActiveChart, type SdkChart, anonymizeResults };
|