From 86d8bd1070748f4d35337c81489fcfefe29ab8ce Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 30 May 2022 17:58:29 +0100 Subject: [PATCH 01/10] livenessProbes for worker and app services --- charts/budibase/templates/app-service-deployment.yaml | 6 ++++++ charts/budibase/templates/worker-service-deployment.yaml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/charts/budibase/templates/app-service-deployment.yaml b/charts/budibase/templates/app-service-deployment.yaml index 98a949418c..a8711fc0eb 100644 --- a/charts/budibase/templates/app-service-deployment.yaml +++ b/charts/budibase/templates/app-service-deployment.yaml @@ -119,6 +119,12 @@ spec: image: budibase/apps:{{ .Values.globals.appVersion }} imagePullPolicy: Always + livenessProbe: + httpGet: + path: /health + port: {{ .Values.services.apps.port }} + initialDelaySeconds: 5 + periodSeconds: 5 name: bbapps ports: - containerPort: {{ .Values.services.apps.port }} diff --git a/charts/budibase/templates/worker-service-deployment.yaml b/charts/budibase/templates/worker-service-deployment.yaml index 15ff05e214..8a053032d6 100644 --- a/charts/budibase/templates/worker-service-deployment.yaml +++ b/charts/budibase/templates/worker-service-deployment.yaml @@ -119,6 +119,12 @@ spec: value: {{ .Values.globals.google.secret | quote }} image: budibase/worker:{{ .Values.globals.appVersion }} imagePullPolicy: Always + livenessProbe: + httpGet: + path: /health + port: {{ .Values.services.worker.port }} + initialDelaySeconds: 5 + periodSeconds: 5 name: bbworker ports: - containerPort: {{ .Values.services.worker.port }} From 5177b77ae503062a52debfaf62eb5b18301564c1 Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Mon, 30 May 2022 17:59:46 +0100 Subject: [PATCH 02/10] bump K8S chart version --- charts/budibase/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/budibase/Chart.yaml b/charts/budibase/Chart.yaml index 694c8c77fe..227a515432 100644 --- a/charts/budibase/Chart.yaml +++ b/charts/budibase/Chart.yaml @@ -11,7 +11,7 @@ sources: - https://github.com/Budibase/budibase - https://budibase.com type: application -version: 0.2.9 +version: 0.2.10 appVersion: 1.0.48 dependencies: - name: couchdb From 06a32ed35733411b1979341a9e13cbe3e6669f91 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 30 May 2022 21:22:06 +0100 Subject: [PATCH 03/10] Fixing issue with server not shutting down correctly when an error occurs, making sure that everything clears up gracefully. --- packages/backend-core/src/redis/index.js | 2 +- packages/server/src/api/index.js | 4 +++- .../server/src/api/routes/public/index.ts | 11 +++++++++- packages/server/src/app.ts | 15 +++++++++++-- packages/server/src/automations/bullboard.js | 8 +++++++ packages/server/src/automations/index.js | 7 +++++- packages/server/src/threads/index.ts | 22 +++++++++++++++++++ .../src/utilities/queue/inMemoryQueue.js | 7 ++++++ packages/worker/src/index.ts | 19 +++++++++++----- 9 files changed, 83 insertions(+), 12 deletions(-) diff --git a/packages/backend-core/src/redis/index.js b/packages/backend-core/src/redis/index.js index 0ee17265ce..158b5e3841 100644 --- a/packages/backend-core/src/redis/index.js +++ b/packages/backend-core/src/redis/index.js @@ -23,7 +23,7 @@ function connectionError(timeout, err) { if (CLOSED) { return } - CLIENT.end() + CLIENT.disconnect() CLOSED = true // always clear this on error clearTimeout(timeout) diff --git a/packages/server/src/api/index.js b/packages/server/src/api/index.js index 4bf9d9e14d..1aae78cb30 100644 --- a/packages/server/src/api/index.js +++ b/packages/server/src/api/index.js @@ -12,6 +12,7 @@ const { mainRoutes, staticRoutes, publicRoutes } = require("./routes") const pkg = require("../../package.json") const env = require("../environment") const { middleware: pro } = require("@budibase/pro") +const { shutdown } = require("./routes/public") const router = new Router() @@ -90,4 +91,5 @@ router.use(publicRoutes.allowedMethods()) router.use(staticRoutes.routes()) router.use(staticRoutes.allowedMethods()) -module.exports = router +module.exports.router = router +module.exports.shutdown = shutdown diff --git a/packages/server/src/api/routes/public/index.ts b/packages/server/src/api/routes/public/index.ts index 6f1c69560e..ca49a1a7d6 100644 --- a/packages/server/src/api/routes/public/index.ts +++ b/packages/server/src/api/routes/public/index.ts @@ -29,6 +29,7 @@ function getApiLimitPerSecond(): number { return parseInt(env.API_REQ_LIMIT_PER_SEC) } +let rateLimitStore: any = null if (!env.isTest()) { const REDIS_OPTS = getRedisOptions() let options @@ -47,8 +48,9 @@ if (!env.isTest()) { database: 1, } } + rateLimitStore = new Stores.Redis(options) RateLimit.defaultOptions({ - store: new Stores.Redis(options), + store: rateLimitStore, }) } // rate limiting, allows for 2 requests per second @@ -128,3 +130,10 @@ applyRoutes(queryEndpoints, PermissionTypes.QUERY, "queryId") applyRoutes(rowEndpoints, PermissionTypes.TABLE, "tableId", "rowId") export default publicRouter + +export const shutdown = () => { + if (rateLimitStore) { + rateLimitStore.client.disconnect() + rateLimitStore = null + } +} diff --git a/packages/server/src/app.ts b/packages/server/src/app.ts index 8efc383194..fd8d052936 100644 --- a/packages/server/src/app.ts +++ b/packages/server/src/app.ts @@ -14,6 +14,8 @@ const automations = require("./automations/index") const Sentry = require("@sentry/node") const fileSystem = require("./utilities/fileSystem") const bullboard = require("./automations/bullboard") +const context = require("@budibase/backend-core/context") +const { Thread } = require("./threads") import redis from "./utilities/redis" import * as migrations from "./migrations" @@ -49,7 +51,7 @@ app.context.eventEmitter = eventEmitter app.context.auth = {} // api routes -app.use(api.routes()) +app.use(api.router.routes()) if (env.isProd()) { env._set("NODE_ENV", "production") @@ -68,11 +70,20 @@ if (env.isProd()) { const server = http.createServer(app.callback()) destroyable(server) +let shuttingDown = false server.on("close", async () => { - if (env.NODE_ENV !== "jest") { + // already in process + if (shuttingDown) { + return + } + shuttingDown = true + if (!env.isTest()) { console.log("Server Closed") } + await automations.shutdown() await redis.shutdown() + await Thread.shutdown() + api.shutdown() }) module.exports = server.listen(env.PORT || 0, async () => { diff --git a/packages/server/src/automations/bullboard.js b/packages/server/src/automations/bullboard.js index 32336c4714..cba6594ae7 100644 --- a/packages/server/src/automations/bullboard.js +++ b/packages/server/src/automations/bullboard.js @@ -45,4 +45,12 @@ exports.init = () => { return serverAdapter.registerPlugin() } +exports.shutdown = async () => { + if (automationQueue) { + clearInterval(cleanupInternal) + await automationQueue.close() + automationQueue = null + } +} + exports.queue = automationQueue diff --git a/packages/server/src/automations/index.js b/packages/server/src/automations/index.js index 87f35ce763..e543365183 100644 --- a/packages/server/src/automations/index.js +++ b/packages/server/src/automations/index.js @@ -1,5 +1,5 @@ const { processEvent } = require("./utils") -const { queue } = require("./bullboard") +const { queue, shutdown } = require("./bullboard") /** * This module is built purely to kick off the worker farm and manage the inputs/outputs @@ -14,4 +14,9 @@ exports.init = function () { exports.getQueues = () => { return [queue] } + +exports.shutdown = () => { + return shutdown() +} + exports.queue = queue diff --git a/packages/server/src/threads/index.ts b/packages/server/src/threads/index.ts index c19453cf44..8516b62596 100644 --- a/packages/server/src/threads/index.ts +++ b/packages/server/src/threads/index.ts @@ -28,6 +28,8 @@ export class Thread { workers: any timeoutMs: any + static workerRefs: any[] = [] + constructor(type: any, opts: any = { timeoutMs: null, count: 1 }) { this.type = type this.count = opts.count ? opts.count : 1 @@ -46,6 +48,7 @@ export class Thread { workerOpts.maxCallTime = opts.timeoutMs } this.workers = workerFarm(workerOpts, typeToFile(type)) + Thread.workerRefs.push(this.workers) } } @@ -73,4 +76,23 @@ export class Thread { }) }) } + + static shutdown() { + return new Promise(resolve => { + if (Thread.workerRefs.length === 0) { + resolve() + } + let count = 0 + function complete() { + count++ + if (count >= Thread.workerRefs.length) { + resolve() + } + } + for (let worker of Thread.workerRefs) { + workerFarm.end(worker, complete) + } + Thread.workerRefs = [] + }) + } } diff --git a/packages/server/src/utilities/queue/inMemoryQueue.js b/packages/server/src/utilities/queue/inMemoryQueue.js index aebc0ba919..375092609e 100644 --- a/packages/server/src/utilities/queue/inMemoryQueue.js +++ b/packages/server/src/utilities/queue/inMemoryQueue.js @@ -75,6 +75,13 @@ class InMemoryQueue { this._emitter.emit("message") } + /** + * replicating the close function from bull, which waits for jobs to finish. + */ + async close() { + return [] + } + /** * This removes a cron which has been implemented, this is part of Bull API. * @param {string} cronJobId The cron which is to be removed. diff --git a/packages/worker/src/index.ts b/packages/worker/src/index.ts index 1cec2868c6..9e265f1b4c 100644 --- a/packages/worker/src/index.ts +++ b/packages/worker/src/index.ts @@ -28,7 +28,6 @@ app.keys = ["secret", "key"] // set up top level koa middleware app.use(koaBody({ multipart: true })) app.use(koaSession(app)) - app.use( logger({ prettyPrint: { @@ -62,13 +61,23 @@ if (env.isProd()) { const server = http.createServer(app.callback()) destroyable(server) +let shuttingDown = false server.on("close", async () => { - if (env.isProd()) { + if (shuttingDown) { + return + } + shuttingDown = true + if (!env.isTest()) { console.log("Server Closed") } await redis.shutdown() }) +const shutdown = () => { + server.close() + server.destroy() +} + module.exports = server.listen(parseInt(env.PORT || 4002), async () => { console.log(`Worker running on ${JSON.stringify(server.address())}`) await redis.init() @@ -76,11 +85,9 @@ module.exports = server.listen(parseInt(env.PORT || 4002), async () => { process.on("uncaughtException", err => { console.error(err) - server.close() - server.destroy() + shutdown() }) process.on("SIGTERM", () => { - server.close() - server.destroy() + shutdown() }) From 81edc7a18a0aae47f16224df750d61144d3efcb0 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 30 May 2022 21:24:23 +0100 Subject: [PATCH 04/10] Adding process exits. --- packages/server/src/app.ts | 1 + packages/worker/src/index.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/server/src/app.ts b/packages/server/src/app.ts index fd8d052936..78ce595fe8 100644 --- a/packages/server/src/app.ts +++ b/packages/server/src/app.ts @@ -84,6 +84,7 @@ server.on("close", async () => { await redis.shutdown() await Thread.shutdown() api.shutdown() + process.exit() }) module.exports = server.listen(env.PORT || 0, async () => { diff --git a/packages/worker/src/index.ts b/packages/worker/src/index.ts index 9e265f1b4c..32c4dd4ad5 100644 --- a/packages/worker/src/index.ts +++ b/packages/worker/src/index.ts @@ -71,6 +71,7 @@ server.on("close", async () => { console.log("Server Closed") } await redis.shutdown() + process.exit() }) const shutdown = () => { From b7075de0cd31a59143d73f91a9071f03f14534ee Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Mon, 30 May 2022 21:54:24 +0100 Subject: [PATCH 05/10] Adding checking for zlib error, to try and stop if it occurs. --- packages/server/src/app.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/server/src/app.ts b/packages/server/src/app.ts index 78ce595fe8..16912754b4 100644 --- a/packages/server/src/app.ts +++ b/packages/server/src/app.ts @@ -102,6 +102,11 @@ const shutdown = () => { } process.on("uncaughtException", err => { + // @ts-ignore + // don't worry about this error, comes from zlib isn't important + if (err && err["code"] === "ERR_INVALID_CHAR") { + return + } console.error(err) shutdown() }) From 320075feac1827d4a46497aff40f19220044924b Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Tue, 31 May 2022 07:41:43 +0100 Subject: [PATCH 06/10] add API_REQ_LIMIT_PER_SEC --- charts/budibase/templates/app-service-deployment.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/charts/budibase/templates/app-service-deployment.yaml b/charts/budibase/templates/app-service-deployment.yaml index a8711fc0eb..8a9ba51a6c 100644 --- a/charts/budibase/templates/app-service-deployment.yaml +++ b/charts/budibase/templates/app-service-deployment.yaml @@ -78,6 +78,8 @@ spec: value: {{ .Values.services.objectStore.url }} - name: PORT value: {{ .Values.services.apps.port | quote }} + - name: API_REQ_LIMIT_PER_SEC + value: {{ .Values.globals.apps.publicApiRateLimitPerSecond | quote }} - name: MULTI_TENANCY value: {{ .Values.globals.multiTenancy | quote }} - name: LOG_LEVEL From e439d7097b35705d0983592bbbb96ebb81bf0921 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Tue, 31 May 2022 10:16:22 +0100 Subject: [PATCH 07/10] Review comments and test fix. --- packages/backend-core/logging.js | 1 + packages/backend-core/src/logging.js | 16 ++++++++++++++++ packages/server/src/app.ts | 14 +++++++++----- packages/worker/src/index.ts | 11 ++++++++--- 4 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 packages/backend-core/logging.js create mode 100644 packages/backend-core/src/logging.js diff --git a/packages/backend-core/logging.js b/packages/backend-core/logging.js new file mode 100644 index 0000000000..da40fe3100 --- /dev/null +++ b/packages/backend-core/logging.js @@ -0,0 +1 @@ +module.exports = require("./src/logging") diff --git a/packages/backend-core/src/logging.js b/packages/backend-core/src/logging.js new file mode 100644 index 0000000000..425d7f8133 --- /dev/null +++ b/packages/backend-core/src/logging.js @@ -0,0 +1,16 @@ +const NonErrors = ["AccountError"] + +function isSuppressed(e) { + return e && e["suppressAlert"] +} + +module.exports.logAlert = (message, e = null) => { + if (e && NonErrors.includes(e.name) && isSuppressed(e)) { + return + } + let errorJson = "" + if (e) { + errorJson = ": " + JSON.stringify(e, Object.getOwnPropertyNames(e)) + } + console.error(`bb-alert: ${message} ${errorJson}`) +} diff --git a/packages/server/src/app.ts b/packages/server/src/app.ts index 16912754b4..f73c90c895 100644 --- a/packages/server/src/app.ts +++ b/packages/server/src/app.ts @@ -14,7 +14,7 @@ const automations = require("./automations/index") const Sentry = require("@sentry/node") const fileSystem = require("./utilities/fileSystem") const bullboard = require("./automations/bullboard") -const context = require("@budibase/backend-core/context") +const { logAlert } = require("@budibase/backend-core/logging") const { Thread } = require("./threads") import redis from "./utilities/redis" import * as migrations from "./migrations" @@ -70,7 +70,8 @@ if (env.isProd()) { const server = http.createServer(app.callback()) destroyable(server) -let shuttingDown = false +let shuttingDown = false, + errCode = 0 server.on("close", async () => { // already in process if (shuttingDown) { @@ -84,7 +85,9 @@ server.on("close", async () => { await redis.shutdown() await Thread.shutdown() api.shutdown() - process.exit() + if (!env.isTest()) { + process.exit(errCode) + } }) module.exports = server.listen(env.PORT || 0, async () => { @@ -107,7 +110,8 @@ process.on("uncaughtException", err => { if (err && err["code"] === "ERR_INVALID_CHAR") { return } - console.error(err) + errCode = -1 + logAlert("Uncaught exception.", err) shutdown() }) @@ -119,7 +123,7 @@ process.on("SIGTERM", () => { // not recommended in a clustered environment if (!env.HTTP_MIGRATIONS) { migrations.migrate().catch(err => { - console.error("Error performing migrations. Exiting.\n", err) + logAlert("Error performing migrations. Exiting.", err) shutdown() }) } diff --git a/packages/worker/src/index.ts b/packages/worker/src/index.ts index 32c4dd4ad5..fb395a7e6a 100644 --- a/packages/worker/src/index.ts +++ b/packages/worker/src/index.ts @@ -12,6 +12,7 @@ const destroyable = require("server-destroy") const koaBody = require("koa-body") const koaSession = require("koa-session") const { passport } = require("@budibase/backend-core/auth") +const { logAlert } = require("@budibase/backend-core/logging") const logger = require("koa-pino-logger") const http = require("http") const api = require("./api") @@ -61,7 +62,8 @@ if (env.isProd()) { const server = http.createServer(app.callback()) destroyable(server) -let shuttingDown = false +let shuttingDown = false, + errCode = 0 server.on("close", async () => { if (shuttingDown) { return @@ -71,7 +73,9 @@ server.on("close", async () => { console.log("Server Closed") } await redis.shutdown() - process.exit() + if (!env.isTest()) { + process.exit(errCode) + } }) const shutdown = () => { @@ -85,7 +89,8 @@ module.exports = server.listen(parseInt(env.PORT || 4002), async () => { }) process.on("uncaughtException", err => { - console.error(err) + errCode = -1 + logAlert("Uncaught exception.", err) shutdown() }) From 7b804dba8818fcb9d928d4e631a7241b0cbf351b Mon Sep 17 00:00:00 2001 From: Martin McKeaveney Date: Tue, 31 May 2022 13:03:59 +0100 Subject: [PATCH 08/10] make rate limit optional --- charts/budibase/templates/app-service-deployment.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/charts/budibase/templates/app-service-deployment.yaml b/charts/budibase/templates/app-service-deployment.yaml index 8a9ba51a6c..2e5e923b3e 100644 --- a/charts/budibase/templates/app-service-deployment.yaml +++ b/charts/budibase/templates/app-service-deployment.yaml @@ -78,8 +78,10 @@ spec: value: {{ .Values.services.objectStore.url }} - name: PORT value: {{ .Values.services.apps.port | quote }} + {{ if .Values.services.worker.publicApiRateLimitPerSecond }} - name: API_REQ_LIMIT_PER_SEC value: {{ .Values.globals.apps.publicApiRateLimitPerSecond | quote }} + {{ end }} - name: MULTI_TENANCY value: {{ .Values.globals.multiTenancy | quote }} - name: LOG_LEVEL From 1a378dfe50e9a4f53900e6431eb280524390ad69 Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Tue, 31 May 2022 13:07:37 +0000 Subject: [PATCH 09/10] v1.0.190 --- lerna.json | 2 +- packages/backend-core/package.json | 2 +- 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 | 8 ++++---- packages/string-templates/package.json | 2 +- packages/worker/package.json | 6 +++--- 10 files changed, 24 insertions(+), 24 deletions(-) diff --git a/lerna.json b/lerna.json index 716f366af9..62038b6bcd 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "1.0.189", + "version": "1.0.190", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index ef0cf443d6..c1191133b4 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "1.0.189", + "version": "1.0.190", "description": "Budibase backend core libraries used in server and worker", "main": "src/index.js", "author": "Budibase", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index 78628f9e68..c202f06816 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.189", + "version": "1.0.190", "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.189", + "@budibase/string-templates": "^1.0.190", "@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 6341151474..b7da564c2c 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "1.0.189", + "version": "1.0.190", "license": "GPL-3.0", "private": true, "scripts": { @@ -67,10 +67,10 @@ } }, "dependencies": { - "@budibase/bbui": "^1.0.189", - "@budibase/client": "^1.0.189", - "@budibase/frontend-core": "^1.0.189", - "@budibase/string-templates": "^1.0.189", + "@budibase/bbui": "^1.0.190", + "@budibase/client": "^1.0.190", + "@budibase/frontend-core": "^1.0.190", + "@budibase/string-templates": "^1.0.190", "@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 a500b8b539..afdb206c7a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "1.0.189", + "version": "1.0.190", "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 31980da192..744b9d66eb 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "1.0.189", + "version": "1.0.190", "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.189", - "@budibase/frontend-core": "^1.0.189", - "@budibase/string-templates": "^1.0.189", + "@budibase/bbui": "^1.0.190", + "@budibase/frontend-core": "^1.0.190", + "@budibase/string-templates": "^1.0.190", "@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 ca4e82c56c..668fff6741 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "1.0.189", + "version": "1.0.190", "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.189", + "@budibase/bbui": "^1.0.190", "lodash": "^4.17.21", "svelte": "^3.46.2" } diff --git a/packages/server/package.json b/packages/server/package.json index 19397b9283..10b0aba22b 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.189", + "version": "1.0.190", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -70,10 +70,10 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", - "@budibase/backend-core": "^1.0.189", - "@budibase/client": "^1.0.189", + "@budibase/backend-core": "^1.0.190", + "@budibase/client": "^1.0.190", "@budibase/pro": "1.0.189", - "@budibase/string-templates": "^1.0.189", + "@budibase/string-templates": "^1.0.190", "@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 43d48b0a6e..73d758f2fe 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "1.0.189", + "version": "1.0.190", "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 698b57a393..1c0b0a8af1 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.189", + "version": "1.0.190", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -32,9 +32,9 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^1.0.189", + "@budibase/backend-core": "^1.0.190", "@budibase/pro": "1.0.189", - "@budibase/string-templates": "^1.0.189", + "@budibase/string-templates": "^1.0.190", "@koa/router": "^8.0.0", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "^0.3.0", From 0fbad42b99ff6698a4ee35974513c06a522284db Mon Sep 17 00:00:00 2001 From: Budibase Release Bot <> Date: Tue, 31 May 2022 13:08:58 +0000 Subject: [PATCH 10/10] Update pro version to 1.0.190 --- 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 10b0aba22b..0db449b93d 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -72,7 +72,7 @@ "@apidevtools/swagger-parser": "^10.0.3", "@budibase/backend-core": "^1.0.190", "@budibase/client": "^1.0.190", - "@budibase/pro": "1.0.189", + "@budibase/pro": "1.0.190", "@budibase/string-templates": "^1.0.190", "@bull-board/api": "^3.7.0", "@bull-board/koa": "^3.7.0", diff --git a/packages/worker/package.json b/packages/worker/package.json index 1c0b0a8af1..a23f4a75fe 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -33,7 +33,7 @@ "license": "GPL-3.0", "dependencies": { "@budibase/backend-core": "^1.0.190", - "@budibase/pro": "1.0.189", + "@budibase/pro": "1.0.190", "@budibase/string-templates": "^1.0.190", "@koa/router": "^8.0.0", "@sentry/node": "6.17.7",