From 42a3cea202c9d87c532e50a4006e784645aedce8 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 e96055183..1df94576b 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 0509c07ed..8e3a96eb5 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 c922b4879..1edbcf2ef 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 9305b8626..fc0281eee 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 767f691ad..edb13e260 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 1793a755b..bc3b0008c 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 9f668610f..56c59ca7e 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 163b17442..cfddfa62c 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 01baa1783..a5655f9d0 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 ec89146978a8d9932928abe2f51def9303d090ec 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 8dce3ee3c..933edd36b 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 2277f25df69120189dc41d8b3b470e1b94abdb46 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 1df94576b..bf55a962e 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 8e3a96eb5..e52f9a709 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 1edbcf2ef..fe263f00a 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 fc0281eee..1c453b692 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 edb13e260..e7a29fcb1 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 bc3b0008c..6d4652189 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 56c59ca7e..f2f2f3945 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 cfddfa62c..46c93d136 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 a5655f9d0..96e43c54c 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 ec82cf02e9065a0ccae51ac2b6f159b43406ab38 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 602ffbf42..cec5af291 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 7233b765d9b1420f826cf2c46e94468214840ade 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 bf55a962e..b1e3393b1 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 e52f9a709..e49048800 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 fe263f00a..fcabff4d5 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 1c453b692..c1668f69c 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 e7a29fcb1..6bce451ba 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 6d4652189..1407c6b51 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 f2f2f3945..c9162033c 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 46c93d136..17dfe4e79 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 96e43c54c..bce44c0ef 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 ac49d718a46ca7a73f74dca31efc3316c5a7183d 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 838646d80..d17477060 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 10c2c1215..582bbc5ad 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 8d6dc14608c0d0d256c9988b4df8904e495a0fc7 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 c99d89c2d..933d6b101 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 ae580f65e..61e1ae021 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 d87a98c73..bfda4fbd4 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 582bbc5ad..bba3c87d6 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 600677ff8864cb274892484b98edce74bd12241d 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 933edd36b..500eb4290 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 c3a7a9d1220b90bf44ca3fdc233d3d3c68e00c10 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 b1e3393b1..09d7a43df 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 e49048800..74897f1b2 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 fcabff4d5..d86371c55 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 c1668f69c..85e43edaa 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 6bce451ba..de319745a 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 1407c6b51..2f40808ae 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 c9162033c..579535f0e 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 17dfe4e79..005d6304f 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 bce44c0ef..f1e09ebf6 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 187ca44884ebe1d6e2d33d7776f588d8491c7d69 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 3eaebde03..65dad9d01 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 43fe2407e1bc10c979883e6ae7c33c797d690055 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 51ff4412d..7d3531d23 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 5ee571ae5..9c6ae73c1 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 b31bb9be1d879764955b8c1747c11c691760258a 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 ee615b8bf..efec755b9 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 53dba1cccb07a3f9436ceaf741044d6a0db2640a 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 65dad9d01..9d036e21c 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 c4afd8488..78ff8e15c 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 d3c8d7d08..1f49b0b26 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 a70b0f02f..c387f0b49 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 df9d23a6b..1f30a6769 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 841473a4f..05337579a 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 f0637c335..01d1e8d6b 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 6e58e9aae..d9c96963a 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 bba3c87d6..4fa43b9f8 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 ff2f63d53..8e2c9db35 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 ed29ccf7eb2147c3bb28ab559be5cd0e0a3eab2f 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 95f52236a..49cbc3f82 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 df41f5daf..83974b09f 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 ce977c433..4ad31c385 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 7346199a3cb7c0835c78646167cf68d6fc6d6d70 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 4ad31c385..0297b4c53 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 ae5b96311526e5f19c84603b4084fb525f7af871 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 11ee28dbe..fc9e2a21f 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 6b0d021e9..6921a6543 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 000000000..13e9daf71 --- /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 06490c5fa622f69bf957d347d95a2ab27adb69a4 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 f87e5b741..5fae7b4e8 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 6c1d98912..d2413b4af 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 01b72b6b71fbce85fd79f2079f9d9cfd530a2b9e 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 13e9daf71..48b40d700 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 ef06566eb52f8b29f7a128bb53e9dcf0fe5e0390 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 5fae7b4e8..1817f780d 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 d2413b4af..6cfa67062 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 07b2a411a4d03c3205149b5add56e13815fb4f29 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 af6067558..0dcb1f46e 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 7cbafdade..bb5c78c11 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 7466d3717..3ae1e89c1 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 c3050f8b6..4efb679a5 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 bcdcd9648..9e0ee26bc 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 - - - {#if cloud} - - {/if} - - - + + Welcome to Budibase + + Manage your apps and get a head start with templates + + + +
+ + + + + +
-
- 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}
-
-
- +
-
- -
- {#each filteredApps as app (app.appId)} - - {/each} -
+ +
+ {#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 91923f237020ec2edc2f1f8ddca1aed716049a3f 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 9e0ee26bc..ffcd45bcb 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 dab5d20183634016ddbab700caf14120a3ac9b5b 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 3ae1e89c1..bda7356a8 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 8d196edfd1d5e04af7f2cd7d1212adb70a7f263c 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 ffcd45bcb..336489be8 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 2f89f19bc4baad8a6637e0fcac357d34302044e5 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 09d7a43df..69ed33511 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 74897f1b2..9d16403ea 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 d86371c55..05a3ed357 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 85e43edaa..20facfe5b 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 de319745a..3b6b1cd81 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 2f40808ae..77d789f3d 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 97ab57724..0cf885596 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 005d6304f..5e8905762 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 f1e09ebf6..727072d73 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 e84add083036aacbec72c8cbc3a7ce4130e9883b 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 69ed33511..77c04f639 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 9d16403ea..7725aaf6b 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 05a3ed357..32aade3de 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 20facfe5b..01c77719c 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 3b6b1cd81..7b624bc49 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 77d789f3d..bf6e0a9c7 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 0cf885596..6493adafe 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 5e8905762..73a15ce37 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 727072d73..8036cb80c 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 11a208d42e6dc743b94f77499d652b2e7a994ade 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 | 67 ++++++++++++++----------- .github/workflows/release.yml | 23 ++++++++- budibase-1.0.0.tgz | Bin 0 -> 42683 bytes scripts/latest_budibase_version.sh | 0 6 files changed, 101 insertions(+), 72 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 000000000..778029bf0 --- /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 500eb4290..000000000 --- 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 4fc8a9835..16f38ec6f 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 d4142f7ac..43d5eb7b1 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 000000000..e69de29bb From d9ef7dad2966981488e80f2d6940f6256b741620 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 e69de29bb..000000000 From 97283dd58ad9d429a990a85e80583f52d9570fad 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 16f38ec6f..5e2e59634 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 5e1ffbbdfdaeec1aa5cd18ce69ef291900b375cd 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 5e2e59634..3f274e31f 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 426f60044e00c1c5c492550bec78d137d79e984a 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 3f274e31f..c34e1dac2 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 5ee4d4950a06a4bed070070fe7e174d7b49f388d 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 43d5eb7b1..8768a01c7 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 95a6e7ba53df54b6d4413b6668bae3f2504d8c42 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 09d7a43df..2d5e3c1ef 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 74897f1b2..7d360ce9f 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 d86371c55..c017bd8de 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 85e43edaa..b8b329a85 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 de319745a..a4d619ac2 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 2f40808ae..9b78f3408 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 579535f0e..3e53763be 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 005d6304f..7816c2283 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 f1e09ebf6..86b4841af 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 3f6994ea911c9a81a9d78d0c231843010b025b9d 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 c34e1dac2..933fee947 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 12d3b0ccae61fabe8ce3289b12f491237884a95d 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 2d5e3c1ef..7c6b6f801 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 7d360ce9f..25a5a6369 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 c017bd8de..cd2d02738 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 b8b329a85..77fdaa9f5 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 a4d619ac2..68551d8cd 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 9b78f3408..74781039e 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 3e53763be..0cbd44daa 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 7816c2283..99d2f5729 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 86b4841af..41b40012a 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 fe7dc39d489af335f7883f0a70a149a36a868965 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 778029bf0..b7c4c8ae1 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 933fee947..e377407b1 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 8768a01c7..46687ce0b 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 3b1ef2fb3fc4c69ac3bd48f0b51671c41576f6f7 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 b7c4c8ae1..a2cad316f 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 e377407b1..1d1ee381b 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 7c86e098ae93f1121071dfda0a3e5c39054065d5 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 1d1ee381b..2a31eccf2 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 44d0bd0f9f03ea1ee68ce8d1e910c886aac658e3 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 a2cad316f..af6971c61 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 367fca1c3bdfbc3588b5a0ebdac60902c0373247 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 af6971c61..1f99a2919 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 f8f9c63c1671983a62e49d672261d9910b88f8f3 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 | 36 +++++++++++++------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/.github/workflows/deploy-cloud.yaml b/.github/workflows/deploy-cloud.yaml index 1f99a2919..0951a9d9e 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 2a31eccf2..89edf9fb3 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: Perform github release - # run: | - # echo release - # env: - # GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" \ No newline at end of file + - 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 + 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 270ad7bf7b989189201c59228988952587b684e1 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 89edf9fb3..2533e4c1a 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 21ffc618569f206d74afc1fcbccf0ff746b9e1c3 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 2533e4c1a..b2ca69c27 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 75eff0bbd8fd348c6cb60e7a564aba3e2a09c48d 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 0951a9d9e..751640965 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 b2ca69c27..ff54d8081 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 fe053ff6195e224496cb8aa2ebe6ee2e685c0e17 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 ff54d8081..7fbdadadf 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 7b656234bb5e98b0cd5c0012f48ed6e3ee2c2633 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 751640965..5e722989e 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 19f09d188ab092a352a8cbcf359896afdaec64ca 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 5e722989e..8e162441d 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 8f32aaabf2d6e428976a9cd9f859c87eed015b57 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 8e162441d..5444ae8e8 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 7fbdadadf..a7072b689 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 46687ce0b..3464e93da 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 2c668b99ce9a62d05c48712cd36e3f9db6e4a9d3 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 5444ae8e8..ee86bb07c 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 4356a8485332aafc1800ff74b40a0c22ada5ec1a 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 25a774dc7..bab1f25c0 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 5887fb6e9b28c494d4676c952169ebb692e13fe2 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 a7072b689..9a6b75959 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 3464e93da..f6068fe8c 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 382b86689a90ef561bd06d9020ee3d1400052d19 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 7c6b6f801..a20a306a2 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 25a5a6369..137abf442 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 cd2d02738..9414c6afd 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 77fdaa9f5..99227ed49 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 68551d8cd..cd8aefff2 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 74781039e..4a0a0e125 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 0cbd44daa..ae4dd8f3f 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 99d2f5729..da00e5f00 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 41b40012a..f1978e4f0 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 c42bb0fa40b00e3b60db4858077a02ae3e3839ba 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 ee86bb07c..74693e384 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 9a6b75959..3e2e5ca6b 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 f6068fe8c..1cd35e810 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 63de8251d..93bf84362 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 df469c978454501cf4809069956910948048cc02 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 1cd35e810..512432a3d 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 1348df0cb0eef0215751188e60c3c0d8b70f01d4 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 74693e384..26422a2e7 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 512432a3d..56c66603d 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 93bf84362..929576a69 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 f94aaee8ee3bf4868fd8c4eea2057579839d8b03 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 56c66603d..12d327123 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 6ebc345b6523efdd0ac77ea4c7e392918aff0757 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 a20a306a2..fff668e69 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 137abf442..5a6c17e84 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 9414c6afd..2e7aea711 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 99227ed49..4e06812df 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 cd8aefff2..e82b9c067 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 4a0a0e125..db44f8ea7 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 ae4dd8f3f..d2b76cb3b 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 da00e5f00..d81e207e4 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 f1978e4f0..12a3c959a 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 725f7d0ea2737f6cbc5c77c4574615c08b4036e4 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 000000000..ce789e71e --- /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 12d327123..859d89f18 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 bace84fa9183e931b60884ceb6a04ca46bc6ec3c 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 292a11296..a2d31afe0 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 8e2c9db35..b136fa5c0 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 02df048171ce810a73736b68d1209e06c46f854d 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 fff668e69..6bc599b3e 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 5a6c17e84..e50241dd6 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 2e7aea711..0ae4471dd 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 4e06812df..a175abb8c 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 e82b9c067..098a155b6 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 db44f8ea7..23671710e 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 a2d31afe0..2b4d3808c 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 d81e207e4..08c2fd20d 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 12a3c959a..0e856c68b 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 a52de9c3afc55a2cfcc14e2f195e47a7e2287081 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 000000000..12abd4d07 --- /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 45e6e45098a50b224d1155bcc4d8b1bfefc1fe23 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 6bc599b3e..de5f6bf3a 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 e50241dd6..d0d082ecb 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 0ae4471dd..4a775e3a6 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 a175abb8c..cb9aa0397 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 098a155b6..f71c65aca 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 23671710e..8379c5897 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 2b4d3808c..8923a88a8 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 08c2fd20d..d9dd0655b 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 0e856c68b..18cf15525 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",