@budibase/server 0.9.185-alpha.10 → 0.9.185-alpha.14
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/builder/assets/bb-space-man.5be51a45.svg +290 -0
- package/builder/assets/{index.34aca569.css → index.4a7c5636.css} +1 -1
- package/builder/assets/{index.a9806411.js → index.8ed163fd.js} +179 -180
- package/builder/index.html +2 -2
- package/coverage/clover.xml +189 -167
- package/coverage/coverage-final.json +6 -6
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +102 -18
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +19 -19
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +29 -8
- package/coverage/lcov-report/api/controllers/table/index.html +13 -13
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/automations/utils.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +25 -4
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/client.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +37 -37
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/threads/automation.js.html +14 -8
- package/coverage/lcov-report/threads/index.html +27 -27
- package/coverage/lcov-report/threads/index.js.html +29 -11
- package/coverage/lcov-report/threads/query.js.html +16 -7
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +303 -259
- package/dist/api/controllers/datasource.js +25 -5
- package/dist/api/controllers/table/external.js +8 -1
- package/dist/constants/index.js +6 -0
- package/dist/environment.js +13 -0
- package/dist/integrations/utils.js +7 -1
- package/dist/package.json +4 -4
- package/dist/threads/automation.js +3 -1
- package/dist/threads/index.js +9 -3
- package/dist/threads/query.js +3 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/scripts/dev/manage.js +1 -0
- package/src/api/controllers/datasource.js +35 -7
- package/src/api/controllers/table/external.js +8 -1
- package/src/constants/index.js +7 -0
- package/src/environment.js +15 -0
- package/src/integrations/utils.ts +6 -1
- package/src/threads/automation.js +3 -1
- package/src/threads/index.js +9 -3
- package/src/threads/query.js +3 -0
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
const CouchDB = require("../../db");
|
|
12
12
|
const { generateDatasourceID, getDatasourceParams, getQueryParams, DocumentTypes, BudibaseInternalDB, getTableParams, } = require("../../db/utils");
|
|
13
|
-
const { BuildSchemaErrors } = require("../../constants");
|
|
13
|
+
const { BuildSchemaErrors, InvalidColumns } = require("../../constants");
|
|
14
14
|
const { integrations } = require("../../integrations");
|
|
15
15
|
const { getDatasourceAndQuery } = require("./row/utils");
|
|
16
16
|
exports.fetch = function (ctx) {
|
|
@@ -127,6 +127,21 @@ exports.query = function (ctx) {
|
|
|
127
127
|
}
|
|
128
128
|
});
|
|
129
129
|
};
|
|
130
|
+
function getErrorTables(errors, errorType) {
|
|
131
|
+
return Object.entries(errors)
|
|
132
|
+
.filter(entry => entry[1] === errorType)
|
|
133
|
+
.map(([name]) => name);
|
|
134
|
+
}
|
|
135
|
+
function updateError(error, newError, tables) {
|
|
136
|
+
if (!error) {
|
|
137
|
+
error = "";
|
|
138
|
+
}
|
|
139
|
+
if (error.length > 0) {
|
|
140
|
+
error += "\n";
|
|
141
|
+
}
|
|
142
|
+
error += `${newError} ${tables.join(", ")}`;
|
|
143
|
+
return error;
|
|
144
|
+
}
|
|
130
145
|
const buildSchemaHelper = (datasource) => __awaiter(void 0, void 0, void 0, function* () {
|
|
131
146
|
const Connector = integrations[datasource.source];
|
|
132
147
|
// Connect to the DB and build the schema
|
|
@@ -146,10 +161,15 @@ const buildSchemaHelper = (datasource) => __awaiter(void 0, void 0, void 0, func
|
|
|
146
161
|
const errors = connector.schemaErrors;
|
|
147
162
|
let error = null;
|
|
148
163
|
if (errors && Object.keys(errors).length > 0) {
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
164
|
+
const noKey = getErrorTables(errors, BuildSchemaErrors.NO_KEY);
|
|
165
|
+
const invalidCol = getErrorTables(errors, BuildSchemaErrors.INVALID_COLUMN);
|
|
166
|
+
if (noKey.length) {
|
|
167
|
+
error = updateError(error, "No primary key constraint found for the following:", noKey);
|
|
168
|
+
}
|
|
169
|
+
if (invalidCol.length) {
|
|
170
|
+
const invalidCols = Object.values(InvalidColumns).join(", ");
|
|
171
|
+
error = updateError(error, `Cannot use columns ${invalidCols} found in following:`, invalidCol);
|
|
172
|
+
}
|
|
153
173
|
}
|
|
154
174
|
return { tables: connector.tables, error };
|
|
155
175
|
});
|
|
@@ -136,9 +136,13 @@ exports.save = function (ctx) {
|
|
|
136
136
|
return __awaiter(this, void 0, void 0, function* () {
|
|
137
137
|
const appId = ctx.appId;
|
|
138
138
|
const table = ctx.request.body;
|
|
139
|
-
// can't do this
|
|
139
|
+
// can't do this right now
|
|
140
140
|
delete table.dataImport;
|
|
141
141
|
const datasourceId = getDatasourceId(ctx.request.body);
|
|
142
|
+
// table doesn't exist already, note that it is created
|
|
143
|
+
if (!table._id) {
|
|
144
|
+
table.created = true;
|
|
145
|
+
}
|
|
142
146
|
let tableToSave = Object.assign({ type: "table", _id: buildExternalTableId(datasourceId, table.name) }, table);
|
|
143
147
|
let oldTable;
|
|
144
148
|
if (ctx.request.body && ctx.request.body._id) {
|
|
@@ -213,6 +217,9 @@ exports.destroy = function (ctx) {
|
|
|
213
217
|
return __awaiter(this, void 0, void 0, function* () {
|
|
214
218
|
const appId = ctx.appId;
|
|
215
219
|
const tableToDelete = yield getTable(appId, ctx.params.tableId);
|
|
220
|
+
if (!tableToDelete || !tableToDelete.created) {
|
|
221
|
+
ctx.throw(400, "Cannot delete tables which weren't created in Budibase.");
|
|
222
|
+
}
|
|
216
223
|
const datasourceId = getDatasourceId(tableToDelete);
|
|
217
224
|
const db = new CouchDB(appId);
|
|
218
225
|
const datasource = yield db.get(datasourceId);
|
package/dist/constants/index.js
CHANGED
|
@@ -150,8 +150,14 @@ exports.MetadataTypes = {
|
|
|
150
150
|
AUTOMATION_TEST_INPUT: "automationTestInput",
|
|
151
151
|
AUTOMATION_TEST_HISTORY: "automationTestHistory",
|
|
152
152
|
};
|
|
153
|
+
exports.InvalidColumns = {
|
|
154
|
+
ID: "_id",
|
|
155
|
+
REV: "_rev",
|
|
156
|
+
TABLE_ID: "tableId",
|
|
157
|
+
};
|
|
153
158
|
exports.BuildSchemaErrors = {
|
|
154
159
|
NO_KEY: "no_key",
|
|
160
|
+
INVALID_COLUMN: "invalid_column",
|
|
155
161
|
};
|
|
156
162
|
// pass through the list from the auth/core lib
|
|
157
163
|
exports.ObjectStoreBuckets = ObjectStoreBuckets;
|
package/dist/environment.js
CHANGED
|
@@ -16,6 +16,7 @@ if (!LOADED && isDev() && !isTest()) {
|
|
|
16
16
|
require("dotenv").config();
|
|
17
17
|
LOADED = true;
|
|
18
18
|
}
|
|
19
|
+
let inThread = false;
|
|
19
20
|
module.exports = {
|
|
20
21
|
// important
|
|
21
22
|
PORT: process.env.PORT,
|
|
@@ -55,6 +56,7 @@ module.exports = {
|
|
|
55
56
|
USERID_API_KEY: process.env.USERID_API_KEY,
|
|
56
57
|
DEPLOYMENT_CREDENTIALS_URL: process.env.DEPLOYMENT_CREDENTIALS_URL,
|
|
57
58
|
ALLOW_DEV_AUTOMATIONS: process.env.ALLOW_DEV_AUTOMATIONS,
|
|
59
|
+
DISABLE_THREADING: process.env.DISABLE_THREADING,
|
|
58
60
|
_set(key, value) {
|
|
59
61
|
process.env[key] = value;
|
|
60
62
|
module.exports[key] = value;
|
|
@@ -65,7 +67,18 @@ module.exports = {
|
|
|
65
67
|
isProd: () => {
|
|
66
68
|
return !isDev();
|
|
67
69
|
},
|
|
70
|
+
// used to check if already in a thread, don't thread further
|
|
71
|
+
setInThread: () => {
|
|
72
|
+
inThread = true;
|
|
73
|
+
},
|
|
74
|
+
isInThread: () => {
|
|
75
|
+
return inThread;
|
|
76
|
+
},
|
|
68
77
|
};
|
|
78
|
+
// threading can cause memory issues with node-ts in development
|
|
79
|
+
if (isDev() && module.exports.DISABLE_THREADING == null) {
|
|
80
|
+
module.exports._set("DISABLE_THREADING", "1");
|
|
81
|
+
}
|
|
69
82
|
// clean up any environment variable edge cases
|
|
70
83
|
for (let [key, value] of Object.entries(module.exports)) {
|
|
71
84
|
// handle the edge case of "0" to disable an environment variable
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.finaliseExternalTables = exports.isIsoDateString = exports.isSQL = exports.getSqlQuery = exports.convertSqlType = exports.breakRowIdField = exports.convertRowId = exports.isRowId = exports.generateRowIdField = exports.breakExternalTableId = exports.buildExternalTableId = exports.isExternalTable = exports.SqlClients = void 0;
|
|
4
4
|
const datasource_1 = require("../definitions/datasource");
|
|
5
5
|
const { DocumentTypes, SEPARATOR } = require("../db/utils");
|
|
6
|
-
const { FieldTypes, BuildSchemaErrors } = require("../constants");
|
|
6
|
+
const { FieldTypes, BuildSchemaErrors, InvalidColumns } = require("../constants");
|
|
7
7
|
const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`;
|
|
8
8
|
const ROW_ID_REGEX = /^\[.*]$/g;
|
|
9
9
|
const SQL_TYPE_MAP = {
|
|
@@ -151,14 +151,20 @@ function copyExistingPropsOver(tableName, table, entities) {
|
|
|
151
151
|
return table;
|
|
152
152
|
}
|
|
153
153
|
function finaliseExternalTables(tables, entities) {
|
|
154
|
+
const invalidColumns = Object.values(InvalidColumns);
|
|
154
155
|
const finalTables = {};
|
|
155
156
|
const errors = {};
|
|
156
157
|
for (let [name, table] of Object.entries(tables)) {
|
|
158
|
+
const schemaFields = Object.keys(table.schema);
|
|
157
159
|
// make sure every table has a key
|
|
158
160
|
if (table.primary == null || table.primary.length === 0) {
|
|
159
161
|
errors[name] = BuildSchemaErrors.NO_KEY;
|
|
160
162
|
continue;
|
|
161
163
|
}
|
|
164
|
+
else if (schemaFields.find(field => invalidColumns.includes(field))) {
|
|
165
|
+
errors[name] = BuildSchemaErrors.INVALID_COLUMN;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
162
168
|
// make sure all previous props have been added back
|
|
163
169
|
finalTables[name] = copyExistingPropsOver(name, table, entities);
|
|
164
170
|
}
|
package/dist/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "0.9.185-alpha.
|
|
4
|
+
"version": "0.9.185-alpha.13",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"repository": {
|
|
@@ -68,9 +68,9 @@
|
|
|
68
68
|
"author": "Budibase",
|
|
69
69
|
"license": "AGPL-3.0-or-later",
|
|
70
70
|
"dependencies": {
|
|
71
|
-
"@budibase/auth": "^0.9.185-alpha.
|
|
72
|
-
"@budibase/client": "^0.9.185-alpha.
|
|
73
|
-
"@budibase/string-templates": "^0.9.185-alpha.
|
|
71
|
+
"@budibase/auth": "^0.9.185-alpha.13",
|
|
72
|
+
"@budibase/client": "^0.9.185-alpha.13",
|
|
73
|
+
"@budibase/string-templates": "^0.9.185-alpha.13",
|
|
74
74
|
"@bull-board/api": "^3.7.0",
|
|
75
75
|
"@bull-board/koa": "^3.7.0",
|
|
76
76
|
"@elastic/elasticsearch": "7.10.0",
|
|
@@ -8,6 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
// when thread starts, make sure it is recorded
|
|
12
|
+
const env = require("../environment");
|
|
13
|
+
env.setInThread();
|
|
11
14
|
const actions = require("../automations/actions");
|
|
12
15
|
const automationUtils = require("../automations/automationUtils");
|
|
13
16
|
const AutomationEmitter = require("../events/AutomationEmitter");
|
|
@@ -16,7 +19,6 @@ const { DEFAULT_TENANT_ID } = require("@budibase/auth").constants;
|
|
|
16
19
|
const CouchDB = require("../db");
|
|
17
20
|
const { DocumentTypes, isDevAppID } = require("../db/utils");
|
|
18
21
|
const { doInTenant } = require("@budibase/auth/tenancy");
|
|
19
|
-
const env = require("../environment");
|
|
20
22
|
const usage = require("../utilities/usageQuota");
|
|
21
23
|
const { definitions: triggerDefs } = require("../automations/triggerInfo");
|
|
22
24
|
const FILTER_STEP_ID = actions.ACTION_DEFINITIONS.FILTER.stepId;
|
package/dist/threads/index.js
CHANGED
|
@@ -22,10 +22,16 @@ function typeToFile(type) {
|
|
|
22
22
|
class Thread {
|
|
23
23
|
constructor(type, opts = { timeoutMs: null, count: 1 }) {
|
|
24
24
|
this.type = type;
|
|
25
|
-
|
|
25
|
+
this.count = opts.count ? opts.count : 1;
|
|
26
|
+
this.disableThreading =
|
|
27
|
+
env.isTest() ||
|
|
28
|
+
env.DISABLE_THREADING ||
|
|
29
|
+
this.count === 0 ||
|
|
30
|
+
env.isInThread();
|
|
31
|
+
if (!this.disableThreading) {
|
|
26
32
|
const workerOpts = {
|
|
27
33
|
autoStart: true,
|
|
28
|
-
maxConcurrentWorkers:
|
|
34
|
+
maxConcurrentWorkers: this.count,
|
|
29
35
|
};
|
|
30
36
|
if (opts.timeoutMs) {
|
|
31
37
|
workerOpts.maxCallTime = opts.timeoutMs;
|
|
@@ -37,7 +43,7 @@ class Thread {
|
|
|
37
43
|
return new Promise((resolve, reject) => {
|
|
38
44
|
let fncToCall;
|
|
39
45
|
// if in test then don't use threading
|
|
40
|
-
if (
|
|
46
|
+
if (this.disableThreading) {
|
|
41
47
|
fncToCall = require(typeToFile(this.type));
|
|
42
48
|
}
|
|
43
49
|
else {
|
package/dist/threads/query.js
CHANGED
|
@@ -8,6 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
// when thread starts, make sure it is recorded
|
|
12
|
+
const env = require("../environment");
|
|
13
|
+
env.setInThread();
|
|
11
14
|
const ScriptRunner = require("../utilities/scriptRunner");
|
|
12
15
|
const { integrations } = require("../integrations");
|
|
13
16
|
function formatResponse(resp) {
|