@budibase/server 1.0.27-alpha.4 → 1.0.27-alpha.8
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/{index.431d69df.css → index.0dce895b.css} +1 -1
- package/builder/assets/{index.d849c3ee.js → index.d5347573.js} +155 -155
- package/builder/index.html +2 -2
- package/coverage/clover.xml +399 -349
- package/coverage/coverage-final.json +4 -4
- 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 +1 -1
- 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 +1 -1
- 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/index.html +19 -19
- package/coverage/lcov-report/api/controllers/query/index.js.html +73 -10
- package/coverage/lcov-report/api/controllers/query/validation.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 +11 -11
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +38 -11
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- 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 +39 -39
- 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 +1 -1
- package/coverage/lcov-report/threads/index.html +11 -11
- package/coverage/lcov-report/threads/index.js.html +1 -1
- package/coverage/lcov-report/threads/query.js.html +1 -1
- package/coverage/lcov-report/threads/utils.js.html +28 -25
- 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 +19 -19
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +199 -10
- 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 +668 -572
- package/dist/api/controllers/query/import/sources/base/index.js +2 -1
- package/dist/api/controllers/query/import/sources/curl.js +6 -4
- package/dist/api/controllers/query/import/sources/openapi2.js +8 -5
- package/dist/api/controllers/query/index.js +16 -0
- package/dist/api/controllers/row/internal.js +14 -6
- package/dist/integrations/base/sqlTable.js +1 -1
- package/dist/integrations/rest.js +1 -1
- package/dist/package.json +4 -4
- package/dist/threads/utils.js +2 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/utilities.js +2 -1
- package/dist/utilities/rowProcessor/index.js +63 -0
- package/package.json +5 -5
- package/src/api/controllers/query/import/sources/base/index.ts +3 -1
- package/src/api/controllers/query/import/sources/curl.ts +7 -3
- package/src/api/controllers/query/import/sources/openapi2.ts +9 -5
- package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +2 -3
- package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +6 -7
- package/src/api/controllers/query/import/tests/index.spec.js +0 -6
- package/src/api/controllers/query/index.js +21 -0
- package/src/api/controllers/row/internal.js +14 -5
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/rest.ts +1 -1
- package/src/threads/utils.js +2 -1
- package/src/utilities/fileSystem/utilities.js +2 -0
- package/src/utilities/rowProcessor/index.js +63 -0
|
@@ -11,12 +11,13 @@ var MethodToVerb;
|
|
|
11
11
|
})(MethodToVerb || (MethodToVerb = {}));
|
|
12
12
|
class ImportSource {
|
|
13
13
|
constructor() {
|
|
14
|
-
this.constructQuery = (datasourceId, name, method, path, queryString, headers = {}, parameters = [], body = undefined) => {
|
|
14
|
+
this.constructQuery = (datasourceId, name, method, path, url, queryString, headers = {}, parameters = [], body = undefined) => {
|
|
15
15
|
const readable = true;
|
|
16
16
|
const queryVerb = this.verbFromMethod(method);
|
|
17
17
|
const transformer = "return data";
|
|
18
18
|
const schema = {};
|
|
19
19
|
path = this.processPath(path);
|
|
20
|
+
path = `${url.origin}/${path}`;
|
|
20
21
|
queryString = this.processQuery(queryString);
|
|
21
22
|
const requestBody = JSON.stringify(body, null, 2);
|
|
22
23
|
const query = {
|
|
@@ -67,15 +67,17 @@ class Curl extends base_1.ImportSource {
|
|
|
67
67
|
}
|
|
68
68
|
return true;
|
|
69
69
|
});
|
|
70
|
+
this.getUrl = () => {
|
|
71
|
+
return new url_1.URL(this.curl.raw_url);
|
|
72
|
+
};
|
|
70
73
|
this.getInfo = () => __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
const url =
|
|
74
|
+
const url = this.getUrl();
|
|
72
75
|
return {
|
|
73
|
-
url: url.origin,
|
|
74
76
|
name: url.hostname,
|
|
75
77
|
};
|
|
76
78
|
});
|
|
77
79
|
this.getQueries = (datasourceId) => __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
const url =
|
|
80
|
+
const url = this.getUrl();
|
|
79
81
|
const name = url.pathname;
|
|
80
82
|
const path = url.pathname;
|
|
81
83
|
const method = this.curl.method;
|
|
@@ -86,7 +88,7 @@ class Curl extends base_1.ImportSource {
|
|
|
86
88
|
if (cookieHeader) {
|
|
87
89
|
headers["Cookie"] = cookieHeader;
|
|
88
90
|
}
|
|
89
|
-
const query = this.constructQuery(datasourceId, name, method, path, queryString, headers, [], requestBody);
|
|
91
|
+
const query = this.constructQuery(datasourceId, name, method, path, url, queryString, headers, [], requestBody);
|
|
90
92
|
return [query];
|
|
91
93
|
});
|
|
92
94
|
}
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.OpenAPI2 = void 0;
|
|
13
13
|
const openapi_types_1 = require("openapi-types");
|
|
14
14
|
const openapi_1 = require("./base/openapi");
|
|
15
|
+
const url_1 = require("url");
|
|
15
16
|
const parameterNotRef = (param) => {
|
|
16
17
|
// all refs are deferenced by parser library
|
|
17
18
|
return true;
|
|
@@ -53,19 +54,21 @@ class OpenAPI2 extends openapi_1.OpenAPISource {
|
|
|
53
54
|
return false;
|
|
54
55
|
}
|
|
55
56
|
});
|
|
56
|
-
this.
|
|
57
|
+
this.getUrl = () => {
|
|
57
58
|
var _a;
|
|
58
59
|
const scheme = ((_a = this.document.schemes) === null || _a === void 0 ? void 0 : _a.includes("https")) ? "https" : "http";
|
|
59
60
|
const basePath = this.document.basePath || "";
|
|
60
61
|
const host = this.document.host || "<host>";
|
|
61
|
-
|
|
62
|
+
return new url_1.URL(`${scheme}://${host}${basePath}`);
|
|
63
|
+
};
|
|
64
|
+
this.getInfo = () => __awaiter(this, void 0, void 0, function* () {
|
|
62
65
|
const name = this.document.info.title || "Swagger Import";
|
|
63
66
|
return {
|
|
64
|
-
|
|
65
|
-
name: name,
|
|
67
|
+
name,
|
|
66
68
|
};
|
|
67
69
|
});
|
|
68
70
|
this.getQueries = (datasourceId) => __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
const url = this.getUrl();
|
|
69
72
|
const queries = [];
|
|
70
73
|
for (let [path, pathItem] of Object.entries(this.document.paths)) {
|
|
71
74
|
// parameters that apply to every operation in the path
|
|
@@ -128,7 +131,7 @@ class OpenAPI2 extends openapi_1.OpenAPISource {
|
|
|
128
131
|
}
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
|
-
const query = this.constructQuery(datasourceId, name, methodName, path, queryString, headers, parameters, requestBody);
|
|
134
|
+
const query = this.constructQuery(datasourceId, name, methodName, path, url, queryString, headers, parameters, requestBody);
|
|
132
135
|
queries.push(query);
|
|
133
136
|
}
|
|
134
137
|
}
|
|
@@ -14,6 +14,7 @@ const { BaseQueryVerbs } = require("../../../constants");
|
|
|
14
14
|
const { Thread, ThreadType } = require("../../../threads");
|
|
15
15
|
const { save: saveDatasource } = require("../datasource");
|
|
16
16
|
const { RestImporter } = require("./import");
|
|
17
|
+
const { invalidateDynamicVariables } = require("../../../threads/utils");
|
|
17
18
|
const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 });
|
|
18
19
|
// simple function to append "readable" to all read queries
|
|
19
20
|
function enrichQueries(input) {
|
|
@@ -159,9 +160,24 @@ exports.executeV2 = function (ctx) {
|
|
|
159
160
|
return execute(ctx, { rowsOnly: false });
|
|
160
161
|
});
|
|
161
162
|
};
|
|
163
|
+
const removeDynamicVariables = (db, queryId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
164
|
+
const query = yield db.get(queryId);
|
|
165
|
+
const datasource = yield db.get(query.datasourceId);
|
|
166
|
+
const dynamicVariables = datasource.config.dynamicVariables;
|
|
167
|
+
if (dynamicVariables) {
|
|
168
|
+
// delete dynamic variables from the datasource
|
|
169
|
+
const newVariables = dynamicVariables.filter(dv => dv.queryId !== queryId);
|
|
170
|
+
datasource.config.dynamicVariables = newVariables;
|
|
171
|
+
yield db.put(datasource);
|
|
172
|
+
// invalidate the deleted variables
|
|
173
|
+
const variablesToDelete = dynamicVariables.filter(dv => dv.queryId === queryId);
|
|
174
|
+
yield invalidateDynamicVariables(variablesToDelete);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
162
177
|
exports.destroy = function (ctx) {
|
|
163
178
|
return __awaiter(this, void 0, void 0, function* () {
|
|
164
179
|
const db = new CouchDB(ctx.appId);
|
|
180
|
+
yield removeDynamicVariables(db, ctx.params.queryId);
|
|
165
181
|
yield db.remove(ctx.params.queryId, ctx.params.revId);
|
|
166
182
|
ctx.message = `Query deleted.`;
|
|
167
183
|
ctx.status = 200;
|
|
@@ -23,7 +23,7 @@ const CouchDB = require("../../../db");
|
|
|
23
23
|
const linkRows = require("../../../db/linkedRows");
|
|
24
24
|
const { getRowParams, generateRowID, DocumentTypes, InternalTables, } = require("../../../db/utils");
|
|
25
25
|
const userController = require("../user");
|
|
26
|
-
const { inputProcessing, outputProcessing, processAutoColumn, } = require("../../../utilities/rowProcessor");
|
|
26
|
+
const { inputProcessing, outputProcessing, processAutoColumn, cleanupAttachments, } = require("../../../utilities/rowProcessor");
|
|
27
27
|
const { FieldTypes } = require("../../../constants");
|
|
28
28
|
const { isEqual } = require("lodash");
|
|
29
29
|
const { validate, findRow } = require("./utils");
|
|
@@ -32,6 +32,7 @@ const { getGlobalUsersFromMetadata } = require("../../../utilities/global");
|
|
|
32
32
|
const inMemoryViews = require("../../../db/inMemoryView");
|
|
33
33
|
const env = require("../../../environment");
|
|
34
34
|
const { migrateToInMemoryView, migrateToDesignView, getFromDesignDoc, getFromMemoryDoc, } = require("../view/utils");
|
|
35
|
+
const { cloneDeep } = require("lodash/fp");
|
|
35
36
|
const CALCULATION_TYPES = {
|
|
36
37
|
SUM: "sum",
|
|
37
38
|
COUNT: "count",
|
|
@@ -119,15 +120,15 @@ exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
119
120
|
const inputs = ctx.request.body;
|
|
120
121
|
const tableId = inputs.tableId;
|
|
121
122
|
const isUserTable = tableId === InternalTables.USER_METADATA;
|
|
122
|
-
let
|
|
123
|
+
let oldRow;
|
|
123
124
|
try {
|
|
124
|
-
|
|
125
|
+
oldRow = yield db.get(inputs._id);
|
|
125
126
|
}
|
|
126
127
|
catch (err) {
|
|
127
128
|
if (isUserTable) {
|
|
128
129
|
// don't include the rev, it'll be the global rev
|
|
129
130
|
// this time
|
|
130
|
-
|
|
131
|
+
oldRow = {
|
|
131
132
|
_id: inputs._id,
|
|
132
133
|
};
|
|
133
134
|
}
|
|
@@ -137,13 +138,14 @@ exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
137
138
|
}
|
|
138
139
|
let dbTable = yield db.get(tableId);
|
|
139
140
|
// need to build up full patch fields before coerce
|
|
141
|
+
let combinedRow = cloneDeep(oldRow);
|
|
140
142
|
for (let key of Object.keys(inputs)) {
|
|
141
143
|
if (!dbTable.schema[key])
|
|
142
144
|
continue;
|
|
143
|
-
|
|
145
|
+
combinedRow[key] = inputs[key];
|
|
144
146
|
}
|
|
145
147
|
// this returns the table and row incase they have been updated
|
|
146
|
-
let { table, row } = inputProcessing(ctx.user, dbTable,
|
|
148
|
+
let { table, row } = inputProcessing(ctx.user, dbTable, combinedRow);
|
|
147
149
|
const validateResult = yield validate({
|
|
148
150
|
row,
|
|
149
151
|
table,
|
|
@@ -159,6 +161,8 @@ exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
159
161
|
tableId: row.tableId,
|
|
160
162
|
table,
|
|
161
163
|
});
|
|
164
|
+
// check if any attachments removed
|
|
165
|
+
yield cleanupAttachments(appId, table, { oldRow, row });
|
|
162
166
|
if (isUserTable) {
|
|
163
167
|
// the row has been updated, need to put it into the ctx
|
|
164
168
|
ctx.request.body = row;
|
|
@@ -284,6 +288,8 @@ exports.destroy = function (ctx) {
|
|
|
284
288
|
row,
|
|
285
289
|
tableId: row.tableId,
|
|
286
290
|
});
|
|
291
|
+
// remove any attachments that were on the row from object storage
|
|
292
|
+
yield cleanupAttachments(appId, table, { row });
|
|
287
293
|
let response;
|
|
288
294
|
if (ctx.params.tableId === InternalTables.USER_METADATA) {
|
|
289
295
|
ctx.params = {
|
|
@@ -325,6 +331,8 @@ exports.bulkDestroy = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
325
331
|
else {
|
|
326
332
|
yield db.bulkDocs(rows.map(row => (Object.assign(Object.assign({}, row), { _deleted: true }))));
|
|
327
333
|
}
|
|
334
|
+
// remove any attachments that were on the rows from object storage
|
|
335
|
+
yield cleanupAttachments(appId, table, { rows });
|
|
328
336
|
yield Promise.all(updates);
|
|
329
337
|
return { response: { ok: true }, rows };
|
|
330
338
|
});
|
|
@@ -29,7 +29,7 @@ function generateSchema(schema, table, tables, oldTable = null) {
|
|
|
29
29
|
case FieldTypes.STRING:
|
|
30
30
|
case FieldTypes.OPTIONS:
|
|
31
31
|
case FieldTypes.LONGFORM:
|
|
32
|
-
schema.
|
|
32
|
+
schema.text(key);
|
|
33
33
|
break;
|
|
34
34
|
case FieldTypes.NUMBER:
|
|
35
35
|
// if meta is specified then this is a junction table entry
|
|
@@ -159,7 +159,7 @@ var RestModule;
|
|
|
159
159
|
getUrl(path, queryString) {
|
|
160
160
|
const main = `${path}?${queryString}`;
|
|
161
161
|
let complete = main;
|
|
162
|
-
if (this.config.url && !main.startsWith(
|
|
162
|
+
if (this.config.url && !main.startsWith("http")) {
|
|
163
163
|
complete = !this.config.url ? main : `${this.config.url}/${main}`;
|
|
164
164
|
}
|
|
165
165
|
if (!complete.startsWith("http")) {
|
package/dist/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "1.0.27-alpha.
|
|
4
|
+
"version": "1.0.27-alpha.7",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"license": "GPL-3.0",
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@apidevtools/swagger-parser": "^10.0.3",
|
|
73
|
-
"@budibase/auth": "^1.0.27-alpha.
|
|
74
|
-
"@budibase/client": "^1.0.27-alpha.
|
|
75
|
-
"@budibase/string-templates": "^1.0.27-alpha.
|
|
73
|
+
"@budibase/auth": "^1.0.27-alpha.7",
|
|
74
|
+
"@budibase/client": "^1.0.27-alpha.7",
|
|
75
|
+
"@budibase/string-templates": "^1.0.27-alpha.7",
|
|
76
76
|
"@bull-board/api": "^3.7.0",
|
|
77
77
|
"@bull-board/koa": "^3.7.0",
|
|
78
78
|
"@elastic/elasticsearch": "7.10.0",
|
package/dist/threads/utils.js
CHANGED
|
@@ -47,9 +47,10 @@ exports.checkCacheForDynamicVariable = (queryId, variable) => __awaiter(void 0,
|
|
|
47
47
|
return cache.get(makeVariableKey(queryId, variable));
|
|
48
48
|
});
|
|
49
49
|
exports.invalidateDynamicVariables = (cachedVars) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
const cache = yield getClient();
|
|
50
51
|
let promises = [];
|
|
51
52
|
for (let variable of cachedVars) {
|
|
52
|
-
promises.push(
|
|
53
|
+
promises.push(cache.delete(makeVariableKey(variable.queryId, variable.name)));
|
|
53
54
|
}
|
|
54
55
|
yield Promise.all(promises);
|
|
55
56
|
});
|