@budibase/worker 2.1.39 → 2.1.40-alpha.0

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.
Files changed (208) hide show
  1. package/__mocks__/aws-sdk.ts +15 -0
  2. package/__mocks__/oauth.ts +57 -0
  3. package/coverage/clover.xml +2153 -0
  4. package/coverage/coverage-final.json +78 -0
  5. package/coverage/lcov-report/base.css +224 -0
  6. package/coverage/lcov-report/block-navigation.js +87 -0
  7. package/coverage/lcov-report/favicon.png +0 -0
  8. package/coverage/lcov-report/index.html +431 -0
  9. package/coverage/lcov-report/prettify.css +1 -0
  10. package/coverage/lcov-report/prettify.js +2 -0
  11. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  12. package/coverage/lcov-report/sorter.js +196 -0
  13. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +925 -0
  14. package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +1405 -0
  15. package/coverage/lcov-report/src/api/controllers/global/email.ts.html +196 -0
  16. package/coverage/lcov-report/src/api/controllers/global/index.html +236 -0
  17. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +187 -0
  18. package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +283 -0
  19. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +577 -0
  20. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +316 -0
  21. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +796 -0
  22. package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +244 -0
  23. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +148 -0
  24. package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +124 -0
  25. package/coverage/lcov-report/src/api/controllers/system/index.html +191 -0
  26. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +124 -0
  27. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +124 -0
  28. package/coverage/lcov-report/src/api/controllers/system/status.ts.html +133 -0
  29. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +154 -0
  30. package/coverage/lcov-report/src/api/index.html +116 -0
  31. package/coverage/lcov-report/src/api/index.ts.html +583 -0
  32. package/coverage/lcov-report/src/api/routes/global/auth.ts.html +349 -0
  33. package/coverage/lcov-report/src/api/routes/global/configs.ts.html +457 -0
  34. package/coverage/lcov-report/src/api/routes/global/email.ts.html +193 -0
  35. package/coverage/lcov-report/src/api/routes/global/index.html +236 -0
  36. package/coverage/lcov-report/src/api/routes/global/license.ts.html +124 -0
  37. package/coverage/lcov-report/src/api/routes/global/roles.ts.html +133 -0
  38. package/coverage/lcov-report/src/api/routes/global/self.ts.html +139 -0
  39. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +196 -0
  40. package/coverage/lcov-report/src/api/routes/global/users.ts.html +409 -0
  41. package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +196 -0
  42. package/coverage/lcov-report/src/api/routes/index.html +116 -0
  43. package/coverage/lcov-report/src/api/routes/index.ts.html +196 -0
  44. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +142 -0
  45. package/coverage/lcov-report/src/api/routes/system/environment.ts.html +109 -0
  46. package/coverage/lcov-report/src/api/routes/system/index.html +191 -0
  47. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +142 -0
  48. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +109 -0
  49. package/coverage/lcov-report/src/api/routes/system/status.ts.html +109 -0
  50. package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +124 -0
  51. package/coverage/lcov-report/src/api/routes/validation/index.html +131 -0
  52. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +88 -0
  53. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +235 -0
  54. package/coverage/lcov-report/src/constants/index.html +116 -0
  55. package/coverage/lcov-report/src/constants/index.ts.html +613 -0
  56. package/coverage/lcov-report/src/constants/templates/index.html +116 -0
  57. package/coverage/lcov-report/src/constants/templates/index.ts.html +316 -0
  58. package/coverage/lcov-report/src/db/index.html +116 -0
  59. package/coverage/lcov-report/src/db/index.ts.html +115 -0
  60. package/coverage/lcov-report/src/environment.ts.html +373 -0
  61. package/coverage/lcov-report/src/index.html +131 -0
  62. package/coverage/lcov-report/src/index.ts.html +394 -0
  63. package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +139 -0
  64. package/coverage/lcov-report/src/middleware/index.html +116 -0
  65. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +145 -0
  66. package/coverage/lcov-report/src/migrations/functions/index.html +116 -0
  67. package/coverage/lcov-report/src/migrations/index.html +116 -0
  68. package/coverage/lcov-report/src/migrations/index.ts.html +271 -0
  69. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +262 -0
  70. package/coverage/lcov-report/src/sdk/accounts/index.html +131 -0
  71. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +88 -0
  72. package/coverage/lcov-report/src/sdk/index.html +116 -0
  73. package/coverage/lcov-report/src/sdk/index.ts.html +106 -0
  74. package/coverage/lcov-report/src/sdk/users/events.ts.html +577 -0
  75. package/coverage/lcov-report/src/sdk/users/index.html +146 -0
  76. package/coverage/lcov-report/src/sdk/users/index.ts.html +88 -0
  77. package/coverage/lcov-report/src/sdk/users/users.ts.html +1903 -0
  78. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +1051 -0
  79. package/coverage/lcov-report/src/tests/api/accounts.ts.html +160 -0
  80. package/coverage/lcov-report/src/tests/api/auth.ts.html +220 -0
  81. package/coverage/lcov-report/src/tests/api/base.ts.html +133 -0
  82. package/coverage/lcov-report/src/tests/api/configs.ts.html +226 -0
  83. package/coverage/lcov-report/src/tests/api/email.ts.html +148 -0
  84. package/coverage/lcov-report/src/tests/api/environment.ts.html +130 -0
  85. package/coverage/lcov-report/src/tests/api/index.html +296 -0
  86. package/coverage/lcov-report/src/tests/api/index.ts.html +205 -0
  87. package/coverage/lcov-report/src/tests/api/migrations.ts.html +151 -0
  88. package/coverage/lcov-report/src/tests/api/restore.ts.html +127 -0
  89. package/coverage/lcov-report/src/tests/api/self.ts.html +163 -0
  90. package/coverage/lcov-report/src/tests/api/status.ts.html +121 -0
  91. package/coverage/lcov-report/src/tests/api/tenants.ts.html +130 -0
  92. package/coverage/lcov-report/src/tests/api/users.ts.html +511 -0
  93. package/coverage/lcov-report/src/tests/controllers.ts.html +100 -0
  94. package/coverage/lcov-report/src/tests/index.html +146 -0
  95. package/coverage/lcov-report/src/tests/index.ts.html +139 -0
  96. package/coverage/lcov-report/src/tests/mocks/email.js.html +115 -0
  97. package/coverage/lcov-report/src/tests/mocks/index.html +131 -0
  98. package/coverage/lcov-report/src/tests/mocks/index.ts.html +106 -0
  99. package/coverage/lcov-report/src/tests/structures/configs.ts.html +313 -0
  100. package/coverage/lcov-report/src/tests/structures/groups.ts.html +118 -0
  101. package/coverage/lcov-report/src/tests/structures/index.html +161 -0
  102. package/coverage/lcov-report/src/tests/structures/index.ts.html +151 -0
  103. package/coverage/lcov-report/src/tests/structures/users.ts.html +196 -0
  104. package/coverage/lcov-report/src/utilities/appService.ts.html +181 -0
  105. package/coverage/lcov-report/src/utilities/email.ts.html +850 -0
  106. package/coverage/lcov-report/src/utilities/fileSystem.ts.html +100 -0
  107. package/coverage/lcov-report/src/utilities/index.html +206 -0
  108. package/coverage/lcov-report/src/utilities/index.ts.html +112 -0
  109. package/coverage/lcov-report/src/utilities/redis.ts.html +424 -0
  110. package/coverage/lcov-report/src/utilities/templates.ts.html +232 -0
  111. package/coverage/lcov-report/src/utilities/users.ts.html +133 -0
  112. package/coverage/lcov.info +3958 -0
  113. package/jest.config.ts +29 -0
  114. package/package.json +13 -23
  115. package/scripts/localdomain.js +33 -7
  116. package/src/api/controllers/global/auth.ts +51 -43
  117. package/src/api/controllers/global/{configs.js → configs.ts} +119 -114
  118. package/src/api/controllers/global/{email.js → email.ts} +6 -5
  119. package/src/api/controllers/global/roles.ts +66 -0
  120. package/src/api/controllers/global/self.ts +2 -2
  121. package/src/api/controllers/global/users.ts +4 -2
  122. package/src/api/controllers/global/{workspaces.js → workspaces.ts} +15 -18
  123. package/src/api/controllers/system/{environment.js → environment.ts} +3 -2
  124. package/src/api/controllers/system/restore.ts +1 -1
  125. package/src/api/controllers/system/{status.js → status.ts} +4 -3
  126. package/src/api/controllers/system/tenants.ts +8 -51
  127. package/src/api/index.ts +31 -8
  128. package/src/api/routes/global/{auth.js → auth.ts} +31 -48
  129. package/src/api/routes/global/{configs.js → configs.ts} +22 -23
  130. package/src/api/routes/global/{email.js → email.ts} +9 -10
  131. package/src/api/routes/global/license.ts +1 -1
  132. package/src/api/routes/global/roles.ts +16 -0
  133. package/src/api/routes/global/self.ts +2 -2
  134. package/src/api/routes/global/templates.ts +4 -4
  135. package/src/api/routes/global/tests/auth.spec.ts +134 -64
  136. package/src/api/routes/global/tests/configs.spec.ts +34 -35
  137. package/src/api/routes/global/tests/email.spec.ts +4 -3
  138. package/src/api/routes/global/tests/license.spec.ts +31 -0
  139. package/src/api/routes/global/tests/realEmail.spec.ts +2 -3
  140. package/src/api/routes/global/tests/roles.spec.ts +27 -0
  141. package/src/api/routes/global/tests/self.spec.ts +3 -4
  142. package/src/api/routes/global/tests/templates.spec.ts +35 -0
  143. package/src/api/routes/global/tests/users.spec.ts +51 -43
  144. package/src/api/routes/global/tests/workspaces.spec.ts +29 -0
  145. package/src/api/routes/global/{users.js → users.ts} +26 -24
  146. package/src/api/routes/global/{workspaces.js → workspaces.ts} +9 -10
  147. package/src/api/routes/index.ts +2 -1
  148. package/src/api/routes/system/accounts.ts +1 -1
  149. package/src/api/routes/system/environment.ts +8 -0
  150. package/src/api/routes/system/migrations.ts +1 -1
  151. package/src/api/routes/system/restore.ts +1 -1
  152. package/src/api/routes/system/status.ts +8 -0
  153. package/src/api/routes/system/tenants.ts +13 -0
  154. package/src/api/routes/system/tests/accounts.spec.ts +5 -6
  155. package/src/api/routes/system/tests/environment.spec.ts +29 -0
  156. package/src/api/routes/system/tests/migrations.spec.ts +63 -0
  157. package/src/api/routes/system/tests/restore.spec.ts +36 -0
  158. package/src/api/routes/system/tests/status.spec.ts +48 -0
  159. package/src/api/routes/system/tests/tenants.spec.ts +61 -0
  160. package/src/api/routes/validation/users.ts +3 -3
  161. package/src/constants/{index.js → index.ts} +57 -64
  162. package/src/constants/templates/{index.js → index.ts} +23 -19
  163. package/src/db/index.ts +10 -0
  164. package/src/environment.ts +8 -6
  165. package/src/index.ts +15 -16
  166. package/src/middleware/{cloudRestricted.js → cloudRestricted.ts} +5 -4
  167. package/src/middleware/tests/tenancy.spec.ts +73 -0
  168. package/src/tests/TestConfiguration.ts +99 -50
  169. package/src/tests/api/accounts.ts +5 -8
  170. package/src/tests/api/auth.ts +3 -6
  171. package/src/tests/api/base.ts +16 -0
  172. package/src/tests/api/configs.ts +15 -8
  173. package/src/tests/api/email.ts +3 -6
  174. package/src/tests/api/environment.ts +15 -0
  175. package/src/tests/api/index.ts +15 -0
  176. package/src/tests/api/migrations.ts +22 -0
  177. package/src/tests/api/restore.ts +14 -0
  178. package/src/tests/api/self.ts +11 -6
  179. package/src/tests/api/status.ts +12 -0
  180. package/src/tests/api/tenants.ts +15 -0
  181. package/src/tests/api/users.ts +38 -6
  182. package/src/tests/controllers.ts +5 -0
  183. package/src/tests/index.ts +5 -1
  184. package/{scripts/jestSetup.js → src/tests/jestSetup.ts} +12 -3
  185. package/src/tests/structures/{configs.js → configs.ts} +11 -11
  186. package/src/tests/structures/index.ts +5 -3
  187. package/src/tests/structures/users.ts +1 -0
  188. package/src/utilities/appService.ts +32 -0
  189. package/src/utilities/{email.js → email.ts} +78 -45
  190. package/src/utilities/fileSystem.ts +5 -0
  191. package/src/utilities/{index.js → index.ts} +1 -1
  192. package/src/utilities/{redis.js → redis.ts} +29 -24
  193. package/src/utilities/templates.ts +49 -0
  194. package/src/utilities/users.ts +16 -0
  195. package/tsconfig.build.json +2 -3
  196. package/tsconfig.json +3 -1
  197. package/src/api/controllers/global/roles.js +0 -68
  198. package/src/api/routes/global/roles.js +0 -12
  199. package/src/api/routes/system/environment.js +0 -8
  200. package/src/api/routes/system/status.js +0 -8
  201. package/src/api/routes/system/tenants.js +0 -12
  202. package/src/db/index.js +0 -11
  203. package/src/tests/controllers.js +0 -7
  204. package/src/tests/structures/accounts.ts +0 -24
  205. package/src/utilities/appService.js +0 -33
  206. package/src/utilities/fileSystem.js +0 -5
  207. package/src/utilities/templates.js +0 -49
  208. package/src/utilities/users.js +0 -17
package/jest.config.ts ADDED
@@ -0,0 +1,29 @@
1
+ import { Config } from "@jest/types"
2
+ import * as fs from "fs"
3
+
4
+ const config: Config.InitialOptions = {
5
+ preset: "ts-jest",
6
+ testEnvironment: "node",
7
+ setupFiles: ["./src/tests/jestSetup.ts"],
8
+ collectCoverageFrom: ["src/**/*.{js,ts}"],
9
+ coverageReporters: ["lcov", "json", "clover"],
10
+ }
11
+
12
+ if (!process.env.CI) {
13
+ // use sources when not in CI
14
+ config.moduleNameMapper = {
15
+ "@budibase/backend-core/(.*)": "<rootDir>/../backend-core/$1",
16
+ "@budibase/backend-core": "<rootDir>/../backend-core/src",
17
+ "@budibase/types": "<rootDir>/../types/src",
18
+ "^axios.*$": "<rootDir>/node_modules/axios/lib/axios.js",
19
+ }
20
+ // add pro sources if they exist
21
+ if (fs.existsSync("../../../budibase-pro")) {
22
+ config.moduleNameMapper["@budibase/pro"] =
23
+ "<rootDir>/../../../budibase-pro/packages/pro/src"
24
+ }
25
+ } else {
26
+ console.log("Running tests with compiled dependency sources")
27
+ }
28
+
29
+ export default config
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/worker",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.1.39",
4
+ "version": "2.1.40-alpha.0",
5
5
  "description": "Budibase background service",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -22,7 +22,7 @@
22
22
  "build:docker": "docker build . -t worker-service --label version=$BUDIBASE_RELEASE_VERSION",
23
23
  "dev:stack:init": "node ./scripts/dev/manage.js init",
24
24
  "dev:builder": "npm run dev:stack:init && nodemon",
25
- "test": "jest --runInBand",
25
+ "test": "jest --coverage --runInBand",
26
26
  "test:watch": "jest --watch",
27
27
  "env:multi:enable": "node scripts/multiTenancy.js enable",
28
28
  "env:multi:disable": "node scripts/multiTenancy.js disable",
@@ -36,10 +36,10 @@
36
36
  "author": "Budibase",
37
37
  "license": "GPL-3.0",
38
38
  "dependencies": {
39
- "@budibase/backend-core": "^2.1.39",
40
- "@budibase/pro": "2.1.38",
41
- "@budibase/string-templates": "^2.1.39",
42
- "@budibase/types": "^2.1.39",
39
+ "@budibase/backend-core": "2.1.40-alpha.0",
40
+ "@budibase/pro": "2.1.39",
41
+ "@budibase/string-templates": "2.1.40-alpha.0",
42
+ "@budibase/types": "2.1.40-alpha.0",
43
43
  "@koa/router": "8.0.8",
44
44
  "@sentry/node": "6.17.7",
45
45
  "@techpass/passport-openidconnect": "0.3.2",
@@ -71,38 +71,28 @@
71
71
  },
72
72
  "devDependencies": {
73
73
  "@types/jest": "26.0.23",
74
+ "@types/jsonwebtoken": "8.5.1",
74
75
  "@types/koa": "2.13.4",
75
76
  "@types/koa__router": "8.0.11",
76
77
  "@types/node": "14.18.20",
78
+ "@types/node-fetch": "2.6.1",
77
79
  "@types/pouchdb": "6.4.0",
78
80
  "@types/uuid": "8.3.4",
79
81
  "@typescript-eslint/parser": "5.12.0",
80
82
  "copyfiles": "2.4.1",
81
83
  "eslint": "6.8.0",
82
- "jest": "27.4.7",
84
+ "jest": "28.1.1",
83
85
  "nodemon": "2.0.15",
84
86
  "pouchdb-adapter-memory": "7.2.2",
85
87
  "prettier": "2.3.1",
86
88
  "rimraf": "3.0.2",
87
89
  "supertest": "6.2.2",
88
90
  "timekeeper": "2.2.0",
89
- "ts-jest": "27.1.3",
90
- "ts-node": "10.4.0",
91
+ "ts-jest": "28.0.4",
92
+ "ts-node": "10.8.1",
91
93
  "tsconfig-paths": "4.0.0",
92
- "typescript": "4.5.5",
94
+ "typescript": "4.7.3",
93
95
  "update-dotenv": "1.1.1"
94
96
  },
95
- "jest": {
96
- "preset": "ts-jest",
97
- "testEnvironment": "node",
98
- "moduleNameMapper": {
99
- "@budibase/backend-core/(.*)": "<rootDir>/../backend-core/$1",
100
- "@budibase/backend-core": "<rootDir>/../backend-core/src",
101
- "@budibase/types": "<rootDir>/../types/src"
102
- },
103
- "setupFiles": [
104
- "./scripts/jestSetup.js"
105
- ]
106
- },
107
- "gitHead": "cf6c77309cb3778fe7bbe11239203a3ad27ee696"
97
+ "gitHead": "c1e2c04c89df9f5ce6d5b25d7f6726a9473d9a34"
108
98
  }
@@ -2,6 +2,36 @@
2
2
  const updateDotEnv = require("update-dotenv")
3
3
 
4
4
  const arg = process.argv.slice(2)[0]
5
+ const isEnable = arg === "enable"
6
+
7
+ let domain = process.argv.slice(2)[1]
8
+ if (!domain) {
9
+ domain = "local.com"
10
+ }
11
+
12
+ const getAccountPortalUrl = () => {
13
+ if (isEnable) {
14
+ return `http://account.${domain}:10001`
15
+ } else {
16
+ return `http://localhost:10001`
17
+ }
18
+ }
19
+
20
+ const getBudibaseUrl = () => {
21
+ if (isEnable) {
22
+ return `http://${domain}:10000`
23
+ } else {
24
+ return `http://localhost:10000`
25
+ }
26
+ }
27
+
28
+ const getCookieDomain = () => {
29
+ if (isEnable) {
30
+ return `.${domain}`
31
+ } else {
32
+ return ""
33
+ }
34
+ }
5
35
 
6
36
  /**
7
37
  * For testing multi tenancy sub domains locally.
@@ -16,11 +46,7 @@ const arg = process.argv.slice(2)[0]
16
46
  * 127.0.0.1 t2.local.com
17
47
  */
18
48
  updateDotEnv({
19
- ACCOUNT_PORTAL_URL:
20
- arg === "enable"
21
- ? "http://account.local.com:10001"
22
- : "http://localhost:10001",
23
- COOKIE_DOMAIN: arg === "enable" ? ".local.com" : "",
24
- PLATFORM_URL:
25
- arg === "enable" ? "http://local.com:10000" : "http://localhost:10000",
49
+ ACCOUNT_PORTAL_URL: getAccountPortalUrl(),
50
+ COOKIE_DOMAIN: getCookieDomain(),
51
+ PLATFORM_URL: getBudibaseUrl(),
26
52
  }).then(() => console.log("Updated worker!"))
@@ -1,22 +1,30 @@
1
- const core = require("@budibase/backend-core")
2
- const { Configs, EmailTemplatePurpose } = require("../../../constants")
3
- const { sendEmail, isEmailConfigured } = require("../../../utilities/email")
4
- const { setCookie, getCookie, clearCookie, hash, platformLogout } = core.utils
5
- const { Cookies, Headers } = core.constants
6
- const { passport, ssoCallbackUrl, google, oidc } = core.auth
7
- const { checkResetPasswordCode } = require("../../../utilities/redis")
8
- const { getGlobalDB } = require("@budibase/backend-core/tenancy")
9
- const env = require("../../../environment")
10
- import { events, users as usersCore, context } from "@budibase/backend-core"
1
+ import {
2
+ auth,
3
+ constants,
4
+ context,
5
+ db as dbCore,
6
+ events,
7
+ tenancy,
8
+ users as usersCore,
9
+ utils,
10
+ } from "@budibase/backend-core"
11
+ import { EmailTemplatePurpose } from "../../../constants"
12
+ import { isEmailConfigured, sendEmail } from "../../../utilities/email"
13
+ import { checkResetPasswordCode } from "../../../utilities/redis"
14
+ import env from "../../../environment"
11
15
  import sdk from "../../../sdk"
12
- import { User } from "@budibase/types"
16
+ import { Config, ConfigType, User } from "@budibase/types"
13
17
 
14
- export const googleCallbackUrl = async (config: any) => {
15
- return ssoCallbackUrl(getGlobalDB(), config, "google")
18
+ const { setCookie, getCookie, clearCookie, hash, platformLogout } = utils
19
+ const { Cookie, Header } = constants
20
+ const { passport, ssoCallbackUrl, google, oidc } = auth
21
+
22
+ export async function googleCallbackUrl(config?: { callbackURL?: string }) {
23
+ return ssoCallbackUrl(tenancy.getGlobalDB(), config, ConfigType.GOOGLE)
16
24
  }
17
25
 
18
- export const oidcCallbackUrl = async (config: any) => {
19
- return ssoCallbackUrl(getGlobalDB(), config, "oidc")
26
+ export async function oidcCallbackUrl(config?: { callbackURL?: string }) {
27
+ return ssoCallbackUrl(tenancy.getGlobalDB(), config, ConfigType.OIDC)
20
28
  }
21
29
 
22
30
  async function authInternal(ctx: any, user: any, err = null, info = null) {
@@ -30,13 +38,13 @@ async function authInternal(ctx: any, user: any, err = null, info = null) {
30
38
  }
31
39
 
32
40
  // set a cookie for browser access
33
- setCookie(ctx, user.token, Cookies.Auth, { sign: false })
41
+ setCookie(ctx, user.token, Cookie.Auth, { sign: false })
34
42
  // set the token in a header as well for APIs
35
- ctx.set(Headers.TOKEN, user.token)
43
+ ctx.set(Header.TOKEN, user.token)
36
44
  // get rid of any app cookies on login
37
45
  // have to check test because this breaks cypress
38
46
  if (!env.isTest()) {
39
- clearCookie(ctx, Cookies.CurrentApp)
47
+ clearCookie(ctx, Cookie.CurrentApp)
40
48
  }
41
49
  }
42
50
 
@@ -55,15 +63,15 @@ export const authenticate = async (ctx: any, next: any) => {
55
63
 
56
64
  export const setInitInfo = (ctx: any) => {
57
65
  const initInfo = ctx.request.body
58
- setCookie(ctx, initInfo, Cookies.Init)
66
+ setCookie(ctx, initInfo, Cookie.Init)
59
67
  ctx.status = 200
60
68
  }
61
69
 
62
70
  export const getInitInfo = (ctx: any) => {
63
71
  try {
64
- ctx.body = getCookie(ctx, Cookies.Init) || {}
72
+ ctx.body = getCookie(ctx, Cookie.Init) || {}
65
73
  } catch (err) {
66
- clearCookie(ctx, Cookies.Init)
74
+ clearCookie(ctx, Cookie.Init)
67
75
  ctx.body = {}
68
76
  }
69
77
  }
@@ -106,7 +114,7 @@ export const resetUpdate = async (ctx: any) => {
106
114
  const { resetCode, password } = ctx.request.body
107
115
  try {
108
116
  const { userId } = await checkResetPasswordCode(resetCode)
109
- const db = getGlobalDB()
117
+ const db = tenancy.getGlobalDB()
110
118
  const user = await db.get(userId)
111
119
  user.password = await hash(password)
112
120
  await db.put(user)
@@ -131,7 +139,7 @@ export const logout = async (ctx: any) => {
131
139
 
132
140
  export const datasourcePreAuth = async (ctx: any, next: any) => {
133
141
  const provider = ctx.params.provider
134
- const middleware = require(`@budibase/backend-core/middleware`)
142
+ const { middleware } = require(`@budibase/backend-core`)
135
143
  const handler = middleware.datasource[provider]
136
144
 
137
145
  setCookie(
@@ -141,16 +149,16 @@ export const datasourcePreAuth = async (ctx: any, next: any) => {
141
149
  appId: ctx.query.appId,
142
150
  datasourceId: ctx.query.datasourceId,
143
151
  },
144
- Cookies.DatasourceAuth
152
+ Cookie.DatasourceAuth
145
153
  )
146
154
 
147
155
  return handler.preAuth(passport, ctx, next)
148
156
  }
149
157
 
150
158
  export const datasourceAuth = async (ctx: any, next: any) => {
151
- const authStateCookie = getCookie(ctx, Cookies.DatasourceAuth)
159
+ const authStateCookie = getCookie(ctx, Cookie.DatasourceAuth)
152
160
  const provider = authStateCookie.provider
153
- const middleware = require(`@budibase/backend-core/middleware`)
161
+ const { middleware } = require(`@budibase/backend-core`)
154
162
  const handler = middleware.datasource[provider]
155
163
  return handler.postAuth(passport, ctx, next)
156
164
  }
@@ -160,13 +168,13 @@ export const datasourceAuth = async (ctx: any, next: any) => {
160
168
  * On a successful login, you will be redirected to the googleAuth callback route.
161
169
  */
162
170
  export const googlePreAuth = async (ctx: any, next: any) => {
163
- const db = getGlobalDB()
171
+ const db = tenancy.getGlobalDB()
164
172
 
165
- const config = await core.db.getScopedConfig(db, {
166
- type: Configs.GOOGLE,
173
+ const config = await dbCore.getScopedConfig(db, {
174
+ type: ConfigType.GOOGLE,
167
175
  workspace: ctx.query.workspace,
168
176
  })
169
- let callbackUrl = await exports.googleCallbackUrl(config)
177
+ let callbackUrl = await googleCallbackUrl(config)
170
178
  const strategy = await google.strategyFactory(
171
179
  config,
172
180
  callbackUrl,
@@ -181,13 +189,13 @@ export const googlePreAuth = async (ctx: any, next: any) => {
181
189
  }
182
190
 
183
191
  export const googleAuth = async (ctx: any, next: any) => {
184
- const db = getGlobalDB()
192
+ const db = tenancy.getGlobalDB()
185
193
 
186
- const config = await core.db.getScopedConfig(db, {
187
- type: Configs.GOOGLE,
194
+ const config = await dbCore.getScopedConfig(db, {
195
+ type: ConfigType.GOOGLE,
188
196
  workspace: ctx.query.workspace,
189
197
  })
190
- const callbackUrl = await exports.googleCallbackUrl(config)
198
+ const callbackUrl = await googleCallbackUrl(config)
191
199
  const strategy = await google.strategyFactory(
192
200
  config,
193
201
  callbackUrl,
@@ -208,14 +216,14 @@ export const googleAuth = async (ctx: any, next: any) => {
208
216
  }
209
217
 
210
218
  export const oidcStrategyFactory = async (ctx: any, configId: any) => {
211
- const db = getGlobalDB()
212
- const config = await core.db.getScopedConfig(db, {
213
- type: Configs.OIDC,
219
+ const db = tenancy.getGlobalDB()
220
+ const config = await dbCore.getScopedConfig(db, {
221
+ type: ConfigType.OIDC,
214
222
  group: ctx.query.group,
215
223
  })
216
224
 
217
225
  const chosenConfig = config.configs.filter((c: any) => c.uuid === configId)[0]
218
- let callbackUrl = await exports.oidcCallbackUrl(chosenConfig)
226
+ let callbackUrl = await oidcCallbackUrl(chosenConfig)
219
227
 
220
228
  //Remote Config
221
229
  const enrichedConfig = await oidc.fetchStrategyConfig(
@@ -233,11 +241,11 @@ export const oidcPreAuth = async (ctx: any, next: any) => {
233
241
  const { configId } = ctx.params
234
242
  const strategy = await oidcStrategyFactory(ctx, configId)
235
243
 
236
- setCookie(ctx, configId, Cookies.OIDC_CONFIG)
244
+ setCookie(ctx, configId, Cookie.OIDC_CONFIG)
237
245
 
238
- const db = getGlobalDB()
239
- const config = await core.db.getScopedConfig(db, {
240
- type: Configs.OIDC,
246
+ const db = tenancy.getGlobalDB()
247
+ const config = await dbCore.getScopedConfig(db, {
248
+ type: ConfigType.OIDC,
241
249
  group: ctx.query.group,
242
250
  })
243
251
 
@@ -255,7 +263,7 @@ export const oidcPreAuth = async (ctx: any, next: any) => {
255
263
  }
256
264
 
257
265
  export const oidcAuth = async (ctx: any, next: any) => {
258
- const configId = getCookie(ctx, Cookies.OIDC_CONFIG)
266
+ const configId = getCookie(ctx, Cookie.OIDC_CONFIG)
259
267
  const strategy = await oidcStrategyFactory(ctx, configId)
260
268
 
261
269
  return passport.authenticate(