From cfa941b11f2711d3675d6632ebbfb767b433651e Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Mon, 13 Dec 2021 16:43:28 +0000 Subject: [PATCH 01/61] v1.0.19 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index e960551837..1df94576b9 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.18", + "version": "1.0.19", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 0509c07edb..8e3a96eb59 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.18", + "version": "1.0.19", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index c922b48795..1edbcf2ef7 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.18", + "version": "1.0.19", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 9305b8626d..fc0281eeeb 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.18", + "version": "1.0.19", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.18", - "@budibase/client": "^1.0.18", + "@budibase/bbui": "^1.0.19", + "@budibase/client": "^1.0.19", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.18", + "@budibase/string-templates": "^1.0.19", "@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 767f691ad1..edb13e2600 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.18", + "version": "1.0.19", "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 1793a755bc..bc3b0008cb 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.18", + "version": "1.0.19", "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.0.18", + "@budibase/bbui": "^1.0.19", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.18", + "@budibase/string-templates": "^1.0.19", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 9f668610f5..56c59ca7e6 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.18", + "version": "1.0.19", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.18", - "@budibase/client": "^1.0.18", - "@budibase/string-templates": "^1.0.18", + "@budibase/auth": "^1.0.19", + "@budibase/client": "^1.0.19", + "@budibase/string-templates": "^1.0.19", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 163b17442c..cfddfa62c1 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.18", + "version": "1.0.19", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 01baa17836..a5655f9d0e 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.18", + "version": "1.0.19", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.18", - "@budibase/string-templates": "^1.0.18", + "@budibase/auth": "^1.0.19", + "@budibase/string-templates": "^1.0.19", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 72e414aa71ac468a6b1f52de3bb5ffe6d5b65d87 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 13 Dec 2021 18:36:49 +0100 Subject: [PATCH 02/61] don't run helm version script --- .github/workflows/release-charts.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-charts.yml b/.github/workflows/release-charts.yml index 8dce3ee3c0..933edd36b9 100644 --- a/.github/workflows/release-charts.yml +++ b/.github/workflows/release-charts.yml @@ -21,9 +21,9 @@ jobs: with: version: v3.4.0 - - run: yarn release:helm - env: - BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} + # - run: yarn release:helm + # env: + # BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} - name: Configure Git run: | From c8bcf17d219719cc61ebc2b45e59e52864e530ec Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Mon, 13 Dec 2021 17:46:32 +0000 Subject: [PATCH 03/61] v1.0.20 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 1df94576b9..bf55a962e2 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.19", + "version": "1.0.20", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 8e3a96eb59..e52f9a709e 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.19", + "version": "1.0.20", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 1edbcf2ef7..fe263f00a9 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.19", + "version": "1.0.20", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index fc0281eeeb..1c453b6929 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.19", + "version": "1.0.20", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.19", - "@budibase/client": "^1.0.19", + "@budibase/bbui": "^1.0.20", + "@budibase/client": "^1.0.20", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.19", + "@budibase/string-templates": "^1.0.20", "@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 edb13e2600..e7a29fcb11 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.19", + "version": "1.0.20", "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 bc3b0008cb..6d4652189c 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.19", + "version": "1.0.20", "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.0.19", + "@budibase/bbui": "^1.0.20", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.19", + "@budibase/string-templates": "^1.0.20", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 56c59ca7e6..f2f2f3945e 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.19", + "version": "1.0.20", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.19", - "@budibase/client": "^1.0.19", - "@budibase/string-templates": "^1.0.19", + "@budibase/auth": "^1.0.20", + "@budibase/client": "^1.0.20", + "@budibase/string-templates": "^1.0.20", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index cfddfa62c1..46c93d136c 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.19", + "version": "1.0.20", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index a5655f9d0e..96e43c54c2 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.19", + "version": "1.0.20", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.19", - "@budibase/string-templates": "^1.0.19", + "@budibase/auth": "^1.0.20", + "@budibase/string-templates": "^1.0.20", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From e214e2cc26f1d6489f0c5aea2e2e6c6094d3bf53 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 13 Dec 2021 19:01:11 +0100 Subject: [PATCH 04/61] Update Chart.yaml --- charts/budibase/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/budibase/Chart.yaml b/charts/budibase/Chart.yaml index 602ffbf420..cec5af2914 100644 --- a/charts/budibase/Chart.yaml +++ b/charts/budibase/Chart.yaml @@ -11,8 +11,8 @@ sources: - https://github.com/Budibase/budibase - https://budibase.com type: application -version: 0.2.6 -appVersion: 1.0.10 +version: 1.0.0 +appVersion: 1.0.20 dependencies: - name: couchdb version: 3.3.4 From ecd319894049ae66aac34ff13f14e6ca15dc40b7 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Mon, 13 Dec 2021 18:08:22 +0000 Subject: [PATCH 05/61] v1.0.21 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index bf55a962e2..b1e3393b1d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.20", + "version": "1.0.21", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index e52f9a709e..e490488009 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.20", + "version": "1.0.21", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index fe263f00a9..fcabff4d52 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.20", + "version": "1.0.21", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 1c453b6929..c1668f69c9 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.20", + "version": "1.0.21", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.20", - "@budibase/client": "^1.0.20", + "@budibase/bbui": "^1.0.21", + "@budibase/client": "^1.0.21", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.20", + "@budibase/string-templates": "^1.0.21", "@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 e7a29fcb11..6bce451bab 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.20", + "version": "1.0.21", "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 6d4652189c..1407c6b511 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.20", + "version": "1.0.21", "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.0.20", + "@budibase/bbui": "^1.0.21", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.20", + "@budibase/string-templates": "^1.0.21", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index f2f2f3945e..c9162033c0 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.20", + "version": "1.0.21", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.20", - "@budibase/client": "^1.0.20", - "@budibase/string-templates": "^1.0.20", + "@budibase/auth": "^1.0.21", + "@budibase/client": "^1.0.21", + "@budibase/string-templates": "^1.0.21", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 46c93d136c..17dfe4e79b 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.20", + "version": "1.0.21", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 96e43c54c2..bce44c0ef1 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.20", + "version": "1.0.21", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.20", - "@budibase/string-templates": "^1.0.20", + "@budibase/auth": "^1.0.21", + "@budibase/string-templates": "^1.0.21", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 17f083e58666195dd336e8b822cc79dc9a77a173 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 13 Dec 2021 18:17:20 +0000 Subject: [PATCH 06/61] Stopping get requests from having bodies (Node fetch doesn't allow this) and allow text body type. --- .../rest/[query]/index.svelte | 5 ++-- packages/server/src/integrations/rest.ts | 29 ++++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) 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 838646d806..d174770602 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 @@ -48,7 +48,7 @@ let breakQs = {}, bindings = {} let url = "" - let saveId + let saveId, isGet let response, schema, enabledHeaders let datasourceType, integrationInfo, queryConfig, responseSuccess @@ -57,6 +57,7 @@ $: queryConfig = integrationInfo?.query $: url = buildUrl(url, breakQs) $: checkQueryName(url) + $: isGet = query?.queryVerb === "read" $: responseSuccess = response?.info?.code >= 200 && response?.info?.code <= 206 @@ -226,7 +227,7 @@ option.name} getOptionValue={option => option.value} diff --git a/packages/server/src/integrations/rest.ts b/packages/server/src/integrations/rest.ts index 10c2c1215b..582bbc5ad9 100644 --- a/packages/server/src/integrations/rest.ts +++ b/packages/server/src/integrations/rest.ts @@ -162,18 +162,25 @@ module RestModule { } } - let json - if (bodyType === BodyTypes.JSON && requestBody) { - try { - json = JSON.parse(requestBody) - } catch (err) { - throw "Invalid JSON for request body" - } - } - const input: any = { method, headers: this.headers } - if (json && typeof json === "object" && Object.keys(json).length > 0) { - input.body = JSON.stringify(json) + if (requestBody) { + switch (bodyType) { + case BodyTypes.TEXT: + const text = typeof requestBody !== "string" ? JSON.stringify(requestBody) : requestBody + input.body = text + break + default: case BodyTypes.JSON: + try { + // confirm its json + const json = JSON.parse(requestBody) + if (json && typeof json === "object" && Object.keys(json).length > 0) { + input.body = requestBody + } + } catch (err) { + throw "Invalid JSON for request body" + } + break + } } this.startTimeMs = performance.now() From 64fa8055ce5cdedf18e9c38719ee2b438cc87b44 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 13 Dec 2021 18:20:02 +0000 Subject: [PATCH 07/61] Linting and adding JSON header. --- .../src/api/controllers/query/import/index.ts | 2 +- .../controllers/query/import/sources/curl.ts | 2 +- .../src/integrations/base/IntegrationBase.ts | 8 ++--- packages/server/src/integrations/rest.ts | 30 +++++++++++++++---- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/packages/server/src/api/controllers/query/import/index.ts b/packages/server/src/api/controllers/query/import/index.ts index c99d89c2de..933d6b101c 100644 --- a/packages/server/src/api/controllers/query/import/index.ts +++ b/packages/server/src/api/controllers/query/import/index.ts @@ -3,7 +3,7 @@ import { queryValidation } from "../validation" import { generateQueryID } from "../../../../db/utils" import { ImportInfo, ImportSource } from "./sources/base" import { OpenAPI2 } from "./sources/openapi2" -import { Query } from './../../../../definitions/common'; +import { Query } from "./../../../../definitions/common" import { Curl } from "./sources/curl" interface ImportResult { errorQueries: Query[] diff --git a/packages/server/src/api/controllers/query/import/sources/curl.ts b/packages/server/src/api/controllers/query/import/sources/curl.ts index ae580f65e5..61e1ae0215 100644 --- a/packages/server/src/api/controllers/query/import/sources/curl.ts +++ b/packages/server/src/api/controllers/query/import/sources/curl.ts @@ -29,7 +29,7 @@ const parseBody = (curl: any) => { } const parseCookie = (curl: any) => { - if (curl.cookies){ + if (curl.cookies) { return Object.entries(curl.cookies).reduce((acc, entry) => { const [key, value] = entry return acc + `${key}=${value}; ` diff --git a/packages/server/src/integrations/base/IntegrationBase.ts b/packages/server/src/integrations/base/IntegrationBase.ts index d87a98c73b..bfda4fbd4d 100644 --- a/packages/server/src/integrations/base/IntegrationBase.ts +++ b/packages/server/src/integrations/base/IntegrationBase.ts @@ -1,6 +1,6 @@ export interface IntegrationBase { - create?(query: any): Promise - read?(query: any): Promise - update?(query: any): Promise - delete?(query: any): Promise + create?(query: any): Promise + read?(query: any): Promise + update?(query: any): Promise + delete?(query: any): Promise } diff --git a/packages/server/src/integrations/rest.ts b/packages/server/src/integrations/rest.ts index 582bbc5ad9..bba3c87d68 100644 --- a/packages/server/src/integrations/rest.ts +++ b/packages/server/src/integrations/rest.ts @@ -115,7 +115,9 @@ module RestModule { data = await response.text() raw = data } - const size = formatBytes(response.headers.get("content-length") || Buffer.byteLength(raw, "utf8")) + const size = formatBytes( + response.headers.get("content-length") || Buffer.byteLength(raw, "utf8") + ) const time = `${Math.round(performance.now() - this.startTimeMs)}ms` headers = response.headers.raw() for (let [key, value] of Object.entries(headers)) { @@ -148,7 +150,15 @@ module RestModule { } async _req(query: RestQuery) { - const { path = "", queryString = "", headers = {}, method = "GET", disabledHeaders, bodyType, requestBody } = query + const { + path = "", + queryString = "", + headers = {}, + method = "GET", + disabledHeaders, + bodyType, + requestBody, + } = query this.headers = { ...this.config.defaultHeaders, ...headers, @@ -166,15 +176,25 @@ module RestModule { if (requestBody) { switch (bodyType) { case BodyTypes.TEXT: - const text = typeof requestBody !== "string" ? JSON.stringify(requestBody) : requestBody + const text = + typeof requestBody !== "string" + ? JSON.stringify(requestBody) + : requestBody + // content type defaults to plaintext input.body = text break - default: case BodyTypes.JSON: + default: + case BodyTypes.JSON: try { // confirm its json const json = JSON.parse(requestBody) - if (json && typeof json === "object" && Object.keys(json).length > 0) { + if ( + json && + typeof json === "object" && + Object.keys(json).length > 0 + ) { input.body = requestBody + input.headers["Content-Type"] = "application/json" } } catch (err) { throw "Invalid JSON for request body" From de7b9efea9ef932d45897d3be060fb3ea902d364 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 13 Dec 2021 19:25:53 +0100 Subject: [PATCH 08/61] re-add helm release and configure --- .github/workflows/release-charts.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-charts.yml b/.github/workflows/release-charts.yml index 933edd36b9..500eb42908 100644 --- a/.github/workflows/release-charts.yml +++ b/.github/workflows/release-charts.yml @@ -12,6 +12,12 @@ jobs: with: fetch-depth: 0 + - uses: actions/setup-node@v1 + with: + node-version: 14.x + - run: yarn + - run: yarn bootstrap + - name: 'Get Previous tag' id: previoustag uses: "WyriHaximus/github-action-get-previous-tag@v1" @@ -21,9 +27,9 @@ jobs: with: version: v3.4.0 - # - run: yarn release:helm - # env: - # BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} + - run: yarn release:helm + env: + BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} - name: Configure Git run: | From 1ab1e7517d72161c99fa939bf2c90597aa3a719c Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Mon, 13 Dec 2021 18:46:25 +0000 Subject: [PATCH 09/61] v1.0.22 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index b1e3393b1d..09d7a43df9 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.21", + "version": "1.0.22", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index e490488009..74897f1b2b 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.21", + "version": "1.0.22", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index fcabff4d52..d86371c554 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.21", + "version": "1.0.22", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index c1668f69c9..85e43edaaf 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.21", + "version": "1.0.22", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.21", - "@budibase/client": "^1.0.21", + "@budibase/bbui": "^1.0.22", + "@budibase/client": "^1.0.22", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.21", + "@budibase/string-templates": "^1.0.22", "@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 6bce451bab..de319745a1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.21", + "version": "1.0.22", "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 1407c6b511..2f40808ae0 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.21", + "version": "1.0.22", "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.0.21", + "@budibase/bbui": "^1.0.22", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.21", + "@budibase/string-templates": "^1.0.22", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index c9162033c0..579535f0eb 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.21", + "version": "1.0.22", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.21", - "@budibase/client": "^1.0.21", - "@budibase/string-templates": "^1.0.21", + "@budibase/auth": "^1.0.22", + "@budibase/client": "^1.0.22", + "@budibase/string-templates": "^1.0.22", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 17dfe4e79b..005d6304fe 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.21", + "version": "1.0.22", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index bce44c0ef1..f1e09ebf60 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.21", + "version": "1.0.22", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.21", - "@budibase/string-templates": "^1.0.21", + "@budibase/auth": "^1.0.22", + "@budibase/string-templates": "^1.0.22", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 3c67a2205e27d0578ce155116a79f85a03278dae Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Tue, 14 Dec 2021 10:45:38 +0000 Subject: [PATCH 10/61] Fixing code mirror mode reactivity. --- .../builder/src/components/common/CodeMirrorEditor.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/builder/src/components/common/CodeMirrorEditor.svelte b/packages/builder/src/components/common/CodeMirrorEditor.svelte index 3eaebde031..65dad9d015 100644 --- a/packages/builder/src/components/common/CodeMirrorEditor.svelte +++ b/packages/builder/src/components/common/CodeMirrorEditor.svelte @@ -17,6 +17,7 @@ }, Text: { name: "text/html", + json: false, }, } @@ -40,11 +41,12 @@ let editor // Keep editor up to date with value + $: editor?.setOption("mode", mode) $: editor?.setValue(value || "") // Creates an instance of a code mirror editor async function createEditor(mode, value) { - if (!CodeMirror || !textarea || editor) { + if (!CodeMirror || !textarea) { return } From 98cd12db5fc6d96826dc1a3b4480c66ae146d058 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 14 Dec 2021 14:04:10 +0000 Subject: [PATCH 11/61] Proxy state updates back from peek modals --- .../overlay/PeekScreenDisplay.svelte | 22 ++++++++++++++++--- packages/client/src/utils/buttonActions.js | 9 ++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/packages/client/src/components/overlay/PeekScreenDisplay.svelte b/packages/client/src/components/overlay/PeekScreenDisplay.svelte index 51ff4412dc..7d3531d236 100644 --- a/packages/client/src/components/overlay/PeekScreenDisplay.svelte +++ b/packages/client/src/components/overlay/PeekScreenDisplay.svelte @@ -4,6 +4,7 @@ dataSourceStore, notificationStore, routeStore, + stateStore, } from "stores" import { Modal, ModalContent, ActionButton } from "@budibase/bbui" import { onDestroy } from "svelte" @@ -12,12 +13,13 @@ NOTIFICATION: "notification", CLOSE_SCREEN_MODAL: "close-screen-modal", INVALIDATE_DATASOURCE: "invalidate-datasource", + UPDATE_STATE: "update-state", } let iframe let listenersAttached = false - const invalidateDataSource = event => { + const proxyInvalidation = event => { const { dataSourceId } = event.detail dataSourceStore.actions.invalidateDataSource(dataSourceId) } @@ -27,14 +29,28 @@ notificationStore.actions.send(message, type, icon) } + const proxyStateUpdate = event => { + const { type, key, value, persist } = event.detail + if (type === "set") { + stateStore.actions.setValue(key, value, persist) + } else if (type === "delete") { + stateStore.actions.deleteValue(key) + } + } + function receiveMessage(message) { const handlers = { [MessageTypes.NOTIFICATION]: () => { proxyNotification(message.data) }, - [MessageTypes.CLOSE_SCREEN_MODAL]: peekStore.actions.hidePeek, + [MessageTypes.CLOSE_SCREEN_MODAL]: () => { + peekStore.actions.hidePeek() + }, [MessageTypes.INVALIDATE_DATASOURCE]: () => { - invalidateDataSource(message.data) + proxyInvalidation(message.data) + }, + [MessageTypes.UPDATE_STATE]: () => { + proxyStateUpdate(message.data) }, } diff --git a/packages/client/src/utils/buttonActions.js b/packages/client/src/utils/buttonActions.js index 5ee571ae5d..9c6ae73c1f 100644 --- a/packages/client/src/utils/buttonActions.js +++ b/packages/client/src/utils/buttonActions.js @@ -116,6 +116,15 @@ const updateStateHandler = action => { } else if (type === "delete") { stateStore.actions.deleteValue(key) } + + // Emit this as an event so that parent windows which are iframing us in + // can also update their state + if (get(routeStore).queryParams?.peek) { + window.parent.postMessage({ + type: "update-state", + detail: { type, key, value, persist }, + }) + } } const handlerMap = { From d58b1ae7f024202b8a428a0c5d1b2bf1f9cdc787 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Tue, 14 Dec 2021 14:04:37 +0000 Subject: [PATCH 12/61] Fix datasource invalidation proxying from peek modals not working --- packages/client/src/stores/dataSource.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/client/src/stores/dataSource.js b/packages/client/src/stores/dataSource.js index ee615b8bfb..efec755b99 100644 --- a/packages/client/src/stores/dataSource.js +++ b/packages/client/src/stores/dataSource.js @@ -1,6 +1,7 @@ import { writable, get } from "svelte/store" import { fetchTableDefinition } from "../api" import { FieldTypes } from "../constants" +import { routeStore } from "./routes" export const createDataSourceStore = () => { const store = writable([]) @@ -60,10 +61,12 @@ export const createDataSourceStore = () => { // Emit this as a window event, so parent screens which are iframing us in // can also invalidate the same datasource - window.parent.postMessage({ - type: "close-screen-modal", - detail: { dataSourceId }, - }) + if (get(routeStore).queryParams?.peek) { + window.parent.postMessage({ + type: "invalidate-datasource", + detail: { dataSourceId }, + }) + } let invalidations = [dataSourceId] From da7153dd64313144a78291b9f004be92c2830c96 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Tue, 14 Dec 2021 17:59:02 +0000 Subject: [PATCH 13/61] Removing outgoing webhook functionality from automations and adding XML response/sending, as well as form data/encoded data. --- .../components/common/CodeMirrorEditor.svelte | 4 +- .../src/components/integration/codemirror.js | 1 + .../builder/src/constants/backend/index.js | 2 + .../_components/RestBodyInput.svelte | 22 +++- packages/server/package.json | 2 + .../server/src/api/controllers/automation.js | 12 +- .../src/automations/steps/outgoingWebhook.js | 5 +- packages/server/src/automations/utils.js | 11 ++ packages/server/src/integrations/rest.ts | 105 ++++++++++++------ packages/server/yarn.lock | 47 ++++---- 10 files changed, 145 insertions(+), 66 deletions(-) diff --git a/packages/builder/src/components/common/CodeMirrorEditor.svelte b/packages/builder/src/components/common/CodeMirrorEditor.svelte index 65dad9d015..9d036e21ce 100644 --- a/packages/builder/src/components/common/CodeMirrorEditor.svelte +++ b/packages/builder/src/components/common/CodeMirrorEditor.svelte @@ -8,6 +8,9 @@ name: "javascript", json: true, }, + XML: { + name: "xml", + }, SQL: { name: "sql", }, @@ -17,7 +20,6 @@ }, Text: { name: "text/html", - json: false, }, } diff --git a/packages/builder/src/components/integration/codemirror.js b/packages/builder/src/components/integration/codemirror.js index c4afd8488c..78ff8e15c0 100644 --- a/packages/builder/src/components/integration/codemirror.js +++ b/packages/builder/src/components/integration/codemirror.js @@ -4,6 +4,7 @@ import "codemirror/lib/codemirror.css" // Modes import "codemirror/mode/javascript/javascript" import "codemirror/mode/sql/sql" +import "codemirror/mode/xml/xml" import "codemirror/mode/css/css" import "codemirror/mode/handlebars/handlebars" diff --git a/packages/builder/src/constants/backend/index.js b/packages/builder/src/constants/backend/index.js index d3c8d7d08d..1f49b0b26f 100644 --- a/packages/builder/src/constants/backend/index.js +++ b/packages/builder/src/constants/backend/index.js @@ -200,6 +200,7 @@ export const RawRestBodyTypes = { ENCODED: "encoded", JSON: "json", TEXT: "text", + XML: "xml", } export const RestBodyTypes = [ @@ -207,5 +208,6 @@ export const RestBodyTypes = [ { name: "form-data", value: "form" }, { name: "x-www-form-encoded", value: "encoded" }, { name: "raw (JSON)", value: "json" }, + { name: "raw (XML)", value: "xml" }, { name: "raw (Text)", value: "text" }, ] diff --git a/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/_components/RestBodyInput.svelte b/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/_components/RestBodyInput.svelte index a70b0f02f9..c387f0b492 100644 --- a/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/_components/RestBodyInput.svelte +++ b/packages/builder/src/pages/builder/app/[application]/data/datasource/[selectedDatasource]/_components/RestBodyInput.svelte @@ -7,7 +7,11 @@ } from "components/common/CodeMirrorEditor.svelte" const objectTypes = [RawRestBodyTypes.FORM, RawRestBodyTypes.ENCODED] - const textTypes = [RawRestBodyTypes.JSON, RawRestBodyTypes.TEXT] + const textTypes = [ + RawRestBodyTypes.JSON, + RawRestBodyTypes.XML, + RawRestBodyTypes.TEXT, + ] export let query export let bodyType @@ -25,6 +29,18 @@ query.fields.requestBody = "" } } + + function editorMode(type) { + switch (type) { + case RawRestBodyTypes.JSON: + return EditorModes.JSON + case RawRestBodyTypes.XML: + return EditorModes.XML + default: + case RawRestBodyTypes.TEXT: + return EditorModes.Text + } + }
@@ -41,9 +57,7 @@ {:else if textTypes.includes(bodyType)} (query.fields.requestBody = e.detail)} diff --git a/packages/server/package.json b/packages/server/package.json index df9d23a6be..1f30a67695 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -90,6 +90,7 @@ "dotenv": "8.2.0", "download": "8.0.0", "fix-path": "3.0.0", + "form-data": "^4.0.0", "fs-extra": "8.1.0", "jimp": "0.16.1", "joi": "17.2.1", @@ -126,6 +127,7 @@ "validate.js": "0.13.1", "vm2": "^3.9.3", "worker-farm": "^1.7.0", + "xml2js": "^0.4.23", "yargs": "13.2.4", "zlib": "1.0.5" }, diff --git a/packages/server/src/api/controllers/automation.js b/packages/server/src/api/controllers/automation.js index 841473a4ff..05337579a0 100644 --- a/packages/server/src/api/controllers/automation.js +++ b/packages/server/src/api/controllers/automation.js @@ -5,11 +5,15 @@ const { getAutomationParams, generateAutomationID } = require("../../db/utils") const { checkForWebhooks, updateTestHistory, + removeDeprecated, } = require("../../automations/utils") const { deleteEntityMetadata } = require("../../utilities") const { MetadataTypes } = require("../../constants") const { setTestFlag, clearTestFlag } = require("../../utilities/redis") +const ACTION_DEFS = removeDeprecated(actions.ACTION_DEFINITIONS) +const TRIGGER_DEFS = removeDeprecated(triggers.TRIGGER_DEFINITIONS) + /************************* * * * BUILDER FUNCTIONS * @@ -155,17 +159,17 @@ exports.destroy = async function (ctx) { } exports.getActionList = async function (ctx) { - ctx.body = actions.ACTION_DEFINITIONS + ctx.body = ACTION_DEFS } exports.getTriggerList = async function (ctx) { - ctx.body = triggers.TRIGGER_DEFINITIONS + ctx.body = TRIGGER_DEFS } module.exports.getDefinitionList = async function (ctx) { ctx.body = { - trigger: triggers.TRIGGER_DEFINITIONS, - action: actions.ACTION_DEFINITIONS, + trigger: TRIGGER_DEFS, + action: ACTION_DEFS, } } diff --git a/packages/server/src/automations/steps/outgoingWebhook.js b/packages/server/src/automations/steps/outgoingWebhook.js index f0637c3351..01d1e8d6be 100644 --- a/packages/server/src/automations/steps/outgoingWebhook.js +++ b/packages/server/src/automations/steps/outgoingWebhook.js @@ -13,12 +13,11 @@ const RequestType = { const BODY_REQUESTS = [RequestType.POST, RequestType.PUT, RequestType.PATCH] /** - * Note, there is some functionality in this that is not currently exposed as it - * is complex and maybe better to be opinionated here. - * GET/DELETE requests cannot handle body elements so they will not be sent if configured. + * NOTE: this functionality is deprecated - it no longer should be used. */ exports.definition = { + deprecated: true, name: "Outgoing webhook", tagline: "Send a {{inputs.requestMethod}} request", icon: "Send", diff --git a/packages/server/src/automations/utils.js b/packages/server/src/automations/utils.js index 6e58e9aae0..d9c96963ab 100644 --- a/packages/server/src/automations/utils.js +++ b/packages/server/src/automations/utils.js @@ -7,6 +7,7 @@ const newid = require("../db/newid") const { updateEntityMetadata } = require("../utilities") const { MetadataTypes } = require("../constants") const { getDeployedAppID } = require("@budibase/auth/db") +const { cloneDeep } = require("lodash/fp") const WH_STEP_ID = definitions.WEBHOOK.stepId const CRON_STEP_ID = definitions.CRON.stepId @@ -42,6 +43,16 @@ exports.updateTestHistory = async (appId, automation, history) => { ) } +exports.removeDeprecated = definitions => { + const base = cloneDeep(definitions) + for (let key of Object.keys(base)) { + if (base[key].deprecated) { + delete base[key] + } + } + return base +} + // end the repetition and the job itself exports.disableAllCrons = async appId => { const promises = [] diff --git a/packages/server/src/integrations/rest.ts b/packages/server/src/integrations/rest.ts index bba3c87d68..4fa43b9f84 100644 --- a/packages/server/src/integrations/rest.ts +++ b/packages/server/src/integrations/rest.ts @@ -10,6 +10,7 @@ import { IntegrationBase } from "./base/IntegrationBase" const BodyTypes = { NONE: "none", FORM_DATA: "form", + XML: "xml", ENCODED: "encoded", JSON: "json", TEXT: "text", @@ -42,6 +43,9 @@ module RestModule { const fetch = require("node-fetch") const { formatBytes } = require("../utilities") const { performance } = require("perf_hooks") + const FormData = require("form-data") + const { URLSearchParams } = require("url") + const xmlParser = require("xml2js").parseStringPromise const SCHEMA: Integration = { docs: "https://github.com/node-fetch/node-fetch", @@ -107,13 +111,26 @@ module RestModule { async parseResponse(response: any) { let data, raw, headers - const contentType = response.headers.get("content-type") - if (contentType && contentType.indexOf("application/json") !== -1) { - data = await response.json() - raw = JSON.stringify(data) - } else { - data = await response.text() - raw = data + const contentType = response.headers.get("content-type") || "" + try { + if (contentType.includes("application/json")) { + data = await response.json() + raw = JSON.stringify(data) + } else if (contentType.includes("text/xml") || contentType.includes("application/xml")) { + const rawXml = await response.text() + data = await xmlParser(rawXml, { explicitArray: false, trim: true, explicitRoot: false }) || {} + // there is only one structure, its an array, return the array so it appears as rows + const keys = Object.keys(data) + if (keys.length === 1 && Array.isArray(data[keys[0]])) { + data = data[keys[0]] + } + raw = rawXml + } else { + data = await response.text() + raw = data + } + } catch (err) { + throw "Failed to parse response body." } const size = formatBytes( response.headers.get("content-length") || Buffer.byteLength(raw, "utf8") @@ -149,6 +166,50 @@ module RestModule { return complete } + addBody(bodyType: string, body: string | any, input: any) { + let error, object, string + try { + string = typeof body !== "string" ? JSON.stringify(body) : body + object = typeof body === "object" ? body : JSON.parse(body) + } catch (err) { + error = err + } + switch (bodyType) { + case BodyTypes.TEXT: + // content type defaults to plaintext + input.body = string + break + case BodyTypes.ENCODED: + const params = new URLSearchParams() + for (let [key, value] of Object.entries(object)) { + params.append(key, value) + } + input.body = params + break + case BodyTypes.FORM_DATA: + const form = new FormData() + for (let [key, value] of Object.entries(object)) { + form.append(key, value) + } + input.body = form + break + case BodyTypes.XML: + input.body = string + input.headers["Content-Type"] = "text/xml" + break + default: + case BodyTypes.JSON: + // if JSON error, throw it + if (error) { + throw "Invalid JSON for request body" + } + input.body = object + input.headers["Content-Type"] = "application/json" + break + } + return input + } + async _req(query: RestQuery) { const { path = "", @@ -172,35 +233,9 @@ module RestModule { } } - const input: any = { method, headers: this.headers } + let input: any = { method, headers: this.headers } if (requestBody) { - switch (bodyType) { - case BodyTypes.TEXT: - const text = - typeof requestBody !== "string" - ? JSON.stringify(requestBody) - : requestBody - // content type defaults to plaintext - input.body = text - break - default: - case BodyTypes.JSON: - try { - // confirm its json - const json = JSON.parse(requestBody) - if ( - json && - typeof json === "object" && - Object.keys(json).length > 0 - ) { - input.body = requestBody - input.headers["Content-Type"] = "application/json" - } - } catch (err) { - throw "Invalid JSON for request body" - } - break - } + input = this.addBody(bodyType, requestBody, input) } this.startTimeMs = performance.now() diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index ff2f63d531..8e2c9db352 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -983,10 +983,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/auth@^1.0.18": - version "1.0.19" - resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-1.0.19.tgz#b5a8ad51170443d2136d244f51cfe7dbcc0db116" - integrity sha512-6H1K80KX8RUseLXD307tKRc+b0B7/b2SZmAYYGq5qrUSdUotydZaZ90pt5pXVdE754duxyc8DlrwmRfri5xu+A== +"@budibase/auth@^1.0.19-alpha.1": + version "1.0.22" + resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-1.0.22.tgz#a93ea2fea46e00138ad3fa129c9ea19b056654e2" + integrity sha512-eHCNEzGl6HxYlMpfRTXBokq2ALTK5f+CDSgJmGaL/jfPc2NlzCI5NoigZUkSrdwDiYZnnWLfDDR4dArYyLlFuA== dependencies: "@techpass/passport-openidconnect" "^0.3.0" aws-sdk "^2.901.0" @@ -1056,10 +1056,10 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/bbui@^1.0.19": - version "1.0.19" - resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-1.0.19.tgz#d79c99e8c0adcf24d9b83f00a15eb262ad73a7e2" - integrity sha512-GhsyqkDjHMvU1MCr7oXKIZi6NOhmkunJ6eAoob8obCLDm+LXC/1Q8ymSuJicctQpDpraaFS7zqQ6vYY9v7kpiQ== +"@budibase/bbui@^1.0.22": + version "1.0.22" + resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-1.0.22.tgz#ac3bd3a8699bd0be84aac3c5dff9d093e5b08462" + integrity sha512-8/5rXEOwkr0OcQD1fn5GpmI3d5dS1cIJBAODjTVtlZrTdacwlz5W2j3zIh+CBG0X7zhVxEze3zs2b1vDNTvK6A== dependencies: "@adobe/spectrum-css-workflow-icons" "^1.2.1" "@spectrum-css/actionbutton" "^1.0.1" @@ -1106,14 +1106,14 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/client@^1.0.18": - version "1.0.19" - resolved "https://registry.yarnpkg.com/@budibase/client/-/client-1.0.19.tgz#50ba2ad91ac2fd57c51306b80fbab24a26ba1403" - integrity sha512-8vAsD7VkLfq9ZrD+QPXGUcj/2D3vGO++IPr0zIKGNVG5FlOLFceQ9b7itExSFWutyVAjK/e/yq56tugnf0S+Fg== +"@budibase/client@^1.0.19-alpha.1": + version "1.0.22" + resolved "https://registry.yarnpkg.com/@budibase/client/-/client-1.0.22.tgz#80d6c3fb2b57a050199dde4a4b3e82b221601c25" + integrity sha512-Cpao7l2lIWyJZJs8+zq1wFnQGaWRTDiRG+HkkjvqQZDkZexlo89zWPkY56NBbMT1qAXd6K3zAdRNNKVCBCtOaA== dependencies: - "@budibase/bbui" "^1.0.19" + "@budibase/bbui" "^1.0.22" "@budibase/standard-components" "^0.9.139" - "@budibase/string-templates" "^1.0.19" + "@budibase/string-templates" "^1.0.22" regexparam "^1.3.0" shortid "^2.2.15" svelte-spa-router "^3.0.5" @@ -1163,10 +1163,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/string-templates@^1.0.18", "@budibase/string-templates@^1.0.19": - version "1.0.19" - resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-1.0.19.tgz#4b476dfc5d317e56d84a24dffd34715cc74c7b37" - integrity sha512-MmSHF2HK3JS3goyNr3mUQi3azt5vSWlmSGlYFyw473jplRVYkmI8wXrP8gVy9mNJ4vksn3bkgFPI8Hi9RoNSbA== +"@budibase/string-templates@^1.0.19-alpha.1", "@budibase/string-templates@^1.0.22": + version "1.0.22" + resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-1.0.22.tgz#b795c61e53d541c0aa346a90d04b50dcca6ae117" + integrity sha512-1ZhxzL75kVhP44fJlCWwqmGIPjZol1eB/xi3O11xJPYQ7lfzeJcGUpksvlgbLgBlw+MKkgppK7gEoMP247E0Qw== dependencies: "@budibase/handlebars-helpers" "^0.11.7" dayjs "^1.10.4" @@ -5829,6 +5829,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + formidable@^1.1.1, formidable@^1.2.0: version "1.2.6" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" @@ -13081,7 +13090,7 @@ xml2js@0.4.19: sax ">=0.6.0" xmlbuilder "~9.0.1" -xml2js@^0.4.19, xml2js@^0.4.5: +xml2js@^0.4.19, xml2js@^0.4.23, xml2js@^0.4.5: version "0.4.23" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== From 26d89f75d599794dd9be28ba440deabde40b2146 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 15 Dec 2021 08:55:22 +0000 Subject: [PATCH 14/61] Pass current state to peek modals when opening them via query param --- packages/client/src/components/Router.svelte | 28 +++++++++++++++----- packages/client/src/stores/peek.js | 8 ++++-- packages/client/src/stores/state.js | 5 +++- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/packages/client/src/components/Router.svelte b/packages/client/src/components/Router.svelte index 95f52236a4..49cbc3f821 100644 --- a/packages/client/src/components/Router.svelte +++ b/packages/client/src/components/Router.svelte @@ -1,8 +1,9 @@ {#key config.id} diff --git a/packages/client/src/stores/peek.js b/packages/client/src/stores/peek.js index df41f5daff..83974b09f3 100644 --- a/packages/client/src/stores/peek.js +++ b/packages/client/src/stores/peek.js @@ -1,4 +1,5 @@ -import { writable } from "svelte/store" +import { writable, get } from "svelte/store" +import { stateStore } from "./state.js" const initialState = { showPeek: false, @@ -14,7 +15,10 @@ const createPeekStore = () => { let href = url let external = !url.startsWith("/") if (!external) { - href = `${window.location.href.split("#")[0]}#${url}?peek=true` + const state = get(stateStore) + const serialised = encodeURIComponent(btoa(JSON.stringify(state))) + const query = `peek=true&state=${serialised}` + href = `${window.location.href.split("#")[0]}#${url}?${query}` } store.set({ showPeek: true, diff --git a/packages/client/src/stores/state.js b/packages/client/src/stores/state.js index ce977c4333..4ad31c3854 100644 --- a/packages/client/src/stores/state.js +++ b/packages/client/src/stores/state.js @@ -34,6 +34,9 @@ const createStateStore = () => { }) } + // Initialises the temporary state store with a certain value + const initialise = tempStore.set + // Derive the combination of both persisted and non persisted stores const store = derived( [tempStore, persistentStore], @@ -47,7 +50,7 @@ const createStateStore = () => { return { subscribe: store.subscribe, - actions: { setValue, deleteValue }, + actions: { setValue, deleteValue, initialise }, } } From 1c23dc3a3c739eba3b9fed4f61ba376b09f92a78 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 15 Dec 2021 09:00:14 +0000 Subject: [PATCH 15/61] Fix using wrong local storage key when persisting state in client apps --- packages/client/src/stores/state.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/stores/state.js b/packages/client/src/stores/state.js index 4ad31c3854..0297b4c532 100644 --- a/packages/client/src/stores/state.js +++ b/packages/client/src/stores/state.js @@ -1,9 +1,9 @@ import { writable, get, derived } from "svelte/store" import { localStorageStore } from "builder/src/builderStore/store/localStorage" -import { appStore } from "./app" const createStateStore = () => { - const localStorageKey = `${get(appStore).appId}.state` + const appId = window["##BUDIBASE_APP_ID##"] || "app" + const localStorageKey = `${appId}.state` const persistentStore = localStorageStore(localStorageKey, {}) // Initialise the temp store to mirror the persistent store From d1127f32202441b6f2245cadc1950506cdebe58f Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 15 Dec 2021 11:25:52 +0000 Subject: [PATCH 16/61] Fixing an issue with automations throwing a Pouch error due to the auth library database not being setup. --- packages/server/src/threads/automation.js | 3 +-- packages/server/src/threads/query.js | 4 +--- packages/server/src/threads/utils.js | 9 +++++++++ 3 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 packages/server/src/threads/utils.js diff --git a/packages/server/src/threads/automation.js b/packages/server/src/threads/automation.js index 11ee28dbe8..fc9e2a21fc 100644 --- a/packages/server/src/threads/automation.js +++ b/packages/server/src/threads/automation.js @@ -1,6 +1,5 @@ -// when thread starts, make sure it is recorded +require("./utils").threadSetup() const env = require("../environment") -env.setInThread() const actions = require("../automations/actions") const automationUtils = require("../automations/automationUtils") const AutomationEmitter = require("../events/AutomationEmitter") diff --git a/packages/server/src/threads/query.js b/packages/server/src/threads/query.js index 6b0d021e94..6921a6543d 100644 --- a/packages/server/src/threads/query.js +++ b/packages/server/src/threads/query.js @@ -1,6 +1,4 @@ -// when thread starts, make sure it is recorded -const env = require("../environment") -env.setInThread() +require("./utils").threadSetup() const ScriptRunner = require("../utilities/scriptRunner") const { integrations } = require("../integrations") diff --git a/packages/server/src/threads/utils.js b/packages/server/src/threads/utils.js new file mode 100644 index 0000000000..13e9daf711 --- /dev/null +++ b/packages/server/src/threads/utils.js @@ -0,0 +1,9 @@ +const env = require("../environment") +const CouchDB = require("../db") +const { init } = require("@budibase/auth") + +exports.threadSetup = () => { + // when thread starts, make sure it is recorded + env.setInThread() + init(CouchDB) +} From 5c00960ac05ff81518dc7d33f471c13248e91deb Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 15 Dec 2021 12:23:00 +0000 Subject: [PATCH 17/61] Fixing issue detected by test case. --- packages/server/src/integrations/rest.ts | 2 +- .../src/integrations/tests/rest.spec.js | 21 ++++++++----------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/packages/server/src/integrations/rest.ts b/packages/server/src/integrations/rest.ts index f87e5b7416..5fae7b4e8f 100644 --- a/packages/server/src/integrations/rest.ts +++ b/packages/server/src/integrations/rest.ts @@ -214,7 +214,7 @@ module RestModule { if (error) { throw "Invalid JSON for request body" } - input.body = object + input.body = string input.headers["Content-Type"] = "application/json" break } diff --git a/packages/server/src/integrations/tests/rest.spec.js b/packages/server/src/integrations/tests/rest.spec.js index 6c1d989124..d2413b4af1 100644 --- a/packages/server/src/integrations/tests/rest.spec.js +++ b/packages/server/src/integrations/tests/rest.spec.js @@ -14,6 +14,11 @@ const fetch = require("node-fetch") const RestIntegration = require("../rest") const { AuthType } = require("../rest") +const HEADERS = { + "Accept": "application/json", + "Content-Type": "application/json" +} + class TestConfiguration { constructor(config = {}) { this.integration = new RestIntegration.integration(config) @@ -35,9 +40,7 @@ describe("REST Integration", () => { const query = { path: "api", queryString: "test=1", - headers: { - Accept: "application/json", - }, + headers: HEADERS, bodyType: "json", requestBody: JSON.stringify({ name: "test", @@ -47,9 +50,7 @@ describe("REST Integration", () => { expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, { method: "POST", body: '{"name":"test"}', - headers: { - Accept: "application/json", - }, + headers: HEADERS, }) }) @@ -86,9 +87,7 @@ describe("REST Integration", () => { expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, { method: "PUT", body: '{"name":"test"}', - headers: { - Accept: "application/json", - }, + headers: HEADERS, }) }) @@ -107,9 +106,7 @@ describe("REST Integration", () => { const response = await config.integration.delete(query) expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, { method: "DELETE", - headers: { - Accept: "application/json", - }, + headers: HEADERS, body: '{"name":"test"}', }) }) From e9acb690a87e36522e6a2d1b9aaf81f61ba5924a Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 15 Dec 2021 12:26:29 +0000 Subject: [PATCH 18/61] Don't run change if not threading. --- packages/server/src/threads/utils.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/server/src/threads/utils.js b/packages/server/src/threads/utils.js index 13e9daf711..48b40d7002 100644 --- a/packages/server/src/threads/utils.js +++ b/packages/server/src/threads/utils.js @@ -3,6 +3,10 @@ const CouchDB = require("../db") const { init } = require("@budibase/auth") exports.threadSetup = () => { + // don't run this if not threading + if (env.isTest() || env.DISABLE_THREADING) { + return + } // when thread starts, make sure it is recorded env.setInThread() init(CouchDB) From 1f97ae259e99f75c5e93630e63c1dc4893c0e983 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 15 Dec 2021 13:09:03 +0000 Subject: [PATCH 19/61] Adding unit tests for REST bodies and response parsing. --- packages/server/src/integrations/rest.ts | 12 ++- .../src/integrations/tests/rest.spec.js | 87 +++++++++++++++++++ 2 files changed, 97 insertions(+), 2 deletions(-) diff --git a/packages/server/src/integrations/rest.ts b/packages/server/src/integrations/rest.ts index 5fae7b4e8f..1817f780d3 100644 --- a/packages/server/src/integrations/rest.ts +++ b/packages/server/src/integrations/rest.ts @@ -48,7 +48,7 @@ module RestModule { const { performance } = require("perf_hooks") const FormData = require("form-data") const { URLSearchParams } = require("url") - const xmlParser = require("xml2js").parseStringPromise + const { parseStringPromise: xmlParser, Builder: XmlBuilder } = require("xml2js") const SCHEMA: Integration = { docs: "https://github.com/node-fetch/node-fetch", @@ -185,7 +185,12 @@ module RestModule { } catch (err) { error = err } + if (!input.headers) { + input.headers = {} + } switch (bodyType) { + case BodyTypes.NONE: + break case BodyTypes.TEXT: // content type defaults to plaintext input.body = string @@ -205,8 +210,11 @@ module RestModule { input.body = form break case BodyTypes.XML: + if (object != null) { + string = (new XmlBuilder()).buildObject(object) + } input.body = string - input.headers["Content-Type"] = "text/xml" + input.headers["Content-Type"] = "application/xml" break default: case BodyTypes.JSON: diff --git a/packages/server/src/integrations/tests/rest.spec.js b/packages/server/src/integrations/tests/rest.spec.js index d2413b4af1..6cfa670622 100644 --- a/packages/server/src/integrations/tests/rest.spec.js +++ b/packages/server/src/integrations/tests/rest.spec.js @@ -111,6 +111,93 @@ describe("REST Integration", () => { }) }) + describe("request body", () => { + const input = { a: 1, b: 2 } + + it("should allow no body", () => { + const output = config.integration.addBody("none", null, {}) + expect(output.body).toBeUndefined() + expect(Object.keys(output.headers).length).toEqual(0) + }) + + it("should allow text body", () => { + const output = config.integration.addBody("text", "hello world", {}) + expect(output.body).toEqual("hello world") + // gets added by fetch + expect(Object.keys(output.headers).length).toEqual(0) + }) + + it("should allow form data", () => { + const FormData = require("form-data") + const output = config.integration.addBody("form", input, {}) + expect(output.body instanceof FormData).toEqual(true) + expect(output.body._valueLength).toEqual(2) + // gets added by fetch + expect(Object.keys(output.headers).length).toEqual(0) + }) + + it("should allow encoded form data", () => { + const { URLSearchParams } = require("url") + const output = config.integration.addBody("encoded", input, {}) + expect(output.body instanceof URLSearchParams).toEqual(true) + expect(output.body.toString()).toEqual("a=1&b=2") + // gets added by fetch + expect(Object.keys(output.headers).length).toEqual(0) + }) + + it("should allow JSON", () => { + const output = config.integration.addBody("json", input, {}) + expect(output.body).toEqual(JSON.stringify(input)) + expect(output.headers["Content-Type"]).toEqual("application/json") + }) + + it("should allow XML", () => { + const output = config.integration.addBody("xml", input, {}) + expect(output.body.includes("1")).toEqual(true) + expect(output.body.includes("2")).toEqual(true) + expect(output.headers["Content-Type"]).toEqual("application/xml") + }) + }) + + describe("response", () => { + function buildInput(json, text, header) { + return { + status: 200, + json: json ? async () => json : undefined, + text: text ? async () => text : undefined, + headers: { get: key => key === "content-length" ? 100 : header, raw: () => ({ "content-type": header }) } + } + } + + it("should be able to parse JSON response", async () => { + const input = buildInput({a: 1}, null, "application/json") + const output = await config.integration.parseResponse(input) + expect(output.data).toEqual({a: 1}) + expect(output.info.code).toEqual(200) + expect(output.info.size).toEqual("100B") + expect(output.extra.raw).toEqual(JSON.stringify({a: 1})) + expect(output.extra.headers["content-type"]).toEqual("application/json") + }) + + it("should be able to parse text response", async () => { + const text = "hello world" + const input = buildInput(null, text, "text/plain") + const output = await config.integration.parseResponse(input) + expect(output.data).toEqual(text) + expect(output.extra.raw).toEqual(text) + expect(output.extra.headers["content-type"]).toEqual("text/plain") + }) + + it("should be able to parse XML response", async () => { + const text = "12" + const input = buildInput(null, text, "application/xml") + const output = await config.integration.parseResponse(input) + expect(output.data).toEqual({a: "1", b: "2"}) + expect(output.extra.raw).toEqual(text) + expect(output.extra.headers["content-type"]).toEqual("application/xml") + }) + }) + describe("authentication", () => { const basicAuth = { _id: "c59c14bd1898a43baa08da68959b24686", From 69a8376d17a1dfb9573428f131582a2180cd2e68 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 15 Dec 2021 15:54:33 +0000 Subject: [PATCH 20/61] Update home screen UI to work better on mobile and make spacing more consistent --- packages/bbui/src/Layout/Layout.svelte | 3 + packages/bbui/src/Typography/Detail.svelte | 6 + .../src/components/start/AppRow.svelte | 10 +- .../components/start/ChooseIconModal.svelte | 13 +- .../pages/builder/portal/apps/index.svelte | 266 +++++++++--------- 5 files changed, 148 insertions(+), 150 deletions(-) diff --git a/packages/bbui/src/Layout/Layout.svelte b/packages/bbui/src/Layout/Layout.svelte index af60675582..0dcb1f46ee 100644 --- a/packages/bbui/src/Layout/Layout.svelte +++ b/packages/bbui/src/Layout/Layout.svelte @@ -63,6 +63,9 @@ .gap-L { grid-gap: var(--spectrum-alias-grid-gutter-medium); } + .gap-XL { + grid-gap: var(--spectrum-alias-grid-gutter-large); + } .horizontal.gap-S :global(*) + :global(*) { margin-left: var(--spectrum-alias-grid-gutter-xsmall); } diff --git a/packages/bbui/src/Typography/Detail.svelte b/packages/bbui/src/Typography/Detail.svelte index 7cbafdadef..bb5c78c11e 100644 --- a/packages/bbui/src/Typography/Detail.svelte +++ b/packages/bbui/src/Typography/Detail.svelte @@ -13,3 +13,9 @@ >

+ + diff --git a/packages/builder/src/components/start/AppRow.svelte b/packages/builder/src/components/start/AppRow.svelte index 7466d3717d..3ae1e89c11 100644 --- a/packages/builder/src/components/start/AppRow.svelte +++ b/packages/builder/src/components/start/AppRow.svelte @@ -62,12 +62,8 @@
- editApp(app)} secondary + >Open @@ -91,7 +87,7 @@ updateApp(app)} icon="Edit">Edit deleteApp(app)} icon="Delete">Delete {/if} - editIcon(app)} icon="Brush">Edit Icon + editIcon(app)} icon="Brush">Edit icon
diff --git a/packages/builder/src/components/start/ChooseIconModal.svelte b/packages/builder/src/components/start/ChooseIconModal.svelte index c3050f8b6c..4efb679a51 100644 --- a/packages/builder/src/components/start/ChooseIconModal.svelte +++ b/packages/builder/src/components/start/ChooseIconModal.svelte @@ -4,10 +4,11 @@ export let app let modal - $: selectedIcon = app?.icon?.name + $: selectedIcon = app?.icon?.name || "Apps" $: selectedColor = app?.icon?.color let iconsList = [ + "Apps", "Actions", "ConversionFunnel", "App", @@ -31,7 +32,6 @@ "GraphDonut", "GraphBarHorizontal", "Demographic", - "Apps", ] export const show = () => { modal.show() @@ -68,13 +68,13 @@ >
- +
{#each iconsList as item}
(selectedIcon = item)} > @@ -84,7 +84,7 @@
- +
diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte index bcdcd96486..9e0ee26bce 100644 --- a/packages/builder/src/pages/builder/portal/apps/index.svelte +++ b/packages/builder/src/pages/builder/portal/apps/index.svelte @@ -43,6 +43,7 @@ let cloud = $admin.cloud let appName = "" let creatingFromTemplate = false + $: enrichedApps = enrichApps($apps, $auth.user, sortBy) $: filteredApps = enrichedApps.filter(app => app?.name?.toLowerCase().includes(searchTerm.toLowerCase()) @@ -280,99 +281,104 @@ - +
- Welcome to Budibase + + Welcome to Budibase + + Manage your apps and get a head start with templates + + - - {#if cloud} - - {/if} - - - +
+ + + + + +
-
- Manage your apps and get a head start with templates -
- Quick Start Templates -
- {#each $templates as item} -
{ - template = item - creationModal.show() - creatingApp = true - }} - class="template-card" - > -
-
- - - -
-
- {item.name} -
- {item.category.toUpperCase()} + + Quick start templates +
+ {#each $templates as item} +
{ + template = item + creationModal.show() + creatingApp = true + }} + class="template-card" + > +
+
+ + + +
+
+ {item.name} +
+ {item.category.toUpperCase()} +
-
- {/each} -
- {#if loaded && enrichedApps.length} -
- My Apps -
-
-
- + +
+
+ +
+ {#each filteredApps as app (app.appId)} + + {/each} +
+ {/if} + {#if !enrichedApps.length && !creatingApp && loaded}
@@ -380,6 +386,7 @@
{/if} + {#if creatingFromTemplate}

Creating your Budibase app from your selected template...

@@ -427,68 +434,61 @@ From 6f9386ddde62c51211116f36f2f0b0dbc77fe9d8 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 15 Dec 2021 15:56:36 +0000 Subject: [PATCH 21/61] Restore original logic around export apps button --- .../builder/src/pages/builder/portal/apps/index.svelte | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte index 9e0ee26bce..ffcd45bcb7 100644 --- a/packages/builder/src/pages/builder/portal/apps/index.svelte +++ b/packages/builder/src/pages/builder/portal/apps/index.svelte @@ -291,11 +291,11 @@
- - - + {#if cloud} + + {/if} From 36839d7fdc21ab877b95694e6c1a470ea5904760 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 15 Dec 2021 16:09:40 +0000 Subject: [PATCH 22/61] Revert open button size to small in app list --- packages/builder/src/components/start/AppRow.svelte | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/start/AppRow.svelte b/packages/builder/src/components/start/AppRow.svelte index 3ae1e89c11..bda7356a88 100644 --- a/packages/builder/src/components/start/AppRow.svelte +++ b/packages/builder/src/components/start/AppRow.svelte @@ -62,9 +62,14 @@
- editApp(app)} + secondary > + Open + {#if app.deployed} From 12d41b95ddb3b12399f8fae067022a1541ca6872 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Wed, 15 Dec 2021 16:21:12 +0000 Subject: [PATCH 23/61] Lint --- packages/builder/src/pages/builder/portal/apps/index.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/builder/src/pages/builder/portal/apps/index.svelte b/packages/builder/src/pages/builder/portal/apps/index.svelte index ffcd45bcb7..336489be8d 100644 --- a/packages/builder/src/pages/builder/portal/apps/index.svelte +++ b/packages/builder/src/pages/builder/portal/apps/index.svelte @@ -4,7 +4,6 @@ Layout, Detail, Button, - ButtonGroup, Input, Select, Modal, From dbb8a4c341b1f100cd16eab8497b40bac7f70495 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 15 Dec 2021 16:41:32 +0000 Subject: [PATCH 24/61] v1.0.23-alpha.0 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 09d7a43df9..69ed33511b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.22", + "version": "1.0.23-alpha.0", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 74897f1b2b..9d16403ea5 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.22", + "version": "1.0.23-alpha.0", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index d86371c554..05a3ed3576 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.22", + "version": "1.0.23-alpha.0", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 85e43edaaf..20facfe5bb 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.22", + "version": "1.0.23-alpha.0", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.22", - "@budibase/client": "^1.0.22", + "@budibase/bbui": "^1.0.23-alpha.0", + "@budibase/client": "^1.0.23-alpha.0", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.22", + "@budibase/string-templates": "^1.0.23-alpha.0", "@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 de319745a1..3b6b1cd81a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.22", + "version": "1.0.23-alpha.0", "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 2f40808ae0..77d789f3d7 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.22", + "version": "1.0.23-alpha.0", "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.0.22", + "@budibase/bbui": "^1.0.23-alpha.0", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.22", + "@budibase/string-templates": "^1.0.23-alpha.0", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 97ab577241..0cf8855962 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.22", + "version": "1.0.23-alpha.0", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/auth": "^1.0.22", - "@budibase/client": "^1.0.22", - "@budibase/string-templates": "^1.0.22", + "@budibase/auth": "^1.0.23-alpha.0", + "@budibase/client": "^1.0.23-alpha.0", + "@budibase/string-templates": "^1.0.23-alpha.0", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 005d6304fe..5e89057624 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.22", + "version": "1.0.23-alpha.0", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index f1e09ebf60..727072d73f 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.22", + "version": "1.0.23-alpha.0", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.22", - "@budibase/string-templates": "^1.0.22", + "@budibase/auth": "^1.0.23-alpha.0", + "@budibase/string-templates": "^1.0.23-alpha.0", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 1a5ee47e9ea248288bd04db35ad2a20fc8735beb Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 15 Dec 2021 16:56:03 +0000 Subject: [PATCH 25/61] v1.0.23-alpha.1 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 69ed33511b..77c04f6393 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.23-alpha.0", + "version": "1.0.23-alpha.1", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 9d16403ea5..7725aaf6bc 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.23-alpha.0", + "version": "1.0.23-alpha.1", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 05a3ed3576..32aade3de3 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.23-alpha.0", + "version": "1.0.23-alpha.1", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 20facfe5bb..01c77719cd 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.23-alpha.0", + "version": "1.0.23-alpha.1", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.23-alpha.0", - "@budibase/client": "^1.0.23-alpha.0", + "@budibase/bbui": "^1.0.23-alpha.1", + "@budibase/client": "^1.0.23-alpha.1", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.23-alpha.0", + "@budibase/string-templates": "^1.0.23-alpha.1", "@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 3b6b1cd81a..7b624bc49e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.23-alpha.0", + "version": "1.0.23-alpha.1", "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 77d789f3d7..bf6e0a9c77 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.23-alpha.0", + "version": "1.0.23-alpha.1", "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.0.23-alpha.0", + "@budibase/bbui": "^1.0.23-alpha.1", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.23-alpha.0", + "@budibase/string-templates": "^1.0.23-alpha.1", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 0cf8855962..6493adafe4 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.23-alpha.0", + "version": "1.0.23-alpha.1", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/auth": "^1.0.23-alpha.0", - "@budibase/client": "^1.0.23-alpha.0", - "@budibase/string-templates": "^1.0.23-alpha.0", + "@budibase/auth": "^1.0.23-alpha.1", + "@budibase/client": "^1.0.23-alpha.1", + "@budibase/string-templates": "^1.0.23-alpha.1", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 5e89057624..73a15ce37f 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.23-alpha.0", + "version": "1.0.23-alpha.1", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 727072d73f..8036cb80c5 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.23-alpha.0", + "version": "1.0.23-alpha.1", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.23-alpha.0", - "@budibase/string-templates": "^1.0.23-alpha.0", + "@budibase/auth": "^1.0.23-alpha.1", + "@budibase/string-templates": "^1.0.23-alpha.1", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 1cc2b98de5759abc1a1b08f00b6a84d7333d87b3 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 15 Dec 2021 18:43:12 +0100 Subject: [PATCH 26/61] split CI pipelines to improve speed and automate deployment to production through manual action --- .github/workflows/deploy-cloud.yaml | 41 ++++++++++++++++ .github/workflows/release-charts.yml | 42 ---------------- .github/workflows/release-selfhost.yml | 65 ++++++++++++++----------- .github/workflows/release.yml | 23 ++++++++- budibase-1.0.0.tgz | Bin 0 -> 42683 bytes scripts/latest_budibase_version.sh | 0 6 files changed, 100 insertions(+), 71 deletions(-) create mode 100644 .github/workflows/deploy-cloud.yaml delete mode 100644 .github/workflows/release-charts.yml create mode 100644 budibase-1.0.0.tgz create mode 100644 scripts/latest_budibase_version.sh diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml new file mode 100644 index 0000000000..778029bf03 --- /dev/null +++ b/.github/workflows/deploy-cloud.yaml @@ -0,0 +1,41 @@ +name: Budibase Cloud Deploy + +on: + workflow_dispatch: + inputs: + version: + description: Budibase release version. For example - 1.0.0 + required: false + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Pull values.yaml from budibase-infra + run: | + curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12] + -H 'Accept: application/vnd.github.v3.raw' \ + -o values.production.yaml \ + -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.yaml + + - name: Get the latest budibase release version if not specifically set + if: ${{ !github.event.inputs.version }} + id: version + run: | + sudo apt-get install -y jq + release_version=$(cat lerna.json | jq -r '.version') + echo "::set-output name=release_version::$release_version" + + - uses: peymanmortazavi/eks-helm-deploy@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-west-1 + cluster-name: budibase-eks-production + config-files: values.production.yaml + namespace: budibase + values: appVersion=v${{ github.event.inputs.version || github.steps.version.outputs.release_version }} + name: budibase-prod \ No newline at end of file diff --git a/.github/workflows/release-charts.yml b/.github/workflows/release-charts.yml deleted file mode 100644 index 500eb42908..0000000000 --- a/.github/workflows/release-charts.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Budibase Release Helm Charts - -on: - workflow_dispatch: - -jobs: - release: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - uses: actions/setup-node@v1 - with: - node-version: 14.x - - run: yarn - - run: yarn bootstrap - - - name: 'Get Previous tag' - id: previoustag - uses: "WyriHaximus/github-action-get-previous-tag@v1" - - - name: Install Helm - uses: azure/setup-helm@v1 - with: - version: v3.4.0 - - - run: yarn release:helm - env: - BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} - - - name: Configure Git - run: | - git config user.name "Budibase Helm Bot" - git config user.email "<>" - - - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.2.1 - env: - CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" \ No newline at end of file diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 4fc8a98350..16f38ec6f1 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -3,43 +3,52 @@ name: Budibase Release Docker Selfhost on: workflow_dispatch: -env: - POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} - INTERCOM_TOKEN: ${{ secrets.INTERCOM_TOKEN }} - POSTHOG_URL: ${{ secrets.POSTHOG_URL }} - jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - uses: actions/setup-node@v1 - with: - node-version: 14.x - - run: yarn - - run: yarn bootstrap - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: eu-west-1 - - - name: 'Get Previous tag' - id: previoustag - uses: "WyriHaximus/github-action-get-previous-tag@v1" - - - name: Build/release Docker images (Self Host) + - name: Tag and release Docker images (Self Host) run: | docker login -u $DOCKER_USER -p $DOCKER_PASSWORD - yarn build - yarn build:docker:selfhost + + # Get latest release version + sudo apt-get install -y jq + release_version=v$(cat lerna.json | jq -r '.version') + echo "::set-output name=release_version::$release_version" + + # Pull apps and worker images + docker pull budibase/apps:$release_version + docker pull budibase/worker:$release_version + + # Tag apps and worker images + docker tag budibase/apps:$release_version $SELF_HOST_TAG + docker tag budibase/worker:$release_version $SELF_HOST_TAG + + # Push images + docker push --all-tags budibase/apps + docker push --all-tags budibase/worker env: DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} - BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} - \ No newline at end of file + SELF_HOST_TAG: latest + + # - name: Build and release helm chart + # run: | + # git config user.name "Budibase Helm Bot" + # git config user.email "<>" + # helm package charts/budibase + # git checkout gh-pages + # mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs + # git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}" + # git push + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # - name: Perform github release + # run: | + # echo release + # env: + # GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d4142f7ac9..43d5eb7b13 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,4 +57,25 @@ jobs: DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }} - # Release to pre-prod environment \ No newline at end of file + # - name: Pull values.yaml from budibase-infra + # run: | + # curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12] + # -H 'Accept: application/vnd.github.v3.raw' \ + # -o values.production.yaml \ + # -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml + + # - name: Deploy to Preprod Environment + # uses: deliverybot/helm@v1 + # with: + # release: budibase-preprod + # namespace: budibase + # chart: charts/budibase + # token: ${{ github.token }} + # values: | + # appVersion: ${{ steps.previoustag.outputs.tag }} + # value-files: >- + # [ + # "values.preprod.yaml" + # ] + # env: + # KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' diff --git a/budibase-1.0.0.tgz b/budibase-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..72d39b9a73229da1c2b869c637935527be6111e0 GIT binary patch literal 42683 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 D1Vk5` literal 0 HcmV?d00001 diff --git a/scripts/latest_budibase_version.sh b/scripts/latest_budibase_version.sh new file mode 100644 index 0000000000..e69de29bb2 From 1f864f11fb7d3bf5ce91434aceb8462cea4c604e Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 15 Dec 2021 18:43:56 +0100 Subject: [PATCH 27/61] remove created files --- budibase-1.0.0.tgz | Bin 42683 -> 0 bytes scripts/latest_budibase_version.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 budibase-1.0.0.tgz delete mode 100644 scripts/latest_budibase_version.sh diff --git a/budibase-1.0.0.tgz b/budibase-1.0.0.tgz deleted file mode 100644 index 72d39b9a73229da1c2b869c637935527be6111e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42683 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 D1Vk5` diff --git a/scripts/latest_budibase_version.sh b/scripts/latest_budibase_version.sh deleted file mode 100644 index e69de29bb2..0000000000 From 18dbfa911d10f3e91ae6030dbb33f9b816538f50 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 15 Dec 2021 19:40:59 +0100 Subject: [PATCH 28/61] using tag correctly in selfhost pipeline --- .github/workflows/release-selfhost.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 16f38ec6f1..5e2e59634a 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -18,14 +18,15 @@ jobs: sudo apt-get install -y jq release_version=v$(cat lerna.json | jq -r '.version') echo "::set-output name=release_version::$release_version" + release_tag=v$release_version # Pull apps and worker images - docker pull budibase/apps:$release_version - docker pull budibase/worker:$release_version + docker pull budibase/apps:$release_tag + docker pull budibase/worker:$release_tag # Tag apps and worker images - docker tag budibase/apps:$release_version $SELF_HOST_TAG - docker tag budibase/worker:$release_version $SELF_HOST_TAG + docker tag budibase/apps:$release_tag $SELF_HOST_TAG + docker tag budibase/worker:$release_tag $SELF_HOST_TAG # Push images docker push --all-tags budibase/apps @@ -42,6 +43,7 @@ jobs: # helm package charts/budibase # git checkout gh-pages # mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs + # git add . # git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}" # git push # env: From 4a4b8396e97151660be9b05cd5098a315a7689aa Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 15 Dec 2021 19:41:55 +0100 Subject: [PATCH 29/61] git add all --- .github/workflows/release-selfhost.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 5e2e59634a..3f274e31f7 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -43,7 +43,7 @@ jobs: # helm package charts/budibase # git checkout gh-pages # mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs - # git add . + # git add -A # git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}" # git push # env: From a987047aa6da66ae79bcc93a7a9e39e923c60842 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 15 Dec 2021 19:46:28 +0100 Subject: [PATCH 30/61] setup and update helm --- .github/workflows/release-selfhost.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 3f274e31f7..c34e1dac22 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -35,6 +35,10 @@ jobs: DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} SELF_HOST_TAG: latest + + - name: Setup Helm + uses: azure/setup-helm@v1 + id: helm-install # - name: Build and release helm chart # run: | From d6a0a50c63fa55a9b00949a04f56622cef80dd11 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Wed, 15 Dec 2021 19:49:14 +0100 Subject: [PATCH 31/61] name values file correctly --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 43d5eb7b13..8768a01c78 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,7 +61,7 @@ jobs: # run: | # curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12] # -H 'Accept: application/vnd.github.v3.raw' \ - # -o values.production.yaml \ + # -o values.preprod.yaml \ # -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml # - name: Deploy to Preprod Environment From 5b1da51acb1a4e1e8e7d6a5219f4d360886869e1 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Thu, 16 Dec 2021 10:18:24 +0000 Subject: [PATCH 32/61] v1.0.23 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 09d7a43df9..2d5e3c1efd 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.22", + "version": "1.0.23", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 74897f1b2b..7d360ce9fb 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.22", + "version": "1.0.23", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index d86371c554..c017bd8de5 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.22", + "version": "1.0.23", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 85e43edaaf..b8b329a85a 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.22", + "version": "1.0.23", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.22", - "@budibase/client": "^1.0.22", + "@budibase/bbui": "^1.0.23", + "@budibase/client": "^1.0.23", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.22", + "@budibase/string-templates": "^1.0.23", "@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 de319745a1..a4d619ac2c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.22", + "version": "1.0.23", "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 2f40808ae0..9b78f34089 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.22", + "version": "1.0.23", "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.0.22", + "@budibase/bbui": "^1.0.23", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.22", + "@budibase/string-templates": "^1.0.23", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 579535f0eb..3e53763be7 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.22", + "version": "1.0.23", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.22", - "@budibase/client": "^1.0.22", - "@budibase/string-templates": "^1.0.22", + "@budibase/auth": "^1.0.23", + "@budibase/client": "^1.0.23", + "@budibase/string-templates": "^1.0.23", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 005d6304fe..7816c22830 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.22", + "version": "1.0.23", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index f1e09ebf60..86b4841af5 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.22", + "version": "1.0.23", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.22", - "@budibase/string-templates": "^1.0.22", + "@budibase/auth": "^1.0.23", + "@budibase/string-templates": "^1.0.23", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From dd8f33c5488579673408ee2c75ceebfce0cb9146 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 11:55:32 +0100 Subject: [PATCH 33/61] remove leading v in job --- .github/workflows/release-selfhost.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index c34e1dac22..933fee947c 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -1,4 +1,4 @@ -name: Budibase Release Docker Selfhost +name: Budibase Release Selfhost on: workflow_dispatch: @@ -16,7 +16,7 @@ jobs: # Get latest release version sudo apt-get install -y jq - release_version=v$(cat lerna.json | jq -r '.version') + release_version=$(cat lerna.json | jq -r '.version') echo "::set-output name=release_version::$release_version" release_tag=v$release_version From e7ab6f72f7982ff1031eba37b8cd19b85fe0a77d Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Thu, 16 Dec 2021 11:04:27 +0000 Subject: [PATCH 34/61] v1.0.24 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 2d5e3c1efd..7c6b6f801a 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.23", + "version": "1.0.24", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 7d360ce9fb..25a5a63691 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.23", + "version": "1.0.24", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index c017bd8de5..cd2d027388 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.23", + "version": "1.0.24", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index b8b329a85a..77fdaa9f5c 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.23", + "version": "1.0.24", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.23", - "@budibase/client": "^1.0.23", + "@budibase/bbui": "^1.0.24", + "@budibase/client": "^1.0.24", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.23", + "@budibase/string-templates": "^1.0.24", "@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 a4d619ac2c..68551d8cd9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.23", + "version": "1.0.24", "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 9b78f34089..74781039ec 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.23", + "version": "1.0.24", "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.0.23", + "@budibase/bbui": "^1.0.24", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.23", + "@budibase/string-templates": "^1.0.24", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 3e53763be7..0cbd44daa9 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.23", + "version": "1.0.24", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.23", - "@budibase/client": "^1.0.23", - "@budibase/string-templates": "^1.0.23", + "@budibase/auth": "^1.0.24", + "@budibase/client": "^1.0.24", + "@budibase/string-templates": "^1.0.24", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 7816c22830..99d2f5729e 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.23", + "version": "1.0.24", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 86b4841af5..41b40012ad 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.23", + "version": "1.0.24", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.23", - "@budibase/string-templates": "^1.0.23", + "@budibase/auth": "^1.0.24", + "@budibase/string-templates": "^1.0.24", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 1a964f2122695ce46298d97ca98039a3dc0c0833 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 12:35:50 +0100 Subject: [PATCH 35/61] turn off release pipeline, update selfhost jobs --- .github/workflows/deploy-cloud.yaml | 3 ++- .github/workflows/release-selfhost.yml | 9 ++++----- .github/workflows/release.yml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 778029bf03..b7c4c8ae1c 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -29,7 +29,8 @@ jobs: release_version=$(cat lerna.json | jq -r '.version') echo "::set-output name=release_version::$release_version" - - uses: peymanmortazavi/eks-helm-deploy@v1 + - name: Deploy to EKS + uses: peymanmortazavi/eks-helm-deploy@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 933fee947c..e377407b1f 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -25,16 +25,15 @@ jobs: docker pull budibase/worker:$release_tag # Tag apps and worker images - docker tag budibase/apps:$release_tag $SELF_HOST_TAG - docker tag budibase/worker:$release_tag $SELF_HOST_TAG + docker tag budibase/apps:$release_tag latest + docker tag budibase/worker:$release_tag latest # Push images - docker push --all-tags budibase/apps - docker push --all-tags budibase/worker + docker push budibase/apps:latest + docker push budibase/worker:latest env: DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} - SELF_HOST_TAG: latest - name: Setup Helm uses: azure/setup-helm@v1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8768a01c78..46687ce0bc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Budibase Release on: push: branches: - - master + - test env: POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} From 5c43042bf520605adfd85ca4d9979b89d43b3b95 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 12:44:11 +0100 Subject: [PATCH 36/61] tag docker images, change eks deploy action --- .github/workflows/deploy-cloud.yaml | 5 +++-- .github/workflows/release-selfhost.yml | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index b7c4c8ae1c..a2cad316fd 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -30,13 +30,14 @@ jobs: echo "::set-output name=release_version::$release_version" - name: Deploy to EKS - uses: peymanmortazavi/eks-helm-deploy@v1 + uses: craftech-io/eks-helm-deploy-action@v1 with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-access-key-id: ${{ secrets.AWS_ACCESS__KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: eu-west-1 cluster-name: budibase-eks-production config-files: values.production.yaml + chart-path: charts/budibase namespace: budibase values: appVersion=v${{ github.event.inputs.version || github.steps.version.outputs.release_version }} name: budibase-prod \ No newline at end of file diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index e377407b1f..1d1ee381be 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -29,8 +29,8 @@ jobs: docker tag budibase/worker:$release_tag latest # Push images - docker push budibase/apps:latest - docker push budibase/worker:latest + docker push --all-tags budibase/apps + docker push --all-tags budibase/apps env: DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} From d5ee373450ae38f9a63fdad88dcc51209d9c30e0 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 13:01:43 +0100 Subject: [PATCH 37/61] fix github curl to pull infra values.yaml --- .github/workflows/release-selfhost.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 1d1ee381be..2a31eccf2e 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -25,15 +25,16 @@ jobs: docker pull budibase/worker:$release_tag # Tag apps and worker images - docker tag budibase/apps:$release_tag latest - docker tag budibase/worker:$release_tag latest + docker tag budibase/apps:$release_tag budibase/apps:$SELFHOST_TAG + docker tag budibase/worker:$release_tag budibase/worker:$SELFHOST_TAG # Push images - docker push --all-tags budibase/apps - docker push --all-tags budibase/apps + docker push budibase/apps:$SELFHOST_TAG + docker push budibase/worker:$SELFHOST_TAG env: DOCKER_USER: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }} + SELFHOST_TAG: latest - name: Setup Helm uses: azure/setup-helm@v1 From 6d22067f877a704fc98d41281bc2f9429eea367c Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 13:09:21 +0100 Subject: [PATCH 38/61] removing git commit sha from curl --- .github/workflows/deploy-cloud.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index a2cad316fd..af6971c61c 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -16,7 +16,7 @@ jobs: - name: Pull values.yaml from budibase-infra run: | - curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12] + curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H 'Accept: application/vnd.github.v3.raw' \ -o values.production.yaml \ -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.yaml From 414a1b74d4d023a19da1559a47c8e5376d57f726 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 13:12:54 +0100 Subject: [PATCH 39/61] adding AWS creds configuration step --- .github/workflows/deploy-cloud.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index af6971c61c..1f99a2919e 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -25,9 +25,15 @@ jobs: if: ${{ !github.event.inputs.version }} id: version run: | - sudo apt-get install -y jq release_version=$(cat lerna.json | jq -r '.version') echo "::set-output name=release_version::$release_version" + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-west-1 - name: Deploy to EKS uses: craftech-io/eks-helm-deploy-action@v1 From 3a0dac4292f7af1a325bf3738dd3c1764c7a04ea Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 13:38:21 +0100 Subject: [PATCH 40/61] correct version for cloud deploy, added helm chart automation to selfhost job --- .github/workflows/deploy-cloud.yaml | 13 ++++++---- .github/workflows/release-selfhost.yml | 34 +++++++++++++------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 1f99a2919e..0951a9d9e1 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -21,12 +21,15 @@ jobs: -o values.production.yaml \ -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.yaml - - name: Get the latest budibase release version if not specifically set - if: ${{ !github.event.inputs.version }} + - name: Get the latest budibase release version id: version run: | - release_version=$(cat lerna.json | jq -r '.version') - echo "::set-output name=release_version::$release_version" + if [ ${{ github.event.inputs.version }} == '' ]; then + release_version=$(cat lerna.json | jq -r '.version') + else + release_version=${{ github.event.inputs.version }} + fi + echo "::set-output name=release_version::$release_version" - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 @@ -45,5 +48,5 @@ jobs: config-files: values.production.yaml chart-path: charts/budibase namespace: budibase - values: appVersion=v${{ github.event.inputs.version || github.steps.version.outputs.release_version }} + values: appVersion=v${{ github.steps.version.outputs.release_version }} name: budibase-prod \ No newline at end of file diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 2a31eccf2e..89edf9fb3b 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -40,21 +40,21 @@ jobs: uses: azure/setup-helm@v1 id: helm-install - # - name: Build and release helm chart - # run: | - # git config user.name "Budibase Helm Bot" - # git config user.email "<>" - # helm package charts/budibase - # git checkout gh-pages - # mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs - # git add -A - # git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}" - # git push - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Build and release helm chart + run: | + git config user.name "Budibase Helm Bot" + git config user.email "<>" + helm package charts/budibase + git checkout gh-pages + mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs + git add -A + git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}" + git push + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # - name: Perform github release - # run: | - # echo release - # env: - # GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" \ No newline at end of file + - name: Perform Github Release + uses: softprops/action-gh-release@v1 + name: v${{ github.steps.version.outputs.release_version }} + with: + generate_release_notes: true \ No newline at end of file From 3a7bf6455e6d686d3ee1bf79029fed43b42947cc Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 13:40:17 +0100 Subject: [PATCH 41/61] workflow file --- .github/workflows/release-selfhost.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 89edf9fb3b..2533e4c1aa 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -55,6 +55,6 @@ jobs: - name: Perform Github Release uses: softprops/action-gh-release@v1 - name: v${{ github.steps.version.outputs.release_version }} with: + name: v${{ github.steps.version.outputs.release_version }} generate_release_notes: true \ No newline at end of file From b04923d6d3618f45bec30e5394aa8583e735f0ec Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 14:17:36 +0100 Subject: [PATCH 42/61] index helm repo --- .github/workflows/release-selfhost.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 2533e4c1aa..b2ca69c27f 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -47,6 +47,7 @@ jobs: helm package charts/budibase git checkout gh-pages mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs + helm repo index docs git add -A git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}" git push From e2e91a7bd50ed75dae8e88cbd436a9bcb6a7019a Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 14:31:40 +0100 Subject: [PATCH 43/61] inputting correct release version --- .github/workflows/deploy-cloud.yaml | 2 +- .github/workflows/release-selfhost.yml | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 0951a9d9e1..7516409652 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -24,7 +24,7 @@ jobs: - name: Get the latest budibase release version id: version run: | - if [ ${{ github.event.inputs.version }} == '' ]; then + if [ -z "${{ github.event.inputs.version }}" ]; then release_version=$(cat lerna.json | jq -r '.version') else release_version=${{ github.event.inputs.version }} diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index b2ca69c27f..ff54d8081b 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -39,13 +39,16 @@ jobs: - name: Setup Helm uses: azure/setup-helm@v1 id: helm-install + run: helm package charts/budibase + - uses: actions/checkout@v2 + with: + ref: gh-pages + - name: Build and release helm chart run: | git config user.name "Budibase Helm Bot" git config user.email "<>" - helm package charts/budibase - git checkout gh-pages mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs helm repo index docs git add -A From 8056c1acbb05192d0b85227a86f6f0ba8c77b884 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 15:13:20 +0100 Subject: [PATCH 44/61] adding run command to package chart --- .github/workflows/release-selfhost.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index ff54d8081b..7fbdadadf4 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -39,11 +39,13 @@ jobs: - name: Setup Helm uses: azure/setup-helm@v1 id: helm-install - run: helm package charts/budibase + - run: helm package charts/budibase + - uses: actions/checkout@v2 with: ref: gh-pages + - name: Build and release helm chart run: | From 40e9790e5e224e1f0d13aac4b9e97ef920a2879d Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 15:33:14 +0100 Subject: [PATCH 45/61] set appVersion at correct level --- .github/workflows/deploy-cloud.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 7516409652..5e722989ed 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -48,5 +48,5 @@ jobs: config-files: values.production.yaml chart-path: charts/budibase namespace: budibase - values: appVersion=v${{ github.steps.version.outputs.release_version }} + values: globals.appVersion=v${{ github.event.inputs.version }} name: budibase-prod \ No newline at end of file From 7ddfb517408f4a6681dcb1ce7ade8743c596229a Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 15:36:34 +0100 Subject: [PATCH 46/61] use github env rather than workflow outputs --- .github/workflows/deploy-cloud.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 5e722989ed..8e162441d2 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -29,7 +29,7 @@ jobs: else release_version=${{ github.event.inputs.version }} fi - echo "::set-output name=release_version::$release_version" + echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 @@ -48,5 +48,5 @@ jobs: config-files: values.production.yaml chart-path: charts/budibase namespace: budibase - values: globals.appVersion=v${{ github.event.inputs.version }} + values: globals.appVersion=v${{ env.RELEASE_VERSION }} name: budibase-prod \ No newline at end of file From 32d18087b6882fb2e4818634cbebde0f2bb4e22f Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 16:04:08 +0100 Subject: [PATCH 47/61] word count to verify production yaml --- .github/workflows/deploy-cloud.yaml | 1 + .github/workflows/release-selfhost.yml | 35 +++++++++++++------------- .github/workflows/release.yml | 4 +-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 8e162441d2..5444ae8e89 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -20,6 +20,7 @@ jobs: -H 'Accept: application/vnd.github.v3.raw' \ -o values.production.yaml \ -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.yaml + wc -l values.production.yaml - name: Get the latest budibase release version id: version diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 7fbdadadf4..a7072b6891 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -17,7 +17,7 @@ jobs: # Get latest release version sudo apt-get install -y jq release_version=$(cat lerna.json | jq -r '.version') - echo "::set-output name=release_version::$release_version" + echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV release_tag=v$release_version # Pull apps and worker images @@ -40,27 +40,26 @@ jobs: uses: azure/setup-helm@v1 id: helm-install - - run: helm package charts/budibase + # - run: helm package charts/budibase - - uses: actions/checkout@v2 - with: - ref: gh-pages - + # - uses: actions/checkout@v2 + # with: + # ref: gh-pages - - name: Build and release helm chart - run: | - git config user.name "Budibase Helm Bot" - git config user.email "<>" - mv budibase-${{ github.steps.version.outputs.release_version }}.tgz docs - helm repo index docs - git add -A - git commit -m "Helm Release: ${{ github.steps.version.outputs.release_version }}" - git push - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # - name: Build and release helm chart + # run: | + # git config user.name "Budibase Helm Bot" + # git config user.email "<>" + # mv budibase-${{ env.RELEASE_VERSION }}.tgz docs + # helm repo index docs + # git add -A + # git commit -m "Helm Release: ${{ env.RELEASE_VERSION }}" + # git push + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Perform Github Release uses: softprops/action-gh-release@v1 with: - name: v${{ github.steps.version.outputs.release_version }} + name: v${{ env.RELEASE_VERSION }} generate_release_notes: true \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 46687ce0bc..3464e93da9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -72,10 +72,10 @@ jobs: # chart: charts/budibase # token: ${{ github.token }} # values: | - # appVersion: ${{ steps.previoustag.outputs.tag }} + # globals.appVersion: ${{ steps.previoustag.outputs.tag }} # value-files: >- # [ - # "values.preprod.yaml" + # "charts/budibase/values.yaml" # ] # env: # KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' From 9f5bc94b17228a5fe64578b8e7d8291a8c1ced39 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 17:14:28 +0100 Subject: [PATCH 48/61] use cross repo permissions token --- .github/workflows/deploy-cloud.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 5444ae8e89..ee86bb07ca 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -16,7 +16,7 @@ jobs: - name: Pull values.yaml from budibase-infra run: | - curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + curl -H "Authorization: token ${{ secrets.GH_PERSONAL_TOKEN }}" \ -H 'Accept: application/vnd.github.v3.raw' \ -o values.production.yaml \ -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.yaml From 375364784b1ab1f55fd3be2463f18b5c9f23d487 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 18:42:42 +0100 Subject: [PATCH 49/61] removing timeouts from app exports in cloud --- hosting/kubernetes/envoy/envoy.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hosting/kubernetes/envoy/envoy.yaml b/hosting/kubernetes/envoy/envoy.yaml index 25a774dc7e..bab1f25c02 100644 --- a/hosting/kubernetes/envoy/envoy.yaml +++ b/hosting/kubernetes/envoy/envoy.yaml @@ -50,6 +50,14 @@ static_resources: route: cluster: app-service + - match: + safe_regex: + google_re2: {} + regex: "/api/.*/export" + route: + timeout: 0s + cluster: app-service + - match: { path: "/api/deploy" } route: timeout: 60s From e9d44c7b479587ae45aab24f13b50f4f765d13c0 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Thu, 16 Dec 2021 19:24:07 +0100 Subject: [PATCH 50/61] turning on prod deploy again, adding github release to selfhost job --- .github/workflows/release-selfhost.yml | 16 ++++++++++------ .github/workflows/release.yml | 4 ++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index a7072b6891..9a6b75959a 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -9,6 +9,8 @@ jobs: steps: - uses: actions/checkout@v2 + with: + fetch_depth: 0 - name: Tag and release Docker images (Self Host) run: | @@ -39,12 +41,6 @@ jobs: - name: Setup Helm uses: azure/setup-helm@v1 id: helm-install - - # - run: helm package charts/budibase - - # - uses: actions/checkout@v2 - # with: - # ref: gh-pages # - name: Build and release helm chart # run: | @@ -52,12 +48,20 @@ jobs: # git config user.email "<>" # mv budibase-${{ env.RELEASE_VERSION }}.tgz docs # helm repo index docs + # git checkout gh-pages # git add -A # git commit -m "Helm Release: ${{ env.RELEASE_VERSION }}" # git push # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # - name: Deploy + # uses: peaceiris/actions-gh-pages@v3 + # with: + # github_token: ${{ secrets.GITHUB_TOKEN }} + # publish_dir: ./public + # full_commit_message: "Helm Release: ${{ env.RELEASE_VERSION }}" + - name: Perform Github Release uses: softprops/action-gh-release@v1 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3464e93da9..f6068fe8cd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Budibase Release on: push: branches: - - test + - master env: POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} @@ -59,7 +59,7 @@ jobs: # - name: Pull values.yaml from budibase-infra # run: | - # curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ [c3a7a9d12] + # curl -H "Authorization: token ${{ secrets.GH_PERSONAL_TOKEN }}" \ [c3a7a9d12] # -H 'Accept: application/vnd.github.v3.raw' \ # -o values.preprod.yaml \ # -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml From ef4410229e26cce4e831e78500bac942dbe08605 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Thu, 16 Dec 2021 18:32:05 +0000 Subject: [PATCH 51/61] v1.0.25 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 7c6b6f801a..a20a306a2e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.24", + "version": "1.0.25", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 25a5a63691..137abf4426 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.24", + "version": "1.0.25", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index cd2d027388..9414c6afd4 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.24", + "version": "1.0.25", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 77fdaa9f5c..99227ed494 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.24", + "version": "1.0.25", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.24", - "@budibase/client": "^1.0.24", + "@budibase/bbui": "^1.0.25", + "@budibase/client": "^1.0.25", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.24", + "@budibase/string-templates": "^1.0.25", "@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 68551d8cd9..cd8aefff20 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.24", + "version": "1.0.25", "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 74781039ec..4a0a0e125b 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.24", + "version": "1.0.25", "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.0.24", + "@budibase/bbui": "^1.0.25", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.24", + "@budibase/string-templates": "^1.0.25", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 0cbd44daa9..ae4dd8f3ff 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.24", + "version": "1.0.25", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.24", - "@budibase/client": "^1.0.24", - "@budibase/string-templates": "^1.0.24", + "@budibase/auth": "^1.0.25", + "@budibase/client": "^1.0.25", + "@budibase/string-templates": "^1.0.25", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 99d2f5729e..da00e5f001 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.24", + "version": "1.0.25", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 41b40012ad..f1978e4f0a 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.24", + "version": "1.0.25", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.24", - "@budibase/string-templates": "^1.0.24", + "@budibase/auth": "^1.0.25", + "@budibase/string-templates": "^1.0.25", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 39116bc631577bd0b43b8b048d3b3c61fe6c8712 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 17 Dec 2021 14:58:03 +0100 Subject: [PATCH 52/61] testing selfhost job --- .github/workflows/deploy-cloud.yaml | 10 +++++++- .github/workflows/release-selfhost.yml | 2 +- .github/workflows/release.yml | 32 +++++++++++++------------- package.json | 2 +- 4 files changed, 27 insertions(+), 19 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index ee86bb07ca..74693e3848 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -50,4 +50,12 @@ jobs: chart-path: charts/budibase namespace: budibase values: globals.appVersion=v${{ env.RELEASE_VERSION }} - name: budibase-prod \ No newline at end of file + name: budibase-prod + + - name: Discord Webhook Action + uses: tsickert/discord-webhook@v4.0.0 + with: + webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} + content: "Production Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to budibase cloud." + embed-title: ${{ env.RELEASE_VERSION }} + diff --git a/.github/workflows/release-selfhost.yml b/.github/workflows/release-selfhost.yml index 9a6b75959a..3e2e5ca6b7 100644 --- a/.github/workflows/release-selfhost.yml +++ b/.github/workflows/release-selfhost.yml @@ -17,7 +17,6 @@ jobs: docker login -u $DOCKER_USER -p $DOCKER_PASSWORD # Get latest release version - sudo apt-get install -y jq release_version=$(cat lerna.json | jq -r '.version') echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV release_tag=v$release_version @@ -66,4 +65,5 @@ jobs: uses: softprops/action-gh-release@v1 with: name: v${{ env.RELEASE_VERSION }} + tag_name: v${{ env.RELEASE_VERSION }} generate_release_notes: true \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f6068fe8cd..1cd35e810b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Budibase Release on: push: branches: - - master + - test env: POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} @@ -64,18 +64,18 @@ jobs: # -o values.preprod.yaml \ # -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml - # - name: Deploy to Preprod Environment - # uses: deliverybot/helm@v1 - # with: - # release: budibase-preprod - # namespace: budibase - # chart: charts/budibase - # token: ${{ github.token }} - # values: | - # globals.appVersion: ${{ steps.previoustag.outputs.tag }} - # value-files: >- - # [ - # "charts/budibase/values.yaml" - # ] - # env: - # KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' + - name: Deploy to Preprod Environment + uses: deliverybot/helm@v1 + with: + release: budibase-preprod + namespace: budibase + chart: charts/budibase + token: ${{ github.token }} + values: | + globals.appVersion: ${{ steps.previoustag.outputs.tag }} + value-files: >- + [ + "charts/budibase/values.yaml" + ] + env: + KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' diff --git a/package.json b/package.json index 63de8251d4..93bf843622 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "build": "lerna run build", "publishdev": "lerna run publishdev", "publishnpm": "yarn build && lerna publish --force-publish", - "release": "yarn build && lerna publish patch --yes --force-publish", + "release": "lerna publish patch --yes --force-publish", "release:develop": "yarn build && lerna publish prerelease --yes --force-publish --dist-tag develop", "restore": "yarn run clean && yarn run bootstrap && yarn run build", "nuke": "yarn run nuke:packages && yarn run nuke:docker", From 44ea0dc0e376b26718305caaa151d73e49bbd06d Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 17 Dec 2021 15:02:25 +0100 Subject: [PATCH 53/61] yaml definition for release job --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1cd35e810b..512432a3d7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -72,7 +72,8 @@ jobs: chart: charts/budibase token: ${{ github.token }} values: | - globals.appVersion: ${{ steps.previoustag.outputs.tag }} + globals: + appVersion: ${{ steps.previoustag.outputs.tag }} value-files: >- [ "charts/budibase/values.yaml" From e086859c7a2f386f8d0c2135effc85b99b60ffde Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 17 Dec 2021 15:27:46 +0100 Subject: [PATCH 54/61] adding preprod deploy --- .github/workflows/deploy-cloud.yaml | 2 +- .github/workflows/release.yml | 9 ++++++++- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 74693e3848..26422a2e7b 100644 --- a/.github/workflows/deploy-cloud.yaml +++ b/.github/workflows/deploy-cloud.yaml @@ -56,6 +56,6 @@ jobs: uses: tsickert/discord-webhook@v4.0.0 with: webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} - content: "Production Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to budibase cloud." + content: "Production Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Budibase Cloud." embed-title: ${{ env.RELEASE_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 512432a3d7..56c66603d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Budibase Release on: push: branches: - - test + - master env: POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} @@ -80,3 +80,10 @@ jobs: ] env: KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' + + - name: Discord Webhook Action + uses: tsickert/discord-webhook@v4.0.0 + with: + webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} + content: "Preprod Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Budibase Pre-prod." + embed-title: ${{ env.RELEASE_VERSION }} diff --git a/package.json b/package.json index 93bf843622..929576a691 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "publishdev": "lerna run publishdev", "publishnpm": "yarn build && lerna publish --force-publish", "release": "lerna publish patch --yes --force-publish", - "release:develop": "yarn build && lerna publish prerelease --yes --force-publish --dist-tag develop", + "release:develop": "lerna publish prerelease --yes --force-publish --dist-tag develop", "restore": "yarn run clean && yarn run bootstrap && yarn run build", "nuke": "yarn run nuke:packages && yarn run nuke:docker", "nuke:packages": "yarn run restore", From 2b5d1a105a1e004fd2eadba455a608e58a6f6317 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Fri, 17 Dec 2021 15:46:06 +0100 Subject: [PATCH 55/61] use standard values.yaml --- .github/workflows/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 56c66603d4..12d3271237 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,10 +74,10 @@ jobs: values: | globals: appVersion: ${{ steps.previoustag.outputs.tag }} - value-files: >- - [ - "charts/budibase/values.yaml" - ] + # value-files: >- + # [ + # "charts/budibase/values.yaml" + # ] env: KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' From 50ae72b1f08efb505b94778e085834bf58be2392 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Fri, 17 Dec 2021 14:52:40 +0000 Subject: [PATCH 56/61] v1.0.26 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index a20a306a2e..fff668e69f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.25", + "version": "1.0.26", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 137abf4426..5a6c17e847 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.25", + "version": "1.0.26", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 9414c6afd4..2e7aea7113 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.25", + "version": "1.0.26", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 99227ed494..4e06812dfd 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.25", + "version": "1.0.26", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.25", - "@budibase/client": "^1.0.25", + "@budibase/bbui": "^1.0.26", + "@budibase/client": "^1.0.26", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.25", + "@budibase/string-templates": "^1.0.26", "@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 cd8aefff20..e82b9c0672 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.25", + "version": "1.0.26", "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 4a0a0e125b..db44f8ea73 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.25", + "version": "1.0.26", "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.0.25", + "@budibase/bbui": "^1.0.26", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.25", + "@budibase/string-templates": "^1.0.26", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index ae4dd8f3ff..d2b76cb3bd 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.25", + "version": "1.0.26", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -69,9 +69,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.25", - "@budibase/client": "^1.0.25", - "@budibase/string-templates": "^1.0.25", + "@budibase/auth": "^1.0.26", + "@budibase/client": "^1.0.26", + "@budibase/string-templates": "^1.0.26", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index da00e5f001..d81e207e48 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.25", + "version": "1.0.26", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index f1978e4f0a..12a3c959ab 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.25", + "version": "1.0.26", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.25", - "@budibase/string-templates": "^1.0.25", + "@budibase/auth": "^1.0.26", + "@budibase/string-templates": "^1.0.26", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 89ce9c8e88d2dfb80f89671cc22c387e419c84d0 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 20 Dec 2021 08:52:16 +0000 Subject: [PATCH 57/61] preprod job for testing in isolation --- .github/workflows/deploy-preprod.yml | 59 ++++++++++++++++++++++++++++ .github/workflows/release.yml | 46 +++++++++++----------- 2 files changed, 82 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/deploy-preprod.yml diff --git a/.github/workflows/deploy-preprod.yml b/.github/workflows/deploy-preprod.yml new file mode 100644 index 0000000000..ce789e71ec --- /dev/null +++ b/.github/workflows/deploy-preprod.yml @@ -0,0 +1,59 @@ +name: Budibase Release Preprod + +on: + workflow_dispatch: + +env: + POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} + INTERCOM_TOKEN: ${{ secrets.INTERCOM_TOKEN }} + POSTHOG_URL: ${{ secrets.POSTHOG_URL }} + SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-west-1 + + - name: 'Get Previous tag' + id: previoustag + uses: "WyriHaximus/github-action-get-previous-tag@v1" + + # - name: Pull values.yaml from budibase-infra + # run: | + # curl -H "Authorization: token ${{ secrets.GH_PERSONAL_TOKEN }}" \ [c3a7a9d12] + # -H 'Accept: application/vnd.github.v3.raw' \ + # -o values.preprod.yaml \ + # -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml + + - name: Deploy to Preprod Environment + uses: deliverybot/helm@v1 + with: + release: budibase-preprod + namespace: budibase + chart: charts/budibase + token: ${{ github.token }} + values: | + globals: + appVersion: ${{ steps.previoustag.outputs.tag }} + # value-files: >- + # [ + # "charts/budibase/values.yaml" + # ] + env: + KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' + + - name: Discord Webhook Action + uses: tsickert/discord-webhook@v4.0.0 + with: + webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} + content: "Preprod Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Budibase Pre-prod." + embed-title: ${{ env.RELEASE_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 12d3271237..859d89f18b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Budibase Release on: push: branches: - - master + - test env: POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }} @@ -64,26 +64,26 @@ jobs: # -o values.preprod.yaml \ # -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml - - name: Deploy to Preprod Environment - uses: deliverybot/helm@v1 - with: - release: budibase-preprod - namespace: budibase - chart: charts/budibase - token: ${{ github.token }} - values: | - globals: - appVersion: ${{ steps.previoustag.outputs.tag }} - # value-files: >- - # [ - # "charts/budibase/values.yaml" - # ] - env: - KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' + # - name: Deploy to Preprod Environment + # uses: deliverybot/helm@v1 + # with: + # release: budibase-preprod + # namespace: budibase + # chart: charts/budibase + # token: ${{ github.token }} + # values: | + # globals: + # appVersion: ${{ steps.previoustag.outputs.tag }} + # # value-files: >- + # # [ + # # "charts/budibase/values.yaml" + # # ] + # env: + # KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}' - - name: Discord Webhook Action - uses: tsickert/discord-webhook@v4.0.0 - with: - webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} - content: "Preprod Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Budibase Pre-prod." - embed-title: ${{ env.RELEASE_VERSION }} + # - name: Discord Webhook Action + # uses: tsickert/discord-webhook@v4.0.0 + # with: + # webhook-url: ${{ secrets.PROD_DEPLOY_WEBHOOK_URL }} + # content: "Preprod Deployment Complete: ${{ env.RELEASE_VERSION }} deployed to Budibase Pre-prod." + # embed-title: ${{ env.RELEASE_VERSION }} From f32176590abd02e7ad21b25ff8f4421502a22e22 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 20 Dec 2021 09:12:27 +0000 Subject: [PATCH 58/61] adding swagger parser dep --- packages/server/package.json | 1 + packages/server/yarn.lock | 783 +---------------------------------- 2 files changed, 18 insertions(+), 766 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index 292a11296c..a2d31afe07 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -69,6 +69,7 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { + "@apidevtools/swagger-parser": "^10.0.3", "@budibase/auth": "^1.0.26", "@budibase/client": "^1.0.26", "@budibase/string-templates": "^1.0.26", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 8e2c9db352..b136fa5c00 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -983,30 +983,6 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/auth@^1.0.19-alpha.1": - version "1.0.22" - resolved "https://registry.yarnpkg.com/@budibase/auth/-/auth-1.0.22.tgz#a93ea2fea46e00138ad3fa129c9ea19b056654e2" - integrity sha512-eHCNEzGl6HxYlMpfRTXBokq2ALTK5f+CDSgJmGaL/jfPc2NlzCI5NoigZUkSrdwDiYZnnWLfDDR4dArYyLlFuA== - dependencies: - "@techpass/passport-openidconnect" "^0.3.0" - aws-sdk "^2.901.0" - bcryptjs "^2.4.3" - cls-hooked "^4.2.2" - ioredis "^4.27.1" - jsonwebtoken "^8.5.1" - koa-passport "^4.1.4" - lodash "^4.17.21" - lodash.isarguments "^3.1.0" - node-fetch "^2.6.1" - passport-google-auth "^1.0.2" - passport-google-oauth "^2.0.0" - passport-jwt "^4.0.0" - passport-local "^1.0.0" - sanitize-s3-objectkey "^0.0.1" - tar-fs "^2.1.1" - uuid "^8.3.2" - zlib "^1.0.5" - "@budibase/bbui@^0.9.139": version "0.9.187" resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-0.9.187.tgz#84f0a37301cfa41f50eaa335243ac08923d9e34f" @@ -1056,95 +1032,6 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/bbui@^1.0.22": - version "1.0.22" - resolved "https://registry.yarnpkg.com/@budibase/bbui/-/bbui-1.0.22.tgz#ac3bd3a8699bd0be84aac3c5dff9d093e5b08462" - integrity sha512-8/5rXEOwkr0OcQD1fn5GpmI3d5dS1cIJBAODjTVtlZrTdacwlz5W2j3zIh+CBG0X7zhVxEze3zs2b1vDNTvK6A== - dependencies: - "@adobe/spectrum-css-workflow-icons" "^1.2.1" - "@spectrum-css/actionbutton" "^1.0.1" - "@spectrum-css/actiongroup" "^1.0.1" - "@spectrum-css/avatar" "^3.0.2" - "@spectrum-css/button" "^3.0.1" - "@spectrum-css/buttongroup" "^3.0.2" - "@spectrum-css/checkbox" "^3.0.2" - "@spectrum-css/dialog" "^3.0.1" - "@spectrum-css/divider" "^1.0.3" - "@spectrum-css/dropzone" "^3.0.2" - "@spectrum-css/fieldgroup" "^3.0.2" - "@spectrum-css/fieldlabel" "^3.0.1" - "@spectrum-css/icon" "^3.0.1" - "@spectrum-css/illustratedmessage" "^3.0.2" - "@spectrum-css/inlinealert" "^2.0.1" - "@spectrum-css/inputgroup" "^3.0.2" - "@spectrum-css/label" "^2.0.10" - "@spectrum-css/link" "^3.1.1" - "@spectrum-css/menu" "^3.0.1" - "@spectrum-css/modal" "^3.0.1" - "@spectrum-css/pagination" "^3.0.3" - "@spectrum-css/picker" "^1.0.1" - "@spectrum-css/popover" "^3.0.1" - "@spectrum-css/progressbar" "^1.0.2" - "@spectrum-css/progresscircle" "^1.0.2" - "@spectrum-css/radio" "^3.0.2" - "@spectrum-css/search" "^3.0.2" - "@spectrum-css/sidenav" "^3.0.2" - "@spectrum-css/statuslight" "^3.0.2" - "@spectrum-css/stepper" "^3.0.3" - "@spectrum-css/switch" "^1.0.2" - "@spectrum-css/table" "^3.0.1" - "@spectrum-css/tabs" "^3.0.1" - "@spectrum-css/tags" "^3.0.2" - "@spectrum-css/textfield" "^3.0.1" - "@spectrum-css/toast" "^3.0.1" - "@spectrum-css/tooltip" "^3.0.3" - "@spectrum-css/treeview" "^3.0.2" - "@spectrum-css/typography" "^3.0.1" - "@spectrum-css/underlay" "^2.0.9" - "@spectrum-css/vars" "^3.0.1" - dayjs "^1.10.4" - svelte-flatpickr "^3.2.3" - svelte-portal "^1.0.0" - -"@budibase/client@^1.0.19-alpha.1": - version "1.0.22" - resolved "https://registry.yarnpkg.com/@budibase/client/-/client-1.0.22.tgz#80d6c3fb2b57a050199dde4a4b3e82b221601c25" - integrity sha512-Cpao7l2lIWyJZJs8+zq1wFnQGaWRTDiRG+HkkjvqQZDkZexlo89zWPkY56NBbMT1qAXd6K3zAdRNNKVCBCtOaA== - dependencies: - "@budibase/bbui" "^1.0.22" - "@budibase/standard-components" "^0.9.139" - "@budibase/string-templates" "^1.0.22" - regexparam "^1.3.0" - shortid "^2.2.15" - svelte-spa-router "^3.0.5" - -"@budibase/handlebars-helpers@^0.11.7": - version "0.11.7" - resolved "https://registry.yarnpkg.com/@budibase/handlebars-helpers/-/handlebars-helpers-0.11.7.tgz#8e5f9843d7dd10503e9f608555a96ccf4d836c46" - integrity sha512-PvGHAv22cWSFExs1kc0WglwsmCEUEOqWvSp6JCFZwtc3qAAr5yMfLK8WGVQ63ALvyzWZiyxF+yrlzeeaohCMJw== - dependencies: - array-sort "^1.0.0" - define-property "^2.0.2" - extend-shallow "^3.0.2" - for-in "^1.0.2" - get-object "^0.2.0" - get-value "^3.0.1" - handlebars "^4.7.7" - handlebars-utils "^1.0.6" - has-value "^2.0.2" - helper-date "^1.0.1" - helper-markdown "^1.0.0" - helper-md "^0.2.2" - html-tag "^2.0.0" - is-even "^1.0.0" - is-glob "^4.0.1" - kind-of "^6.0.3" - micromatch "^3.1.5" - relative "^3.0.2" - striptags "^3.1.1" - to-gfm-code-block "^0.1.1" - year "^0.2.1" - "@budibase/standard-components@^0.9.139": version "0.9.139" resolved "https://registry.yarnpkg.com/@budibase/standard-components/-/standard-components-0.9.139.tgz#cf8e2b759ae863e469e50272b3ca87f2827e66e3" @@ -1163,18 +1050,6 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/string-templates@^1.0.19-alpha.1", "@budibase/string-templates@^1.0.22": - version "1.0.22" - resolved "https://registry.yarnpkg.com/@budibase/string-templates/-/string-templates-1.0.22.tgz#b795c61e53d541c0aa346a90d04b50dcca6ae117" - integrity sha512-1ZhxzL75kVhP44fJlCWwqmGIPjZol1eB/xi3O11xJPYQ7lfzeJcGUpksvlgbLgBlw+MKkgppK7gEoMP247E0Qw== - dependencies: - "@budibase/handlebars-helpers" "^0.11.7" - dayjs "^1.10.4" - handlebars "^4.7.6" - handlebars-utils "^1.0.6" - lodash "^4.17.20" - vm2 "^3.9.4" - "@bull-board/api@3.7.0", "@bull-board/api@^3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.7.0.tgz#231f687187c0cb34e0b97f463917b6aaeb4ef6af" @@ -2098,11 +1973,6 @@ resolved "https://registry.yarnpkg.com/@spectrum-css/illustratedmessage/-/illustratedmessage-3.0.8.tgz#69ef0c935bcc5027f233a78de5aeb0064bf033cb" integrity sha512-HvC4dywDi11GdrXQDCvKQ0vFlrXLTyJuc9UKf7meQLCGoJbGYDBwe+tHXNK1c6gPMD9BoL6pPMP1K/vRzR4EBQ== -"@spectrum-css/inlinealert@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@spectrum-css/inlinealert/-/inlinealert-2.0.6.tgz#4c5e923a1f56a96cc1adb30ef1f06ae04f2c6376" - integrity sha512-OpvvoWP02wWyCnF4IgG8SOPkXymovkC9cGtgMS1FdDubnG3tJZB/JeKTsRR9C9Vt3WBaOmISRdSKlZ4lC9CFzA== - "@spectrum-css/inputgroup@^3.0.2": version "3.0.8" resolved "https://registry.yarnpkg.com/@spectrum-css/inputgroup/-/inputgroup-3.0.8.tgz#fc23afc8a73c24d17249c9d2337e8b42085b298b" @@ -2252,17 +2122,6 @@ dependencies: defer-to-connect "^1.0.1" -"@techpass/passport-openidconnect@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@techpass/passport-openidconnect/-/passport-openidconnect-0.3.2.tgz#f8fd5d97256286665dbf26dac92431f977ab1e63" - integrity sha512-fnCtEiexXSHA029B//hJcCJlLJrT3lhpNCyA0rnz58Qttz0BLGCVv6yMT8HmOnGThH6vcDOVwdgKM3kbCQtEhw== - dependencies: - base64url "^3.0.1" - oauth "^0.9.15" - passport-strategy "^1.0.0" - request "^2.88.0" - webfinger "^0.4.2" - "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -3127,7 +2986,7 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^1.0.10, argparse@^1.0.7: +argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -3174,15 +3033,6 @@ array-equal@^1.0.0: resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= -array-sort@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" - integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== - dependencies: - default-compare "^1.0.0" - get-value "^2.0.6" - kind-of "^5.0.2" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -3230,13 +3080,6 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -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-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" @@ -3259,13 +3102,6 @@ async@^3.1.0: resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== -async@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc" - integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw= - dependencies: - lodash "^4.14.0" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -3281,13 +3117,6 @@ atomic-sleep@^1.0.0: resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== -autolinker@~0.28.0: - version "0.28.1" - resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47" - integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc= - dependencies: - gulp-header "^1.7.1" - aws-sdk@^2.767.0: version "2.1030.0" resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1030.0.tgz#24a856af3d2b8b37c14a8f59974993661c66fd82" @@ -3303,21 +3132,6 @@ aws-sdk@^2.767.0: uuid "3.3.2" xml2js "0.4.19" -aws-sdk@^2.901.0: - version "2.1046.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1046.0.tgz#9147b0fa1c86acbebd1a061e951ab5012f4499d7" - integrity sha512-ocwHclMXdIA+NWocUyvp9Ild3/zy2vr5mHp3mTyodf0WU5lzBE8PocCVLSWhMAXLxyia83xv2y5f5AzAcetbqA== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.15.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - uuid "3.3.2" - xml2js "0.4.19" - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -3500,11 +3314,6 @@ base64-js@^1.0.2, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64url@3.x.x, base64url@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" - integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== - base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -3525,7 +3334,7 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bcryptjs@2.4.3, bcryptjs@^2.4.3: +bcryptjs@2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= @@ -3570,15 +3379,6 @@ bl@^3.0.0: dependencies: readable-stream "^3.0.1" -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - bluebird@^3.5.1, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -3926,11 +3726,6 @@ chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -4017,15 +3812,6 @@ clone-response@1.0.2, clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -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" @@ -4181,13 +3967,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-with-sourcemaps@*: - version "1.1.0" - resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" - integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== - dependencies: - source-map "^0.6.1" - condense-newlines@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" @@ -4434,13 +4213,6 @@ date-utils@*: resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64" integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q= -date.js@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.3.tgz#ef1e92332f507a638795dbb985e951882e50bbda" - integrity sha512-HgigOS3h3k6HnW011nAb43c5xx5rBXk8P2v/WIT9Zv4koIaVXiH2BURguI78VVp+5Qc076T7OR378JViCnZtBw== - dependencies: - debug "~3.1.0" - dateformat@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -4584,13 +4356,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -default-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" - integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== - dependencies: - kind-of "^5.0.2" - default-shell@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/default-shell/-/default-shell-1.0.1.tgz#752304bddc6174f49eb29cb988feea0b8813c8bc" @@ -4860,13 +4625,6 @@ 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: - 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== - dependencies: - shimmer "^1.2.0" - emittery@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" @@ -4907,7 +4665,7 @@ encoding-down@^6.3.0: level-codec "^9.0.0" level-errors "^2.0.0" -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -4929,11 +4687,6 @@ enhanced-resolve@^5.8.3: graceful-fs "^4.2.4" tapable "^2.2.0" -ent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - entities@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" @@ -5868,11 +5621,6 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-exists-sync@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" - integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= - fs-extra@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -5945,14 +5693,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -get-object@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/get-object/-/get-object-0.2.0.tgz#d92ff7d5190c64530cda0543dac63a3d47fe8c0c" - integrity sha1-2S/31RkMZFMM2gVD2sY6PUf+jAw= - dependencies: - is-number "^2.0.2" - isobject "^0.2.0" - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -6015,13 +5755,6 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -get-value@^3.0.0, get-value@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8" - integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA== - dependencies: - isobject "^3.0.1" - getopts@2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz#67a0fe471cacb9c687d817cab6450b96dde8313b" @@ -6116,32 +5849,6 @@ globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -google-auth-library@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e" - integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24= - dependencies: - gtoken "^1.2.1" - jws "^3.1.4" - lodash.noop "^3.0.1" - request "^2.74.0" - -google-p12-pem@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177" - integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc= - dependencies: - node-forge "^0.7.1" - -googleapis@^16.0.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-16.1.0.tgz#0f19f2d70572d918881a0f626e3b1a2fa8629576" - integrity sha1-Dxny1wVy2RiIGg9ibjsaL6hilXY= - dependencies: - async "~2.1.4" - google-auth-library "~0.10.0" - string-template "~1.0.0" - got@^8.3.1: version "8.3.2" resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" @@ -6187,34 +5894,7 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1. resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -gtoken@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8" - integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w== - dependencies: - google-p12-pem "^0.1.0" - jws "^3.0.0" - mime "^1.4.1" - request "^2.72.0" - -gulp-header@^1.7.1: - version "1.8.12" - resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84" - integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ== - dependencies: - concat-with-sourcemaps "*" - lodash.template "^4.4.0" - through2 "^2.0.0" - -handlebars-utils@^1.0.2, handlebars-utils@^1.0.4, handlebars-utils@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/handlebars-utils/-/handlebars-utils-1.0.6.tgz#cb9db43362479054782d86ffe10f47abc76357f9" - integrity sha512-d5mmoQXdeEqSKMtQQZ9WkiUcO1E3tPbWxluCK9hVgIDPzQa9WsKo3Lbe/sGflTe7TomHEeZaOgwIkyIr1kfzkw== - dependencies: - kind-of "^6.0.0" - typeof-article "^0.1.1" - -handlebars@^4.7.6, handlebars@^4.7.7: +handlebars@^4.7.7: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== @@ -6296,14 +5976,6 @@ has-value@^1.0.0: has-values "^1.0.0" isobject "^3.0.0" -has-value@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-2.0.2.tgz#d0f12e8780ba8e90e66ad1a21c707fdb67c25658" - integrity sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA== - dependencies: - get-value "^3.0.0" - has-values "^2.0.1" - has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" @@ -6317,13 +5989,6 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has-values@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-2.0.1.tgz#3876200ff86d8a8546a9264a952c17d5fc17579d" - integrity sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w== - dependencies: - kind-of "^6.0.2" - has-yarn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" @@ -6336,39 +6001,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -helper-date@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/helper-date/-/helper-date-1.0.1.tgz#12fedea3ad8e44a7ca4c4efb0ff4104a5120cffb" - integrity sha512-wU3VOwwTJvGr/w5rZr3cprPHO+hIhlblTJHD6aFBrKLuNbf4lAmkawd2iK3c6NbJEvY7HAmDpqjOFSI5/+Ey2w== - dependencies: - date.js "^0.3.1" - handlebars-utils "^1.0.4" - moment "^2.18.1" - -helper-markdown@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/helper-markdown/-/helper-markdown-1.0.0.tgz#ee7e9fc554675007d37eb90f7853b13ce74f3e10" - integrity sha512-AnDqMS4ejkQK0MXze7pA9TM3pu01ZY+XXsES6gEE0RmCGk5/NIfvTn0NmItfyDOjRAzyo9z6X7YHbHX4PzIvOA== - dependencies: - handlebars-utils "^1.0.2" - highlight.js "^9.12.0" - remarkable "^1.7.1" - -helper-md@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/helper-md/-/helper-md-0.2.2.tgz#c1f59d7e55bbae23362fd8a0e971607aec69d41f" - integrity sha1-wfWdflW7riM2L9ig6XFgeuxp1B8= - dependencies: - ent "^2.2.0" - extend-shallow "^2.0.1" - fs-exists-sync "^0.1.0" - remarkable "^1.6.2" - -highlight.js@^9.12.0: - version "9.18.5" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825" - integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA== - hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -6398,14 +6030,6 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-tag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-tag/-/html-tag-2.0.0.tgz#36c3bc8d816fd30b570d5764a497a641640c2fed" - integrity sha512-XxzooSo6oBoxBEUazgjdXj7VwTn/iSTSZzTYKzYY6I916tkaYzypHxy+pbVU1h+0UQ9JlVf5XkNQyxOAiiQO1g== - dependencies: - is-self-closing "^1.0.1" - kind-of "^6.0.0" - http-assert@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f" @@ -6669,23 +6293,6 @@ ioredis@^4.27.0: redis-parser "^3.0.0" standard-as-callback "^2.1.0" -ioredis@^4.27.1: - version "4.28.2" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.2.tgz#493ccd5d869fd0ec86c96498192718171f6c9203" - integrity sha512-kQ+Iv7+c6HsDdPP2XUHaMv8DhnSeAeKEwMbaoqsXYbO+03dItXt7+5jGQDRyjdRUV2rFJbzg7P4Qt1iX2tqkOg== - dependencies: - cluster-key-slot "^1.1.0" - debug "^4.3.1" - denque "^1.1.0" - lodash.defaults "^4.2.0" - lodash.flatten "^4.4.0" - lodash.isarguments "^3.1.0" - p-map "^2.1.0" - redis-commands "1.7.0" - redis-errors "^1.2.0" - redis-parser "^3.0.0" - standard-as-callback "^2.1.0" - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -6810,13 +6417,6 @@ is-docker@^2.0.0, is-docker@^2.1.1: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-even@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-even/-/is-even-1.0.0.tgz#76b5055fbad8d294a86b6a949015e1c97b717c06" - integrity sha1-drUFX7rY0pSoa2qUkBXhyXtxfAY= - dependencies: - is-odd "^0.1.2" - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -6906,13 +6506,6 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" -is-number@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -6935,13 +6528,6 @@ is-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== -is-odd@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-0.1.2.tgz#bc573b5ce371ef2aad6e6f49799b72bef13978a7" - integrity sha1-vFc7XONx7yqtbm9JeZtyvvE5eKc= - dependencies: - is-number "^3.0.0" - is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -6987,13 +6573,6 @@ is-retry-allowed@^2.2.0: resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d" integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg== -is-self-closing@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-self-closing/-/is-self-closing-1.0.1.tgz#5f406b527c7b12610176320338af0fa3896416e4" - integrity sha512-E+60FomW7Blv5GXTlYee2KDrnG6srxF7Xt1SjrhWUGUEsTFIqY/nq2y3DaftCsgUMdh89V07IVfhY9KIJhLezg== - dependencies: - self-closing-tags "^1.0.1" - is-shared-array-buffer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" @@ -7086,11 +6665,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-0.2.0.tgz#a3432192f39b910b5f02cc989487836ec70aa85e" - integrity sha1-o0MhkvObkQtfAsyYlIeDbscKqF4= - isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -8142,22 +7716,6 @@ jsonschema@1.4.0: resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== -jsonwebtoken@^8.2.0, jsonwebtoken@^8.5.1: - version "8.5.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" - integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== - dependencies: - jws "^3.2.2" - lodash.includes "^4.3.0" - lodash.isboolean "^3.0.3" - lodash.isinteger "^4.0.4" - lodash.isnumber "^3.0.3" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.once "^4.0.0" - ms "^2.1.1" - semver "^5.6.0" - jsprim@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" @@ -8197,7 +7755,7 @@ jwa@^1.4.1: ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jws@3.x.x, jws@^3.0.0, jws@^3.1.4, jws@^3.2.2: +jws@3.x.x: version "3.2.2" resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== @@ -8224,7 +7782,7 @@ keyv@3.0.0, keyv@^3.0.0: dependencies: json-buffer "3.0.0" -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= @@ -8238,12 +7796,12 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0, kind-of@^5.0.2: +kind-of@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -8345,13 +7903,6 @@ koa-mount@^4.0.0: debug "^4.0.1" koa-compose "^4.1.0" -koa-passport@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/koa-passport/-/koa-passport-4.1.4.tgz#5f1665c1c2a37ace79af9f970b770885ca30ccfa" - integrity sha512-dJBCkl4X+zdYxbI2V2OtoGy0PUenpvp2ZLLWObc8UJhsId0iQpTFT8RVcuA0709AL2txGwRHnSPoT1bYNGa6Kg== - dependencies: - passport "^0.4.0" - koa-pino-logger@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba" @@ -8694,11 +8245,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -8719,46 +8265,16 @@ lodash.get@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= -lodash.includes@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" - integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= - lodash.isarguments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= -lodash.isboolean@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" - integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= - lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= -lodash.isinteger@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" - integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= - -lodash.isnumber@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" - integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= - lodash.keys@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" @@ -8774,21 +8290,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.noop@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" - integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw= - lodash.omit@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= -lodash.once@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= - lodash.pick@^4.0.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" @@ -8799,21 +8305,6 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.template@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.without@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" @@ -8824,7 +8315,7 @@ lodash.xor@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.xor/-/lodash.xor-4.5.0.tgz#4d48ed7e98095b0632582ba714d3ff8ae8fb1db6" integrity sha1-TUjtfpgJWwYyWCunFNP/iuj7HbY= -lodash@4.17.21, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0: +lodash@4.17.21, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9021,7 +8512,7 @@ methods@^1.0.1, methods@^1.1.1, methods@^1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -9122,11 +8613,6 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -9146,7 +8632,7 @@ moment-timezone@^0.5.31: dependencies: moment ">= 2.9.0" -"moment@>= 2.9.0", moment@^2.18.1: +"moment@>= 2.9.0": version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== @@ -9246,11 +8732,6 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nanoid@^2.1.0: - version "2.1.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" - integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -9325,11 +8806,6 @@ node-fetch@^2.6.1: dependencies: whatwg-url "^5.0.0" -node-forge@^0.7.1: - version "0.7.6" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" - integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== - node-gyp-build@~4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" @@ -9457,11 +8933,6 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -oauth@0.9.x, oauth@^0.9.15: - version "0.9.15" - resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" - integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= - object-assign@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" @@ -9772,84 +9243,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -passport-google-auth@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/passport-google-auth/-/passport-google-auth-1.0.2.tgz#8b300b5aa442ef433de1d832ed3112877d0b2938" - integrity sha1-izALWqRC70M94dgy7TESh30LKTg= - dependencies: - googleapis "^16.0.0" - passport-strategy "1.x" - -passport-google-oauth1@1.x.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-google-oauth1/-/passport-google-oauth1-1.0.0.tgz#af74a803df51ec646f66a44d82282be6f108e0cc" - integrity sha1-r3SoA99R7GRvZqRNgigr5vEI4Mw= - dependencies: - passport-oauth1 "1.x.x" - -passport-google-oauth20@2.x.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef" - integrity sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ== - dependencies: - passport-oauth2 "1.x.x" - -passport-google-oauth@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/passport-google-oauth/-/passport-google-oauth-2.0.0.tgz#f6eb4bc96dd6c16ec0ecfdf4e05ec48ca54d4dae" - integrity sha512-JKxZpBx6wBQXX1/a1s7VmdBgwOugohH+IxCy84aPTZNq/iIPX6u7Mqov1zY7MKRz3niFPol0KJz8zPLBoHKtYA== - dependencies: - passport-google-oauth1 "1.x.x" - passport-google-oauth20 "2.x.x" - -passport-jwt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065" - integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg== - dependencies: - jsonwebtoken "^8.2.0" - passport-strategy "^1.0.0" - -passport-local@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-local/-/passport-local-1.0.0.tgz#1fe63268c92e75606626437e3b906662c15ba6ee" - integrity sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4= - dependencies: - passport-strategy "1.x.x" - -passport-oauth1@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/passport-oauth1/-/passport-oauth1-1.2.0.tgz#5229d431781bf5b265bec86ce9a9cce58a756cf9" - integrity sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg== - dependencies: - oauth "0.9.x" - passport-strategy "1.x.x" - utils-merge "1.x.x" - -passport-oauth2@1.x.x: - version "1.6.1" - resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b" - integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ== - dependencies: - base64url "3.x.x" - oauth "0.9.x" - passport-strategy "1.x.x" - uid2 "0.0.x" - utils-merge "1.x.x" - -passport-strategy@1.x, passport-strategy@1.x.x, passport-strategy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" - integrity sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ= - -passport@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270" - integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg== - dependencies: - passport-strategy "1.x.x" - pause "0.0.1" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -9904,11 +9297,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pause@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" - integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10= - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -10632,7 +10020,7 @@ readable-stream@1.1.14, readable-stream@^1.0.27-1: isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -10773,16 +10161,6 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexparam@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-2.0.0.tgz#059476767d5f5f87f735fc7922d133fd1a118c8c" - integrity sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow== - -regexparam@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f" - integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g== - regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" @@ -10826,21 +10204,6 @@ regjsparser@^0.7.0: dependencies: jsesc "~0.5.0" -relative@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/relative/-/relative-3.0.2.tgz#0dcd8ec54a5d35a3c15e104503d65375b5a5367f" - integrity sha1-Dc2OxUpdNaPBXhBFA9ZTdbWlNn8= - dependencies: - isobject "^2.0.0" - -remarkable@^1.6.2, remarkable@^1.7.1: - version "1.7.4" - resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00" - integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg== - dependencies: - argparse "^1.0.10" - autolinker "~0.28.0" - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -10877,7 +10240,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.72.0, request@^2.74.0, request@^2.87.0, request@^2.88.0: +request@^2.87.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -11089,11 +10452,6 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sanitize-s3-objectkey@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/sanitize-s3-objectkey/-/sanitize-s3-objectkey-0.0.1.tgz#efa9887cd45275b40234fb4bb12fc5754fe64e7e" - integrity sha512-ZTk7aqLxy4sD40GWcYWoLfbe05XLmkKvh6vGKe13ADlei24xlezcvjgKy1qRArlaIbIMYaqK7PCalvZtulZlaQ== - saslprep@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" @@ -11106,7 +10464,7 @@ sax@1.2.1: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" integrity sha1-e45lYZCyKOgaZq6nSEgNgozS03o= -sax@>=0.1.1, sax@>=0.6.0, sax@^1.2.4: +sax@>=0.6.0, sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -11139,11 +10497,6 @@ seek-bzip@^1.0.5: dependencies: commander "^2.8.1" -self-closing-tags@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/self-closing-tags/-/self-closing-tags-1.0.1.tgz#6c5fa497994bb826b484216916371accee490a5d" - integrity sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA== - semver-diff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" @@ -11151,7 +10504,7 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -11262,18 +10615,6 @@ shell-path@^2.1.0: dependencies: shell-env "^0.3.0" -shimmer@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" - integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== - -shortid@^2.2.15: - version "2.2.16" - resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" - integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g== - dependencies: - nanoid "^2.1.0" - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -11548,11 +10889,6 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" 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-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" @@ -11600,11 +10936,6 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= -step@0.0.x: - version "0.0.6" - resolved "https://registry.yarnpkg.com/step/-/step-0.0.6.tgz#143e7849a5d7d3f4a088fe29af94915216eeede2" - integrity sha1-FD54SaXX0/SgiP4pr5SRUhbu7eI= - strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -11623,11 +10954,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-template@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" - integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y= - string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -11761,11 +11087,6 @@ strip-outer@^1.0.0: dependencies: escape-string-regexp "^1.0.2" -striptags@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052" - integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw== - style-loader@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" @@ -11860,13 +11181,6 @@ svelte-portal@^1.0.0: resolved "https://registry.yarnpkg.com/svelte-portal/-/svelte-portal-1.0.0.tgz#36a47c5578b1a4d9b4dc60fa32a904640ec4cdd3" integrity sha512-nHf+DS/jZ6jjnZSleBMSaZua9JlG5rZv9lOGKgJuaZStfevtjIlUJrkLc3vbV8QdBvPPVmvcjTlazAzfKu0v3Q== -svelte-spa-router@^3.0.5: - version "3.2.0" - resolved "https://registry.yarnpkg.com/svelte-spa-router/-/svelte-spa-router-3.2.0.tgz#fae3311d292451236cb57131262406cf312b15ee" - integrity sha512-igemo5Vs82TGBBw+DjWt6qKameXYzNs6aDXcTxou5XbEvOjiRcAM6MLkdVRCatn6u8r42dE99bt/br7T4qe/AQ== - dependencies: - regexparam "2.0.0" - svelte@^3.38.2: version "3.44.1" resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.44.1.tgz#5cc772a8340f4519a4ecd1ac1a842325466b1a63" @@ -11947,16 +11261,6 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - tar-stream@^1.5.2: version "1.6.2" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" @@ -11970,17 +11274,6 @@ tar-stream@^1.5.2: to-buffer "^1.1.1" xtend "^4.0.0" -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - tarn@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/tarn/-/tarn-1.1.5.tgz#7be88622e951738b9fa3fb77477309242cdddc2d" @@ -12172,11 +11465,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -to-gfm-code-block@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82" - integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI= - to-json-schema@0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/to-json-schema/-/to-json-schema-0.2.5.tgz#ef3c3f11ad64460dcfbdbafd0fd525d69d62a98f" @@ -12413,13 +11701,6 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typeof-article@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/typeof-article/-/typeof-article-0.1.1.tgz#9f07e733c3fbb646ffa9e61c08debacd460e06af" - integrity sha1-nwfnM8P7tkb/qeYcCN66zUYOBq8= - dependencies: - kind-of "^3.1.0" - typescript@^4.3.5: version "4.3.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" @@ -12435,11 +11716,6 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf" integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g== -uid2@0.0.x: - version "0.0.4" - resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44" - integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA== - unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" @@ -12643,11 +11919,6 @@ util.promisify@^1.0.0, util.promisify@^1.0.1: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.1" -utils-merge@1.x.x: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - uuid@3.3.2, uuid@^3.1.0, uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" @@ -12712,7 +11983,7 @@ verror@1.3.6: dependencies: extsprintf "1.0.2" -vm2@^3.9.3, vm2@^3.9.4: +vm2@^3.9.3: version "3.9.5" resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496" integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng== @@ -12751,14 +12022,6 @@ watchpack@^2.2.0: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -webfinger@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/webfinger/-/webfinger-0.4.2.tgz#3477a6d97799461896039fcffc650b73468ee76d" - integrity sha1-NHem2XeZRhiWA5/P/GULc0aO520= - dependencies: - step "0.0.x" - xml2js "0.1.x" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -13075,13 +12338,6 @@ xml-parse-from-string@^1.0.0: resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= -xml2js@0.1.x: - version "0.1.14" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.1.14.tgz#5274e67f5a64c5f92974cd85139e0332adc6b90c" - integrity sha1-UnTmf1pkxfkpdM2FE54DMq3GuQw= - dependencies: - sax ">=0.1.1" - xml2js@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" @@ -13223,11 +12479,6 @@ yauzl@^2.4.2: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -year@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/year/-/year-0.2.1.tgz#4083ae520a318b23ec86037f3000cb892bdf9bb0" - integrity sha1-QIOuUgoxiyPshgN/MADLiSvfm7A= - ylru@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" @@ -13249,7 +12500,7 @@ z-schema@^5.0.1: optionalDependencies: commander "^2.7.1" -zlib@1.0.5, zlib@^1.0.5: +zlib@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0" integrity sha1-bnyXL8NxxkWmr7A6sUdp3vEU/MA= From 961d9ea4aa93fabc282e3b0327d2dcac4d797ab9 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Mon, 20 Dec 2021 09:21:52 +0000 Subject: [PATCH 59/61] v1.0.27-alpha.0 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index fff668e69f..6bc599b3e9 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.26", + "version": "1.0.27-alpha.0", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index 5a6c17e847..e50241dd65 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.26", + "version": "1.0.27-alpha.0", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 2e7aea7113..0ae4471dd9 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.26", + "version": "1.0.27-alpha.0", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index 4e06812dfd..a175abb8cf 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.26", + "version": "1.0.27-alpha.0", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.26", - "@budibase/client": "^1.0.26", + "@budibase/bbui": "^1.0.27-alpha.0", + "@budibase/client": "^1.0.27-alpha.0", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.26", + "@budibase/string-templates": "^1.0.27-alpha.0", "@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 e82b9c0672..098a155b63 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.26", + "version": "1.0.27-alpha.0", "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 db44f8ea73..23671710e2 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.26", + "version": "1.0.27-alpha.0", "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.0.26", + "@budibase/bbui": "^1.0.27-alpha.0", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.26", + "@budibase/string-templates": "^1.0.27-alpha.0", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index a2d31afe07..2b4d3808c2 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.26", + "version": "1.0.27-alpha.0", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/auth": "^1.0.26", - "@budibase/client": "^1.0.26", - "@budibase/string-templates": "^1.0.26", + "@budibase/auth": "^1.0.27-alpha.0", + "@budibase/client": "^1.0.27-alpha.0", + "@budibase/string-templates": "^1.0.27-alpha.0", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index d81e207e48..08c2fd20d6 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.26", + "version": "1.0.27-alpha.0", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 12a3c959ab..0e856c68bb 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.26", + "version": "1.0.27-alpha.0", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.26", - "@budibase/string-templates": "^1.0.26", + "@budibase/auth": "^1.0.27-alpha.0", + "@budibase/string-templates": "^1.0.27-alpha.0", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0", From 6d41fc16f59794dc37f3880ea8b27da52091e94b Mon Sep 17 00:00:00 2001 From: "Olivier@Diogenes" Date: Wed, 22 Dec 2021 16:13:51 +0100 Subject: [PATCH 60/61] Add frenchtranslation for the README. --- i18n/README.fr.md | 214 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 214 insertions(+) create mode 100644 i18n/README.fr.md diff --git a/i18n/README.fr.md b/i18n/README.fr.md new file mode 100644 index 0000000000..12abd4d073 --- /dev/null +++ b/i18n/README.fr.md @@ -0,0 +1,214 @@ +

+ + Budibase + +

+

+ Budibase +

+ +

+ La plateform low-code que vous aimerez utiliser +

+

+ Budibase est une plateforme low-code open source et c'est la façon la plus facile de créer des outils internes qui améliore la productivité. +

+ +

+ 🤖 🎨 🚀 +

+
+ +

+ Budibase design ui +

+ +

+ + GitHub toutes les releases + + + GitHub release (par ordre chronologique) + + + Suivre @budibase + + Code de conduite + + + +

+ +

+ Commencer + · + Documentation + · + Demandes d'amélioration + · + Signaler un bug + · + Support: Discussions +

+ +

+## ✨ Fontionnalités + +### Construire et déployer un vrai logiciel +Contrairement à d'autres plateformes, avec Budibase vous construisez et déployez des applications one-page. Les applications Budibase sont très perfomantes et peuvent être designées de manière responsive, offrant ainsi à vos utilisateurs une expérience exceptionnelle. +

+ +### Source libre et extensible +Budibase est un logiciel libre - sous licence GPL v3. Cela devrait vous rassurer sur le fait que Budibase sera toujours là. Vous pouvez également coder dans Budibase ou le forker et apporter des modifications à votre guise, ce qui en fera une expérience conviviale pour les développeurs. +

+ +### Importer les données ou partir de zéro +Budibase peut tirer ses données de plusieurs sources, dont MongoDB, CouchDB, PostgreSQL, MySQL, Airtable, S3, DynamoDB ou une API REST. Et contrairement à d'autres plateformes, avec Budibase, vous pouvez partir de zéro et créer des applications métier sans aucune source de données. [Demander une nouvelle source de données](https://github.com/Budibase/budibase/discussions?discussions_q=category%3AIdeas). + +

+ Budibase data +

+

+ +### Concevoir et créer des applications à l'aide de composants prédéfinis. + +Budibase est livré avec des composants joliment conçus et puissants que vous pouvez utiliser comme des blocs de construction pour bâtir votre interface utilisateur. Nous exposons également un grand nombre de vos options de style CSS préférées afin que vous puissiez faire preuve d'une créativité accrue. [Demander un nouveau composant](https://github.com/Budibase/budibase/discussions?discussions_q=category%3AIdeas). + +

+ Budibase design +

+

+ +### Automatiser les processus, intégrer d'autres outils et se connecter à des webhooks +Gagnez du temps en automatisant les processus manuels et les flux de travail. Qu'il s'agisse de se connecter à des webhooks ou d'automatiser des e-mails, il suffit de dire à Budibase ce qu'il doit faire et de le laisser travailler pour vous. Vous pouvez aisément [créer une nouvelle automatisation pour Budibase ici](https://github.com/Budibase/automations) ou [Demander une nouvelle automatisation](https://github.com/Budibase/budibase/discussions?discussions_q=category%3AIdeas). + +

+ Budibase automations +

+

+ +### Intégration avec vos outils préférés +Budibase s'intègre à un certain nombre d'outils populaires, ce qui vous permet de créer des applications qui s'adaptent parfaitement à votre pile technologique. + +

+ Budibase integrations +

+

+ +### Paradis des admins +Budibase est conçu pour évoluer. Avec Budibase, vous pouvez vous auto-héberger sur votre propre infrastructure et gérer globalement les utilisateurs, l'accueil, le SMTP, les applications, les groupes, l'apparence et plus encore. Vous pouvez également fournir aux utilisateurs/groupes un portail d'applications et confier la gestion des utilisateurs au responsable du groupe. + +- Regardez la vidéo de promotion: https://youtu.be/xoljVpty_Kw + +


+ +## 🏁 Commencer + + + +Déployez Budibase en auto-hébergement dans votre infrastructure existante, en utilisant Docker, Kubernetes et Digital Ocean. +Ou utilisez Budibase Cloud si vous n'avez pas besoin de vous auto-héberger, et que vous souhaitez démarrer rapidement. + +### [Commencer avec Budibase](https://budibase.com) + + +

+ +## 🎓 Apprendre Budibase + +La documentation Budibase [est ic](https://docs.budibase.com). +
+ + +

+ +## 💬 Communauté + +Si vous avez une question ou si vous souhaitez discuter avec d'autres utilisateurs de Budibase et rejoindre notre communauté, veuillez vous rendre à l'adresse suivante : [Discussions Github](https://github.com/Budibase/budibase/discussions) + +


+ + +## ❗ Code de conduite + +Budibase s'engage à offrir à chacun une expérience accueillante, diversifiée et exempte de harcèlement. Nous attendons de tous les membres de la communauté Budibase qu'ils se conforment aux principes de notre [**Code de conduite**](https://github.com/Budibase/budibase/blob/HEAD/.github/CODE_OF_CONDUCT.md). Merci de le lire. +
+ + +

+ + +## 🙌 Contribuer à Budibase + +Qu'il s'agisse d'ouvrir un rapport de bug ou de créer une Pull request, toute contribution est appréciée et bienvenue. Si vous envisagez de mettre en œuvre une nouvelle fonctionnalité ou de modifier l'API, veuillez d'abord créer un Issue. Nous pourrons ainsi nous assurer que votre travail n'est pas vain. + +### Vous ne savez pas par où commencer ? +Un bon endroit pour commencer à contribuer, c'est ici : [Projets en cours](https://github.com/Budibase/budibase/projects/22). + +### Comment le repo est-il organisé ? +Budibase est une monorepo gérée par lerna. Lerna gère la construction et la publication des paquets de Budibase. Voici, à un haut niveau, les paquets qui composent Budibase. + +- [packages/builder](https://github.com/Budibase/budibase/tree/HEAD/packages/builder) - contient le code pour l'application svelte côté client du budibase builder. + +- [packages/client](https://github.com/Budibase/budibase/tree/HEAD/packages/client) - Un module qui s'exécute dans le navigateur et qui est chargé de lire les définitions JSON et de créer des applications web vivantes à partir de celles-ci.. + +- [packages/server](https://github.com/Budibase/budibase/tree/HEAD/packages/server) - Le serveur budibase. Cette application Koa est responsable de servir le JS pour les applications builder et budibase, ainsi que de fournir l'API pour l'interaction avec la base de données et le système de fichiers. + +Pour plus d'informations, voir [CONTRIBUTING.md](https://github.com/Budibase/budibase/blob/HEAD/.github/CONTRIBUTING.md) + +

+ + +## 📝 Licence + +Budibase est open source, sous licence de [GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html). Les bibliothèques du client et des composants sont sous licence [MPL](https://directory.fsf.org/wiki/License:MPL-2.0) - afin que les applications que vous créez puissent être utilisées sous licence comme vous le souhaitez. + +

+ +## ⭐ Stargazers dans le temps + +[![Stargazers dans le temps](https://starchart.cc/Budibase/budibase.svg)](https://starchart.cc/Budibase/budibase) + +Si vous rencontrez des problèmes entre les mises à jour du builder, veuillez utiliser le guide suivant [ici](https://github.com/Budibase/budibase/blob/HEAD/.github/CONTRIBUTING.md#troubleshooting) pour nettoyer votre environnement. + +

+ +## Contributeurs ✨ + +Merci à ces personnes merveilleuses ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Martin McKeaveney

💻 📖 ⚠️ 🚇

Michael Drury

📖 💻 ⚠️ 🚇

Andrew Kingston

📖 💻 ⚠️ 🎨

Michael Shanks

📖 💻 ⚠️

Kevin Åberg Kultalahti

📖 💻 ⚠️

Joe

📖 💻 🖋 🎨

Rory Powell

💻 📖 ⚠️

Peter Clement

💻 📖 ⚠️

Conor_Mack

💻 ⚠️

pngwn

💻 ⚠️

HugoLd

💻

victoriasloan

💻

yashank09

💻

SOVLOOKUP

💻

seoulaja

🌍

Maurits Lourens

⚠️ 💻

Rory Powell

🚇 ⚠️ 💻
+ + + + + + +Ce projet suit la spécification [all-contributors](https://allcontributors.org/docs/fr/overview). Les contributions de toute nature sont les bienvenues ! From e463ae652ad96e0f9a01ca4b2a4b601fae0a3037 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Fri, 31 Dec 2021 14:12:45 +0000 Subject: [PATCH 61/61] v1.0.27-alpha.1 --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/bbui/package.json | 2 +- packages/builder/package.json | 8 ++++---- packages/cli/package.json | 2 +- packages/client/package.json | 6 +++--- packages/server/package.json | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lerna.json b/lerna.json index 6bc599b3e9..de5f6bf3a5 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.27-alpha.0", + "version": "1.0.27-alpha.1", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/auth/package.json b/packages/auth/package.json index e50241dd65..d0d082ecbe 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/auth", - "version": "1.0.27-alpha.0", + "version": "1.0.27-alpha.1", "description": "Authentication middlewares for budibase builder and apps", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 0ae4471dd9..4a775e3a67 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.27-alpha.0", + "version": "1.0.27-alpha.1", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", diff --git a/packages/builder/package.json b/packages/builder/package.json index a175abb8cf..cb9aa0397b 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.27-alpha.0", + "version": "1.0.27-alpha.1", "license": "GPL-3.0", "private": true, "scripts": { @@ -65,10 +65,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.27-alpha.0", - "@budibase/client": "^1.0.27-alpha.0", + "@budibase/bbui": "^1.0.27-alpha.1", + "@budibase/client": "^1.0.27-alpha.1", "@budibase/colorpicker": "1.1.2", - "@budibase/string-templates": "^1.0.27-alpha.0", + "@budibase/string-templates": "^1.0.27-alpha.1", "@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 098a155b63..f71c65aca6 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.27-alpha.0", + "version": "1.0.27-alpha.1", "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 23671710e2..8379c58970 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.27-alpha.0", + "version": "1.0.27-alpha.1", "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.0.27-alpha.0", + "@budibase/bbui": "^1.0.27-alpha.1", "@budibase/standard-components": "^0.9.139", - "@budibase/string-templates": "^1.0.27-alpha.0", + "@budibase/string-templates": "^1.0.27-alpha.1", "regexparam": "^1.3.0", "shortid": "^2.2.15", "svelte-spa-router": "^3.0.5" diff --git a/packages/server/package.json b/packages/server/package.json index 2b4d3808c2..8923a88a8b 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "1.0.27-alpha.0", + "version": "1.0.27-alpha.1", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,9 +70,9 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/auth": "^1.0.27-alpha.0", - "@budibase/client": "^1.0.27-alpha.0", - "@budibase/string-templates": "^1.0.27-alpha.0", + "@budibase/auth": "^1.0.27-alpha.1", + "@budibase/client": "^1.0.27-alpha.1", + "@budibase/string-templates": "^1.0.27-alpha.1", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 08c2fd20d6..d9dd0655bd 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.27-alpha.0", + "version": "1.0.27-alpha.1", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/worker/package.json b/packages/worker/package.json index 0e856c68bb..18cf155259 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "1.0.27-alpha.0", + "version": "1.0.27-alpha.1", "description": "Budibase background service", "main": "src/index.js", "repository": { @@ -29,8 +29,8 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/auth": "^1.0.27-alpha.0", - "@budibase/string-templates": "^1.0.27-alpha.0", + "@budibase/auth": "^1.0.27-alpha.1", + "@budibase/string-templates": "^1.0.27-alpha.1", "@koa/router": "^8.0.0", "@sentry/node": "^6.0.0", "@techpass/passport-openidconnect": "^0.3.0",