@lightdash/warehouses 2.521.0 → 2.523.0
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/dist/.tsbuildinfo.build +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/warehouseClients/ClickhouseWarehouseClient.d.ts +1 -0
- package/dist/warehouseClients/ClickhouseWarehouseClient.d.ts.map +1 -1
- package/dist/warehouseClients/ClickhouseWarehouseClient.js +3 -0
- package/dist/warehouseClients/DatabricksWarehouseClient.d.ts +2 -0
- package/dist/warehouseClients/DatabricksWarehouseClient.d.ts.map +1 -1
- package/dist/warehouseClients/DatabricksWarehouseClient.js +4 -0
- package/dist/warehouseClients/PostgresWarehouseClient.d.ts +1 -0
- package/dist/warehouseClients/PostgresWarehouseClient.d.ts.map +1 -1
- package/dist/warehouseClients/PostgresWarehouseClient.js +4 -0
- package/dist/warehouseClients/RedshiftWarehouseClient.d.ts +4 -0
- package/dist/warehouseClients/RedshiftWarehouseClient.d.ts.map +1 -1
- package/dist/warehouseClients/RedshiftWarehouseClient.js +6 -0
- package/dist/warehouseClients/SnowflakeWarehouseClient.d.ts +2 -0
- package/dist/warehouseClients/SnowflakeWarehouseClient.d.ts.map +1 -1
- package/dist/warehouseClients/SnowflakeWarehouseClient.js +3 -0
- package/package.json +2 -2
- package/dist/agentAccess/BigqueryAgentAccessProbe.d.ts +0 -31
- package/dist/agentAccess/BigqueryAgentAccessProbe.d.ts.map +0 -1
- package/dist/agentAccess/BigqueryAgentAccessProbe.js +0 -210
package/dist/index.d.ts
CHANGED
|
@@ -16,5 +16,4 @@ export * from './warehouseClients/redshiftIamCredentials';
|
|
|
16
16
|
export * from './warehouseClients/SnowflakeWarehouseClient';
|
|
17
17
|
export * from './warehouseClients/TrinoWarehouseClient';
|
|
18
18
|
export * from './warehouseSqlBuilderFromType';
|
|
19
|
-
export * from './agentAccess/BigqueryAgentAccessProbe';
|
|
20
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -33,4 +33,3 @@ __exportStar(require("./warehouseClients/redshiftIamCredentials"), exports);
|
|
|
33
33
|
__exportStar(require("./warehouseClients/SnowflakeWarehouseClient"), exports);
|
|
34
34
|
__exportStar(require("./warehouseClients/TrinoWarehouseClient"), exports);
|
|
35
35
|
__exportStar(require("./warehouseSqlBuilderFromType"), exports);
|
|
36
|
-
__exportStar(require("./agentAccess/BigqueryAgentAccessProbe"), exports);
|
|
@@ -61,6 +61,7 @@ export declare class ClickhouseSqlBuilder extends WarehouseBaseSqlBuilder {
|
|
|
61
61
|
export declare const getMaxOpenConnections: (maxOpenConnections?: number) => number;
|
|
62
62
|
export type ClickhouseWarehouseClientOptions = {
|
|
63
63
|
agentSession?: boolean;
|
|
64
|
+
agentJobControls?: boolean;
|
|
64
65
|
/** Upper bound of concurrent queries sharing this client; sizes the HTTP socket pool. */
|
|
65
66
|
maxOpenConnections?: number;
|
|
66
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickhouseWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/ClickhouseWarehouseClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ClickhouseWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/ClickhouseWarehouseClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -238,6 +238,9 @@ class ClickhouseWarehouseClient extends WarehouseBaseClient_1.default {
|
|
|
238
238
|
password: credentials.password,
|
|
239
239
|
database: credentials.schema, // In clickhouse schema = database
|
|
240
240
|
request_timeout: (credentials.timeoutSeconds || 30) * 1000,
|
|
241
|
+
...(options?.agentJobControls
|
|
242
|
+
? { clickhouse_settings: { use_query_cache: 0 } }
|
|
243
|
+
: {}),
|
|
241
244
|
max_open_connections: (0, exports.getMaxOpenConnections)(options?.maxOpenConnections),
|
|
242
245
|
});
|
|
243
246
|
}
|
|
@@ -52,8 +52,10 @@ export declare class DatabricksWarehouseClient extends WarehouseBaseClient<Creat
|
|
|
52
52
|
catalog?: string;
|
|
53
53
|
connectionOptions: ConnectionOptions;
|
|
54
54
|
private readonly enableTimeouts;
|
|
55
|
+
private readonly agentJobControls;
|
|
55
56
|
constructor(credentials: CreateDatabricksCredentials, options?: {
|
|
56
57
|
agentSession?: boolean;
|
|
58
|
+
agentJobControls?: boolean;
|
|
57
59
|
});
|
|
58
60
|
private openSession;
|
|
59
61
|
private streamQueryOnSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabricksWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/DatabricksWarehouseClient.ts"],"names":[],"mappings":"AACA,OAAqB,EACjB,iBAAiB,EACpB,MAAM,6CAA6C,CAAC;AAIrD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EACH,OAAO,EACP,2BAA2B,EAM3B,MAAM,EAMN,mBAAmB,EACnB,gBAAgB,EAEhB,SAAS,EACT,aAAa,EAGb,gBAAgB,EAChB,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAO5C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,mBAAmB,CAAC;AAQnE,eAAO,MAAM,4BAA4B,aAC3B,MAAM,GAAG,SAAS,KAC7B,OAAsE,CAAC;AA8B1E,eAAO,MAAM,wBAAwB,UAAW;IAC5C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,cAAc,CAAC,EAAE;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrD,CAAC;CACL,KAAG,iBAAiB,GAAG,IAiBvB,CAAC;AAyHF,eAAO,MAAM,4BAA4B,SAC/B,MAAM,KACb,eAAe,GAAG,SASpB,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,uBAAuB;IAC7D,QAAQ,CAAC,IAAI,6BAA6B;IAE1C,cAAc,IAAI,mBAAmB,CAEpC;IAED,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAShD;IAED,iBAAiB,IAAI,MAAM,CAE1B;IAED,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBlC;IAED,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAI5D;IAED,uBAAuB,CACnB,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,GACxB,MAAM,CAGR;IAED,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrC;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAGrC;IAED,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAO1D;IAED,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAE3C;CACJ;AAgHD;;;;GAIG;AACH,oBAAY,wBAAwB;IAChC,qBAAqB;IACrB,mBAAmB,4BAA4B;IAC/C,6EAA6E;IAC7E,gBAAgB,uBAAuB;CAC1C;AAKD,eAAO,MAAM,2BAA2B,UAC7B,OAAO,KACf,wBAAwB,GAAG,SAO7B,CAAC;AAgBF,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,2BAA2B,CAAC;IAC3F,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iBAAiB,EAAE,iBAAiB,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEzC,YACI,WAAW,EAAE,2BAA2B,EACxC,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,
|
|
1
|
+
{"version":3,"file":"DatabricksWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/DatabricksWarehouseClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -347,6 +347,7 @@ class DatabricksWarehouseClient extends WarehouseBaseClient_1.default {
|
|
|
347
347
|
constructor(credentials, options) {
|
|
348
348
|
super(credentials, new DatabricksSqlBuilder(credentials.startOfWeek), options);
|
|
349
349
|
this.schema = credentials.database;
|
|
350
|
+
this.agentJobControls = options?.agentJobControls ?? false;
|
|
350
351
|
this.catalog = credentials.catalog;
|
|
351
352
|
this.enableTimeouts = process.env.DATABRICKS_ENABLE_TIMEOUTS === 'true';
|
|
352
353
|
// Build connection options based on authentication type
|
|
@@ -400,6 +401,9 @@ class DatabricksWarehouseClient extends WarehouseBaseClient_1.default {
|
|
|
400
401
|
session = await connection.openSession({
|
|
401
402
|
initialCatalog: this.catalog,
|
|
402
403
|
initialSchema: this.schema,
|
|
404
|
+
...(this.agentJobControls
|
|
405
|
+
? { configuration: { use_cached_result: 'false' } }
|
|
406
|
+
: {}),
|
|
403
407
|
});
|
|
404
408
|
}
|
|
405
409
|
catch (e) {
|
|
@@ -70,6 +70,7 @@ export declare class PostgresClient<T extends CreatePostgresLikeCredentials> ext
|
|
|
70
70
|
constructor(credentials: T, config: pg.PoolConfig, options?: {
|
|
71
71
|
agentSession?: boolean;
|
|
72
72
|
});
|
|
73
|
+
protected prepareSession(_client: pg.PoolClient): Promise<void>;
|
|
73
74
|
protected getAgentSessionStatement(): string;
|
|
74
75
|
protected getCatalogQueryFilters(databases: Set<string>, schemas: Set<string>, tables: Set<string>): CatalogQueryFilters;
|
|
75
76
|
private getSQLWithMetadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgresWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/PostgresWarehouseClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PostgresWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/PostgresWarehouseClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -275,6 +275,9 @@ class PostgresClient extends WarehouseBaseClient_1.default {
|
|
|
275
275
|
: {}),
|
|
276
276
|
};
|
|
277
277
|
}
|
|
278
|
+
prepareSession(_client) {
|
|
279
|
+
return Promise.resolve();
|
|
280
|
+
}
|
|
278
281
|
getAgentSessionStatement() {
|
|
279
282
|
return `SET ${common_1.AI_AGENT_SESSION_SETTING} = 'true'`;
|
|
280
283
|
}
|
|
@@ -437,6 +440,7 @@ class PostgresClient extends WarehouseBaseClient_1.default {
|
|
|
437
440
|
const sessionStart = performance.now();
|
|
438
441
|
client
|
|
439
442
|
.query(`SET statement_timeout = ${statementTimeoutMs}`)
|
|
443
|
+
.then(() => this.prepareSession(client))
|
|
440
444
|
.then(() => this.agentSession
|
|
441
445
|
? client.query(this.getAgentSessionStatement())
|
|
442
446
|
: undefined)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AnyType, CreateRedshiftCredentials, SupportedDbtAdapter, WarehouseCatalog, WarehouseResults, WarehouseTypes } from '@lightdash/common';
|
|
2
|
+
import { PoolClient } from 'pg';
|
|
2
3
|
import { PostgresClient, PostgresSqlBuilder } from './PostgresWarehouseClient';
|
|
3
4
|
export declare class RedshiftSqlBuilder extends PostgresSqlBuilder {
|
|
4
5
|
type: WarehouseTypes;
|
|
@@ -6,10 +7,13 @@ export declare class RedshiftSqlBuilder extends PostgresSqlBuilder {
|
|
|
6
7
|
}
|
|
7
8
|
export declare class RedshiftWarehouseClient extends PostgresClient<CreateRedshiftCredentials> {
|
|
8
9
|
private readonly ssl;
|
|
10
|
+
private readonly agentJobControls;
|
|
9
11
|
private cachedIamPoolConfig;
|
|
10
12
|
constructor(credentials: CreateRedshiftCredentials, options?: {
|
|
11
13
|
agentSession?: boolean;
|
|
14
|
+
agentJobControls?: boolean;
|
|
12
15
|
});
|
|
16
|
+
protected prepareSession(client: PoolClient): Promise<void>;
|
|
13
17
|
protected getAgentSessionStatement(): string;
|
|
14
18
|
private static getConnectionString;
|
|
15
19
|
streamQuery(sql: string, streamCallback: (data: WarehouseResults) => void | Promise<void>, options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedshiftWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/RedshiftWarehouseClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,yBAAyB,EAGzB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACjB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"RedshiftWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/RedshiftWarehouseClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,OAAO,EACP,yBAAyB,EAGzB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,UAAU,EAAc,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAsC/E,qBAAa,kBAAmB,SAAQ,kBAAkB;IACtD,IAAI,iBAA2B;IAE/B,cAAc,IAAI,mBAAmB,CAEpC;CACJ;AAED,qBAAa,uBAAwB,SAAQ,cAAc,CAAC,yBAAyB,CAAC;IAClF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IAExC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAE3C,OAAO,CAAC,mBAAmB,CAEX;IAEhB,YACI,WAAW,EAAE,yBAAyB,EACtC,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,EAiCnE;IAED,UAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhE;IAED,SAAS,CAAC,wBAAwB,IAAI,MAAM,CAE3C;IAED,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAgB5B,WAAW,CACb,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAChE,OAAO,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GACF,OAAO,CAAC,IAAI,CAAC,CAUf;IAKK,YAAY;;;;;SAkBjB;IAEK,SAAS,CACX,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CA2B3B;YAEa,oBAAoB;CA+BrC"}
|
|
@@ -102,9 +102,15 @@ class RedshiftWarehouseClient extends PostgresWarehouseClient_1.PostgresClient {
|
|
|
102
102
|
ssl,
|
|
103
103
|
}, options);
|
|
104
104
|
this.ssl = ssl;
|
|
105
|
+
this.agentJobControls = options?.agentJobControls ?? false;
|
|
105
106
|
// Override the sqlBuilder with RedshiftSqlBuilder
|
|
106
107
|
this.sqlBuilder = new RedshiftSqlBuilder(credentials.startOfWeek);
|
|
107
108
|
}
|
|
109
|
+
async prepareSession(client) {
|
|
110
|
+
if (this.agentJobControls) {
|
|
111
|
+
await client.query('SET enable_result_cache_for_session TO off');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
108
114
|
getAgentSessionStatement() {
|
|
109
115
|
return `SELECT set_config('${common_1.AI_AGENT_SESSION_SETTING}', 'true', false)`;
|
|
110
116
|
}
|
|
@@ -127,11 +127,13 @@ export declare class SnowflakeWarehouseClient extends WarehouseBaseClient<Create
|
|
|
127
127
|
quotedIdentifiersIgnoreCase?: boolean;
|
|
128
128
|
static formatQueryTag(tags: Record<string, string>): string;
|
|
129
129
|
private interactiveConnectionPromise?;
|
|
130
|
+
private readonly agentJobControls;
|
|
130
131
|
private readonly privateKey;
|
|
131
132
|
private readonly privateKeyPassphrase;
|
|
132
133
|
private readonly oauthCredentialManager?;
|
|
133
134
|
constructor(credentials: CreateSnowflakeCredentials, options?: {
|
|
134
135
|
agentSession?: boolean;
|
|
136
|
+
agentJobControls?: boolean;
|
|
135
137
|
logger?: {
|
|
136
138
|
info: (message: string, metadata?: Record<string, unknown>) => void;
|
|
137
139
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnowflakeWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/SnowflakeWarehouseClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SnowflakeWarehouseClient.d.ts","sourceRoot":"","sources":["../../src/warehouseClients/SnowflakeWarehouseClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -600,6 +600,7 @@ class SnowflakeWarehouseClient extends WarehouseBaseClient_1.default {
|
|
|
600
600
|
constructor(credentials, options) {
|
|
601
601
|
super(credentials, new SnowflakeSqlBuilder(credentials.startOfWeek), options);
|
|
602
602
|
this.logger = options?.logger;
|
|
603
|
+
this.agentJobControls = options?.agentJobControls ?? false;
|
|
603
604
|
if (typeof credentials.quotedIdentifiersIgnoreCase !== 'undefined') {
|
|
604
605
|
this.quotedIdentifiersIgnoreCase =
|
|
605
606
|
credentials.quotedIdentifiersIgnoreCase;
|
|
@@ -706,6 +707,8 @@ class SnowflakeWarehouseClient extends WarehouseBaseClient_1.default {
|
|
|
706
707
|
currentRole: session.currentRole,
|
|
707
708
|
activeRestrictedSessionScopes: session.activeRestrictedSessionScopes,
|
|
708
709
|
});
|
|
710
|
+
}
|
|
711
|
+
if (this.credentials.requireAgentSession || this.agentJobControls) {
|
|
709
712
|
try {
|
|
710
713
|
await disableSnowflakeCachedResult(connection);
|
|
711
714
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lightdash/warehouses",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.523.0",
|
|
4
4
|
"description": "Warehouse connectors for Lightdash",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@databricks/sql": "1.13.0",
|
|
22
22
|
"@duckdb/node-api": "1.5.2-r.2",
|
|
23
23
|
"@google-cloud/bigquery": "8.3.1",
|
|
24
|
-
"@lightdash/common": "2.
|
|
24
|
+
"@lightdash/common": "2.523.0",
|
|
25
25
|
"node-fetch": "2.7.0",
|
|
26
26
|
"pg": "8.13.1",
|
|
27
27
|
"pg-cursor": "2.10.0",
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { type AgentAccessDataset, type AgentAccessReport, type AgentTableStatus } from '@lightdash/common';
|
|
2
|
-
import { BigqueryWarehouseClient } from '../warehouseClients/BigqueryWarehouseClient';
|
|
3
|
-
export type AgentAccessInventoryTable = AgentAccessDataset & {
|
|
4
|
-
name: string;
|
|
5
|
-
location: string;
|
|
6
|
-
};
|
|
7
|
-
type FailureReason = NonNullable<AgentAccessReport['failureReason']>;
|
|
8
|
-
export declare class AgentAccessProbeError extends Error {
|
|
9
|
-
readonly reason: FailureReason;
|
|
10
|
-
constructor(reason: FailureReason);
|
|
11
|
-
}
|
|
12
|
-
export declare const classifyBigqueryAccessError: (error: unknown, phase?: 'identity' | 'tables') => {
|
|
13
|
-
kind: 'fatal';
|
|
14
|
-
reason: FailureReason;
|
|
15
|
-
} | Exclude<AgentTableStatus, {
|
|
16
|
-
kind: 'readable';
|
|
17
|
-
} | {
|
|
18
|
-
kind: 'not_checked';
|
|
19
|
-
}>;
|
|
20
|
-
export declare class BigqueryAgentAccessProbe {
|
|
21
|
-
private readonly warehouse;
|
|
22
|
-
private accessToken;
|
|
23
|
-
constructor(warehouse: BigqueryWarehouseClient);
|
|
24
|
-
private withDeadline;
|
|
25
|
-
private request;
|
|
26
|
-
principal(deadline: number): Promise<string>;
|
|
27
|
-
listTables(dataset: AgentAccessDataset, deadline: number): Promise<AgentAccessInventoryTable[]>;
|
|
28
|
-
probe(table: AgentAccessInventoryTable, deadline: number): Promise<AgentTableStatus>;
|
|
29
|
-
}
|
|
30
|
-
export {};
|
|
31
|
-
//# sourceMappingURL=BigqueryAgentAccessProbe.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BigqueryAgentAccessProbe.d.ts","sourceRoot":"","sources":["../../src/agentAccess/BigqueryAgentAccessProbe.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;AAErE,qBAAa,qBAAsB,SAAQ,KAAK;aAChB,MAAM,EAAE,aAAa;IAAjD,YAA4B,MAAM,EAAE,aAAa,EAGhD;CACJ;AAOD,eAAO,MAAM,2BAA2B,UAC7B,OAAO,UACP,UAAU,GAAG,QAAQ,KAE1B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACxC,OAAO,CACH,gBAAgB,EAChB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CA8EvD,CAAC;AAKF,qBAAa,wBAAwB;IAGrB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,WAAW,CAAgC;IAEnD,YAA6B,SAAS,EAAE,uBAAuB,EAAI;YAErD,YAAY;YAuBZ,OAAO;IA0Cf,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BjD;IAEK,UAAU,CACZ,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAiCtC;IAEK,KAAK,CACP,KAAK,EAAE,yBAAyB,EAChC,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAyC3B;CACJ"}
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BigqueryAgentAccessProbe = exports.classifyBigqueryAccessError = exports.AgentAccessProbeError = void 0;
|
|
4
|
-
class AgentAccessProbeError extends Error {
|
|
5
|
-
constructor(reason) {
|
|
6
|
-
super(reason);
|
|
7
|
-
this.reason = reason;
|
|
8
|
-
this.name = 'AgentAccessProbeError';
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
exports.AgentAccessProbeError = AgentAccessProbeError;
|
|
12
|
-
const record = (value) => typeof value === 'object' && value !== null
|
|
13
|
-
? value
|
|
14
|
-
: {};
|
|
15
|
-
const classifyBigqueryAccessError = (error, phase = 'tables') => {
|
|
16
|
-
if (error instanceof AgentAccessProbeError)
|
|
17
|
-
return { kind: 'fatal', reason: error.reason };
|
|
18
|
-
const root = record(error);
|
|
19
|
-
const response = record(root.response);
|
|
20
|
-
const data = record(response.data);
|
|
21
|
-
const detail = record(data.error);
|
|
22
|
-
const errors = root.errors ?? detail.errors;
|
|
23
|
-
const entries = Array.isArray(errors) ? errors.map(record) : [];
|
|
24
|
-
const reasons = entries.map((entry) => entry.reason);
|
|
25
|
-
const code = detail.code ?? response.status ?? root.code;
|
|
26
|
-
const message = [
|
|
27
|
-
root.message,
|
|
28
|
-
detail.message,
|
|
29
|
-
...entries.map((entry) => entry.message),
|
|
30
|
-
]
|
|
31
|
-
.filter((value) => typeof value === 'string')
|
|
32
|
-
.join(' ');
|
|
33
|
-
if (code === 401 ||
|
|
34
|
-
reasons.some((reason) => ['authError', 'invalidCredentials', 'invalid_grant'].includes(String(reason))) ||
|
|
35
|
-
data.error === 'invalid_grant')
|
|
36
|
-
return { kind: 'fatal', reason: 'invalid_credentials' };
|
|
37
|
-
if (reasons.some((reason) => [
|
|
38
|
-
'rateLimitExceeded',
|
|
39
|
-
'jobRateLimitExceeded',
|
|
40
|
-
'quotaExceeded',
|
|
41
|
-
'resourcesExceeded',
|
|
42
|
-
].includes(String(reason))) ||
|
|
43
|
-
code === 429)
|
|
44
|
-
return { kind: 'error', reason: 'quota' };
|
|
45
|
-
if (message.includes('bigquery.jobs.create'))
|
|
46
|
-
return { kind: 'fatal', reason: 'job_permission_denied' };
|
|
47
|
-
if (reasons.includes('accessDenied'))
|
|
48
|
-
return { kind: 'blocked', reason: 'access_denied' };
|
|
49
|
-
if (reasons.includes('notFound') || code === 404)
|
|
50
|
-
return { kind: 'error', reason: 'not_found' };
|
|
51
|
-
if (['ETIMEDOUT', 'ESOCKETTIMEDOUT', 'ABORT_ERR'].includes(String(code)) ||
|
|
52
|
-
root.name === 'AbortError' ||
|
|
53
|
-
root.name === 'TimeoutError')
|
|
54
|
-
return { kind: 'error', reason: 'timeout' };
|
|
55
|
-
if (reasons.some((reason) => ['invalidQuery', 'invalid', 'notImplemented'].includes(String(reason))))
|
|
56
|
-
return { kind: 'error', reason: 'unsupported' };
|
|
57
|
-
if ((typeof code === 'number' && code >= 500) ||
|
|
58
|
-
['ECONNRESET', 'ECONNREFUSED', 'ENOTFOUND', 'EAI_AGAIN'].includes(String(code)) ||
|
|
59
|
-
reasons.includes('backendError'))
|
|
60
|
-
return { kind: 'error', reason: 'unavailable' };
|
|
61
|
-
if (code === 403)
|
|
62
|
-
return { kind: 'fatal', reason: 'warehouse_denied' };
|
|
63
|
-
if (phase === 'identity' &&
|
|
64
|
-
root.response == null &&
|
|
65
|
-
typeof code !== 'number' &&
|
|
66
|
-
entries.length === 0)
|
|
67
|
-
return { kind: 'fatal', reason: 'invalid_credentials' };
|
|
68
|
-
return { kind: 'error', reason: 'unknown' };
|
|
69
|
-
};
|
|
70
|
-
exports.classifyBigqueryAccessError = classifyBigqueryAccessError;
|
|
71
|
-
const quoteTable = (table) => `\`${[table.database, table.schema, table.name].map((part) => part.replaceAll('\\', '\\\\').replaceAll('`', '\\`')).join('.')}\``;
|
|
72
|
-
class BigqueryAgentAccessProbe {
|
|
73
|
-
constructor(warehouse) {
|
|
74
|
-
this.warehouse = warehouse;
|
|
75
|
-
this.accessToken = null;
|
|
76
|
-
}
|
|
77
|
-
async withDeadline(operation, deadline) {
|
|
78
|
-
const timeout = Math.min(5000, deadline - Date.now());
|
|
79
|
-
if (timeout <= 0)
|
|
80
|
-
throw new AgentAccessProbeError('timeout');
|
|
81
|
-
const controller = new AbortController();
|
|
82
|
-
let timer;
|
|
83
|
-
try {
|
|
84
|
-
return await Promise.race([
|
|
85
|
-
operation(controller.signal),
|
|
86
|
-
new Promise((_, reject) => {
|
|
87
|
-
timer = setTimeout(() => {
|
|
88
|
-
controller.abort();
|
|
89
|
-
reject(new AgentAccessProbeError('timeout'));
|
|
90
|
-
}, timeout);
|
|
91
|
-
}),
|
|
92
|
-
]);
|
|
93
|
-
}
|
|
94
|
-
finally {
|
|
95
|
-
clearTimeout(timer);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
async request(path, method, data, deadline) {
|
|
99
|
-
const requestDeadline = Math.min(Date.now() + 5000, deadline);
|
|
100
|
-
return this.withDeadline(async (signal) => {
|
|
101
|
-
this.accessToken ?? (this.accessToken = this.withDeadline(async () => {
|
|
102
|
-
const token = await this.warehouse.client.authClient.getAccessToken();
|
|
103
|
-
if (!token)
|
|
104
|
-
throw new AgentAccessProbeError('invalid_credentials');
|
|
105
|
-
return token;
|
|
106
|
-
}, requestDeadline));
|
|
107
|
-
const token = await this.accessToken;
|
|
108
|
-
signal.throwIfAborted();
|
|
109
|
-
if (Date.now() >= requestDeadline)
|
|
110
|
-
throw new AgentAccessProbeError('timeout');
|
|
111
|
-
const response = await fetch(`${this.warehouse.client.baseUrl}/${path}`, {
|
|
112
|
-
method,
|
|
113
|
-
headers: {
|
|
114
|
-
Authorization: `Bearer ${token}`,
|
|
115
|
-
'Content-Type': 'application/json',
|
|
116
|
-
},
|
|
117
|
-
...(data === null ? {} : { body: JSON.stringify(data) }),
|
|
118
|
-
signal,
|
|
119
|
-
});
|
|
120
|
-
if (!response.ok) {
|
|
121
|
-
const body = await response.json().catch(() => null);
|
|
122
|
-
throw Object.assign(new Error('The warehouse rejected the access check.'), { response: { status: response.status, data: body } });
|
|
123
|
-
}
|
|
124
|
-
return response.json();
|
|
125
|
-
}, requestDeadline);
|
|
126
|
-
}
|
|
127
|
-
async principal(deadline) {
|
|
128
|
-
const project = this.warehouse.credentials.executionProject ||
|
|
129
|
-
this.warehouse.credentials.project;
|
|
130
|
-
const response = await this.request(`projects/${encodeURIComponent(project)}/queries`, 'POST', {
|
|
131
|
-
query: 'SELECT SESSION_USER() AS principal',
|
|
132
|
-
useLegacySql: false,
|
|
133
|
-
useQueryCache: false,
|
|
134
|
-
labels: { agent: 'true' },
|
|
135
|
-
location: this.warehouse.credentials.location || undefined,
|
|
136
|
-
timeoutMs: 4000,
|
|
137
|
-
jobTimeoutMs: '5000',
|
|
138
|
-
}, deadline);
|
|
139
|
-
if (response.errors?.length)
|
|
140
|
-
throw Object.assign(new Error('The warehouse rejected the identity check.'), { errors: response.errors });
|
|
141
|
-
if (!response.jobComplete)
|
|
142
|
-
throw new AgentAccessProbeError('timeout');
|
|
143
|
-
const principal = response.rows?.[0]?.f?.[0]?.v;
|
|
144
|
-
if (typeof principal !== 'string' || principal.length === 0)
|
|
145
|
-
throw new AgentAccessProbeError('unknown');
|
|
146
|
-
return principal;
|
|
147
|
-
}
|
|
148
|
-
async listTables(dataset, deadline) {
|
|
149
|
-
const path = `projects/${encodeURIComponent(dataset.database)}/datasets/${encodeURIComponent(dataset.schema)}`;
|
|
150
|
-
const metadata = await this.request(path, 'GET', null, deadline);
|
|
151
|
-
const { location } = metadata;
|
|
152
|
-
if (!location)
|
|
153
|
-
throw new AgentAccessProbeError('baseline_failed');
|
|
154
|
-
const tables = [];
|
|
155
|
-
const listPage = async (pageToken) => {
|
|
156
|
-
const query = new URLSearchParams({ maxResults: '1000' });
|
|
157
|
-
if (pageToken !== null)
|
|
158
|
-
query.set('pageToken', pageToken);
|
|
159
|
-
const page = await this.request(`${path}/tables?${query}`, 'GET', null, deadline);
|
|
160
|
-
for (const table of page.tables ?? []) {
|
|
161
|
-
if (!table.tableReference?.tableId)
|
|
162
|
-
throw new AgentAccessProbeError('baseline_failed');
|
|
163
|
-
tables.push({
|
|
164
|
-
...dataset,
|
|
165
|
-
name: table.tableReference.tableId,
|
|
166
|
-
location,
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
if (page.nextPageToken)
|
|
170
|
-
await listPage(page.nextPageToken);
|
|
171
|
-
};
|
|
172
|
-
await listPage(null);
|
|
173
|
-
return tables;
|
|
174
|
-
}
|
|
175
|
-
async probe(table, deadline) {
|
|
176
|
-
try {
|
|
177
|
-
const project = this.warehouse.credentials.executionProject ||
|
|
178
|
-
this.warehouse.credentials.project;
|
|
179
|
-
const result = await this.request(`projects/${encodeURIComponent(project)}/jobs`, 'POST', {
|
|
180
|
-
jobReference: {
|
|
181
|
-
projectId: project,
|
|
182
|
-
location: table.location,
|
|
183
|
-
},
|
|
184
|
-
configuration: {
|
|
185
|
-
dryRun: true,
|
|
186
|
-
labels: { agent: 'true' },
|
|
187
|
-
jobTimeoutMs: '5000',
|
|
188
|
-
query: {
|
|
189
|
-
query: `SELECT * FROM ${quoteTable(table)}`,
|
|
190
|
-
useLegacySql: false,
|
|
191
|
-
useQueryCache: false,
|
|
192
|
-
},
|
|
193
|
-
},
|
|
194
|
-
}, deadline);
|
|
195
|
-
if (result.status?.errorResult)
|
|
196
|
-
throw Object.assign(new Error('The warehouse rejected the access check.'), { errors: [result.status.errorResult] });
|
|
197
|
-
return { kind: 'readable', reason: null };
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
const status = (0, exports.classifyBigqueryAccessError)(error);
|
|
201
|
-
if (status.kind === 'fatal') {
|
|
202
|
-
if (status.reason === 'timeout')
|
|
203
|
-
return { kind: 'error', reason: 'timeout' };
|
|
204
|
-
throw new AgentAccessProbeError(status.reason);
|
|
205
|
-
}
|
|
206
|
-
return status;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
exports.BigqueryAgentAccessProbe = BigqueryAgentAccessProbe;
|