From 90b61cd3ca1af79f3ee44e9904e073118a32115c Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 28 Jul 2022 11:14:06 +0100 Subject: [PATCH 1/5] Adding more logging to server log for cloud etc. --- packages/server/src/automations/steps/serverLog.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/server/src/automations/steps/serverLog.js b/packages/server/src/automations/steps/serverLog.js index b88a731d56..19bbc36abf 100644 --- a/packages/server/src/automations/steps/serverLog.js +++ b/packages/server/src/automations/steps/serverLog.js @@ -31,15 +31,21 @@ exports.definition = { type: "boolean", description: "Whether the action was successful", }, + message: { + type: "string", + description: "What was output", + }, }, - required: ["success"], + required: ["success", "message"], }, }, } exports.run = async function ({ inputs, appId }) { - console.log(`App ${appId} - ${inputs.text}`) + const message = `App ${appId} - ${inputs.text}` + console.log(message) return { success: true, + message, } } From 34432d586277f5af647f56f8add2739e73d5600c Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 28 Jul 2022 13:39:11 +0100 Subject: [PATCH 2/5] Fixing some issues with automations + lucene filtering (with string templating on the backend) as well as type coercion in the query rows action. --- packages/frontend-core/src/utils/lucene.js | 5 +++- .../server/src/automations/steps/queryRows.js | 23 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/frontend-core/src/utils/lucene.js b/packages/frontend-core/src/utils/lucene.js index 1001ec26a8..9554c2201a 100644 --- a/packages/frontend-core/src/utils/lucene.js +++ b/packages/frontend-core/src/utils/lucene.js @@ -1,6 +1,8 @@ import { Helpers } from "@budibase/bbui" import { OperatorOptions, SqlNumberTypeRangeMap } from "../constants" +const HBS_REGEX = /{{([^{].*?)}}/g + /** * Returns the valid operator options for a certain data type * @param type the data type @@ -98,6 +100,7 @@ export const buildLuceneQuery = filter => { if (Array.isArray(filter)) { filter.forEach(expression => { let { operator, field, type, value, externalType } = expression + const isHbs = typeof value === "string" && value.match(HBS_REGEX)?.length > 0 // Parse all values into correct types if (type === "datetime" && value) { value = new Date(value).toISOString() @@ -105,7 +108,7 @@ export const buildLuceneQuery = filter => { if (type === "number" && !Array.isArray(value)) { if (operator === "oneOf") { value = value.split(",").map(item => parseFloat(item)) - } else { + } else if (!isHbs) { value = parseFloat(value) } } diff --git a/packages/server/src/automations/steps/queryRows.js b/packages/server/src/automations/steps/queryRows.js index b6d1938995..58e7313dd2 100644 --- a/packages/server/src/automations/steps/queryRows.js +++ b/packages/server/src/automations/steps/queryRows.js @@ -82,6 +82,27 @@ async function getTable(appId, tableId) { return ctx.body } +function typeCoercion(filters, table) { + if (!filters || !table) { + return filters + } + for (let key of Object.keys(filters)) { + if (typeof filters[key] === "object") { + for (let [property, value] of Object.entries(filters[key])) { + const column = table.schema[property] + // convert string inputs + if (!column || typeof value !== "string") { + continue + } + if (column.type === FieldTypes.NUMBER) { + filters[key][property] = parseFloat(value) + } + } + } + } + return filters +} + exports.run = async function ({ inputs, appId }) { const { tableId, filters, sortColumn, sortOrder, limit } = inputs const table = await getTable(appId, tableId) @@ -99,7 +120,7 @@ exports.run = async function ({ inputs, appId }) { sortType, limit, sort: sortColumn, - query: filters || {}, + query: typeCoercion(filters || {}, table), // default to ascending, like data tab sortOrder: sortOrder || SortOrders.ASCENDING, }, From b763fda27f4380a59179672b21c67b1ae19b77de Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 28 Jul 2022 13:40:04 +0100 Subject: [PATCH 3/5] Linting. --- packages/frontend-core/src/utils/lucene.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/frontend-core/src/utils/lucene.js b/packages/frontend-core/src/utils/lucene.js index 9554c2201a..29c2ca684a 100644 --- a/packages/frontend-core/src/utils/lucene.js +++ b/packages/frontend-core/src/utils/lucene.js @@ -100,7 +100,8 @@ export const buildLuceneQuery = filter => { if (Array.isArray(filter)) { filter.forEach(expression => { let { operator, field, type, value, externalType } = expression - const isHbs = typeof value === "string" && value.match(HBS_REGEX)?.length > 0 + const isHbs = + typeof value === "string" && value.match(HBS_REGEX)?.length > 0 // Parse all values into correct types if (type === "datetime" && value) { value = new Date(value).toISOString() From da3be5a095ce403e4f1ff13e3b9f21708a998e6b Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Fri, 29 Jul 2022 14:57:51 +0000 Subject: [PATCH 4/5] v1.1.31 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 2 +- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 28 insertions(+), 28 deletions(-) diff --git a/lerna.json b/lerna.json index 942eaefb7f..62e09cf209 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.1.30", + "version": "1.1.31", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index a13f50e05d..1fca8c59c2 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.1.30", + "version": "1.1.31", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^1.1.30", + "@budibase/types": "^1.1.31", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", "bcrypt": "5.0.1", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 8bde9547c5..d28ba65e46 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "1.1.30", + "version": "1.1.31", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^1.1.30", + "@budibase/string-templates": "^1.1.31", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 3dfc8633cb..ca951b0891 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.1.30", + "version": "1.1.31", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.1.30", - "@budibase/client": "^1.1.30", - "@budibase/frontend-core": "^1.1.30", - "@budibase/string-templates": "^1.1.30", + "@budibase/bbui": "^1.1.31", + "@budibase/client": "^1.1.31", + "@budibase/frontend-core": "^1.1.31", + "@budibase/string-templates": "^1.1.31", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 510970311b..a9212b06cc 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.1.30", + "version": "1.1.31", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { diff --git a/packages/client/package.json b/packages/client/package.json index 4f6f1063ee..06483fc8c7 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.1.30", + "version": "1.1.31", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^1.1.30", - "@budibase/frontend-core": "^1.1.30", - "@budibase/string-templates": "^1.1.30", + "@budibase/bbui": "^1.1.31", + "@budibase/frontend-core": "^1.1.31", + "@budibase/string-templates": "^1.1.31", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index 024d14b301..104b84e47f 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.1.30", + "version": "1.1.31", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^1.1.30", + "@budibase/bbui": "^1.1.31", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 01efc77c32..2a7b44ea0b 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.1.30", + "version": "1.1.31", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^1.1.30", - "@budibase/client": "^1.1.30", + "@budibase/backend-core": "^1.1.31", + "@budibase/client": "^1.1.31", "@budibase/pro": "1.1.30", - "@budibase/string-templates": "^1.1.30", - "@budibase/types": "^1.1.30", + "@budibase/string-templates": "^1.1.31", + "@budibase/types": "^1.1.31", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index cd820c8cf3..c490158f27 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.1.30", + "version": "1.1.31", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index 95640346bc..4fdd508f3c 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.1.30", + "version": "1.1.31", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 750be5d744..12af15fde5 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.1.30", + "version": "1.1.31", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -35,10 +35,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.1.30", + "@budibase/backend-core": "^1.1.31", "@budibase/pro": "1.1.30", - "@budibase/string-templates": "^1.1.30", - "@budibase/types": "^1.1.30", + "@budibase/string-templates": "^1.1.31", + "@budibase/types": "^1.1.31", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 155a4b68a7b88bb8ec3d344e32dd888814aaefb8 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Fri, 29 Jul 2022 14:59:43 +0000 Subject: [PATCH 5/5] Update pro version to 1.1.31 --- packages/server/package.json | 2 +- packages/worker/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 2a7b44ea0b..3df8264388 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "^1.1.31", "@budibase/client": "^1.1.31", - "@budibase/pro": "1.1.30", + "@budibase/pro": "1.1.31", "@budibase/string-templates": "^1.1.31", "@budibase/types": "^1.1.31", "@bull-board/api": "3.7.0", diff --git a/packages/worker/package.json b/packages/worker/package.json index 12af15fde5..79c8bf0be1 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -36,7 +36,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "^1.1.31", - "@budibase/pro": "1.1.30", + "@budibase/pro": "1.1.31", "@budibase/string-templates": "^1.1.31", "@budibase/types": "^1.1.31", "@koa/router": "8.0.8",