From 8fe0cdf89f1ca3012f276c95704413b4f9936796 Mon Sep 17 00:00:00 2001
From: melohagan <101575380+melohagan@users.noreply.github.com>
Date: Thu, 16 Feb 2023 16:23:44 +0000
Subject: [PATCH 1/5] Handle webhook errors (#9715)
---
.../server/src/automations/steps/discord.ts | 38 +++++++++++-----
.../src/automations/steps/integromat.ts | 42 ++++++++++++------
.../server/src/automations/steps/slack.ts | 34 ++++++++++----
.../server/src/automations/steps/zapier.ts | 44 +++++++++++++------
4 files changed, 111 insertions(+), 47 deletions(-)
diff --git a/packages/server/src/automations/steps/discord.ts b/packages/server/src/automations/steps/discord.ts
index ae484fa42e..5d7487ed3b 100644
--- a/packages/server/src/automations/steps/discord.ts
+++ b/packages/server/src/automations/steps/discord.ts
@@ -67,17 +67,33 @@ export async function run({ inputs }: AutomationStepInput) {
if (!avatar_url) {
avatar_url = DEFAULT_AVATAR_URL
}
- const response = await fetch(url, {
- method: "post",
- body: JSON.stringify({
- username,
- avatar_url,
- content,
- }),
- headers: {
- "Content-Type": "application/json",
- },
- })
+ if (!url?.trim()?.length) {
+ return {
+ httpStatus: 400,
+ response: "Missing Webhook URL",
+ success: false,
+ }
+ }
+ let response
+ try {
+ response = await fetch(url, {
+ method: "post",
+ body: JSON.stringify({
+ username,
+ avatar_url,
+ content,
+ }),
+ headers: {
+ "Content-Type": "application/json",
+ },
+ })
+ } catch (err: any) {
+ return {
+ httpStatus: 400,
+ response: err.message,
+ success: false,
+ }
+ }
const { status, message } = await getFetchResponse(response)
return {
diff --git a/packages/server/src/automations/steps/integromat.ts b/packages/server/src/automations/steps/integromat.ts
index dd897b5429..811c0a3d91 100644
--- a/packages/server/src/automations/steps/integromat.ts
+++ b/packages/server/src/automations/steps/integromat.ts
@@ -69,19 +69,35 @@ export const definition: AutomationStepSchema = {
export async function run({ inputs }: AutomationStepInput) {
const { url, value1, value2, value3, value4, value5 } = inputs
- const response = await fetch(url, {
- method: "post",
- body: JSON.stringify({
- value1,
- value2,
- value3,
- value4,
- value5,
- }),
- headers: {
- "Content-Type": "application/json",
- },
- })
+ if (!url?.trim()?.length) {
+ return {
+ httpStatus: 400,
+ response: "Missing Webhook URL",
+ success: false,
+ }
+ }
+ let response
+ try {
+ response = await fetch(url, {
+ method: "post",
+ body: JSON.stringify({
+ value1,
+ value2,
+ value3,
+ value4,
+ value5,
+ }),
+ headers: {
+ "Content-Type": "application/json",
+ },
+ })
+ } catch (err: any) {
+ return {
+ httpStatus: 400,
+ response: err.message,
+ success: false,
+ }
+ }
const { status, message } = await getFetchResponse(response)
return {
diff --git a/packages/server/src/automations/steps/slack.ts b/packages/server/src/automations/steps/slack.ts
index 47c66bebf3..0c9320a699 100644
--- a/packages/server/src/automations/steps/slack.ts
+++ b/packages/server/src/automations/steps/slack.ts
@@ -50,15 +50,31 @@ export const definition: AutomationStepSchema = {
export async function run({ inputs }: AutomationStepInput) {
let { url, text } = inputs
- const response = await fetch(url, {
- method: "post",
- body: JSON.stringify({
- text,
- }),
- headers: {
- "Content-Type": "application/json",
- },
- })
+ if (!url?.trim()?.length) {
+ return {
+ httpStatus: 400,
+ response: "Missing Webhook URL",
+ success: false,
+ }
+ }
+ let response
+ try {
+ response = await fetch(url, {
+ method: "post",
+ body: JSON.stringify({
+ text,
+ }),
+ headers: {
+ "Content-Type": "application/json",
+ },
+ })
+ } catch (err: any) {
+ return {
+ httpStatus: 400,
+ response: err.message,
+ success: false,
+ }
+ }
const { status, message } = await getFetchResponse(response)
return {
diff --git a/packages/server/src/automations/steps/zapier.ts b/packages/server/src/automations/steps/zapier.ts
index 1a48c1ec92..90068e685d 100644
--- a/packages/server/src/automations/steps/zapier.ts
+++ b/packages/server/src/automations/steps/zapier.ts
@@ -63,22 +63,38 @@ export const definition: AutomationStepSchema = {
export async function run({ inputs }: AutomationStepInput) {
const { url, value1, value2, value3, value4, value5 } = inputs
+ if (!url?.trim()?.length) {
+ return {
+ httpStatus: 400,
+ response: "Missing Webhook URL",
+ success: false,
+ }
+ }
// send the platform to make sure zaps always work, even
// if no values supplied
- const response = await fetch(url, {
- method: "post",
- body: JSON.stringify({
- platform: "budibase",
- value1,
- value2,
- value3,
- value4,
- value5,
- }),
- headers: {
- "Content-Type": "application/json",
- },
- })
+ let response
+ try {
+ response = await fetch(url, {
+ method: "post",
+ body: JSON.stringify({
+ platform: "budibase",
+ value1,
+ value2,
+ value3,
+ value4,
+ value5,
+ }),
+ headers: {
+ "Content-Type": "application/json",
+ },
+ })
+ } catch (err: any) {
+ return {
+ httpStatus: 400,
+ response: err.message,
+ success: false,
+ }
+ }
const { status, message } = await getFetchResponse(response)
From cd0e7d41a590a91efa66100ccded842c49f7b519 Mon Sep 17 00:00:00 2001
From: Budibase Release Bot <>
Date: Thu, 16 Feb 2023 16:37:12 +0000
Subject: [PATCH 2/5] v2.3.17
---
lerna.json | 2 +-
packages/backend-core/package.json | 4 ++--
packages/bbui/package.json | 4 ++--
packages/builder/package.json | 10 +++++-----
packages/cli/package.json | 8 ++++----
packages/client/package.json | 8 ++++----
packages/frontend-core/package.json | 4 ++--
packages/sdk/package.json | 2 +-
packages/server/package.json | 10 +++++-----
packages/string-templates/package.json | 2 +-
packages/types/package.json | 2 +-
packages/worker/package.json | 8 ++++----
12 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/lerna.json b/lerna.json
index 0377c73101..cfbed56e23 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "2.3.16",
+ "version": "2.3.17",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json
index 455436ff6a..25e73b9e4d 100644
--- a/packages/backend-core/package.json
+++ b/packages/backend-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/backend-core",
- "version": "2.3.16",
+ "version": "2.3.17",
"description": "Budibase backend core libraries used in server and worker",
"main": "dist/src/index.js",
"types": "dist/src/index.d.ts",
@@ -23,7 +23,7 @@
},
"dependencies": {
"@budibase/nano": "10.1.1",
- "@budibase/types": "^2.3.16",
+ "@budibase/types": "^2.3.17",
"@shopify/jest-koa-mocks": "5.0.1",
"@techpass/passport-openidconnect": "0.3.2",
"aws-cloudfront-sign": "2.2.0",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index 073f57f094..8c9629b314 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": "2.3.16",
+ "version": "2.3.17",
"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": "^2.3.16",
+ "@budibase/string-templates": "^2.3.17",
"@spectrum-css/accordion": "3.0.24",
"@spectrum-css/actionbutton": "1.0.1",
"@spectrum-css/actiongroup": "1.0.1",
diff --git a/packages/builder/package.json b/packages/builder/package.json
index 7def4ba371..5e968c23a3 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "2.3.16",
+ "version": "2.3.17",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -58,10 +58,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^2.3.16",
- "@budibase/client": "^2.3.16",
- "@budibase/frontend-core": "^2.3.16",
- "@budibase/string-templates": "^2.3.16",
+ "@budibase/bbui": "^2.3.17",
+ "@budibase/client": "^2.3.17",
+ "@budibase/frontend-core": "^2.3.17",
+ "@budibase/string-templates": "^2.3.17",
"@fortawesome/fontawesome-svg-core": "^6.2.1",
"@fortawesome/free-brands-svg-icons": "^6.2.1",
"@fortawesome/free-solid-svg-icons": "^6.2.1",
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 5209c51b2e..fb08c290fc 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/cli",
- "version": "2.3.16",
+ "version": "2.3.17",
"description": "Budibase CLI, for developers, self hosting and migrations.",
"main": "src/index.js",
"bin": {
@@ -26,9 +26,9 @@
"outputPath": "build"
},
"dependencies": {
- "@budibase/backend-core": "^2.3.16",
- "@budibase/string-templates": "^2.3.16",
- "@budibase/types": "^2.3.16",
+ "@budibase/backend-core": "^2.3.17",
+ "@budibase/string-templates": "^2.3.17",
+ "@budibase/types": "^2.3.17",
"axios": "0.21.2",
"chalk": "4.1.0",
"cli-progress": "3.11.2",
diff --git a/packages/client/package.json b/packages/client/package.json
index 5e2dad5217..78df2b67f7 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/client",
- "version": "2.3.16",
+ "version": "2.3.17",
"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": "^2.3.16",
- "@budibase/frontend-core": "^2.3.16",
- "@budibase/string-templates": "^2.3.16",
+ "@budibase/bbui": "^2.3.17",
+ "@budibase/frontend-core": "^2.3.17",
+ "@budibase/string-templates": "^2.3.17",
"@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 897b7107cf..502df0fbd4 100644
--- a/packages/frontend-core/package.json
+++ b/packages/frontend-core/package.json
@@ -1,12 +1,12 @@
{
"name": "@budibase/frontend-core",
- "version": "2.3.16",
+ "version": "2.3.17",
"description": "Budibase frontend core libraries used in builder and client",
"author": "Budibase",
"license": "MPL-2.0",
"svelte": "src/index.js",
"dependencies": {
- "@budibase/bbui": "^2.3.16",
+ "@budibase/bbui": "^2.3.17",
"lodash": "^4.17.21",
"svelte": "^3.46.2"
}
diff --git a/packages/sdk/package.json b/packages/sdk/package.json
index 51f5ca70e0..d8a5c44c5b 100644
--- a/packages/sdk/package.json
+++ b/packages/sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/sdk",
- "version": "2.3.16",
+ "version": "2.3.17",
"description": "Budibase Public API SDK",
"author": "Budibase",
"license": "MPL-2.0",
diff --git a/packages/server/package.json b/packages/server/package.json
index aec1e3d047..78f03e0bfe 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/server",
"email": "hi@budibase.com",
- "version": "2.3.16",
+ "version": "2.3.17",
"description": "Budibase Web Server",
"main": "src/index.ts",
"repository": {
@@ -43,11 +43,11 @@
"license": "GPL-3.0",
"dependencies": {
"@apidevtools/swagger-parser": "10.0.3",
- "@budibase/backend-core": "^2.3.16",
- "@budibase/client": "^2.3.16",
+ "@budibase/backend-core": "^2.3.17",
+ "@budibase/client": "^2.3.17",
"@budibase/pro": "2.3.16",
- "@budibase/string-templates": "^2.3.16",
- "@budibase/types": "^2.3.16",
+ "@budibase/string-templates": "^2.3.17",
+ "@budibase/types": "^2.3.17",
"@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 6b99e321e5..87b7c69dbb 100644
--- a/packages/string-templates/package.json
+++ b/packages/string-templates/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/string-templates",
- "version": "2.3.16",
+ "version": "2.3.17",
"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 7d679edcf6..8417cadc06 100644
--- a/packages/types/package.json
+++ b/packages/types/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/types",
- "version": "2.3.16",
+ "version": "2.3.17",
"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 7c2518e8b5..a146e431c2 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/worker",
"email": "hi@budibase.com",
- "version": "2.3.16",
+ "version": "2.3.17",
"description": "Budibase background service",
"main": "src/index.ts",
"repository": {
@@ -36,10 +36,10 @@
"author": "Budibase",
"license": "GPL-3.0",
"dependencies": {
- "@budibase/backend-core": "^2.3.16",
+ "@budibase/backend-core": "^2.3.17",
"@budibase/pro": "2.3.16",
- "@budibase/string-templates": "^2.3.16",
- "@budibase/types": "^2.3.16",
+ "@budibase/string-templates": "^2.3.17",
+ "@budibase/types": "^2.3.17",
"@koa/router": "8.0.8",
"@sentry/node": "6.17.7",
"@techpass/passport-openidconnect": "0.3.2",
From 580822f4a8427048a5c4475f6424d778b0e2e06e Mon Sep 17 00:00:00 2001
From: Budibase Release Bot <>
Date: Thu, 16 Feb 2023 16:41:23 +0000
Subject: [PATCH 3/5] Update pro version to 2.3.17
---
packages/server/package.json | 2 +-
packages/server/yarn.lock | 30 +++++++++++++++---------------
packages/worker/package.json | 2 +-
packages/worker/yarn.lock | 30 +++++++++++++++---------------
4 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/packages/server/package.json b/packages/server/package.json
index 78f03e0bfe..f5787302fe 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -45,7 +45,7 @@
"@apidevtools/swagger-parser": "10.0.3",
"@budibase/backend-core": "^2.3.17",
"@budibase/client": "^2.3.17",
- "@budibase/pro": "2.3.16",
+ "@budibase/pro": "2.3.17",
"@budibase/string-templates": "^2.3.17",
"@budibase/types": "^2.3.17",
"@bull-board/api": "3.7.0",
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index e88dfaf333..31a5b3350e 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -1273,13 +1273,13 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@budibase/backend-core@2.3.16":
- version "2.3.16"
- resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.3.16.tgz#05a8434501718b9eab0109be03c677c1d546fe17"
- integrity sha512-wMuqxKVua3/3XejUMH/fJQgu1kK6t4HYpB5AY58sumNSLbFFp1MyqL+1LMSmpUY0nbjExq+9+wseNsnbWicWUw==
+"@budibase/backend-core@2.3.17":
+ version "2.3.17"
+ resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.3.17.tgz#27c8c2144bfda1533b43da6de7111c0819aea6a5"
+ integrity sha512-KcmF2OrNLjLbFtNbYD4ZufnsnwmN2Ez/occgWiecvFRAHOhpkm+Hoy6VggpG1YJBp1DG9kLh3WAZbeYI3QoJbw==
dependencies:
"@budibase/nano" "10.1.1"
- "@budibase/types" "^2.3.16"
+ "@budibase/types" "^2.3.17"
"@shopify/jest-koa-mocks" "5.0.1"
"@techpass/passport-openidconnect" "0.3.2"
aws-cloudfront-sign "2.2.0"
@@ -1374,13 +1374,13 @@
qs "^6.11.0"
tough-cookie "^4.1.2"
-"@budibase/pro@2.3.16":
- version "2.3.16"
- resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.3.16.tgz#3eca93b826ed6da5b6941d8b384c34c57da2b1b4"
- integrity sha512-lIbPXOs61WP7jE80XHRDkBRmSEMYjiaog+qw0dUVP+Kp1QvBDa5Bdg7ESiy8YBae2+55FqXsb8nXjsqqbwFWDA==
+"@budibase/pro@2.3.17":
+ version "2.3.17"
+ resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.3.17.tgz#1a05d3d13195fcfacac410305fcd0943fbbcd5c8"
+ integrity sha512-sdWuKRDbseu2POkyGfmiqAWp8M9jGmpD0FqaIEWGQmKdezvOKh3sGg0PGT4InoibbXcFf4vVB+HiofBedDFLkA==
dependencies:
- "@budibase/backend-core" "2.3.16"
- "@budibase/types" "2.3.16"
+ "@budibase/backend-core" "2.3.17"
+ "@budibase/types" "2.3.17"
"@koa/router" "8.0.8"
bull "4.10.1"
joi "17.6.0"
@@ -1406,10 +1406,10 @@
svelte-apexcharts "^1.0.2"
svelte-flatpickr "^3.1.0"
-"@budibase/types@2.3.16", "@budibase/types@^2.3.16":
- version "2.3.16"
- resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.3.16.tgz#6d94b5f34ca58bcca1cca45737d0d1d0b21c9413"
- integrity sha512-7caUKOlhleQL5gRqcgxSWvHcWIbl8hRPFl5ttWlLTfGO7BDMIRrcW7Wmptmgzoc6MiNCQAQ/uuZ8DeVOlJKRBA==
+"@budibase/types@2.3.17", "@budibase/types@^2.3.17":
+ version "2.3.17"
+ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.3.17.tgz#d97c1de5fb03c91ff7e55d7c8c3901e5e2e95995"
+ integrity sha512-p/6WgwNjVGfwyNLOofhPEG7S3tt5URxAVs+mPXuLn5bsAqRxxJ5XObvw8chijYXmewhGP0hjONQDkmDJ0FkHuA==
"@bull-board/api@3.7.0":
version "3.7.0"
diff --git a/packages/worker/package.json b/packages/worker/package.json
index a146e431c2..71b8ed6e9c 100644
--- a/packages/worker/package.json
+++ b/packages/worker/package.json
@@ -37,7 +37,7 @@
"license": "GPL-3.0",
"dependencies": {
"@budibase/backend-core": "^2.3.17",
- "@budibase/pro": "2.3.16",
+ "@budibase/pro": "2.3.17",
"@budibase/string-templates": "^2.3.17",
"@budibase/types": "^2.3.17",
"@koa/router": "8.0.8",
diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock
index 826a6bd680..43d5ffb1bd 100644
--- a/packages/worker/yarn.lock
+++ b/packages/worker/yarn.lock
@@ -470,13 +470,13 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@budibase/backend-core@2.3.16":
- version "2.3.16"
- resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.3.16.tgz#05a8434501718b9eab0109be03c677c1d546fe17"
- integrity sha512-wMuqxKVua3/3XejUMH/fJQgu1kK6t4HYpB5AY58sumNSLbFFp1MyqL+1LMSmpUY0nbjExq+9+wseNsnbWicWUw==
+"@budibase/backend-core@2.3.17":
+ version "2.3.17"
+ resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.3.17.tgz#27c8c2144bfda1533b43da6de7111c0819aea6a5"
+ integrity sha512-KcmF2OrNLjLbFtNbYD4ZufnsnwmN2Ez/occgWiecvFRAHOhpkm+Hoy6VggpG1YJBp1DG9kLh3WAZbeYI3QoJbw==
dependencies:
"@budibase/nano" "10.1.1"
- "@budibase/types" "^2.3.16"
+ "@budibase/types" "^2.3.17"
"@shopify/jest-koa-mocks" "5.0.1"
"@techpass/passport-openidconnect" "0.3.2"
aws-cloudfront-sign "2.2.0"
@@ -521,13 +521,13 @@
qs "^6.11.0"
tough-cookie "^4.1.2"
-"@budibase/pro@2.3.16":
- version "2.3.16"
- resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.3.16.tgz#3eca93b826ed6da5b6941d8b384c34c57da2b1b4"
- integrity sha512-lIbPXOs61WP7jE80XHRDkBRmSEMYjiaog+qw0dUVP+Kp1QvBDa5Bdg7ESiy8YBae2+55FqXsb8nXjsqqbwFWDA==
+"@budibase/pro@2.3.17":
+ version "2.3.17"
+ resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.3.17.tgz#1a05d3d13195fcfacac410305fcd0943fbbcd5c8"
+ integrity sha512-sdWuKRDbseu2POkyGfmiqAWp8M9jGmpD0FqaIEWGQmKdezvOKh3sGg0PGT4InoibbXcFf4vVB+HiofBedDFLkA==
dependencies:
- "@budibase/backend-core" "2.3.16"
- "@budibase/types" "2.3.16"
+ "@budibase/backend-core" "2.3.17"
+ "@budibase/types" "2.3.17"
"@koa/router" "8.0.8"
bull "4.10.1"
joi "17.6.0"
@@ -535,10 +535,10 @@
lru-cache "^7.14.1"
node-fetch "^2.6.1"
-"@budibase/types@2.3.16", "@budibase/types@^2.3.16":
- version "2.3.16"
- resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.3.16.tgz#6d94b5f34ca58bcca1cca45737d0d1d0b21c9413"
- integrity sha512-7caUKOlhleQL5gRqcgxSWvHcWIbl8hRPFl5ttWlLTfGO7BDMIRrcW7Wmptmgzoc6MiNCQAQ/uuZ8DeVOlJKRBA==
+"@budibase/types@2.3.17", "@budibase/types@^2.3.17":
+ version "2.3.17"
+ resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.3.17.tgz#d97c1de5fb03c91ff7e55d7c8c3901e5e2e95995"
+ integrity sha512-p/6WgwNjVGfwyNLOofhPEG7S3tt5URxAVs+mPXuLn5bsAqRxxJ5XObvw8chijYXmewhGP0hjONQDkmDJ0FkHuA==
"@cspotcode/source-map-support@^0.8.0":
version "0.8.1"
From 53f6b2b6e62443acfb6f79a17edcce6c18006842 Mon Sep 17 00:00:00 2001
From: melohagan <101575380+melohagan@users.noreply.github.com>
Date: Mon, 20 Feb 2023 11:03:37 +0000
Subject: [PATCH 4/5] Null safety (#9746)
---
.../design/settings/controls/FilterEditor/FilterDrawer.svelte | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte
index bf07cddf23..f56d7a78d4 100644
--- a/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte
+++ b/packages/builder/src/components/design/settings/controls/FilterEditor/FilterDrawer.svelte
@@ -254,8 +254,8 @@
{:else if filter.type === "datetime"}
{:else}
From 1eb2307fed412287ee53c9552fb543a5caed0d68 Mon Sep 17 00:00:00 2001
From: mike12345567
Date: Mon, 20 Feb 2023 15:35:14 +0000
Subject: [PATCH 5/5] Fix for #9749 - static formulas would sometimes attempt
to update the same row multiple times, filter down to just the unique row
list which requires updating.
---
packages/server/src/api/controllers/row/staticFormula.ts | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/packages/server/src/api/controllers/row/staticFormula.ts b/packages/server/src/api/controllers/row/staticFormula.ts
index 47a5af8f5a..6ba44dc23a 100644
--- a/packages/server/src/api/controllers/row/staticFormula.ts
+++ b/packages/server/src/api/controllers/row/staticFormula.ts
@@ -38,7 +38,13 @@ export async function updateRelatedFormula(
if (!relatedRows[relatedTableId]) {
relatedRows[relatedTableId] = []
}
- relatedRows[relatedTableId] = relatedRows[relatedTableId].concat(field)
+ // filter down to the rows which are not already included in related
+ const currentIds = relatedRows[relatedTableId].map(row => row._id)
+ const uniqueRelatedRows = field.filter(
+ (row: Row) => !currentIds.includes(row._id)
+ )
+ relatedRows[relatedTableId] =
+ relatedRows[relatedTableId].concat(uniqueRelatedRows)
}
}
for (let tableId of table.relatedFormula) {