@budibase/worker 1.0.190-alpha.0 → 1.0.191

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/worker",
3
3
  "email": "hi@budibase.com",
4
- "version": "1.0.190-alpha.0",
4
+ "version": "1.0.191",
5
5
  "description": "Budibase background service",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -32,9 +32,9 @@
32
32
  "author": "Budibase",
33
33
  "license": "GPL-3.0",
34
34
  "dependencies": {
35
- "@budibase/backend-core": "^1.0.190-alpha.0",
36
- "@budibase/pro": "1.0.189",
37
- "@budibase/string-templates": "^1.0.190-alpha.0",
35
+ "@budibase/backend-core": "^1.0.191",
36
+ "@budibase/pro": "1.0.190",
37
+ "@budibase/string-templates": "^1.0.191",
38
38
  "@koa/router": "^8.0.0",
39
39
  "@sentry/node": "6.17.7",
40
40
  "@techpass/passport-openidconnect": "^0.3.0",
@@ -90,5 +90,5 @@
90
90
  "./scripts/jestSetup.js"
91
91
  ]
92
92
  },
93
- "gitHead": "21f755d186a998e3e74858025ec43c1bb41b774c"
93
+ "gitHead": "5f9a79722351f52ddddc54fba5b5f9ef0804ea97"
94
94
  }
@@ -25,5 +25,6 @@ export const getInfo = async (ctx: any) => {
25
25
  }
26
26
 
27
27
  export const getQuotaUsage = async (ctx: any) => {
28
- ctx.body = await quotas.getQuotaUsage()
28
+ const usage = await quotas.getQuotaUsage()
29
+ ctx.body = usage
29
30
  }
@@ -75,8 +75,8 @@ const checkCurrentApp = ctx => {
75
75
  const addSessionAttributesToUser = ctx => {
76
76
  ctx.body.account = ctx.user.account
77
77
  ctx.body.license = ctx.user.license
78
- ctx.body.budibaseAccess = !!ctx.user.budibaseAccess
79
- ctx.body.accountPortalAccess = !!ctx.user.accountPortalAccess
78
+ ctx.body.budibaseAccess = ctx.user.budibaseAccess
79
+ ctx.body.accountPortalAccess = ctx.user.accountPortalAccess
80
80
  ctx.body.csrfToken = ctx.user.csrfToken
81
81
  }
82
82
 
@@ -27,40 +27,33 @@ function parseIntSafe(number) {
27
27
  }
28
28
 
29
29
  module.exports = {
30
- // auth
30
+ NODE_ENV: process.env.NODE_ENV,
31
+ SELF_HOSTED: !!parseInt(process.env.SELF_HOSTED),
32
+ PORT: process.env.PORT || process.env.WORKER_PORT,
33
+ CLUSTER_PORT: process.env.CLUSTER_PORT,
31
34
  MINIO_ACCESS_KEY: process.env.MINIO_ACCESS_KEY,
32
35
  MINIO_SECRET_KEY: process.env.MINIO_SECRET_KEY,
36
+ MINIO_URL: process.env.MINIO_URL,
37
+ COUCH_DB_URL: process.env.COUCH_DB_URL,
38
+ LOG_LEVEL: process.env.LOG_LEVEL,
33
39
  JWT_SECRET: process.env.JWT_SECRET,
34
40
  SALT_ROUNDS: process.env.SALT_ROUNDS,
41
+ REDIS_URL: process.env.REDIS_URL,
35
42
  REDIS_PASSWORD: process.env.REDIS_PASSWORD,
36
43
  INTERNAL_API_KEY: process.env.INTERNAL_API_KEY,
37
- COOKIE_DOMAIN: process.env.COOKIE_DOMAIN,
38
- // urls
39
- MINIO_URL: process.env.MINIO_URL,
40
- COUCH_DB_URL: process.env.COUCH_DB_URL,
41
- REDIS_URL: process.env.REDIS_URL,
42
- ACCOUNT_PORTAL_URL: process.env.ACCOUNT_PORTAL_URL,
43
- PLATFORM_URL: process.env.PLATFORM_URL,
44
- APPS_URL: process.env.APPS_URL,
45
- // ports
46
- PORT: process.env.PORT || process.env.WORKER_PORT,
47
- CLUSTER_PORT: process.env.CLUSTER_PORT,
48
- // flags
49
- NODE_ENV: process.env.NODE_ENV,
50
- SELF_HOSTED: !!parseInt(process.env.SELF_HOSTED),
51
- LOG_LEVEL: process.env.LOG_LEVEL,
52
44
  MULTI_TENANCY: process.env.MULTI_TENANCY,
53
45
  DISABLE_ACCOUNT_PORTAL: process.env.DISABLE_ACCOUNT_PORTAL,
46
+ ACCOUNT_PORTAL_URL: process.env.ACCOUNT_PORTAL_URL,
54
47
  SMTP_FALLBACK_ENABLED: process.env.SMTP_FALLBACK_ENABLED,
55
- DISABLE_DEVELOPER_LICENSE: process.env.DISABLE_DEVELOPER_LICENSE,
56
- // smtp
57
48
  SMTP_USER: process.env.SMTP_USER,
58
49
  SMTP_PASSWORD: process.env.SMTP_PASSWORD,
59
50
  SMTP_HOST: process.env.SMTP_HOST,
60
51
  SMTP_PORT: process.env.SMTP_PORT,
61
52
  SMTP_FROM_ADDRESS: process.env.SMTP_FROM_ADDRESS,
62
- // other
53
+ PLATFORM_URL: process.env.PLATFORM_URL,
54
+ COOKIE_DOMAIN: process.env.COOKIE_DOMAIN,
63
55
  CHECKLIST_CACHE_TTL: parseIntSafe(process.env.CHECKLIST_CACHE_TTL) || 3600,
56
+ APPS_URL: process.env.APPS_URL,
64
57
  _set(key, value) {
65
58
  process.env[key] = value
66
59
  module.exports[key] = value
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ const destroyable = require("server-destroy")
12
12
  const koaBody = require("koa-body")
13
13
  const koaSession = require("koa-session")
14
14
  const { passport } = require("@budibase/backend-core/auth")
15
+ const { logAlert } = require("@budibase/backend-core/logging")
15
16
  const logger = require("koa-pino-logger")
16
17
  const http = require("http")
17
18
  const api = require("./api")
@@ -28,7 +29,6 @@ app.keys = ["secret", "key"]
28
29
  // set up top level koa middleware
29
30
  app.use(koaBody({ multipart: true }))
30
31
  app.use(koaSession(app))
31
-
32
32
  app.use(
33
33
  logger({
34
34
  prettyPrint: {
@@ -62,25 +62,38 @@ if (env.isProd()) {
62
62
  const server = http.createServer(app.callback())
63
63
  destroyable(server)
64
64
 
65
+ let shuttingDown = false,
66
+ errCode = 0
65
67
  server.on("close", async () => {
66
- if (env.isProd()) {
68
+ if (shuttingDown) {
69
+ return
70
+ }
71
+ shuttingDown = true
72
+ if (!env.isTest()) {
67
73
  console.log("Server Closed")
68
74
  }
69
75
  await redis.shutdown()
76
+ if (!env.isTest()) {
77
+ process.exit(errCode)
78
+ }
70
79
  })
71
80
 
81
+ const shutdown = () => {
82
+ server.close()
83
+ server.destroy()
84
+ }
85
+
72
86
  module.exports = server.listen(parseInt(env.PORT || 4002), async () => {
73
87
  console.log(`Worker running on ${JSON.stringify(server.address())}`)
74
88
  await redis.init()
75
89
  })
76
90
 
77
91
  process.on("uncaughtException", err => {
78
- console.error(err)
79
- server.close()
80
- server.destroy()
92
+ errCode = -1
93
+ logAlert("Uncaught exception.", err)
94
+ shutdown()
81
95
  })
82
96
 
83
97
  process.on("SIGTERM", () => {
84
- server.close()
85
- server.destroy()
98
+ shutdown()
86
99
  })