@cubejs-backend/server-core 0.30.29 → 0.30.32
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/CHANGELOG.md +30 -0
- package/dist/src/core/CompilerApi.d.ts +8 -2
- package/dist/src/core/CompilerApi.d.ts.map +1 -1
- package/dist/src/core/CompilerApi.js +20 -15
- package/dist/src/core/CompilerApi.js.map +1 -1
- package/dist/src/core/DevServer.d.ts +2 -2
- package/dist/src/core/DevServer.d.ts.map +1 -1
- package/dist/src/core/DevServer.js +9 -0
- package/dist/src/core/DevServer.js.map +1 -1
- package/dist/src/core/DriverResolvers.d.ts +23 -0
- package/dist/src/core/DriverResolvers.d.ts.map +1 -0
- package/dist/src/core/DriverResolvers.js +59 -0
- package/dist/src/core/DriverResolvers.js.map +1 -0
- package/dist/src/core/OptsHandler.d.ts +81 -0
- package/dist/src/core/OptsHandler.d.ts.map +1 -0
- package/dist/src/core/OptsHandler.js +412 -0
- package/dist/src/core/OptsHandler.js.map +1 -0
- package/dist/src/core/OrchestratorApi.d.ts +6 -2
- package/dist/src/core/OrchestratorApi.d.ts.map +1 -1
- package/dist/src/core/OrchestratorApi.js +19 -9
- package/dist/src/core/OrchestratorApi.js.map +1 -1
- package/dist/src/core/RefreshScheduler.d.ts +4 -0
- package/dist/src/core/RefreshScheduler.d.ts.map +1 -1
- package/dist/src/core/RefreshScheduler.js +31 -4
- package/dist/src/core/RefreshScheduler.js.map +1 -1
- package/dist/src/core/server.d.ts +52 -15
- package/dist/src/core/server.d.ts.map +1 -1
- package/dist/src/core/server.js +96 -203
- package/dist/src/core/server.js.map +1 -1
- package/dist/src/core/types.d.ts +41 -3
- package/dist/src/core/types.d.ts.map +1 -1
- package/package.json +13 -11
- package/playground/asset-manifest.json +10 -10
- package/playground/index.html +1 -1
- package/playground/static/js/11.3740081b.chunk.js +2 -0
- package/playground/static/js/{11.3972813f.chunk.js.LICENSE.txt → 11.3740081b.chunk.js.LICENSE.txt} +8 -0
- package/playground/static/js/{12.40c39d00.chunk.js → 12.389644bb.chunk.js} +2 -2
- package/playground/static/js/{12.40c39d00.chunk.js.LICENSE.txt → 12.389644bb.chunk.js.LICENSE.txt} +0 -0
- package/playground/static/js/{19.b17c127a.chunk.js → 19.3419f27c.chunk.js} +1 -1
- package/playground/static/js/main.8e63e9b2.chunk.js +1 -0
- package/playground/static/js/{runtime-main.38a4f12f.js → runtime-main.7118c4c3.js} +1 -1
- package/playground/static/js/11.3972813f.chunk.js +0 -2
- package/playground/static/js/main.a9c9d743.chunk.js +0 -1
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OptsHandler = void 0;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const lodash_clonedeep_1 = __importDefault(require("lodash.clonedeep"));
|
|
11
|
+
const query_orchestrator_1 = require("@cubejs-backend/query-orchestrator");
|
|
12
|
+
const shared_1 = require("@cubejs-backend/shared");
|
|
13
|
+
const DriverResolvers_1 = require("./DriverResolvers");
|
|
14
|
+
const optionsValidate_1 = __importDefault(require("./optionsValidate"));
|
|
15
|
+
const { version } = require('../../../package.json');
|
|
16
|
+
/**
|
|
17
|
+
* Driver service class.
|
|
18
|
+
*/
|
|
19
|
+
class OptsHandler {
|
|
20
|
+
/**
|
|
21
|
+
* Class constructor.
|
|
22
|
+
*/
|
|
23
|
+
constructor(core, createOptions, systemOptions) {
|
|
24
|
+
this.core = core;
|
|
25
|
+
this.createOptions = createOptions;
|
|
26
|
+
this.systemOptions = systemOptions;
|
|
27
|
+
/**
|
|
28
|
+
* Decorated dbType flag.
|
|
29
|
+
*/
|
|
30
|
+
this.decoratedType = false;
|
|
31
|
+
/**
|
|
32
|
+
* Decorated driverFactory flag.
|
|
33
|
+
*/
|
|
34
|
+
this.decoratedFactory = false;
|
|
35
|
+
this.assertOptions(createOptions);
|
|
36
|
+
const options = lodash_clonedeep_1.default(this.createOptions);
|
|
37
|
+
options.driverFactory = this.getDriverFactory(options);
|
|
38
|
+
options.dbType = this.getDbType(options);
|
|
39
|
+
this.initializedOptions = this.initializeCoreOptions(options);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Assert create options.
|
|
43
|
+
*/
|
|
44
|
+
assertOptions(opts) {
|
|
45
|
+
optionsValidate_1.default(opts);
|
|
46
|
+
if (!this.configuredAsDevServer() &&
|
|
47
|
+
!process.env.CUBEJS_DB_TYPE &&
|
|
48
|
+
!opts.dbType &&
|
|
49
|
+
!opts.driverFactory) {
|
|
50
|
+
throw new Error('Either CUBEJS_DB_TYPE, CreateOptions.dbType or CreateOptions.driverFactory ' +
|
|
51
|
+
'must be specified');
|
|
52
|
+
}
|
|
53
|
+
// TODO (buntarb): this assertion should be restored after documentation
|
|
54
|
+
// will be added.
|
|
55
|
+
//
|
|
56
|
+
// if (opts.dbType) {
|
|
57
|
+
// this.core.logger(
|
|
58
|
+
// 'Cube.js `CreateOptions.dbType` Property Deprecation',
|
|
59
|
+
// {
|
|
60
|
+
// warning: (
|
|
61
|
+
// // TODO (buntarb): add https://github.com/cube-js/cube.js/blob/master/DEPRECATION.md#dbType
|
|
62
|
+
// // link once it will be created.
|
|
63
|
+
// 'CreateOptions.dbType property is now deprecated, please migrate.'
|
|
64
|
+
// ),
|
|
65
|
+
// },
|
|
66
|
+
// );
|
|
67
|
+
// }
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Assert value returned from the driver factory.
|
|
71
|
+
*/
|
|
72
|
+
assertDriverFactoryResult(val) {
|
|
73
|
+
if (val instanceof query_orchestrator_1.BaseDriver) {
|
|
74
|
+
// TODO (buntarb): these assertions should be restored after documentation
|
|
75
|
+
// will be added.
|
|
76
|
+
//
|
|
77
|
+
// if (this.decoratedType) {
|
|
78
|
+
// throw new Error(
|
|
79
|
+
// 'CreateOptions.dbType is required if CreateOptions.driverFactory ' +
|
|
80
|
+
// 'returns driver instance'
|
|
81
|
+
// );
|
|
82
|
+
// }
|
|
83
|
+
// this.core.logger(
|
|
84
|
+
// 'Cube.js CreateOptions.driverFactory Property Deprecation',
|
|
85
|
+
// {
|
|
86
|
+
// warning: (
|
|
87
|
+
// // TODO (buntarb): add https://github.com/cube-js/cube.js/blob/master/DEPRECATION.md#driverFactory
|
|
88
|
+
// // link once it will be created.
|
|
89
|
+
// 'CreateOptions.driverFactory should return DriverConfig object instead of driver instance, please migrate.'
|
|
90
|
+
// ),
|
|
91
|
+
// },
|
|
92
|
+
// );
|
|
93
|
+
return val;
|
|
94
|
+
}
|
|
95
|
+
else if (val && val.type && typeof val.type === 'string') {
|
|
96
|
+
return val;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
throw new Error('Unexpected CreateOptions.driverFactory result value. Must be either ' +
|
|
100
|
+
`DriverConfig or driver instance: <${typeof val}>${val}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Assert value returned from the dbType function.
|
|
105
|
+
*/
|
|
106
|
+
assertDbTypeResult(val) {
|
|
107
|
+
if (typeof val !== 'string') {
|
|
108
|
+
throw new Error(`Unexpected CreateOptions.dbType result type: <${typeof val}>${val}`);
|
|
109
|
+
}
|
|
110
|
+
return val;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Default database factory function.
|
|
114
|
+
*/ // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
115
|
+
defaultDriverFactory(ctx) {
|
|
116
|
+
return {
|
|
117
|
+
type: process.env.CUBEJS_DB_TYPE,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Async driver factory getter.
|
|
122
|
+
*/
|
|
123
|
+
getDriverFactory(opts) {
|
|
124
|
+
const { dbType, driverFactory } = opts;
|
|
125
|
+
this.decoratedType = !dbType;
|
|
126
|
+
this.decoratedFactory = !driverFactory;
|
|
127
|
+
return async (ctx) => {
|
|
128
|
+
if (!driverFactory) {
|
|
129
|
+
return this.defaultDriverFactory(ctx);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
return this.assertDriverFactoryResult(await driverFactory(ctx));
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Async driver type getter.
|
|
138
|
+
*/
|
|
139
|
+
getDbType(opts) {
|
|
140
|
+
const { dbType, driverFactory } = opts;
|
|
141
|
+
return async (ctx) => {
|
|
142
|
+
if (!dbType) {
|
|
143
|
+
const { type } = (await driverFactory(ctx));
|
|
144
|
+
return type;
|
|
145
|
+
}
|
|
146
|
+
else if (typeof dbType === 'function') {
|
|
147
|
+
return this.assertDbTypeResult(await dbType(ctx));
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
return dbType;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Returns default driver concurrency if specified.
|
|
156
|
+
*/
|
|
157
|
+
async getDriverConcurrency(ctx) {
|
|
158
|
+
const type = await this
|
|
159
|
+
.getCoreInitializedOptions()
|
|
160
|
+
.dbType(ctx);
|
|
161
|
+
const DriverConstructor = DriverResolvers_1.lookupDriverClass(type);
|
|
162
|
+
if (DriverConstructor &&
|
|
163
|
+
DriverConstructor.getDefaultConcurrency) {
|
|
164
|
+
return DriverConstructor.getDefaultConcurrency();
|
|
165
|
+
}
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Wrap queueOptions into a function which evaluate concurrency on the fly.
|
|
170
|
+
*/
|
|
171
|
+
queueOptionsWrapper(context, queueOptions) {
|
|
172
|
+
return async (dataSource = 'default') => {
|
|
173
|
+
const options = (typeof queueOptions === 'function'
|
|
174
|
+
? queueOptions(dataSource)
|
|
175
|
+
: queueOptions) || {};
|
|
176
|
+
if (options.concurrency) {
|
|
177
|
+
// concurrency specified in cube.js
|
|
178
|
+
return options;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
const envConcurrency = shared_1.getEnv('concurrency');
|
|
182
|
+
if (envConcurrency) {
|
|
183
|
+
// concurrency specified in CUBEJS_CONCURRENCY
|
|
184
|
+
return {
|
|
185
|
+
...options,
|
|
186
|
+
concurrency: envConcurrency,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
const defConcurrency = await this.getDriverConcurrency({
|
|
191
|
+
...context,
|
|
192
|
+
dataSource,
|
|
193
|
+
});
|
|
194
|
+
if (defConcurrency) {
|
|
195
|
+
// concurrency specified in driver
|
|
196
|
+
return {
|
|
197
|
+
...options,
|
|
198
|
+
concurrency: defConcurrency,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
// no specified concurrency
|
|
202
|
+
return {
|
|
203
|
+
...options,
|
|
204
|
+
concurrency: 2,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Initialize core options.
|
|
212
|
+
*/
|
|
213
|
+
initializeCoreOptions(opts) {
|
|
214
|
+
var _a;
|
|
215
|
+
const skipOnEnv = [
|
|
216
|
+
// Default EXT_DB variables
|
|
217
|
+
'CUBEJS_EXT_DB_URL',
|
|
218
|
+
'CUBEJS_EXT_DB_HOST',
|
|
219
|
+
'CUBEJS_EXT_DB_NAME',
|
|
220
|
+
'CUBEJS_EXT_DB_PORT',
|
|
221
|
+
'CUBEJS_EXT_DB_USER',
|
|
222
|
+
'CUBEJS_EXT_DB_PASS',
|
|
223
|
+
// Cube Store variables
|
|
224
|
+
'CUBEJS_CUBESTORE_HOST',
|
|
225
|
+
'CUBEJS_CUBESTORE_PORT',
|
|
226
|
+
'CUBEJS_CUBESTORE_USER',
|
|
227
|
+
'CUBEJS_CUBESTORE_PASS',
|
|
228
|
+
];
|
|
229
|
+
const definedExtDBVariables = skipOnEnv.filter((field) => process.env[field] !== undefined);
|
|
230
|
+
const externalDbType = opts.externalDbType ||
|
|
231
|
+
process.env.CUBEJS_EXT_DB_TYPE ||
|
|
232
|
+
(shared_1.getEnv('devMode') || definedExtDBVariables.length > 0) && 'cubestore' ||
|
|
233
|
+
undefined;
|
|
234
|
+
const devServer = process.env.NODE_ENV !== 'production' ||
|
|
235
|
+
shared_1.getEnv('devMode');
|
|
236
|
+
let externalDriverFactory = externalDbType &&
|
|
237
|
+
(() => new (DriverResolvers_1.lookupDriverClass(externalDbType))({
|
|
238
|
+
url: process.env.CUBEJS_EXT_DB_URL,
|
|
239
|
+
host: process.env.CUBEJS_EXT_DB_HOST,
|
|
240
|
+
database: process.env.CUBEJS_EXT_DB_NAME,
|
|
241
|
+
port: process.env.CUBEJS_EXT_DB_PORT,
|
|
242
|
+
user: process.env.CUBEJS_EXT_DB_USER,
|
|
243
|
+
password: process.env.CUBEJS_EXT_DB_PASS,
|
|
244
|
+
}));
|
|
245
|
+
let externalDialectFactory = () => typeof externalDbType === 'string' &&
|
|
246
|
+
DriverResolvers_1.lookupDriverClass(externalDbType).dialectClass &&
|
|
247
|
+
DriverResolvers_1.lookupDriverClass(externalDbType).dialectClass();
|
|
248
|
+
if (!devServer && shared_1.getEnv('externalDefault') && !externalDbType) {
|
|
249
|
+
shared_1.displayCLIWarning('Cube Store is not found. Please follow this documentation ' +
|
|
250
|
+
'to configure Cube Store ' +
|
|
251
|
+
'https://cube.dev/docs/caching/running-in-production');
|
|
252
|
+
}
|
|
253
|
+
if (devServer && externalDbType !== 'cubestore') {
|
|
254
|
+
shared_1.displayCLIWarning(`Using ${externalDbType} as an external database is deprecated. ` +
|
|
255
|
+
'Please use Cube Store instead: ' +
|
|
256
|
+
'https://cube.dev/docs/caching/running-in-production');
|
|
257
|
+
}
|
|
258
|
+
if (externalDbType === 'cubestore' && devServer && !opts.serverless) {
|
|
259
|
+
if (!definedExtDBVariables.length) {
|
|
260
|
+
// There is no @cubejs-backend/cubestore-driver dependency in the core
|
|
261
|
+
// package. At the same time, @cubejs-backend/cubestore-driver is already
|
|
262
|
+
// exist at the moment, when the core server instance is up. That is the
|
|
263
|
+
// reason why we inject it in this way.
|
|
264
|
+
//
|
|
265
|
+
// eslint-disable-next-line global-require,import/no-extraneous-dependencies
|
|
266
|
+
const cubeStorePackage = require('@cubejs-backend/cubestore-driver');
|
|
267
|
+
if (cubeStorePackage.isCubeStoreSupported()) {
|
|
268
|
+
const cubeStoreHandler = new cubeStorePackage.CubeStoreHandler({
|
|
269
|
+
stdout: (data) => {
|
|
270
|
+
console.log(data.toString().trim());
|
|
271
|
+
},
|
|
272
|
+
stderr: (data) => {
|
|
273
|
+
console.log(data.toString().trim());
|
|
274
|
+
},
|
|
275
|
+
onRestart: (code) => this.core.logger('Cube Store Restarting', {
|
|
276
|
+
warning: `Instance exit with ${code}, restarting`,
|
|
277
|
+
}),
|
|
278
|
+
});
|
|
279
|
+
console.log(`🔥 Cube Store (${version}) is assigned to 3030 port.`);
|
|
280
|
+
// Start Cube Store on startup in official docker images
|
|
281
|
+
if (shared_1.isDockerImage()) {
|
|
282
|
+
cubeStoreHandler.acquire().catch((e) => this.core.logger('Cube Store Start Error', {
|
|
283
|
+
error: e.message,
|
|
284
|
+
}));
|
|
285
|
+
}
|
|
286
|
+
// Lazy loading for Cube Store
|
|
287
|
+
externalDriverFactory =
|
|
288
|
+
() => new cubeStorePackage.CubeStoreDevDriver(cubeStoreHandler);
|
|
289
|
+
externalDialectFactory =
|
|
290
|
+
() => cubeStorePackage.CubeStoreDevDriver.dialectClass();
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
this.core.logger('Cube Store is not supported on your system', {
|
|
294
|
+
warning: (`You are using ${process.platform} platform with ${process.arch} architecture, which is not supported by Cube Store.`),
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
const options = {
|
|
300
|
+
externalDbType,
|
|
301
|
+
devServer,
|
|
302
|
+
dialectFactory: (ctx) => (DriverResolvers_1.lookupDriverClass(ctx.dbType).dialectClass &&
|
|
303
|
+
DriverResolvers_1.lookupDriverClass(ctx.dbType).dialectClass()),
|
|
304
|
+
externalDriverFactory,
|
|
305
|
+
externalDialectFactory,
|
|
306
|
+
apiSecret: process.env.CUBEJS_API_SECRET,
|
|
307
|
+
telemetry: shared_1.getEnv('telemetry'),
|
|
308
|
+
scheduledRefreshTimeZones: process.env.CUBEJS_SCHEDULED_REFRESH_TIMEZONES &&
|
|
309
|
+
process.env.CUBEJS_SCHEDULED_REFRESH_TIMEZONES.split(',').map(t => t.trim()),
|
|
310
|
+
scheduledRefreshContexts: async () => [null],
|
|
311
|
+
basePath: '/cubejs-api',
|
|
312
|
+
dashboardAppPath: 'dashboard-app',
|
|
313
|
+
dashboardAppPort: 3000,
|
|
314
|
+
scheduledRefreshConcurrency: parseInt(process.env.CUBEJS_SCHEDULED_REFRESH_CONCURRENCY, 10),
|
|
315
|
+
preAggregationsSchema: shared_1.getEnv('preAggregationsSchema') ||
|
|
316
|
+
(devServer ? 'dev_pre_aggregations' : 'prod_pre_aggregations'),
|
|
317
|
+
schemaPath: process.env.CUBEJS_SCHEMA_PATH || 'schema',
|
|
318
|
+
scheduledRefreshTimer: shared_1.getEnv('refreshWorkerMode'),
|
|
319
|
+
sqlCache: true,
|
|
320
|
+
livePreview: shared_1.getEnv('livePreview'),
|
|
321
|
+
...opts,
|
|
322
|
+
jwt: {
|
|
323
|
+
key: shared_1.getEnv('jwtKey'),
|
|
324
|
+
algorithms: shared_1.getEnv('jwtAlgorithms'),
|
|
325
|
+
issuer: shared_1.getEnv('jwtIssuer'),
|
|
326
|
+
audience: shared_1.getEnv('jwtAudience'),
|
|
327
|
+
subject: shared_1.getEnv('jwtSubject'),
|
|
328
|
+
jwkUrl: shared_1.getEnv('jwkUrl'),
|
|
329
|
+
claimsNamespace: shared_1.getEnv('jwtClaimsNamespace'),
|
|
330
|
+
...opts.jwt,
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
if (opts.contextToAppId && !opts.scheduledRefreshContexts) {
|
|
334
|
+
this.core.logger('Multitenancy Without ScheduledRefreshContexts', {
|
|
335
|
+
warning: ('You are using multitenancy without configuring scheduledRefreshContexts, ' +
|
|
336
|
+
'which can lead to issues where the security context will be undefined ' +
|
|
337
|
+
'while Cube.js will do background refreshing: ' +
|
|
338
|
+
'https://cube.dev/docs/config#options-reference-scheduled-refresh-contexts'),
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
if (options.devServer && !options.apiSecret) {
|
|
342
|
+
options.apiSecret = crypto_1.default.randomBytes(16).toString('hex');
|
|
343
|
+
shared_1.displayCLIWarning(`Option apiSecret is required in dev mode. Cube.js has generated it as ${options.apiSecret}`);
|
|
344
|
+
}
|
|
345
|
+
// Create schema directory to protect error on new project with dev mode
|
|
346
|
+
// (docker flow)
|
|
347
|
+
if (options.devServer) {
|
|
348
|
+
const repositoryPath = path_1.default.join(process.cwd(), options.schemaPath);
|
|
349
|
+
if (!fs_extra_1.default.existsSync(repositoryPath)) {
|
|
350
|
+
fs_extra_1.default.mkdirSync(repositoryPath);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if (!options.devServer || this.configuredForQueryProcessing()) {
|
|
354
|
+
const fieldsForValidation = [
|
|
355
|
+
'driverFactory',
|
|
356
|
+
'dbType'
|
|
357
|
+
];
|
|
358
|
+
if (!((_a = options.jwt) === null || _a === void 0 ? void 0 : _a.jwkUrl)) {
|
|
359
|
+
// apiSecret is required only for auth by JWT, for JWK it's not needed
|
|
360
|
+
fieldsForValidation.push('apiSecret');
|
|
361
|
+
}
|
|
362
|
+
const invalidFields = fieldsForValidation.filter((field) => options[field] === undefined);
|
|
363
|
+
if (invalidFields.length) {
|
|
364
|
+
throw new Error(`${invalidFields.join(', ')} ${invalidFields.length === 1 ? 'is' : 'are'} required option(s)`);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return options;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Determines whether current instance should be bootstraped in the
|
|
371
|
+
* dev mode or not.
|
|
372
|
+
*/
|
|
373
|
+
configuredAsDevServer() {
|
|
374
|
+
return (this.createOptions.devServer ||
|
|
375
|
+
process.env.NODE_ENV !== 'production' ||
|
|
376
|
+
shared_1.getEnv('devMode'));
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Determines whether current configuration is sutisfied system to process
|
|
380
|
+
* queries.
|
|
381
|
+
*/
|
|
382
|
+
configuredForQueryProcessing() {
|
|
383
|
+
var _a, _b;
|
|
384
|
+
const hasDbCredentials = Object.keys(process.env).filter((key) => (key.startsWith('CUBEJS_DB') && key !== 'CUBEJS_DB_TYPE' ||
|
|
385
|
+
key.startsWith('CUBEJS_AWS'))).length > 0;
|
|
386
|
+
return (hasDbCredentials ||
|
|
387
|
+
((_a = this.systemOptions) === null || _a === void 0 ? void 0 : _a.isCubeConfigEmpty) === undefined ||
|
|
388
|
+
!((_b = this.systemOptions) === null || _b === void 0 ? void 0 : _b.isCubeConfigEmpty));
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Returns server core initialized options object.
|
|
392
|
+
*/
|
|
393
|
+
getCoreInitializedOptions() {
|
|
394
|
+
return this.initializedOptions;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Decorate `OrchestratorOptions` with `queueOptions` property which include
|
|
398
|
+
* concurrency calculation logic.
|
|
399
|
+
*/
|
|
400
|
+
getOrchestratorInitializedOptions(context, orchestratorOptions) {
|
|
401
|
+
const clone = lodash_clonedeep_1.default(orchestratorOptions);
|
|
402
|
+
// query queue
|
|
403
|
+
clone.queryCacheOptions = clone.queryCacheOptions || {};
|
|
404
|
+
clone.queryCacheOptions.queueOptions = this.queueOptionsWrapper(context, clone.queryCacheOptions.queueOptions);
|
|
405
|
+
// pre-aggs queue
|
|
406
|
+
clone.preAggregationsOptions = clone.preAggregationsOptions || {};
|
|
407
|
+
clone.preAggregationsOptions.queueOptions = this.queueOptionsWrapper(context, clone.preAggregationsOptions.queueOptions);
|
|
408
|
+
return clone;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
exports.OptsHandler = OptsHandler;
|
|
412
|
+
//# sourceMappingURL=OptsHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptsHandler.js","sourceRoot":"","sources":["../../../src/core/OptsHandler.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,wDAA0B;AAC1B,gDAAwB;AACxB,wEAAyC;AACzC,2EAAgE;AAChE,mDAIgC;AAgBhC,uDAAsD;AAEtD,wEAAgD;AAEhD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAErD;;GAEG;AACH,MAAa,WAAW;IACtB;;OAEG;IACH,YACU,IAAsB,EACtB,aAA4B,EAC5B,aAA6B;QAF7B,SAAI,GAAJ,IAAI,CAAkB;QACtB,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAgB;QASvC;;WAEG;QACK,kBAAa,GAAG,KAAK,CAAC;QAE9B;;WAEG;QACK,qBAAgB,GAAG,KAAK,CAAC;QAf/B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,0BAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAiBD;;OAEG;IACK,aAAa,CAAC,IAAmB;QACvC,yBAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,IACE,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC7B,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc;YAC3B,CAAC,IAAI,CAAC,MAAM;YACZ,CAAC,IAAI,CAAC,aAAa,EACnB;YACA,MAAM,IAAI,KAAK,CACb,6EAA6E;gBAC7E,mBAAmB,CACpB,CAAC;SACH;QAED,wEAAwE;QACxE,iBAAiB;QACjB,EAAE;QACF,qBAAqB;QACrB,sBAAsB;QACtB,6DAA6D;QAC7D,QAAQ;QACR,mBAAmB;QACnB,sGAAsG;QACtG,2CAA2C;QAC3C,6EAA6E;QAC7E,WAAW;QACX,SAAS;QACT,OAAO;QACP,IAAI;IACN,CAAC;IAED;;OAEG;IACK,yBAAyB,CAAC,GAA8B;QAC9D,IAAI,GAAG,YAAY,+BAAU,EAAE;YAC7B,0EAA0E;YAC1E,iBAAiB;YACjB,EAAE;YACF,4BAA4B;YAC5B,qBAAqB;YACrB,2EAA2E;YAC3E,gCAAgC;YAChC,OAAO;YACP,IAAI;YACJ,oBAAoB;YACpB,gEAAgE;YAChE,MAAM;YACN,iBAAiB;YACjB,2GAA2G;YAC3G,yCAAyC;YACzC,oHAAoH;YACpH,SAAS;YACT,OAAO;YACP,KAAK;YACL,OAAmB,GAAG,CAAC;SACxB;aAAM,IACL,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAC/C;YACA,OAAqB,GAAG,CAAC;SAC1B;aAAM;YACL,MAAM,IAAI,KAAK,CACb,sEAAsE;gBACtE,qCAAqC,OAAO,GAAG,IAAI,GAAG,EAAE,CACzD,CAAC;SACH;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,GAAiB;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,iDACd,OAAO,GACT,IAAI,GAAG,EAAE,CAAC,CAAC;SACZ;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG,CAAC,6DAA6D;IACzD,oBAAoB,CAAC,GAAkB;QAC7C,OAAO;YACL,IAAI,EAAgB,OAAO,CAAC,GAAG,CAAC,cAAc;SAC/C,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,IAAmB;QAC1C,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,gBAAgB,GAAG,CAAC,aAAa,CAAC;QAEvC,OAAO,KAAK,EAAE,GAAkB,EAAE,EAAE;YAClC,IAAI,CAAC,aAAa,EAAE;gBAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aACvC;iBAAM;gBACL,OAAO,IAAI,CAAC,yBAAyB,CACnC,MAAM,aAAa,CAAC,GAAG,CAAC,CACzB,CAAC;aACH;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,SAAS,CACf,IAEC;QAED,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;QACvC,OAAO,KAAK,EAAE,GAAkB,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,EAAE,IAAI,EAAE,GAAiB,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC;aACb;iBAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;gBACvC,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aACnD;iBAAM;gBACL,OAAO,MAAM,CAAC;aACf;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAChC,GAAkB;QAElB,MAAM,IAAI,GAAG,MAAM,IAAI;aACpB,yBAAyB,EAAE;aAC3B,MAAM,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,iBAAiB,GAAG,mCAAiB,CAAC,IAAI,CAAC,CAAC;QAClD,IACE,iBAAiB;YACjB,iBAAiB,CAAC,qBAAqB,EACvC;YACA,OAAO,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;SAClD;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,OAAuB,EACvB,YAA+D;QAE/D,OAAO,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,CACd,OAAO,YAAY,KAAK,UAAU;gBAChC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;gBAC1B,CAAC,CAAC,YAAY,CACjB,IAAI,EAAE,CAAC;YACR,IAAI,OAAO,CAAC,WAAW,EAAE;gBACvB,mCAAmC;gBACnC,OAAO,OAAO,CAAC;aAChB;iBAAM;gBACL,MAAM,cAAc,GAAW,eAAM,CAAC,aAAa,CAAC,CAAC;gBACrD,IAAI,cAAc,EAAE;oBAClB,8CAA8C;oBAC9C,OAAO;wBACL,GAAG,OAAO;wBACV,WAAW,EAAE,cAAc;qBAC5B,CAAC;iBACH;qBAAM;oBACL,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC;wBACrD,GAAG,OAAO;wBACV,UAAU;qBACX,CAAC,CAAC;oBACH,IAAI,cAAc,EAAE;wBAClB,kCAAkC;wBAClC,OAAO;4BACL,GAAG,OAAO;4BACV,WAAW,EAAE,cAAc;yBAC5B,CAAC;qBACH;oBACD,2BAA2B;oBAC3B,OAAO;wBACL,GAAG,OAAO;wBACV,WAAW,EAAE,CAAC;qBACf,CAAC;iBACH;aACF;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,IAA4B;;QAE5B,MAAM,SAAS,GAAG;YAChB,2BAA2B;YAC3B,mBAAmB;YACnB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,uBAAuB;YACvB,uBAAuB;YACvB,uBAAuB;YACvB,uBAAuB;YACvB,uBAAuB;SACxB,CAAC;QAEF,MAAM,qBAAqB,GACzB,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;QAEhE,MAAM,cAAc,GAClB,IAAI,CAAC,cAAc;YACO,OAAO,CAAC,GAAG,CAAC,kBAAkB;YACxD,CAAC,eAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW;YACtE,SAAS,CAAC;QAEZ,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;YACrC,eAAM,CAAC,SAAS,CAAC,CAAC;QAEpB,IAAI,qBAAqB,GACvB,cAAc;YACd,CACE,GAAG,EAAE,CAAC,IAAI,CAAC,mCAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC5C,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBAClC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACpC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACxC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACpC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACpC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;aACzC,CAAC,CACH,CAAC;QAEJ,IAAI,sBAAsB,GACxB,GAAG,EAAE,CAAC,OAAO,cAAc,KAAK,QAAQ;YACxC,mCAAiB,CAAC,cAAc,CAAC,CAAC,YAAY;YAC9C,mCAAiB,CAAC,cAAc,CAAC,CAAC,YAAY,EAAE,CAAC;QAEnD,IAAI,CAAC,SAAS,IAAI,eAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE;YAC9D,0BAAiB,CACf,4DAA4D;gBAC5D,0BAA0B;gBAC1B,qDAAqD,CACtD,CAAC;SACH;QAED,IAAI,SAAS,IAAI,cAAc,KAAK,WAAW,EAAE;YAC/C,0BAAiB,CACf,SAAS,cAAc,0CAA0C;gBACjE,iCAAiC;gBACjC,qDAAqD,CACtD,CAAC;SACH;QAED,IAAI,cAAc,KAAK,WAAW,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACnE,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;gBACjC,sEAAsE;gBACtE,yEAAyE;gBACzE,wEAAwE;gBACxE,uCAAuC;gBACvC,EAAE;gBACF,4EAA4E;gBAC5E,MAAM,gBAAgB,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;gBACrE,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,EAAE;oBAC3C,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;wBAC7D,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;4BACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;wBACtC,CAAC;wBACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;4BACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;wBACtC,CAAC;wBACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;4BAC7D,OAAO,EAAE,sBAAsB,IAAI,cAAc;yBAClD,CAAC;qBACH,CAAC,CAAC;oBAEH,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,6BAA6B,CAAC,CAAC;oBAEpE,wDAAwD;oBACxD,IAAI,sBAAa,EAAE,EAAE;wBACnB,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE;4BAChD,KAAK,EAAE,CAAC,CAAC,OAAO;yBACjB,CAAC,CACH,CAAC;qBACH;oBAED,8BAA8B;oBAC9B,qBAAqB;wBACnB,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;oBAClE,sBAAsB;wBACpB,GAAG,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;iBAC5D;qBAAM;oBACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4CAA4C,EAAE;wBAC7D,OAAO,EAAE,CACP,iBACE,OAAO,CAAC,QACV,kBACE,OAAO,CAAC,IACV,sDAAsD,CACvD;qBACF,CAAC,CAAC;iBACJ;aACF;SACF;QAED,MAAM,OAAO,GAAiC;YAC5C,cAAc;YACd,SAAS;YACT,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CACvB,mCAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY;gBAC1C,mCAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAC7C;YACD,qBAAqB;YACrB,sBAAsB;YACtB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YACxC,SAAS,EAAE,eAAM,CAAC,WAAW,CAAC;YAC9B,yBAAyB,EACvB,OAAO,CAAC,GAAG,CAAC,kCAAkC;gBAC9C,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9E,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;YAC5C,QAAQ,EAAE,aAAa;YACvB,gBAAgB,EAAE,eAAe;YACjC,gBAAgB,EAAE,IAAI;YACtB,2BAA2B,EACzB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC;YAChE,qBAAqB,EACnB,eAAM,CAAC,uBAAuB,CAAC;gBAC/B,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,uBAAuB,CAAC;YAChE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,QAAQ;YACtD,qBAAqB,EAAE,eAAM,CAAC,mBAAmB,CAAC;YAClD,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,eAAM,CAAC,aAAa,CAAC;YAClC,GAAG,IAAI;YACP,GAAG,EAAE;gBACH,GAAG,EAAE,eAAM,CAAC,QAAQ,CAAC;gBACrB,UAAU,EAAE,eAAM,CAAC,eAAe,CAAC;gBACnC,MAAM,EAAE,eAAM,CAAC,WAAW,CAAC;gBAC3B,QAAQ,EAAE,eAAM,CAAC,aAAa,CAAC;gBAC/B,OAAO,EAAE,eAAM,CAAC,YAAY,CAAC;gBAC7B,MAAM,EAAE,eAAM,CAAC,QAAQ,CAAC;gBACxB,eAAe,EAAE,eAAM,CAAC,oBAAoB,CAAC;gBAC7C,GAAG,IAAI,CAAC,GAAG;aACZ;SACF,CAAC;QAEF,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,+CAA+C,EAAE;gBAChE,OAAO,EAAE,CACP,2EAA2E;oBAC3E,wEAAwE;oBACxE,+CAA+C;oBAC/C,2EAA2E,CAC5E;aACF,CAAC,CAAC;SACJ;QAED,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC3C,OAAO,CAAC,SAAS,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3D,0BAAiB,CACf,yEACE,OAAO,CAAC,SACV,EAAE,CACH,CAAC;SACH;QAED,wEAAwE;QACxE,gBAAgB;QAChB,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBAClC,kBAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;aAC9B;SACF;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,4BAA4B,EAAE,EAAE;YAC7D,MAAM,mBAAmB,GAA2C;gBAClE,eAAe;gBACf,QAAQ;aACT,CAAC;YAEF,IAAI,QAAC,OAAO,CAAC,GAAG,0CAAE,MAAM,CAAA,EAAE;gBACxB,sEAAsE;gBACtE,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACvC;YAED,MAAM,aAAa,GACjB,mBAAmB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;YACtE,IAAI,aAAa,CAAC,MAAM,EAAE;gBACxB,MAAM,IAAI,KAAK,CACb,GACE,aAAa,CAAC,IAAI,CAAC,IAAI,CACzB,IACE,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KACtC,qBAAqB,CACtB,CAAC;aACH;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,qBAAqB;QAC1B,OAAO,CACL,IAAI,CAAC,aAAa,CAAC,SAAS;YAC5B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;YACrC,eAAM,CAAC,SAAS,CAAC,CAClB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,4BAA4B;;QACjC,MAAM,gBAAgB,GACpB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,EAAE,CAAC,CACP,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,gBAAgB;YACvD,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAC7B,CACF,CAAC,MAAM,GAAG,CAAC,CAAC;QAEf,OAAO,CACL,gBAAgB;YAChB,OAAA,IAAI,CAAC,aAAa,0CAAE,iBAAiB,MAAK,SAAS;YACnD,QAAC,IAAI,CAAC,aAAa,0CAAE,iBAAiB,CAAA,CACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,yBAAyB;QAC9B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;;OAGG;IACI,iCAAiC,CACtC,OAAuB,EACvB,mBAAwC;QAExC,MAAM,KAAK,GAAG,0BAAS,CAAC,mBAAmB,CAAC,CAAC;QAC7C,cAAc;QACd,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACxD,KAAK,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAC7D,OAAO,EACP,KAAK,CAAC,iBAAiB,CAAC,YAAY,CACrC,CAAC;QACF,iBAAiB;QACjB,KAAK,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC;QAClE,KAAK,CAAC,sBAAsB,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAClE,OAAO,EACP,KAAK,CAAC,sBAAsB,CAAC,YAAY,CAC1C,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA3fD,kCA2fC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { QueryOrchestrator, DriverFactoryByDataSource, QueryOrchestratorOptions } from '@cubejs-backend/query-orchestrator';
|
|
2
|
-
import {
|
|
2
|
+
import { DbTypeAsyncFn, ExternalDbTypeFn, RequestContext } from './types';
|
|
3
3
|
export interface OrchestratorApiOptions extends QueryOrchestratorOptions {
|
|
4
|
-
contextToDbType:
|
|
4
|
+
contextToDbType: DbTypeAsyncFn;
|
|
5
5
|
contextToExternalDbType: ExternalDbTypeFn;
|
|
6
6
|
redisPrefix?: string;
|
|
7
7
|
}
|
|
@@ -13,6 +13,10 @@ export declare class OrchestratorApi {
|
|
|
13
13
|
protected readonly orchestrator: QueryOrchestrator;
|
|
14
14
|
protected readonly continueWaitTimeout: number;
|
|
15
15
|
constructor(driverFactory: DriverFactoryByDataSource, logger: any, options: OrchestratorApiOptions);
|
|
16
|
+
/**
|
|
17
|
+
* Returns QueryOrchestrator instance.
|
|
18
|
+
*/
|
|
19
|
+
getQueryOrchestrator(): QueryOrchestrator;
|
|
16
20
|
/**
|
|
17
21
|
* Force reconcile queue logic to be executed.
|
|
18
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrchestratorApi.d.ts","sourceRoot":"","sources":["../../../src/core/OrchestratorApi.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAEjB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"OrchestratorApi.d.ts","sourceRoot":"","sources":["../../../src/core/OrchestratorApi.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAEjB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;IACtE,eAAe,EAAE,aAAa,CAAC;IAC/B,uBAAuB,EAAE,gBAAgB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,eAAe;IAQxB,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,yBAAyB;IAC3D,SAAS,CAAC,QAAQ,CAAC,MAAM;IACzB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB;IATpD,OAAO,CAAC,eAAe,CAA+B;IAEtD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAEnD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;gBAG1B,aAAa,EAAE,yBAAyB,EACxC,MAAM,KAAA,EACN,OAAO,EAAE,sBAAsB;IAYpD;;OAEG;IACI,oBAAoB,IAAI,iBAAiB;IAIhD;;OAEG;IACU,cAAc,CAAC,UAAU,SAAY;IAIrC,YAAY,CAAC,KAAK,KAAA;IA0GlB,cAAc;IAOd,2BAA2B;IAI3B,oBAAoB,CAAC,QAAQ,CAAC,EAAE,yBAAyB,EAAE,UAAU,GAAE,MAAkB;IAOzF,OAAO;cAQJ,aAAa,CAAC,QAAQ,CAAC,EAAE,yBAAyB,EAAE,UAAU,GAAE,MAAkB;IAS3F,iBAAiB,CAAC,UAAU,KAAA;IAI5B,+BAA+B,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,KAAA,EAAE,qBAAqB,KAAA;;;;IAQ/F,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,KAAA;IAI1D,iCAAiC,CAAC,SAAS,KAAA;IAa3C,8BAA8B,CAAC,SAAS,KAAA;IAIxC,4BAA4B;IAI5B,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM;IAI5E,oBAAoB,CAAC,EAAE,KAAA,EAAE,QAAQ,KAAA;IAIjC,sBAAsB,CAAC,EAAE,KAAA;CAGvC"}
|
|
@@ -16,6 +16,12 @@ class OrchestratorApi {
|
|
|
16
16
|
this.continueWaitTimeout = this.options.continueWaitTimeout || 5;
|
|
17
17
|
this.orchestrator = new query_orchestrator_1.QueryOrchestrator(options.redisPrefix || 'STANDALONE', driverFactory, logger, options);
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Returns QueryOrchestrator instance.
|
|
21
|
+
*/
|
|
22
|
+
getQueryOrchestrator() {
|
|
23
|
+
return this.orchestrator;
|
|
24
|
+
}
|
|
19
25
|
/**
|
|
20
26
|
* Force reconcile queue logic to be executed.
|
|
21
27
|
*/
|
|
@@ -42,22 +48,26 @@ class OrchestratorApi {
|
|
|
42
48
|
params: query.values,
|
|
43
49
|
requestId: query.requestId
|
|
44
50
|
});
|
|
45
|
-
const extractDbType = (response) =>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
const extractDbType = async (response) => {
|
|
52
|
+
const dbType = await this.options.contextToDbType({
|
|
53
|
+
...query.context,
|
|
54
|
+
dataSource: response.dataSource,
|
|
55
|
+
});
|
|
56
|
+
return dbType;
|
|
57
|
+
};
|
|
49
58
|
const extractExternalDbType = (response) => (this.options.contextToExternalDbType({
|
|
50
59
|
...query.context,
|
|
51
60
|
dataSource: response.dataSource,
|
|
52
61
|
}));
|
|
53
62
|
if (Array.isArray(data)) {
|
|
54
|
-
|
|
63
|
+
const res = await Promise.all(data.map(async (item) => ({
|
|
55
64
|
...item,
|
|
56
|
-
dbType: extractDbType(item),
|
|
57
|
-
extDbType: extractExternalDbType(item)
|
|
58
|
-
}));
|
|
65
|
+
dbType: await extractDbType(item),
|
|
66
|
+
extDbType: extractExternalDbType(item),
|
|
67
|
+
})));
|
|
68
|
+
return res;
|
|
59
69
|
}
|
|
60
|
-
data.dbType = extractDbType(data);
|
|
70
|
+
data.dbType = await extractDbType(data);
|
|
61
71
|
data.extDbType = extractExternalDbType(data);
|
|
62
72
|
return data;
|
|
63
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrchestratorApi.js","sourceRoot":"","sources":["../../../src/core/OrchestratorApi.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAqC;AACrC,sEAAiC;AACjC,2EAK4C;AAU5C,MAAa,eAAe;IAO1B,YACqB,aAAwC,EACxC,MAAM,EACN,OAA+B;QAF/B,kBAAa,GAAb,aAAa,CAA2B;QACxC,WAAM,GAAN,MAAM,CAAA;QACN,YAAO,GAAP,OAAO,CAAwB;QAT5C,oBAAe,GAA4B,EAAE,CAAC;QAWpD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAEjE,IAAI,CAAC,YAAY,GAAG,IAAI,sCAAiB,CACvC,OAAO,CAAC,WAAW,IAAI,YAAY,EACnC,aAAa,EACb,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,SAAS;QAChD,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAK;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAE9C,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;gBAC3B,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;YAEH,IAAI,iBAAiB,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACjD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEtC,iBAAiB,GAAG,yBAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;YAEnF,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC;YAErC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBAC7B,QAAQ,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC;gBACnD,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;aAC3B,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"OrchestratorApi.js","sourceRoot":"","sources":["../../../src/core/OrchestratorApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,10 @@ export declare class RefreshScheduler {
|
|
|
40
40
|
constructor(serverCore: CubejsServerCore);
|
|
41
41
|
protected refreshQueriesForPreAggregation(context: any, compilerApi: CompilerApi, preAggregation: any, queryingOptions: ScheduledRefreshQueryingOptions): Promise<RefreshQueries>;
|
|
42
42
|
protected baseQueryForPreAggregation(compilerApi: CompilerApi, preAggregation: any, queryingOptions: ScheduledRefreshQueryingOptions): Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* Evaluate and returns minimal QueryQueue concurrency value.
|
|
45
|
+
*/
|
|
46
|
+
protected getSchedulerConcurrency(core: CubejsServerCore, context: RequestContext): null | number;
|
|
43
47
|
runScheduledRefresh(ctx: RequestContext | null, options: Readonly<ScheduledRefreshOptions>): Promise<{
|
|
44
48
|
finished: boolean;
|
|
45
49
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshScheduler.d.ts","sourceRoot":"","sources":["../../../src/core/RefreshScheduler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,aAAK,+BAA+B,GAAG,QAAQ,CAAC,uBAAuB,EAAE,aAAa,GAAG,eAAe,CAAC,GAAG;IAC1G,cAAc,EAAE;QACd,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAC;AAEF,aAAK,8BAA8B,GAAG;IACpC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KACtB,EAAE,CAAC;IACJ,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAC;AAEF,aAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,iBAAiB,EAAE,yBAAyB,EAAE,EAAE,CAAC;CAClD,CAAC;AAEF,qBAAa,gBAAgB;IAEzB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB;gBAA5B,UAAU,EAAE,gBAAgB;cAIjC,+BAA+B,CAC7C,OAAO,KAAA,EACP,WAAW,EAAE,WAAW,EACxB,cAAc,KAAA,EACd,eAAe,EAAE,+BAA+B,GAC/C,OAAO,CAAC,cAAc,CAAC;cA4CV,0BAA0B,CACxC,WAAW,EAAE,WAAW,EACxB,cAAc,KAAA,EACd,eAAe,EAAE,+BAA+B;
|
|
1
|
+
{"version":3,"file":"RefreshScheduler.d.ts","sourceRoot":"","sources":["../../../src/core/RefreshScheduler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,aAAK,+BAA+B,GAAG,QAAQ,CAAC,uBAAuB,EAAE,aAAa,GAAG,eAAe,CAAC,GAAG;IAC1G,cAAc,EAAE;QACd,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAC;AAEF,aAAK,8BAA8B,GAAG;IACpC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KACtB,EAAE,CAAC;IACJ,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAC;AAEF,aAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,iBAAiB,EAAE,yBAAyB,EAAE,EAAE,CAAC;CAClD,CAAC;AAEF,qBAAa,gBAAgB;IAEzB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB;gBAA5B,UAAU,EAAE,gBAAgB;cAIjC,+BAA+B,CAC7C,OAAO,KAAA,EACP,WAAW,EAAE,WAAW,EACxB,cAAc,KAAA,EACd,eAAe,EAAE,+BAA+B,GAC/C,OAAO,CAAC,cAAc,CAAC;cA4CV,0BAA0B,CACxC,WAAW,EAAE,WAAW,EACxB,cAAc,KAAA,EACd,eAAe,EAAE,+BAA+B;IAiClD;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,cAAc,GACtB,IAAI,GAAG,MAAM;IAuBH,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC;;;IA0DvG;;OAEG;cACa,cAAc,CAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW;cAcV,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,+BAA+B;IAyCrC,wBAAwB,CACnC,OAAO,KAAA,EACP,eAAe,EAAE,8BAA8B;cA2FjC,6CAA6C,CAAC,OAAO,KAAA,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA6GhG,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,+BAA+B;IA+BrC,oBAAoB,CAC/B,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,8BAA8B;CA2ClD"}
|
|
@@ -50,7 +50,7 @@ class RefreshScheduler {
|
|
|
50
50
|
}
|
|
51
51
|
async baseQueryForPreAggregation(compilerApi, preAggregation, queryingOptions) {
|
|
52
52
|
const compilers = await compilerApi.getCompilers();
|
|
53
|
-
const query = compilerApi.createQueryByDataSource(compilers, queryingOptions);
|
|
53
|
+
const query = await compilerApi.createQueryByDataSource(compilers, queryingOptions);
|
|
54
54
|
if (preAggregation.preAggregation.partitionGranularity || preAggregation.preAggregation.type === 'rollup') {
|
|
55
55
|
return { ...queryingOptions, ...preAggregation.references };
|
|
56
56
|
}
|
|
@@ -73,6 +73,30 @@ class RefreshScheduler {
|
|
|
73
73
|
throw new Error(`Scheduled refresh is unsupported for ${preAggregation.preAggregation.type} of ${preAggregation.preAggregationName}`);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Evaluate and returns minimal QueryQueue concurrency value.
|
|
78
|
+
*/
|
|
79
|
+
getSchedulerConcurrency(core, context) {
|
|
80
|
+
const preaggsQueues = core
|
|
81
|
+
.getOrchestratorApi(context)
|
|
82
|
+
.getQueryOrchestrator()
|
|
83
|
+
.getPreAggregations()
|
|
84
|
+
.getQueues();
|
|
85
|
+
let concurrency;
|
|
86
|
+
if (Object.keys(preaggsQueues).length === 0) {
|
|
87
|
+
// first execution - no queues
|
|
88
|
+
concurrency = null;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// further executions - queues ready
|
|
92
|
+
const concurrencies = [];
|
|
93
|
+
Object.keys(preaggsQueues).forEach((name) => {
|
|
94
|
+
concurrencies.push(preaggsQueues[name].concurrency);
|
|
95
|
+
});
|
|
96
|
+
concurrency = Math.min(...concurrencies);
|
|
97
|
+
}
|
|
98
|
+
return concurrency;
|
|
99
|
+
}
|
|
76
100
|
async runScheduledRefresh(ctx, options) {
|
|
77
101
|
const context = {
|
|
78
102
|
authInfo: null,
|
|
@@ -80,11 +104,14 @@ class RefreshScheduler {
|
|
|
80
104
|
securityContext: (ctx === null || ctx === void 0 ? void 0 : ctx.securityContext) ? ctx.securityContext : {},
|
|
81
105
|
requestId: `scheduler-${ctx && ctx.requestId || uuid_1.v4()}`,
|
|
82
106
|
};
|
|
107
|
+
const concurrency = options.concurrency ||
|
|
108
|
+
this.getSchedulerConcurrency(this.serverCore, context) ||
|
|
109
|
+
1;
|
|
83
110
|
const queryingOptions = {
|
|
84
111
|
timezones: [options.timezone || 'UTC'],
|
|
85
112
|
...options,
|
|
86
|
-
concurrency
|
|
87
|
-
workerIndices: options.workerIndices || ramda_1.default.range(0,
|
|
113
|
+
concurrency,
|
|
114
|
+
workerIndices: options.workerIndices || ramda_1.default.range(0, concurrency),
|
|
88
115
|
contextSymbols: {
|
|
89
116
|
securityContext: context.securityContext,
|
|
90
117
|
},
|
|
@@ -141,7 +168,7 @@ class RefreshScheduler {
|
|
|
141
168
|
}
|
|
142
169
|
async refreshCubesRefreshKey(context, compilerApi, queryingOptions) {
|
|
143
170
|
const compilers = await compilerApi.getCompilers();
|
|
144
|
-
const queryForEvaluation = compilerApi.createQueryByDataSource(compilers, {});
|
|
171
|
+
const queryForEvaluation = await compilerApi.createQueryByDataSource(compilers, {});
|
|
145
172
|
await Promise.all(queryForEvaluation.cubeEvaluator.cubeNames().map(async (cube) => {
|
|
146
173
|
const cubeFromPath = queryForEvaluation.cubeEvaluator.cubeFromPath(cube);
|
|
147
174
|
const measuresCount = Object.keys(cubeFromPath.measures || {}).length;
|