From d7a8b5f2b776dd7cd6bd75c535fa3e4fd310d46d Mon Sep 17 00:00:00 2001 From: Dean Date: Tue, 26 Sep 2023 10:58:56 +0100 Subject: [PATCH 01/15] Updated the nav item body text to ensure it was truncated. The selected by Avatar was being pushed out of view. Hover text added --- packages/builder/src/components/common/NavItem.svelte | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/builder/src/components/common/NavItem.svelte b/packages/builder/src/components/common/NavItem.svelte index a65da55c8f..2c8a862535 100644 --- a/packages/builder/src/components/common/NavItem.svelte +++ b/packages/builder/src/components/common/NavItem.svelte @@ -102,7 +102,7 @@ {/if}
- {text} + {text} {#if selectedBy} {/if} @@ -227,9 +227,6 @@ .text { font-weight: 600; font-size: 12px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; flex: 1 1 auto; color: var(--spectrum-global-color-gray-900); order: 2; @@ -238,6 +235,11 @@ align-items: center; gap: 8px; } + .text span { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } .scrollable .text { flex: 0 0 auto; max-width: 160px; From d1b7ccd86f5c2b2743652111c290a2cb73fe2afc Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 11 Oct 2023 17:49:25 +0100 Subject: [PATCH 02/15] Updating docs and removing old documentation pathway. --- package.json | 1 - packages/server/package.json | 1 - packages/server/scripts/docs/README.md | 31 -- packages/server/scripts/docs/generate.js | 74 ----- packages/server/scripts/docs/toSwagger.js | 320 --------------------- packages/server/specs/openapi.json | 9 +- packages/server/specs/openapi.yaml | 3 + packages/server/src/definitions/openapi.ts | 9 +- 8 files changed, 15 insertions(+), 433 deletions(-) delete mode 100644 packages/server/scripts/docs/README.md delete mode 100644 packages/server/scripts/docs/generate.js delete mode 100644 packages/server/scripts/docs/toSwagger.js diff --git a/package.json b/package.json index e5b6554fca..c38ef76e17 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,6 @@ "build:docker:dependencies": "docker build -f hosting/dependencies/Dockerfile -t budibase/dependencies:latest ./hosting", "publish:docker:couch": "docker buildx build --platform linux/arm64,linux/amd64 -f hosting/couchdb/Dockerfile -t budibase/couchdb:latest -t budibase/couchdb:v3.2.1 --push ./hosting/couchdb", "publish:docker:dependencies": "docker buildx build --platform linux/arm64,linux/amd64 -f hosting/dependencies/Dockerfile -t budibase/dependencies:latest -t budibase/dependencies:v3.2.1 --push ./hosting", - "build:docs": "lerna run --stream build:docs", "release:helm": "node scripts/releaseHelmChart", "env:multi:enable": "lerna run --stream env:multi:enable", "env:multi:disable": "lerna run --stream env:multi:disable", diff --git a/packages/server/package.json b/packages/server/package.json index 795886d7cc..bb9a80f721 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -20,7 +20,6 @@ "test:watch": "jest --watch", "predocker": "copyfiles -f ../client/dist/budibase-client.js ../client/manifest.json client && yarn build && cp ../../yarn.lock ./dist/", "build:docker": "yarn predocker && docker build . -t app-service --label version=$BUDIBASE_RELEASE_VERSION", - "build:docs": "node ./scripts/docs/generate.js open", "run:docker": "node dist/index.js", "run:docker:cluster": "pm2-runtime start pm2.config.js", "dev:stack:up": "node scripts/dev/manage.js up", diff --git a/packages/server/scripts/docs/README.md b/packages/server/scripts/docs/README.md deleted file mode 100644 index f1075754d3..0000000000 --- a/packages/server/scripts/docs/README.md +++ /dev/null @@ -1,31 +0,0 @@ -### Documentation - -This directory contains the scripts required to generate the APIDoc based documentation. -You can find the docs about comment structure at the [APIDocs page](https://apidocjs.com/). - -In general most API endpoints will look like: -```js - /** - * @api {post} /api/:param/url Give it a name - * @apiName Give it a name - * @apiGroup group - * @apiPermission permission - * @apiDescription Describe what the endpoint does, any special cases the user - * should be aware of. - * - * @apiParam {string} param describe a URL parameter. - * - * @apiParam (Body) input describe a field on the body. - * - * @apiSuccess {object} output describe the output. - */ -``` - -There are a few key points to note when writing API docs: -1. Don't use `@apiBody` - this isn't currently supported by our swagger converter. -2. Make sure to always have an `@api` definition at the start, which must always have the -HTTP verb, the endpoint URL and the name. -3. There are three ways you can specify parameters used as inputs for your endpoint, -`@apiParam` for a URL param, `@apiParam (Body)` for a field on the request body and `@apiParam (Query)` -for query string parameters. -4. The `@apiGroup` should be the same for all API Doc comments in a route file. \ No newline at end of file diff --git a/packages/server/scripts/docs/generate.js b/packages/server/scripts/docs/generate.js deleted file mode 100644 index 0d6d42fd32..0000000000 --- a/packages/server/scripts/docs/generate.js +++ /dev/null @@ -1,74 +0,0 @@ -const fs = require("fs") -const { join } = require("path") -const { createDoc } = require("apidoc") -const packageJson = require("../../package.json") -const toSwagger = require("./toSwagger") -const open = require("open") - -const config = { - name: "Budibase API", - version: packageJson.version, - description: "Documenting the Budibase backend API", - title: "Budibase app service API", -} - -const shouldOpen = process.argv[2] -const disallowed = [] - -function filter(parsedRouteFiles) { - const tagToSearch = "url" - for (let routeFile of parsedRouteFiles) { - for (let route of routeFile) { - let routeInfo = route["local"] - if (disallowed.includes(routeInfo[tagToSearch])) { - const idx = routeFile.indexOf(route) - routeFile.splice(idx, 1) - } - } - } -} - -async function generate() { - // start by writing a config file - const configPath = join(__dirname, "config.json") - fs.writeFileSync(configPath, JSON.stringify(config)) - const mainPath = join(__dirname, "..", "..") - const srcPath = join(mainPath, "src", "api", "routes") - const assetsPath = join(mainPath, "builder", "assets", "docs") - if (!fs.existsSync(assetsPath)) { - fs.mkdirSync(assetsPath, { recursive: true }) - } - const options = { - src: [srcPath], - dest: assetsPath, - filters: { - main: { - postFilter: filter, - }, - }, - config: configPath, - } - const doc = createDoc(options) - if (typeof doc !== "boolean") { - const swagger = toSwagger(JSON.parse(doc.data), JSON.parse(doc.project)) - fs.writeFileSync(join(assetsPath, "swagger.json"), JSON.stringify(swagger)) - fs.writeFileSync(join(assetsPath, "apidoc.json"), doc.data) - fs.writeFileSync(join(assetsPath, "project.json"), doc.project) - console.log( - `Docs generated successfully, find in ${assetsPath}, swagger.json, apidoc.json and project.json` - ) - } else { - throw "Unable to generate docs." - } - // delete the temporary config file - fs.unlinkSync(configPath) - setTimeout(async () => { - if (shouldOpen === "open") { - await open(join(assetsPath, "index.html"), { wait: false }) - } - }, 2000) -} - -generate().catch(err => { - console.error(err) -}) diff --git a/packages/server/scripts/docs/toSwagger.js b/packages/server/scripts/docs/toSwagger.js deleted file mode 100644 index 1532e25fa6..0000000000 --- a/packages/server/scripts/docs/toSwagger.js +++ /dev/null @@ -1,320 +0,0 @@ -let _ = require("lodash") -let { pathToRegexp } = require("path-to-regexp") - -/******************************************************** - * Based on: https://github.com/fsbahman/apidoc-swagger * - ********************************************************/ - -let swagger = { - swagger: "2.0", - info: {}, - paths: {}, - definitions: {}, -} - -function toSwagger(apidocJson, projectJson) { - swagger.info = addInfo(projectJson) - swagger.paths = extractPaths(apidocJson) - return swagger -} - -let tagsRegex = /(<([^>]+)>)/gi -// Removes

tags from text -function removeTags(text) { - return text ? text.replace(tagsRegex, "") : text -} - -function addInfo(projectJson) { - let info = {} - info["title"] = projectJson.title || projectJson.name - info["version"] = projectJson.version - info["description"] = projectJson.description - return info -} - -/** - * Extracts paths provided in json format - * post, patch, put request parameters are extracted in body - * get and delete are extracted to path parameters - * @param apidocJson - * @returns {{}} - */ -function extractPaths(apidocJson) { - let apiPaths = groupByUrl(apidocJson) - let paths = {} - for (let i = 0; i < apiPaths.length; i++) { - let verbs = apiPaths[i].verbs - let url = verbs[0].url - let pattern = pathToRegexp(url, null) - let matches = pattern.exec(url) - - // Surrounds URL parameters with curly brackets -> :email with {email} - let pathKeys = [] - for (let j = 1; j < matches.length; j++) { - let key = matches[j].slice(1) - url = url.replace(matches[j], "{" + key + "}") - pathKeys.push(key) - } - - for (let j = 0; j < verbs.length; j++) { - let verb = verbs[j] - let type = verb.type - - let obj = (paths[url] = paths[url] || {}) - - if (type === "post" || type === "patch" || type === "put") { - _.extend( - obj, - createPostPushPutOutput(verb, swagger.definitions, pathKeys) - ) - } else { - _.extend(obj, createGetDeleteOutput(verb, swagger.definitions)) - } - } - } - return paths -} - -function createPostPushPutOutput(verbs, definitions, pathKeys) { - let pathItemObject = {} - let verbDefinitionResult = createVerbDefinitions(verbs, definitions) - - let params = [] - let pathParams = createPathParameters(verbs, pathKeys) - pathParams = _.filter(pathParams, function (param) { - let hasKey = pathKeys.indexOf(param.name) !== -1 - return !(param.in === "path" && !hasKey) - }) - - params = params.concat(pathParams) - let required = - verbs.parameter && - verbs.parameter.fields && - verbs.parameter.fields.Parameter && - verbs.parameter.fields.Parameter.length > 0 - - params.push({ - in: "body", - name: "body", - description: removeTags(verbs.description), - required: required, - schema: { - $ref: "#/definitions/" + verbDefinitionResult.topLevelParametersRef, - }, - }) - - pathItemObject[verbs.type] = { - tags: [verbs.group], - summary: removeTags(verbs.description), - consumes: ["application/json"], - produces: ["application/json"], - parameters: params, - } - - if (verbDefinitionResult.topLevelSuccessRef) { - pathItemObject[verbs.type].responses = { - 200: { - description: "successful operation", - schema: { - type: verbDefinitionResult.topLevelSuccessRefType, - items: { - $ref: "#/definitions/" + verbDefinitionResult.topLevelSuccessRef, - }, - }, - }, - } - } - - return pathItemObject -} - -function createVerbDefinitions(verbs, definitions) { - let result = { - topLevelParametersRef: null, - topLevelSuccessRef: null, - topLevelSuccessRefType: null, - } - let defaultObjectName = verbs.name - - let fieldArrayResult = {} - if (verbs && verbs.parameter && verbs.parameter.fields) { - fieldArrayResult = createFieldArrayDefinitions( - verbs.parameter.fields.Parameter, - definitions, - verbs.name, - defaultObjectName - ) - result.topLevelParametersRef = fieldArrayResult.topLevelRef - } - - if (verbs && verbs.success && verbs.success.fields) { - fieldArrayResult = createFieldArrayDefinitions( - verbs.success.fields["Success 200"], - definitions, - verbs.name, - defaultObjectName - ) - result.topLevelSuccessRef = fieldArrayResult.topLevelRef - result.topLevelSuccessRefType = fieldArrayResult.topLevelRefType - } - - return result -} - -function createFieldArrayDefinitions( - fieldArray, - definitions, - topLevelRef, - defaultObjectName -) { - let result = { - topLevelRef: topLevelRef, - topLevelRefType: null, - } - - if (!fieldArray) { - return result - } - - for (let i = 0; i < fieldArray.length; i++) { - let parameter = fieldArray[i] - - let nestedName = createNestedName(parameter.field) - let objectName = nestedName.objectName - if (!objectName) { - objectName = defaultObjectName - } - let type = parameter.type - if (i === 0) { - result.topLevelRefType = type - if (parameter.type === "Object") { - objectName = nestedName.propertyName - nestedName.propertyName = null - } else if (parameter.type === "Array") { - objectName = nestedName.propertyName - nestedName.propertyName = null - result.topLevelRefType = "array" - } - result.topLevelRef = objectName - } - - definitions[objectName] = definitions[objectName] || { - properties: {}, - required: [], - } - - if (nestedName.propertyName) { - let prop = { - type: (parameter.type || "").toLowerCase(), - description: removeTags(parameter.description), - } - if (parameter.type === "Object") { - prop.$ref = "#/definitions/" + parameter.field - } - - let typeIndex = type.indexOf("[]") - if (typeIndex !== -1 && typeIndex === type.length - 2) { - prop.type = "array" - prop.items = { - type: type.slice(0, type.length - 2), - } - } - - definitions[objectName]["properties"][nestedName.propertyName] = prop - if (!parameter.optional) { - let arr = definitions[objectName]["required"] - if (arr.indexOf(nestedName.propertyName) === -1) { - arr.push(nestedName.propertyName) - } - } - } - } - - return result -} - -function createNestedName(field) { - let propertyName = field - let objectName - let propertyNames = field.split(".") - if (propertyNames && propertyNames.length > 1) { - propertyName = propertyNames[propertyNames.length - 1] - propertyNames.pop() - objectName = propertyNames.join(".") - } - - return { - propertyName: propertyName, - objectName: objectName, - } -} - -/** - * Generate get, delete method output - * @param verbs - * @param definitions - * @returns {{}} - */ -function createGetDeleteOutput(verbs, definitions) { - let pathItemObject = {} - verbs.type = verbs.type === "del" ? "delete" : verbs.type - - let verbDefinitionResult = createVerbDefinitions(verbs, definitions) - pathItemObject[verbs.type] = { - tags: [verbs.group], - summary: removeTags(verbs.description), - consumes: ["application/json"], - produces: ["application/json"], - parameters: createPathParameters(verbs), - } - if (verbDefinitionResult.topLevelSuccessRef) { - pathItemObject[verbs.type].responses = { - 200: { - description: "successful operation", - schema: { - type: verbDefinitionResult.topLevelSuccessRefType, - items: { - $ref: "#/definitions/" + verbDefinitionResult.topLevelSuccessRef, - }, - }, - }, - } - } - return pathItemObject -} - -/** - * Iterate through all method parameters and create array of parameter objects which are stored as path parameters - * @param verbs - * @returns {Array} - */ -function createPathParameters(verbs) { - let pathItemObject = [] - if (verbs.parameter && verbs.parameter.fields.Parameter) { - for (let i = 0; i < verbs.parameter.fields.Parameter.length; i++) { - let param = verbs.parameter.fields.Parameter[i] - let field = param.field - let type = param.type - pathItemObject.push({ - name: field, - in: type === "file" ? "formData" : "path", - required: !param.optional, - type: param.type.toLowerCase(), - description: removeTags(param.description), - }) - } - } - return pathItemObject -} - -function groupByUrl(apidocJson) { - return _.chain(apidocJson) - .groupBy("url") - .toPairs() - .map(function (element) { - return _.zipObject(["url", "verbs"], element) - }) - .value() -} - -module.exports = toSwagger diff --git a/packages/server/specs/openapi.json b/packages/server/specs/openapi.json index 8baba62a62..a6900adea7 100644 --- a/packages/server/specs/openapi.json +++ b/packages/server/specs/openapi.json @@ -859,7 +859,8 @@ "json", "internal", "barcodeqr", - "bigint" + "bigint", + "bb_reference" ], "description": "Defines the type of the column, most explain themselves, a link column is a relationship." }, @@ -1064,7 +1065,8 @@ "json", "internal", "barcodeqr", - "bigint" + "bigint", + "bb_reference" ], "description": "Defines the type of the column, most explain themselves, a link column is a relationship." }, @@ -1280,7 +1282,8 @@ "json", "internal", "barcodeqr", - "bigint" + "bigint", + "bb_reference" ], "description": "Defines the type of the column, most explain themselves, a link column is a relationship." }, diff --git a/packages/server/specs/openapi.yaml b/packages/server/specs/openapi.yaml index 0673794fb0..ad02a3cd9c 100644 --- a/packages/server/specs/openapi.yaml +++ b/packages/server/specs/openapi.yaml @@ -782,6 +782,7 @@ components: - internal - barcodeqr - bigint + - bb_reference description: Defines the type of the column, most explain themselves, a link column is a relationship. constraints: @@ -946,6 +947,7 @@ components: - internal - barcodeqr - bigint + - bb_reference description: Defines the type of the column, most explain themselves, a link column is a relationship. constraints: @@ -1117,6 +1119,7 @@ components: - internal - barcodeqr - bigint + - bb_reference description: Defines the type of the column, most explain themselves, a link column is a relationship. constraints: diff --git a/packages/server/src/definitions/openapi.ts b/packages/server/src/definitions/openapi.ts index a813f0f135..34014ba626 100644 --- a/packages/server/src/definitions/openapi.ts +++ b/packages/server/src/definitions/openapi.ts @@ -279,7 +279,8 @@ export interface components { | "json" | "internal" | "barcodeqr" - | "bigint"; + | "bigint" + | "bb_reference"; /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ @@ -386,7 +387,8 @@ export interface components { | "json" | "internal" | "barcodeqr" - | "bigint"; + | "bigint" + | "bb_reference"; /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ @@ -495,7 +497,8 @@ export interface components { | "json" | "internal" | "barcodeqr" - | "bigint"; + | "bigint" + | "bb_reference"; /** @description A constraint can be applied to the column which will be validated against when a row is saved. */ constraints?: { /** @enum {string} */ From 15c308efca287147090693ccece8a1094440cca7 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 11 Oct 2023 17:06:01 +0000 Subject: [PATCH 03/15] Bump version to 2.11.25 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index c257c2d9e5..c35b873b75 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.11.24", + "version": "2.11.25", "npmClient": "yarn", "packages": [ "packages/*" From 5908a791f207f06178906bf60e427c47fb8773eb Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Wed, 11 Oct 2023 19:10:58 +0200 Subject: [PATCH 04/15] Return email and names on bb reference api output --- packages/server/src/api/routes/tests/row.spec.ts | 3 +++ .../src/utilities/rowProcessor/bbReferenceProcessor.ts | 3 +++ .../rowProcessor/tests/bbReferenceProcessor.spec.ts | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/packages/server/src/api/routes/tests/row.spec.ts b/packages/server/src/api/routes/tests/row.spec.ts index 4b1bc65793..0a80253210 100644 --- a/packages/server/src/api/routes/tests/row.spec.ts +++ b/packages/server/src/api/routes/tests/row.spec.ts @@ -1580,6 +1580,9 @@ describe.each([ (row: Row) => ({ _id: row._id, primaryDisplay: row.email, + email: row.email, + firstName: row.firstName, + lastName: row.lastName, }), ], ])("links - %s", (__, relSchema, dataGenerator, resultMapper) => { diff --git a/packages/server/src/utilities/rowProcessor/bbReferenceProcessor.ts b/packages/server/src/utilities/rowProcessor/bbReferenceProcessor.ts index c126530b8d..c7b8998bad 100644 --- a/packages/server/src/utilities/rowProcessor/bbReferenceProcessor.ts +++ b/packages/server/src/utilities/rowProcessor/bbReferenceProcessor.ts @@ -82,6 +82,9 @@ export async function processOutputBBReferences( return users.map(u => ({ _id: u._id, primaryDisplay: u.email, + email: u.email, + firstName: u.firstName, + lastName: u.lastName, })) default: diff --git a/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts b/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts index 10d339f6b4..b6174861d4 100644 --- a/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts +++ b/packages/server/src/utilities/rowProcessor/tests/bbReferenceProcessor.spec.ts @@ -180,6 +180,9 @@ describe("bbReferenceProcessor", () => { { _id: user._id, primaryDisplay: user.email, + email: user.email, + firstName: user.firstName, + lastName: user.lastName, }, ]) expect(cacheGetUsersSpy).toBeCalledTimes(1) @@ -204,6 +207,9 @@ describe("bbReferenceProcessor", () => { [user1, user2].map(u => ({ _id: u._id, primaryDisplay: u.email, + email: u.email, + firstName: u.firstName, + lastName: u.lastName, })) ) ) From 1ce94484fdf92d66dde07d7063baa0e81322fbf1 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 11 Oct 2023 17:27:27 +0000 Subject: [PATCH 05/15] Bump version to 2.11.26 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index c35b873b75..5708bb5f44 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.11.25", + "version": "2.11.26", "npmClient": "yarn", "packages": [ "packages/*" From 7090819752dc4623b09d695179a222abbaac0953 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 11 Oct 2023 18:43:25 +0100 Subject: [PATCH 06/15] Updating version of VM2 to ^3.9.19 - due to possible RCE issue with Promises (we do not allow async code, but there still could be a risk). --- packages/server/package.json | 2 +- packages/string-templates/package.json | 2 +- yarn.lock | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/server/package.json b/packages/server/package.json index bb9a80f721..f66e9346e1 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -111,7 +111,7 @@ "to-json-schema": "0.2.5", "uuid": "3.3.2", "validate.js": "0.13.1", - "vm2": "3.9.17", + "vm2": "^3.9.19", "worker-farm": "1.7.0", "xml2js": "0.5.0", "yargs": "13.2.4" diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 6780840ed3..d9f56442a0 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -29,7 +29,7 @@ "dayjs": "^1.10.8", "handlebars": "^4.7.6", "lodash": "^4.17.20", - "vm2": "^3.9.15" + "vm2": "^3.9.19" }, "devDependencies": { "@rollup/plugin-commonjs": "^17.1.0", diff --git a/yarn.lock b/yarn.lock index d8e1d41d56..a528ffa0bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21750,7 +21750,15 @@ vlq@^0.2.2: resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== -vm2@3.9.17, vm2@^3.9.15, vm2@^3.9.8: +vm2@^3.9.19: + version "3.9.19" + resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.19.tgz#be1e1d7a106122c6c492b4d51c2e8b93d3ed6a4a" + integrity sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg== + dependencies: + acorn "^8.7.0" + acorn-walk "^8.2.0" + +vm2@^3.9.8: version "3.9.17" resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.17.tgz#251b165ff8a0e034942b5181057305e39570aeab" integrity sha512-AqwtCnZ/ERcX+AVj9vUsphY56YANXxRuqMb7GsDtAr0m0PcQX3u0Aj3KWiXM0YAHy7i6JEeHrwOnwXbGYgRpAw== From f958832e86b057b9a8a29e77b176aca0062a082a Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Wed, 11 Oct 2023 18:48:04 +0100 Subject: [PATCH 07/15] Removing dupe vm2 --- yarn.lock | 8 -------- 1 file changed, 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index a528ffa0bc..81c2815663 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21758,14 +21758,6 @@ vm2@^3.9.19: acorn "^8.7.0" acorn-walk "^8.2.0" -vm2@^3.9.8: - version "3.9.17" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.17.tgz#251b165ff8a0e034942b5181057305e39570aeab" - integrity sha512-AqwtCnZ/ERcX+AVj9vUsphY56YANXxRuqMb7GsDtAr0m0PcQX3u0Aj3KWiXM0YAHy7i6JEeHrwOnwXbGYgRpAw== - dependencies: - acorn "^8.7.0" - acorn-walk "^8.2.0" - vuvuzela@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b" From f4e75f4a2be2f0f61faccc1763331a63f175b20b Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Wed, 11 Oct 2023 18:05:23 +0000 Subject: [PATCH 08/15] Bump version to 2.11.27 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 5708bb5f44..64d169472b 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.11.26", + "version": "2.11.27", "npmClient": "yarn", "packages": [ "packages/*" From d6f8662e952c9001c1712a07c484af820df49e4f Mon Sep 17 00:00:00 2001 From: Conor Webb <126772285+ConorWebb96@users.noreply.github.com> Date: Thu, 12 Oct 2023 08:29:40 +0100 Subject: [PATCH 09/15] Adding onchange actions to code scanner. (#12029) * Adding onchange actions to code scanner. * Removed unused code, set updateOnChange to false. --------- Co-authored-by: Michael Drury --- packages/client/manifest.json | 11 +++++++++++ .../src/components/app/forms/CodeScanner.svelte | 1 + 2 files changed, 12 insertions(+) diff --git a/packages/client/manifest.json b/packages/client/manifest.json index d987344956..47b935b420 100644 --- a/packages/client/manifest.json +++ b/packages/client/manifest.json @@ -3419,6 +3419,17 @@ "value": "custom" } }, + { + "type": "event", + "label": "On change", + "key": "onChange", + "context": [ + { + "label": "Field Value", + "key": "value" + } + ] + }, { "type": "validation/string", "label": "Validation", diff --git a/packages/client/src/components/app/forms/CodeScanner.svelte b/packages/client/src/components/app/forms/CodeScanner.svelte index 9895413446..04d6919157 100644 --- a/packages/client/src/components/app/forms/CodeScanner.svelte +++ b/packages/client/src/components/app/forms/CodeScanner.svelte @@ -128,6 +128,7 @@
{ dispatch("change", value) }} From ad0529cf64679f40373b1b498796a6fd9d6f4c1c Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 12 Oct 2023 07:30:01 +0000 Subject: [PATCH 10/15] Bump version to 2.11.28 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 64d169472b..e6fd167f16 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.11.27", + "version": "2.11.28", "npmClient": "yarn", "packages": [ "packages/*" From 025e660674e9b8b65f90b31fe23c52d0826d59e5 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 12 Oct 2023 07:39:03 +0000 Subject: [PATCH 11/15] Bump version to 2.11.29 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index e6fd167f16..c4315ee698 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.11.28", + "version": "2.11.29", "npmClient": "yarn", "packages": [ "packages/*" From eea31893cfba592550f573dcb44847fb101b6fc3 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 12 Oct 2023 10:03:47 +0100 Subject: [PATCH 12/15] Trying to fix max-space size action as part of the single image release (required to create the space needed for both image builds. --- .github/workflows/release-singleimage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-singleimage.yml b/.github/workflows/release-singleimage.yml index bd01ed786a..78b5cdd577 100644 --- a/.github/workflows/release-singleimage.yml +++ b/.github/workflows/release-singleimage.yml @@ -18,7 +18,7 @@ jobs: - name: Maximize build space uses: easimon/maximize-build-space@master with: - root-reserve-mb: 35000 + root-reserve-mb: 30000 swap-size-mb: 1024 remove-android: 'true' remove-dotnet: 'true' From f83df42bfc2781dd498e9e25a3e845e770d28a6c Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 12 Oct 2023 09:13:59 +0000 Subject: [PATCH 13/15] Bump version to 2.11.30 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index c4315ee698..95e10c444e 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.11.29", + "version": "2.11.30", "npmClient": "yarn", "packages": [ "packages/*" From 78173c9d1e3436fbdc6b2274635044ab88032a5a Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Thu, 12 Oct 2023 13:43:15 +0100 Subject: [PATCH 14/15] Some minor updates, attempting to maximise space to get build running again, having issues with network timeouts/buildx problems, attempting to restore full build. --- .github/workflows/release-singleimage.yml | 12 ------------ hosting/single/Dockerfile | 4 ++-- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release-singleimage.yml b/.github/workflows/release-singleimage.yml index 78b5cdd577..61ab9a4eb2 100644 --- a/.github/workflows/release-singleimage.yml +++ b/.github/workflows/release-singleimage.yml @@ -33,14 +33,6 @@ jobs: with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - fetch-depth: 0 - - - name: Fail if tag is not in master - run: | - if ! git merge-base --is-ancestor ${{ github.sha }} origin/master; then - echo "Tag is not in master. This pipeline can only execute tags that are present on the master branch" - exit 1 - fi - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 @@ -55,10 +47,6 @@ jobs: run: yarn - name: Update versions run: ./scripts/updateVersions.sh - - name: Runt Yarn Lint - run: yarn lint - - name: Update versions - run: ./scripts/updateVersions.sh - name: Run Yarn Build run: yarn build:docker:pre - name: Login to Docker Hub diff --git a/hosting/single/Dockerfile b/hosting/single/Dockerfile index 9fdf2449d1..95e383edb0 100644 --- a/hosting/single/Dockerfile +++ b/hosting/single/Dockerfile @@ -12,14 +12,14 @@ RUN chmod +x /cleanup.sh WORKDIR /app ADD packages/server . COPY yarn.lock . -RUN yarn install --production=true +RUN yarn install --production=true --network-timeout 100000 RUN /cleanup.sh # build worker WORKDIR /worker ADD packages/worker . COPY yarn.lock . -RUN yarn install --production=true +RUN yarn install --production=true --network-timeout 100000 RUN /cleanup.sh FROM budibase/couchdb From 702ee4d504195aa716d6eac5b3333a2551ec13c8 Mon Sep 17 00:00:00 2001 From: Budibase Staging Release Bot <> Date: Thu, 12 Oct 2023 12:48:57 +0000 Subject: [PATCH 15/15] Bump version to 2.11.31 --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index 95e10c444e..51c702a2f6 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.11.30", + "version": "2.11.31", "npmClient": "yarn", "packages": [ "packages/*"