From bc72b63579c117869b89b96318f50dab00dbcc57 Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Wed, 22 Jun 2022 15:58:15 +0100 Subject: [PATCH 01/10] Use raw sql to get money type as numeric --- packages/server/src/definitions/common.ts | 1 + packages/server/src/integrations/base/sql.ts | 22 ++++++++++++++++-- packages/server/yarn.lock | 24 ++++++++++++-------- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/packages/server/src/definitions/common.ts b/packages/server/src/definitions/common.ts index 4aec0d103d..f7e5a9a049 100644 --- a/packages/server/src/definitions/common.ts +++ b/packages/server/src/definitions/common.ts @@ -12,6 +12,7 @@ export interface Application extends Base { export interface FieldSchema { // TODO: replace with field types enum when done type: string + externalType?: string fieldName?: string name: string tableId?: string diff --git a/packages/server/src/integrations/base/sql.ts b/packages/server/src/integrations/base/sql.ts index 782f61e49e..6b054b2872 100644 --- a/packages/server/src/integrations/base/sql.ts +++ b/packages/server/src/integrations/base/sql.ts @@ -89,6 +89,24 @@ function parseFilters(filters: SearchFilters | undefined): SearchFilters { return filters } +function generateSelectStatement(json: QueryJson, knex: Knex): any[] { + const { resource, meta } = json + const schema = meta?.table?.schema + return resource.fields.map(field => { + const shortFieldName = field.match(/(?<=\.).*$/g)?.[0] + if (shortFieldName) { + const externalType = schema?.[shortFieldName].externalType + if (externalType?.includes("money")) { + const fieldName = field.split(/\./g) + return knex.raw( + `"${fieldName?.[0]}"."${fieldName?.[1]}"::money::numeric as "${field}"` + ) + } + } + return `${field} as ${field}` + }) +} + class InternalBuilder { private readonly client: string @@ -323,12 +341,12 @@ class InternalBuilder { if (!resource) { resource = { fields: [] } } - let selectStatement: string | string[] = "*" + let selectStatement: string | any[] = "*" // handle select if (resource.fields && resource.fields.length > 0) { // select the resources as the format "table.columnName" - this is what is provided // by the resource builder further up - selectStatement = resource.fields.map(field => `${field} as ${field}`) + selectStatement = generateSelectStatement(json, knex) } let foundLimit = limit || BASE_LIMIT // handle pagination diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index 2c61b9aa49..e8277b88b5 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,11 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@1.0.207-alpha.3": - version "1.0.207-alpha.3" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.0.207-alpha.3.tgz#98bced0575ec4e2b158239a8c73b39ca2d816719" - integrity sha512-DU4X6jJ+DfhzOv4TTa1w4Dk5ZEdlK/z1joCTruT+SGM5qI75bXrGeol5OX2OaEbNKtXFKJ1zeVTmBCYcu7OFUg== +"@budibase/backend-core@1.0.207-alpha.6": + version "1.0.207-alpha.6" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-1.0.207-alpha.6.tgz#47fed5cc78686e23951a050479c777673f725c17" + integrity sha512-mB3i9TyNbdlE8TmsAWGXhphwLRlrBd2bDfvOYTz3CP7xzql1FXGoWfOqA87vNaGBDrtOyQQnmbYeTc3Tn2OHcg== dependencies: + "@budibase/types" "^1.0.207-alpha.6" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" bcrypt "5.0.1" @@ -1175,12 +1176,12 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@1.0.207-alpha.3": - version "1.0.207-alpha.3" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.0.207-alpha.3.tgz#9bde845ceb685f1b43286a124620c21fdf891a01" - integrity sha512-WFEMujpKTVAMvAgLBnMdw8ou9PxsbM4Oa9Dq+DAUsWpPACsMWOProyHLsdRxJyvHlgGfwVjo5MEusvStjI4j6g== +"@budibase/pro@1.0.207-alpha.6": + version "1.0.207-alpha.6" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-1.0.207-alpha.6.tgz#04a81281beeb230c0c1a1f48237a94e1150a7851" + integrity sha512-IDQdKHaojfGlL8xLSQ1gYrLyipgUYPJ6Mjrrp8TcWnpwTOA2Wtzen31E5HG6YxZU8g8rN6k9S0Nsp88JKOGSrg== dependencies: - "@budibase/backend-core" "1.0.207-alpha.3" + "@budibase/backend-core" "1.0.207-alpha.6" node-fetch "^2.6.1" "@budibase/standard-components@^0.9.139": @@ -1201,6 +1202,11 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" +"@budibase/types@^1.0.207-alpha.6": + version "1.0.208" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-1.0.208.tgz#c45cb494fb5b85229e15a34c6ac1805bae5be867" + integrity sha512-zKIHg6TGK+soVxMNZNrGypP3DCrd3jhlUQEFeQ+rZR6/tCue1G74bjzydY5FjnLEsXeLH1a0hkS5HulTmvQ2bA== + "@bull-board/api@3.7.0": version "3.7.0" resolved "https://registry.yarnpkg.com/@bull-board/api/-/api-3.7.0.tgz#231f687187c0cb34e0b97f463917b6aaeb4ef6af" From 0fb46ca4655cba1244fbf54473c4896a04e0ab39 Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Wed, 22 Jun 2022 16:13:02 +0100 Subject: [PATCH 02/10] Only cast money as numeric for Postgres --- packages/server/src/integrations/base/sql.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/src/integrations/base/sql.ts b/packages/server/src/integrations/base/sql.ts index 6b054b2872..87243c073e 100644 --- a/packages/server/src/integrations/base/sql.ts +++ b/packages/server/src/integrations/base/sql.ts @@ -94,7 +94,7 @@ function generateSelectStatement(json: QueryJson, knex: Knex): any[] { const schema = meta?.table?.schema return resource.fields.map(field => { const shortFieldName = field.match(/(?<=\.).*$/g)?.[0] - if (shortFieldName) { + if (shortFieldName && knex.client.config.client === "pg") { const externalType = schema?.[shortFieldName].externalType if (externalType?.includes("money")) { const fieldName = field.split(/\./g) From 60060fac6f82ef95f314c61abd54613c12ec5b3c Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Thu, 23 Jun 2022 09:14:22 +0100 Subject: [PATCH 03/10] Improve Couch DB URL parsing to handle edge cases and special characters --- packages/backend-core/src/db/pouch.js | 49 ++++++++++----- .../backend-core/src/db/tests/pouch.spec.js | 62 +++++++++++++++++++ 2 files changed, 97 insertions(+), 14 deletions(-) create mode 100644 packages/backend-core/src/db/tests/pouch.spec.js diff --git a/packages/backend-core/src/db/pouch.js b/packages/backend-core/src/db/pouch.js index 76390ac644..59b7ff8ae7 100644 --- a/packages/backend-core/src/db/pouch.js +++ b/packages/backend-core/src/db/pouch.js @@ -1,21 +1,42 @@ const PouchDB = require("pouchdb") const env = require("../environment") -function getUrlInfo() { - let url = env.COUCH_DB_URL - let username, password, host - const [protocol, rest] = url.split("://") - if (url.includes("@")) { - const hostParts = rest.split("@") - host = hostParts[1] - const authParts = hostParts[0].split(":") - username = authParts[0] - password = authParts[1] - } else { - host = rest +exports.getUrlInfo = (url = env.COUCH_DB_URL) => { + let cleanUrl, username, password, host + if (url) { + // Ensure the URL starts with a protocol + const protoRegex = /^https?:\/\//i + if (!protoRegex.test(url)) { + url = `http://${url}` + } + + // Split into protocol and remainder + const split = url.split("://") + const protocol = split[0] + const rest = split.slice(1).join("://") + + // Extract auth if specified + if (url.includes("@")) { + // Split into host and remainder + let parts = rest.split("@") + host = parts[parts.length - 1] + let auth = parts.slice(0, -1).join("@") + + // Split auth into username and password + if (auth.includes(":")) { + const authParts = auth.split(":") + username = authParts[0] + password = authParts.slice(1).join(":") + } else { + username = auth + } + } else { + host = rest + } + cleanUrl = `${protocol}://${host}` } return { - url: `${protocol}://${host}`, + url: cleanUrl, auth: { username, password, @@ -24,7 +45,7 @@ function getUrlInfo() { } exports.getCouchInfo = () => { - const urlInfo = getUrlInfo() + const urlInfo = exports.getUrlInfo() let username let password if (env.COUCH_DB_USERNAME) { diff --git a/packages/backend-core/src/db/tests/pouch.spec.js b/packages/backend-core/src/db/tests/pouch.spec.js new file mode 100644 index 0000000000..30cdd0f5ec --- /dev/null +++ b/packages/backend-core/src/db/tests/pouch.spec.js @@ -0,0 +1,62 @@ +require("../../../tests/utilities/TestConfiguration") +const getUrlInfo = require("../pouch").getUrlInfo + +describe("pouch", () => { + describe("Couch DB URL parsing", () => { + it("should handle a null Couch DB URL", () => { + const info = getUrlInfo(null) + expect(info.url).toBeUndefined() + expect(info.auth.username).toBeUndefined() + }) + it("should be able to parse a basic Couch DB URL", () => { + const info = getUrlInfo("http://host.com") + expect(info.url).toBe("http://host.com") + expect(info.auth.username).toBeUndefined() + }) + it("should be able to parse a Couch DB basic URL with HTTPS", () => { + const info = getUrlInfo("https://host.com") + expect(info.url).toBe("https://host.com") + expect(info.auth.username).toBeUndefined() + }) + it("should be able to parse a basic Couch DB URL with a custom port", () => { + const info = getUrlInfo("https://host.com:1234") + expect(info.url).toBe("https://host.com:1234") + expect(info.auth.username).toBeUndefined() + }) + it("should be able to parse a Couch DB URL with auth", () => { + const info = getUrlInfo("https://user:pass@host.com:1234") + expect(info.url).toBe("https://host.com:1234") + expect(info.auth.username).toBe("user") + expect(info.auth.password).toBe("pass") + }) + it("should be able to parse a Couch DB URL with auth and special chars", () => { + const info = getUrlInfo("https://user:s:p@s://@://:d@;][~s@host.com:1234") + expect(info.url).toBe("https://host.com:1234") + expect(info.auth.username).toBe("user") + expect(info.auth.password).toBe("s:p@s://@://:d@;][~s") + }) + it("should be able to parse a Couch DB URL without a protocol", () => { + const info = getUrlInfo("host.com:1234") + expect(info.url).toBe("http://host.com:1234") + expect(info.auth.username).toBeUndefined() + }) + it("should be able to parse a Couch DB URL with auth and without a protocol", () => { + const info = getUrlInfo("user:s:p@s://@://:d@;][~s@host.com:1234") + expect(info.url).toBe("http://host.com:1234") + expect(info.auth.username).toBe("user") + expect(info.auth.password).toBe("s:p@s://@://:d@;][~s") + }) + it("should be able to parse a Couch DB URL with only username auth", () => { + const info = getUrlInfo("https://user@host.com:1234") + expect(info.url).toBe("https://host.com:1234") + expect(info.auth.username).toBe("user") + expect(info.auth.password).toBeUndefined() + }) + it("should be able to parse a Couch DB URL with only username auth and without a protocol", () => { + const info = getUrlInfo("user@host.com:1234") + expect(info.url).toBe("http://host.com:1234") + expect(info.auth.username).toBe("user") + expect(info.auth.password).toBeUndefined() + }) + }) +}) From 1d6f780c726be773bac9faf37db9964df8ebd2ad Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Thu, 23 Jun 2022 09:41:43 +0100 Subject: [PATCH 04/10] Refactor - simplify regex and use enum --- packages/server/src/integrations/base/sql.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/server/src/integrations/base/sql.ts b/packages/server/src/integrations/base/sql.ts index 87243c073e..c9841347a6 100644 --- a/packages/server/src/integrations/base/sql.ts +++ b/packages/server/src/integrations/base/sql.ts @@ -93,13 +93,14 @@ function generateSelectStatement(json: QueryJson, knex: Knex): any[] { const { resource, meta } = json const schema = meta?.table?.schema return resource.fields.map(field => { - const shortFieldName = field.match(/(?<=\.).*$/g)?.[0] - if (shortFieldName && knex.client.config.client === "pg") { - const externalType = schema?.[shortFieldName].externalType + const fieldNames = field.split(/\./g) + const tableName = fieldNames[0] + const columnName = fieldNames[1] + if (columnName && knex.client.config.client === SqlClients.POSTGRES) { + const externalType = schema?.[columnName].externalType if (externalType?.includes("money")) { - const fieldName = field.split(/\./g) return knex.raw( - `"${fieldName?.[0]}"."${fieldName?.[1]}"::money::numeric as "${field}"` + `"${tableName}"."${columnName}"::money::numeric as "${field}"` ) } } From b123be121d44457adaf8e9f072be94cf69b29a0c Mon Sep 17 00:00:00 2001 From: Rory Powell Date: Thu, 23 Jun 2022 10:02:57 +0100 Subject: [PATCH 05/10] Pro contributing and CI/CD docs --- .github/workflows/README.md | 75 ++++++++++++++++++++++++++++++++++++- docs/CONTRIBUTING.md | 15 ++++++++ 2 files changed, 88 insertions(+), 2 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 5929a0540a..c33665c964 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -6,7 +6,7 @@ Welcome to the budibase CI pipelines directory. This document details what each ## All CI Pipelines ### Note -- When running workflow dispatch jobs, ensure you always run them off the `master` branch. It defaults to `develop`, so double check before running any jobs. +- When running workflow dispatch jobs, ensure you always run them off the `master` branch. It defaults to `develop`, so double check before running any jobs. The exception to this case is the `deploy-release` job which requires the develop branch. ### Standard CI Build Job (budibase_ci.yml) Triggers: @@ -115,4 +115,75 @@ This job is responsible for deploying to our production, cloud kubernetes enviro ### Rollback A Bad Cloud Deployment - Kick off cloud deploy job - Ensure you are running off master -- Enter the version number of the last known good version of budibase. For example `1.0.0` \ No newline at end of file +- Enter the version number of the last known good version of budibase. For example `1.0.0` + +## Pro + +### Installing Pro + +The pro package is always installed from source in our CI jobs. + +This is done to prevent pro needing to be published prior to CI runs in budiabse. This is required for two reasons: +- To reduce developer need to manually bump versions, i.e: + - release pro, bump pro dep in budibase, now ci can run successfully +- The cyclic dependency on backend-core, i.e: + - pro depends on backend-core + - server depends on pro + - backend-core lives in the monorepo, so it can't be released independently to be used in pro + - therefore the only option is to pull pro from source and release it as a part of the monorepo release, as if it were a mono package + +The install is performed using the same steps as local development, via the `yarn bootstrap` command, see the [Contributing Guide#Pro](../CONTRIBUTING.md#pro) + +The branch to install pro from can vary depending on ref of the commit that triggered the budibase CI job. This is done to enable branches which have changes in both the monorepo and the pro repo to have their CI pass successfully. + +This is done using the [pro/install.sh](../../scripts/pro/install.sh) script. The script will: +- Clone pro to it's default branch (`develop`) +- Check if the clone worked, on forked versions of budibase this will fail due to no access + - This is fine as the `yarn` command will install the version from NPM + - Community PRs should never touch pro so this will always work +- Checkout the `BRANCH` argument, if this fails fallback to `BASE_BRANCH` + - This enables the more complex case of a feature branch being merged to another feature branch, e.g. + - I am working on a branch `epic/stonks` which exists on budibase and pro. + - I want to merge a change to this branch in budibase from `feature/stonks-ui`, which only exists in budibase + - The base branch ensures that `epic/stonks` in pro will still be checked out for the CI run, rather than falling back to `develop` +- Run `yarn setup` to build and install dependencies + - `yarn` + - `yarn bootstrap` + - `yarn build` + - The will build .ts files, and also update the `main` and `types` of `package.json` to point to `dist` rather than src + - The build command will only ever work in CI, it is prevented in local dev + +#### `BRANCH` and `BASE_BRANCH` arguments +These arguments are supplied by the various budibase build and release pipelines +- `budibase_ci` + - `BRANCH: ${{ github.event.pull_request.head.ref }}` -> The branch being merged + - `BASE_BRANCH: ${{ github.event.pull_request.base.ref}}` -> The base branch +- `release-develop` + - `BRANCH: develop` -> always use the `develop` branch in pro +- `release` + - `BRANCH: master` -> always use the `master` branch in pro + + +### Releasing Pro +After budibase dependencies have been released we will release the new version of pro to match the release version of budibase dependencies. This is to ensure that we are always keeping the version of `backend-core` in sync in the pro package and in budibase packages. Without this we could run into scenarios where different versions are being used when installed via `yarn` inside the docker images, creating very difficult to debug cases. + +Pro is released using the [pro/release.sh](../../scripts/pro/release.sh) script. The script will: +- Inspect the `VERSION` from the `lerna.json` file in budibase +- Determine whether to use the `latest` or `develop` tag based on the command argument +- Go to pro directory + - install npm creds + - update the version of `backend-core` to be `VERSION`, the version just released by lerna + - publish to npm. Uses a `lerna publish` command, pro itself is a mono repo. + - force the version to be the same as `VERSION` to keep pro and budibase in sync + - reverts the changes to `main` and `types` in `package.json` that were made by the build step, to point back to source + - commit & push: `Prep next development iteration` +- Go to budibase + - Update to the new version of pro in `server` and `worker` so the latest pro version is used in the docker builds + - commit & push: `Update pro version to $VERSION` + + +#### `COMMAND` argument +This argument is supplied by the existing `release` and `release:develop` budibase commands, which invoke the pro release +- `release` will supply no command and default to use `latest` +- `release:develop` will supply `develop` + diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 961e13ee33..531ed05749 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -190,6 +190,21 @@ yarn mode:account ``` ### CI An overview of the CI pipelines can be found [here](./workflows/README.md) + +### Pro + +@budibase/pro is the closed source package that supports licensed features in budibase. By default the package will be pulled from NPM and will not normally need to be touched in local development. If you require to update code inside the pro package it can be cloned to the same root level as budibase, e.g. + +``` +. +|_ budibase +|_ budibase-pro +``` + +Note that only budibase maintainers will be able to access the pro repo. + +The `yarn bootstrap` command can be used to replace the NPM supplied dependency with the local source aware version. This is achieved using the `yarn link` command. To see specifically how dependencies are linked see [scripts/link-dependencies.sh](../scripts/link-dependencies.sh). The same link script is used to link dependencies to account-portal in local dev. + ### Troubleshooting Sometimes, things go wrong. This can be due to incompatible updates on the budibase platform. To clear down your development environment and start again follow **Step 6. Cleanup**, then proceed from **Step 3. Install and Build** in the setup guide above to create a fresh Budibase installation. From 688a46f75ee14d05252c8aa26d8c6b6184801251 Mon Sep 17 00:00:00 2001 From: Mel O'Hagan Date: Thu, 23 Jun 2022 13:09:22 +0100 Subject: [PATCH 06/10] Added Knex.Raw to return type --- packages/server/src/integrations/base/sql.ts | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/server/src/integrations/base/sql.ts b/packages/server/src/integrations/base/sql.ts index c9841347a6..2758b6f1f1 100644 --- a/packages/server/src/integrations/base/sql.ts +++ b/packages/server/src/integrations/base/sql.ts @@ -89,7 +89,10 @@ function parseFilters(filters: SearchFilters | undefined): SearchFilters { return filters } -function generateSelectStatement(json: QueryJson, knex: Knex): any[] { +function generateSelectStatement( + json: QueryJson, + knex: Knex +): (string | Knex.Raw)[] { const { resource, meta } = json const schema = meta?.table?.schema return resource.fields.map(field => { @@ -235,9 +238,7 @@ class InternalBuilder { } addRelationships( - knex: Knex, query: KnexQuery, - fields: string | string[], fromTable: string, relationships: RelationshipsJson[] | undefined ): KnexQuery { @@ -342,7 +343,7 @@ class InternalBuilder { if (!resource) { resource = { fields: [] } } - let selectStatement: string | any[] = "*" + let selectStatement: string | (string | Knex.Raw)[] = "*" // handle select if (resource.fields && resource.fields.length > 0) { // select the resources as the format "table.columnName" - this is what is provided @@ -382,13 +383,7 @@ class InternalBuilder { preQuery = this.addSorting(preQuery, json) } // handle joins - query = this.addRelationships( - knex, - preQuery, - selectStatement, - tableName, - relationships - ) + query = this.addRelationships(preQuery, tableName, relationships) return this.addFilters(query, filters, { relationship: true }) } From bc263af550a5dcf03437c61d19e6e427694fef4a Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 23 Jun 2022 12:19:06 +0000 Subject: [PATCH 07/10] v1.0.207-alpha.7 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 2 +- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 28 insertions(+), 28 deletions(-) diff --git a/lerna.json b/lerna.json index b74beefaa1..eb7ce57b0c 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.207-alpha.6", + "version": "1.0.207-alpha.7", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 7d9348ddd4..21cc7a6a5e 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.207-alpha.6", + "version": "1.0.207-alpha.7", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^1.0.207-alpha.6", + "@budibase/types": "^1.0.207-alpha.7", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", "bcrypt": "5.0.1", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 17592216d7..239f193109 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.207-alpha.6", + "version": "1.0.207-alpha.7", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^1.0.207-alpha.6", + "@budibase/string-templates": "^1.0.207-alpha.7", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 89a383d00e..6269ea3ed8 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.207-alpha.6", + "version": "1.0.207-alpha.7", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.207-alpha.6", - "@budibase/client": "^1.0.207-alpha.6", - "@budibase/frontend-core": "^1.0.207-alpha.6", - "@budibase/string-templates": "^1.0.207-alpha.6", + "@budibase/bbui": "^1.0.207-alpha.7", + "@budibase/client": "^1.0.207-alpha.7", + "@budibase/frontend-core": "^1.0.207-alpha.7", + "@budibase/string-templates": "^1.0.207-alpha.7", "@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 b0f93a4d94..0c83df114b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.207-alpha.6", + "version": "1.0.207-alpha.7", "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 bdd8b4afb9..f79908517e 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.207-alpha.6", + "version": "1.0.207-alpha.7", "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.207-alpha.6", - "@budibase/frontend-core": "^1.0.207-alpha.6", - "@budibase/string-templates": "^1.0.207-alpha.6", + "@budibase/bbui": "^1.0.207-alpha.7", + "@budibase/frontend-core": "^1.0.207-alpha.7", + "@budibase/string-templates": "^1.0.207-alpha.7", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index bb7132ffd3..3145675aa7 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.0.207-alpha.6", + "version": "1.0.207-alpha.7", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^1.0.207-alpha.6", + "@budibase/bbui": "^1.0.207-alpha.7", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 0671e0af59..eef108626a 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.207-alpha.6", + "version": "1.0.207-alpha.7", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^1.0.207-alpha.6", - "@budibase/client": "^1.0.207-alpha.6", + "@budibase/backend-core": "^1.0.207-alpha.7", + "@budibase/client": "^1.0.207-alpha.7", "@budibase/pro": "1.0.207-alpha.6", - "@budibase/string-templates": "^1.0.207-alpha.6", - "@budibase/types": "^1.0.207-alpha.6", + "@budibase/string-templates": "^1.0.207-alpha.7", + "@budibase/types": "^1.0.207-alpha.7", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index dc994c3ae3..d0863d5a8e 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.207-alpha.6", + "version": "1.0.207-alpha.7", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index 2e285de409..b0e2e325b3 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.0.207-alpha.6", + "version": "1.0.207-alpha.7", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index f57086fa39..e6b0430871 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.207-alpha.6", + "version": "1.0.207-alpha.7", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -34,10 +34,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.207-alpha.6", + "@budibase/backend-core": "^1.0.207-alpha.7", "@budibase/pro": "1.0.207-alpha.6", - "@budibase/string-templates": "^1.0.207-alpha.6", - "@budibase/types": "^1.0.207-alpha.6", + "@budibase/string-templates": "^1.0.207-alpha.7", + "@budibase/types": "^1.0.207-alpha.7", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From c136b64b9fd67a852242db11b76194c392934d05 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 23 Jun 2022 12:20:51 +0000 Subject: [PATCH 08/10] Update pro version to 1.0.207-alpha.7 --- packages/server/package.json | 2 +- packages/worker/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index eef108626a..4393ce02b7 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "^1.0.207-alpha.7", "@budibase/client": "^1.0.207-alpha.7", - "@budibase/pro": "1.0.207-alpha.6", + "@budibase/pro": "1.0.207-alpha.7", "@budibase/string-templates": "^1.0.207-alpha.7", "@budibase/types": "^1.0.207-alpha.7", "@bull-board/api": "3.7.0", diff --git a/packages/worker/package.json b/packages/worker/package.json index e6b0430871..129fb88ce3 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -35,7 +35,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "^1.0.207-alpha.7", - "@budibase/pro": "1.0.207-alpha.6", + "@budibase/pro": "1.0.207-alpha.7", "@budibase/string-templates": "^1.0.207-alpha.7", "@budibase/types": "^1.0.207-alpha.7", "@koa/router": "8.0.8", From e1be0be29bbeabd576333dc153011152bda4bcb0 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 23 Jun 2022 13:01:28 +0000 Subject: [PATCH 09/10] v1.0.207-alpha.8 --- lerna.json | 2 +- packages/backend-core/package.json | 4 ++-- packages/bbui/package.json | 4 ++-- packages/builder/package.json | 10 +++++----- packages/cli/package.json | 2 +- packages/client/package.json | 8 ++++---- packages/frontend-core/package.json | 4 ++-- packages/server/package.json | 10 +++++----- packages/string-templates/package.json | 2 +- packages/types/package.json | 2 +- packages/worker/package.json | 8 ++++---- 11 files changed, 28 insertions(+), 28 deletions(-) diff --git a/lerna.json b/lerna.json index eb7ce57b0c..66c3adff04 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.207-alpha.7", + "version": "1.0.207-alpha.8", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 21cc7a6a5e..d69d57b88b 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.207-alpha.7", + "version": "1.0.207-alpha.8", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^1.0.207-alpha.7", + "@budibase/types": "^1.0.207-alpha.8", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", "bcrypt": "5.0.1", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 239f193109..dc5f87f506 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.207-alpha.7", + "version": "1.0.207-alpha.8", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^1.0.207-alpha.7", + "@budibase/string-templates": "^1.0.207-alpha.8", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", diff --git a/packages/builder/package.json b/packages/builder/package.json index 6269ea3ed8..dea257c126 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.207-alpha.7", + "version": "1.0.207-alpha.8", "license": "GPL-3.0", "private": true, "scripts": { @@ -69,10 +69,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.207-alpha.7", - "@budibase/client": "^1.0.207-alpha.7", - "@budibase/frontend-core": "^1.0.207-alpha.7", - "@budibase/string-templates": "^1.0.207-alpha.7", + "@budibase/bbui": "^1.0.207-alpha.8", + "@budibase/client": "^1.0.207-alpha.8", + "@budibase/frontend-core": "^1.0.207-alpha.8", + "@budibase/string-templates": "^1.0.207-alpha.8", "@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 0c83df114b..379724aaf2 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.207-alpha.7", + "version": "1.0.207-alpha.8", "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 f79908517e..5d7d7dfc98 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.207-alpha.7", + "version": "1.0.207-alpha.8", "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.207-alpha.7", - "@budibase/frontend-core": "^1.0.207-alpha.7", - "@budibase/string-templates": "^1.0.207-alpha.7", + "@budibase/bbui": "^1.0.207-alpha.8", + "@budibase/frontend-core": "^1.0.207-alpha.8", + "@budibase/string-templates": "^1.0.207-alpha.8", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index 3145675aa7..d5d4aae51f 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.0.207-alpha.7", + "version": "1.0.207-alpha.8", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^1.0.207-alpha.7", + "@budibase/bbui": "^1.0.207-alpha.8", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 4393ce02b7..b9c58d62ec 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.207-alpha.7", + "version": "1.0.207-alpha.8", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^1.0.207-alpha.7", - "@budibase/client": "^1.0.207-alpha.7", + "@budibase/backend-core": "^1.0.207-alpha.8", + "@budibase/client": "^1.0.207-alpha.8", "@budibase/pro": "1.0.207-alpha.7", - "@budibase/string-templates": "^1.0.207-alpha.7", - "@budibase/types": "^1.0.207-alpha.7", + "@budibase/string-templates": "^1.0.207-alpha.8", + "@budibase/types": "^1.0.207-alpha.8", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index d0863d5a8e..3f0c9a72f3 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.207-alpha.7", + "version": "1.0.207-alpha.8", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index b0e2e325b3..9d7b47c4e0 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "1.0.207-alpha.7", + "version": "1.0.207-alpha.8", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index 129fb88ce3..0cf6753c35 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.207-alpha.7", + "version": "1.0.207-alpha.8", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -34,10 +34,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.207-alpha.7", + "@budibase/backend-core": "^1.0.207-alpha.8", "@budibase/pro": "1.0.207-alpha.7", - "@budibase/string-templates": "^1.0.207-alpha.7", - "@budibase/types": "^1.0.207-alpha.7", + "@budibase/string-templates": "^1.0.207-alpha.8", + "@budibase/types": "^1.0.207-alpha.8", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", From 1b73961240e05a7957787686476eb251c8dda7b2 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 23 Jun 2022 13:03:17 +0000 Subject: [PATCH 10/10] Update pro version to 1.0.207-alpha.8 --- packages/server/package.json | 2 +- packages/worker/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index b9c58d62ec..ec16a7c97c 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -79,7 +79,7 @@ "@apidevtools/swagger-parser": "10.0.3", "@budibase/backend-core": "^1.0.207-alpha.8", "@budibase/client": "^1.0.207-alpha.8", - "@budibase/pro": "1.0.207-alpha.7", + "@budibase/pro": "1.0.207-alpha.8", "@budibase/string-templates": "^1.0.207-alpha.8", "@budibase/types": "^1.0.207-alpha.8", "@bull-board/api": "3.7.0", diff --git a/packages/worker/package.json b/packages/worker/package.json index 0cf6753c35..7a8eea477f 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -35,7 +35,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "^1.0.207-alpha.8", - "@budibase/pro": "1.0.207-alpha.7", + "@budibase/pro": "1.0.207-alpha.8", "@budibase/string-templates": "^1.0.207-alpha.8", "@budibase/types": "^1.0.207-alpha.8", "@koa/router": "8.0.8",