@cubejs-backend/redshift-driver 1.6.11 → 1.6.13

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.
@@ -0,0 +1,19 @@
1
+ export interface RedshiftCredentialsProvider {
2
+ getCredentials(): Promise<{
3
+ user: string;
4
+ password: string;
5
+ }>;
6
+ getDbName(): string;
7
+ }
8
+ export declare class RedshiftPlainCredentialsProvider implements RedshiftCredentialsProvider {
9
+ private readonly user;
10
+ private readonly password;
11
+ private readonly dbName;
12
+ constructor(user: string, password: string, dbName: string);
13
+ getDbName(): string;
14
+ getCredentials(): Promise<{
15
+ user: string;
16
+ password: string;
17
+ }>;
18
+ }
19
+ //# sourceMappingURL=RedshiftCredentialsProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedshiftCredentialsProvider.d.ts","sourceRoot":"","sources":["../../src/RedshiftCredentialsProvider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IAC1C,cAAc,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9D,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,qBAAa,gCAAiC,YAAW,2BAA2B;IAEhF,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;IAG1B,SAAS,IAAI,MAAM;IAIb,cAAc;;;;CAG5B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedshiftPlainCredentialsProvider = void 0;
4
+ class RedshiftPlainCredentialsProvider {
5
+ user;
6
+ password;
7
+ dbName;
8
+ constructor(user, password, dbName) {
9
+ this.user = user;
10
+ this.password = password;
11
+ this.dbName = dbName;
12
+ }
13
+ getDbName() {
14
+ return this.dbName;
15
+ }
16
+ async getCredentials() {
17
+ return { user: this.user, password: this.password };
18
+ }
19
+ }
20
+ exports.RedshiftPlainCredentialsProvider = RedshiftPlainCredentialsProvider;
21
+ //# sourceMappingURL=RedshiftCredentialsProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedshiftCredentialsProvider.js","sourceRoot":"","sources":["../../src/RedshiftCredentialsProvider.ts"],"names":[],"mappings":";;;AAMA,MAAa,gCAAgC;IAExB;IACA;IACA;IAHnB,YACmB,IAAY,EACZ,QAAgB,EAChB,MAAc;QAFd,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEG,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;CACF;AAdD,4EAcC"}
@@ -3,7 +3,7 @@
3
3
  * @license Apache-2.0
4
4
  * @fileoverview The `RedshiftDriver` and related types declaration.
5
5
  */
6
- import { PostgresDriver, PostgresDriverConfiguration } from '@cubejs-backend/postgres-driver';
6
+ import { PostgresDriver, PostgresDriverConfiguration, type PgQueryResult, PgClient, PgClientConfig } from '@cubejs-backend/postgres-driver';
7
7
  import { DatabaseStructure, DownloadTableCSVData, DriverCapabilities, QueryColumnsResult, QuerySchemasResult, QueryTablesResult, StreamOptions, StreamTableDataWithTypes, TableColumn, TableStructure, UnloadOptions } from '@cubejs-backend/base-driver';
8
8
  interface RedshiftDriverExportRequiredAWS {
9
9
  bucketType: 's3';
@@ -26,7 +26,7 @@ export interface RedshiftDriverConfiguration extends PostgresDriverConfiguration
26
26
  * Redshift driver class.
27
27
  */
28
28
  export declare class RedshiftDriver extends PostgresDriver<RedshiftDriverConfiguration> {
29
- private readonly dbName;
29
+ private readonly credentials;
30
30
  /**
31
31
  * Returns default concurrency value.
32
32
  */
@@ -49,6 +49,7 @@ export declare class RedshiftDriver extends PostgresDriver<RedshiftDriverConfigu
49
49
  */
50
50
  testConnectionTimeout?: number;
51
51
  });
52
+ protected createConnection(poolConfig: PgClientConfig): Promise<PgClient>;
52
53
  protected primaryKeysQuery(): null;
53
54
  protected foreignKeysQuery(): null;
54
55
  /**
@@ -96,7 +97,7 @@ export declare class RedshiftDriver extends PostgresDriver<RedshiftDriverConfigu
96
97
  */
97
98
  testConnection(): Promise<void>;
98
99
  stream(query: string, values: unknown[], options: StreamOptions): Promise<StreamTableDataWithTypes>;
99
- protected queryResponse(query: string, values: unknown[]): Promise<import("pg").QueryResult<any>>;
100
+ protected queryResponse(query: string, values: unknown[]): Promise<PgQueryResult<any>>;
100
101
  protected getExportBucket(dataSource: string): RedshiftDriverExportAWS | undefined;
101
102
  loadUserDefinedTypes(): Promise<void>;
102
103
  tableColumnTypes(table: string): Promise<TableStructure>;
@@ -1 +1 @@
1
- {"version":3,"file":"RedshiftDriver.d.ts","sourceRoot":"","sources":["../../src/RedshiftDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RedshiftDriver.d.ts","sourceRoot":"","sources":["../../src/RedshiftDriver.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,14 @@ exports.RedshiftDriver = void 0;
12
12
  const shared_1 = require("@cubejs-backend/shared");
13
13
  const postgres_driver_1 = require("@cubejs-backend/postgres-driver");
14
14
  const crypto_1 = __importDefault(require("crypto"));
15
+ const RedshiftCredentialsProvider_1 = require("./RedshiftCredentialsProvider");
16
+ const RedshiftIAMCredentialsProvider_1 = require("./RedshiftIAMCredentialsProvider");
15
17
  const IGNORED_SCHEMAS = ['pg_catalog', 'pg_internal', 'information_schema', 'mysql', 'performance_schema', 'sys', 'INFORMATION_SCHEMA'];
16
18
  /**
17
19
  * Redshift driver class.
18
20
  */
19
21
  class RedshiftDriver extends postgres_driver_1.PostgresDriver {
20
- dbName;
22
+ credentials;
21
23
  /**
22
24
  * Returns default concurrency value.
23
25
  */
@@ -28,12 +30,31 @@ class RedshiftDriver extends postgres_driver_1.PostgresDriver {
28
30
  * Class constructor.
29
31
  */
30
32
  constructor(config = {}) {
31
- super(config);
32
33
  const dataSource = config.dataSource ||
33
34
  (0, shared_1.assertDataSource)('default');
34
- // We need a DB name for querying external tables.
35
- // It's not possible to get it later from the pool
36
- this.dbName = (0, shared_1.getEnv)('dbName', { dataSource });
35
+ const clusterIdentifier = (0, shared_1.getEnv)('redshiftClusterIdentifier', { dataSource });
36
+ const dbPass = (0, shared_1.getEnv)('dbPass', { dataSource });
37
+ const dbUser = (0, shared_1.getEnv)('dbUser', { dataSource });
38
+ const dbName = (0, shared_1.getEnv)('dbName', { dataSource });
39
+ let credentialsProvider;
40
+ if (clusterIdentifier && !dbPass && !config.password) {
41
+ credentialsProvider = new RedshiftIAMCredentialsProvider_1.RedshiftIAMCredentialsProvider({
42
+ region: (0, shared_1.getEnv)('redshiftAwsRegion', { dataSource }),
43
+ assumeRoleArn: (0, shared_1.getEnv)('redshiftAssumeRoleArn', { dataSource }),
44
+ assumeRoleExternalId: (0, shared_1.getEnv)('redshiftAssumeRoleExternalId', { dataSource }),
45
+ clusterIdentifier,
46
+ dbName,
47
+ });
48
+ }
49
+ else {
50
+ credentialsProvider = new RedshiftCredentialsProvider_1.RedshiftPlainCredentialsProvider(config.user || dbUser, config.password || dbPass, dbName);
51
+ }
52
+ super(config);
53
+ this.credentials = credentialsProvider;
54
+ }
55
+ async createConnection(poolConfig) {
56
+ const { user, password } = await this.credentials.getCredentials();
57
+ return super.createConnection({ ...poolConfig, user, password });
37
58
  }
38
59
  primaryKeysQuery() {
39
60
  return null;
@@ -96,10 +117,10 @@ class RedshiftDriver extends postgres_driver_1.PostgresDriver {
96
117
  }
97
118
  // eslint-disable-next-line camelcase
98
119
  async tablesForExternalSchema(schemaName) {
99
- return this.query(`SHOW TABLES FROM SCHEMA ${this.dbName}.${schemaName}`, []);
120
+ return this.query(`SHOW TABLES FROM SCHEMA ${this.credentials.getDbName()}.${schemaName}`, []);
100
121
  }
101
122
  async columnsForExternalTable(schemaName, tableName) {
102
- return this.query(`SHOW COLUMNS FROM TABLE ${this.dbName}.${schemaName}.${tableName}`, []);
123
+ return this.query(`SHOW COLUMNS FROM TABLE ${this.credentials.getDbName()}.${schemaName}.${tableName}`, []);
103
124
  }
104
125
  /**
105
126
  * @override
@@ -119,7 +140,7 @@ class RedshiftDriver extends postgres_driver_1.PostgresDriver {
119
140
  * @override
120
141
  */
121
142
  async getSchemas() {
122
- const schemas = await this.query(`SHOW SCHEMAS FROM DATABASE ${this.dbName}`, []);
143
+ const schemas = await this.query(`SHOW SCHEMAS FROM DATABASE ${this.credentials.getDbName()}`, []);
123
144
  return schemas
124
145
  .filter(s => !IGNORED_SCHEMAS.includes(s.schema_name))
125
146
  .map(s => ({ schema_name: s.schema_name }));
@@ -193,8 +214,8 @@ class RedshiftDriver extends postgres_driver_1.PostgresDriver {
193
214
  * @override
194
215
  */
195
216
  async testConnection() {
196
- const conn = await this.pool.connect();
197
- conn.release();
217
+ const conn = await this.pool.acquire();
218
+ await this.pool.release(conn);
198
219
  }
199
220
  async stream(query, values, options) {
200
221
  RedshiftDriver.checkValuesLimit(values);
@@ -269,7 +290,7 @@ class RedshiftDriver extends postgres_driver_1.PostgresDriver {
269
290
  const types = await this.tableColumnTypes(tableName);
270
291
  const columns = types.map(t => t.name).join(', ');
271
292
  const { bucketType, bucketName, region, unloadArn, keyId, secretKey } = this.config.exportBucket;
272
- const conn = await this.pool.connect();
293
+ const conn = await this.pool.acquire();
273
294
  try {
274
295
  const exportPathName = crypto_1.default.randomBytes(10).toString('hex');
275
296
  const optionsToExport = {
@@ -341,7 +362,7 @@ class RedshiftDriver extends postgres_driver_1.PostgresDriver {
341
362
  }
342
363
  finally {
343
364
  conn.removeAllListeners('notice');
344
- conn.release();
365
+ await this.pool.release(conn);
345
366
  }
346
367
  }
347
368
  capabilities() {
@@ -1 +1 @@
1
- {"version":3,"file":"RedshiftDriver.js","sourceRoot":"","sources":["../../src/RedshiftDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RedshiftDriver.js","sourceRoot":"","sources":["../../src/RedshiftDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { fromTemporaryCredentials } from '@aws-sdk/credential-providers';
2
+ import { RedshiftCredentialsProvider } from './RedshiftCredentialsProvider';
3
+ export interface RedshiftIAMCredentialProviderOptions {
4
+ region?: string;
5
+ assumeRoleArn?: string;
6
+ assumeRoleExternalId?: string;
7
+ clusterIdentifier: string;
8
+ dbName?: string;
9
+ }
10
+ interface CachedCredentials {
11
+ user: string;
12
+ password: string;
13
+ expiration: Date;
14
+ }
15
+ export declare class RedshiftIAMCredentialsProvider implements RedshiftCredentialsProvider {
16
+ protected readonly region: string;
17
+ protected readonly clusterIdentifier: string;
18
+ protected readonly dbName: string;
19
+ protected readonly awsCredentials?: ReturnType<typeof fromTemporaryCredentials>;
20
+ protected cached: CachedCredentials | null;
21
+ protected inflightRefresh: Promise<CachedCredentials> | null;
22
+ constructor(options: RedshiftIAMCredentialProviderOptions);
23
+ getDbName(): string;
24
+ getCredentials(): Promise<{
25
+ user: string;
26
+ password: string;
27
+ }>;
28
+ protected isExpired(): boolean;
29
+ protected resolveCredentials(): Promise<CachedCredentials>;
30
+ protected refreshCredentials(): Promise<CachedCredentials>;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=RedshiftIAMCredentialsProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedshiftIAMCredentialsProvider.d.ts","sourceRoot":"","sources":["../../src/RedshiftIAMCredentialsProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,WAAW,oCAAoC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB;AAKD,qBAAa,8BAA+B,YAAW,2BAA2B;IAChF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAE7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAEhF,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAElD,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAQ;gBAEjD,OAAO,EAAE,oCAAoC;IA+BzD,SAAS,IAAI,MAAM;IAIb,cAAc,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1E,SAAS,CAAC,SAAS,IAAI,OAAO;cAQd,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC;cAiBhD,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC;CA2BjE"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedshiftIAMCredentialsProvider = void 0;
4
+ const client_redshift_1 = require("@aws-sdk/client-redshift");
5
+ const credential_providers_1 = require("@aws-sdk/credential-providers");
6
+ // Refresh 1m before expiry
7
+ const REFRESH_BUFFER_MS = 60 * 1000;
8
+ class RedshiftIAMCredentialsProvider {
9
+ region;
10
+ clusterIdentifier;
11
+ dbName;
12
+ awsCredentials;
13
+ cached = null;
14
+ inflightRefresh = null;
15
+ constructor(options) {
16
+ if (!options.region) {
17
+ throw new Error('CUBEJS_DB_REDSHIFT_AWS_REGION is required for IAM authentication');
18
+ }
19
+ if (!options.clusterIdentifier) {
20
+ throw new Error('CUBEJS_DB_REDSHIFT_CLUSTER_IDENTIFIER is required for IAM authentication');
21
+ }
22
+ if (!options.dbName) {
23
+ throw new Error('CUBEJS_DB_NAME is required for IAM authentication');
24
+ }
25
+ this.region = options.region;
26
+ this.clusterIdentifier = options.clusterIdentifier;
27
+ this.dbName = options.dbName;
28
+ if (options.assumeRoleArn) {
29
+ this.awsCredentials = (0, credential_providers_1.fromTemporaryCredentials)({
30
+ params: {
31
+ RoleArn: options.assumeRoleArn,
32
+ ...(options.assumeRoleExternalId && { ExternalId: options.assumeRoleExternalId }),
33
+ },
34
+ });
35
+ }
36
+ }
37
+ getDbName() {
38
+ return this.dbName;
39
+ }
40
+ async getCredentials() {
41
+ return this.resolveCredentials();
42
+ }
43
+ isExpired() {
44
+ if (!this.cached) {
45
+ return true;
46
+ }
47
+ return (this.cached.expiration.getTime() - Date.now()) < REFRESH_BUFFER_MS;
48
+ }
49
+ async resolveCredentials() {
50
+ if (this.cached && !this.isExpired()) {
51
+ return this.cached;
52
+ }
53
+ // Concurrency guard
54
+ if (this.inflightRefresh) {
55
+ return this.inflightRefresh;
56
+ }
57
+ this.inflightRefresh = this.refreshCredentials().finally(() => {
58
+ this.inflightRefresh = null;
59
+ });
60
+ return this.inflightRefresh;
61
+ }
62
+ async refreshCredentials() {
63
+ const client = new client_redshift_1.RedshiftClient({
64
+ region: this.region,
65
+ ...(this.awsCredentials && { credentials: this.awsCredentials }),
66
+ });
67
+ const command = new client_redshift_1.GetClusterCredentialsWithIAMCommand({
68
+ ClusterIdentifier: this.clusterIdentifier,
69
+ DbName: this.dbName,
70
+ // By default, it's 15m, 1h is a maximum time
71
+ DurationSeconds: 1800
72
+ });
73
+ const response = await client.send(command);
74
+ if (!response.DbUser || !response.DbPassword || !response.Expiration) {
75
+ throw new Error('GetClusterCredentialsWithIAM returned incomplete response');
76
+ }
77
+ this.cached = {
78
+ user: response.DbUser,
79
+ password: response.DbPassword,
80
+ expiration: response.Expiration,
81
+ };
82
+ return this.cached;
83
+ }
84
+ }
85
+ exports.RedshiftIAMCredentialsProvider = RedshiftIAMCredentialsProvider;
86
+ //# sourceMappingURL=RedshiftIAMCredentialsProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedshiftIAMCredentialsProvider.js","sourceRoot":"","sources":["../../src/RedshiftIAMCredentialsProvider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { RedshiftDriver } from './RedshiftDriver';
2
2
  export * from './RedshiftDriver';
3
+ export * from './RedshiftCredentialsProvider';
4
+ export * from './RedshiftIAMCredentialsProvider';
3
5
  export default RedshiftDriver;
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,cAAc,kBAAkB,CAAC;AAEjC,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AAEjD,eAAe,cAAc,CAAC"}
package/dist/src/index.js CHANGED
@@ -16,5 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  const RedshiftDriver_1 = require("./RedshiftDriver");
18
18
  __exportStar(require("./RedshiftDriver"), exports);
19
+ __exportStar(require("./RedshiftCredentialsProvider"), exports);
20
+ __exportStar(require("./RedshiftIAMCredentialsProvider"), exports);
19
21
  exports.default = RedshiftDriver_1.RedshiftDriver;
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkD;AAElD,mDAAiC;AAEjC,kBAAe,+BAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkD;AAElD,mDAAiC;AACjC,gEAA8C;AAC9C,mEAAiD;AAEjD,kBAAe,+BAAc,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@cubejs-backend/redshift-driver",
3
3
  "description": "Cube.js Redshift database driver",
4
4
  "author": "Cube Dev, Inc.",
5
- "version": "1.6.11",
5
+ "version": "1.6.13",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/cube-js/cube.git",
@@ -25,13 +25,15 @@
25
25
  "lint:fix": "eslint --fix src/* --ext .ts"
26
26
  },
27
27
  "dependencies": {
28
- "@cubejs-backend/base-driver": "1.6.11",
29
- "@cubejs-backend/postgres-driver": "1.6.11",
30
- "@cubejs-backend/shared": "1.6.11"
28
+ "@aws-sdk/client-redshift": "^3.22.0",
29
+ "@aws-sdk/credential-providers": "^3.22.0",
30
+ "@cubejs-backend/base-driver": "1.6.13",
31
+ "@cubejs-backend/postgres-driver": "1.6.13",
32
+ "@cubejs-backend/shared": "1.6.13"
31
33
  },
32
34
  "license": "Apache-2.0",
33
35
  "devDependencies": {
34
- "@cubejs-backend/linter": "1.6.11",
36
+ "@cubejs-backend/linter": "1.6.13",
35
37
  "typescript": "~5.2.2"
36
38
  },
37
39
  "publishConfig": {
@@ -43,5 +45,5 @@
43
45
  "eslintConfig": {
44
46
  "extends": "../cubejs-linter"
45
47
  },
46
- "gitHead": "dfc8033ac843878ca7b9190f1b8b8b2015a4cf31"
48
+ "gitHead": "170a910b6607a8f8ceec787bda55abd897ce2f68"
47
49
  }