diff --git a/.github/workflows/release-develop.yml b/.github/workflows/release-develop.yml
index 7ee02ccdd1..d4050ab40e 100644
--- a/.github/workflows/release-develop.yml
+++ b/.github/workflows/release-develop.yml
@@ -1,4 +1,5 @@
name: Budibase Release Staging
+concurrency: release-develop
on:
push:
diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml
index 9f42a9cc5d..fc2b7b0cca 100644
--- a/.github/workflows/release-selfhost.yml
+++ b/.github/workflows/release-selfhost.yml
@@ -87,3 +87,10 @@ jobs:
packages/cli/build/cli-macos
packages/server/specs/openapi.yaml
packages/server/specs/openapi.json
+
+ - name: Discord Webhook Action
+ uses: tsickert/discord-webhook@v4.0.0
+ with:
+ webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }}
+ content: "Self Host Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Self Host."
+ embed-title: ${{ env.RELEASE_VERSION }}
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 359ad4467b..fa3aaf28e9 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,4 +1,5 @@
name: Budibase Release
+concurrency: release
on:
push:
diff --git a/lerna.json b/lerna.json
index 5bd044c32e..bf94ca06fb 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "1.0.153",
+ "version": "1.0.159",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json
index 51fc8ecb9e..88a1399acc 100644
--- a/packages/backend-core/package.json
+++ b/packages/backend-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/backend-core",
- "version": "1.0.153",
+ "version": "1.0.159",
"description": "Budibase backend core libraries used in server and worker",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/backend-core/src/security/permissions.js b/packages/backend-core/src/security/permissions.js
index 28044a5129..2ecb8a9f1e 100644
--- a/packages/backend-core/src/security/permissions.js
+++ b/packages/backend-core/src/security/permissions.js
@@ -96,6 +96,7 @@ const BUILTIN_PERMISSIONS = {
new Permission(PermissionTypes.QUERY, PermissionLevels.WRITE),
new Permission(PermissionTypes.TABLE, PermissionLevels.WRITE),
new Permission(PermissionTypes.VIEW, PermissionLevels.READ),
+ new Permission(PermissionTypes.AUTOMATION, PermissionLevels.EXECUTE),
],
},
POWER: {
diff --git a/packages/backend-core/yarn.lock b/packages/backend-core/yarn.lock
index fff682df50..7dfa64810e 100644
--- a/packages/backend-core/yarn.lock
+++ b/packages/backend-core/yarn.lock
@@ -805,13 +805,6 @@ ast-types@0.9.6:
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=
-async-hook-jl@^1.7.6:
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68"
- integrity sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==
- dependencies:
- stack-chain "^1.3.7"
-
async@~2.1.4:
version "2.1.5"
resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc"
@@ -1205,15 +1198,6 @@ clone-buffer@1.0.0:
resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg=
-cls-hooked@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908"
- integrity sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==
- dependencies:
- async-hook-jl "^1.7.6"
- emitter-listener "^1.0.1"
- semver "^5.4.1"
-
cluster-key-slot@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
@@ -1533,7 +1517,7 @@ electron-to-chromium@^1.3.896:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.900.tgz#5be2c5818a2a012c511b4b43e87b6ab7a296d4f5"
integrity sha512-SuXbQD8D4EjsaBaJJxySHbC+zq8JrFfxtb4GIr4E9n1BcROyMcRrJCYQNpJ9N+Wjf5mFp7Wp0OHykd14JNEzzQ==
-emitter-listener@^1.0.1, emitter-listener@^1.1.2:
+emitter-listener@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8"
integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==
@@ -4466,7 +4450,7 @@ saxes@^5.0.1:
dependencies:
xmlchars "^2.2.0"
-"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -4706,11 +4690,6 @@ sshpk@^1.7.0:
jsbn "~0.1.0"
tweetnacl "~0.14.0"
-stack-chain@^1.3.7:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285"
- integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=
-
stack-utils@^2.0.2:
version "2.0.5"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5"
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index 13acc9ed7b..7702ad707f 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.0.153",
+ "version": "1.0.159",
"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.0.153",
+ "@budibase/string-templates": "^1.0.159",
"@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 2c3ad113bf..b8aff9dce7 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "1.0.153",
+ "version": "1.0.159",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -67,10 +67,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^1.0.153",
- "@budibase/client": "^1.0.153",
- "@budibase/frontend-core": "^1.0.153",
- "@budibase/string-templates": "^1.0.153",
+ "@budibase/bbui": "^1.0.159",
+ "@budibase/client": "^1.0.159",
+ "@budibase/frontend-core": "^1.0.159",
+ "@budibase/string-templates": "^1.0.159",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/builder/src/components/backend/DataTable/formula.js b/packages/builder/src/components/backend/DataTable/formula.js
index ea024cdf81..9fd5949178 100644
--- a/packages/builder/src/components/backend/DataTable/formula.js
+++ b/packages/builder/src/components/backend/DataTable/formula.js
@@ -60,7 +60,7 @@ export function getBindings({
)
const label = path == null ? column : `${path}.0.${column}`
- const binding = path == null ? `[${column}]` : `${path}.0.[${column}]`
+ const binding = path == null ? `[${column}]` : `[${path}].0.[${column}]`
// only supply a description for relationship paths
const description =
path == null
diff --git a/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/rest/[query]/index.svelte b/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/rest/[query]/index.svelte
index d2914146ce..2baa6aab41 100644
--- a/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/rest/[query]/index.svelte
+++ b/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/rest/[query]/index.svelte
@@ -37,7 +37,7 @@
import AccessLevelSelect from "components/integration/AccessLevelSelect.svelte"
import DynamicVariableModal from "../../_components/DynamicVariableModal.svelte"
import Placeholder from "assets/bb-spaceship.svg"
- import { cloneDeep, isEqual } from "lodash/fp"
+ import { cloneDeep } from "lodash/fp"
import { RawRestBodyTypes } from "constants/backend"
let query, datasource
@@ -47,7 +47,6 @@
let response, schema, enabledHeaders
let authConfigId
let dynamicVariables, addVariableModal, varBinding
- let baseQuery, baseDatasource, baseVariables
$: datasourceType = datasource?.source
$: integrationInfo = $integrations[datasourceType]
@@ -63,15 +62,6 @@
$: hasSchema =
Object.keys(schema || {}).length !== 0 ||
Object.keys(query?.schema || {}).length !== 0
- $: baseQuery = !baseQuery ? cloneDeep(query) : baseQuery
- $: baseDatasource = !baseDatasource ? cloneDeep(datasource) : baseDatasource
- $: baseVariables = !baseVariables
- ? cloneDeep(dynamicVariables)
- : baseVariables
- $: hasChanged =
- !isEqual(baseQuery, query) ||
- !isEqual(baseDatasource, datasource) ||
- !isEqual(baseVariables, dynamicVariables)
function getSelectedQuery() {
return cloneDeep(
@@ -130,9 +120,6 @@
datasource.config.dynamicVariables = rebuildVariables(saveId)
datasource = await datasources.save(datasource)
}
- baseQuery = query
- baseDatasource = datasource
- baseVariables = dynamicVariables
} catch (err) {
notifications.error(`Error saving query`)
}
@@ -346,7 +333,7 @@