@budibase/server 1.0.49-alpha.6 → 1.0.49

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 (376) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +5 -4
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +1 -2
  6. package/__mocks__/pg.ts +5 -3
  7. package/builder/assets/{index.1b905242.js → index.2c37968e.js} +231 -234
  8. package/builder/assets/index.39e01193.css +1 -0
  9. package/builder/assets/{vendor.d526bfe8.js → vendor.f9faf6ab.js} +12 -12
  10. package/builder/index.html +3 -3
  11. package/coverage/clover.xml +2816 -3119
  12. package/coverage/coverage-final.json +101 -106
  13. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/application.js.html +152 -257
  16. package/coverage/lcov-report/api/controllers/auth.js.html +13 -22
  17. package/coverage/lcov-report/api/controllers/automation.js.html +69 -39
  18. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -8
  20. package/coverage/lcov-report/api/controllers/component.js.html +16 -13
  21. package/coverage/lcov-report/api/controllers/datasource.js.html +51 -81
  22. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  23. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → api/controllers/hosting.js.html} +48 -36
  24. package/coverage/lcov-report/api/controllers/index.html +76 -76
  25. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
  27. package/coverage/lcov-report/api/controllers/metadata.js.html +21 -6
  28. package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
  29. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  30. package/coverage/lcov-report/api/controllers/query/index.js.html +35 -38
  31. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  32. package/coverage/lcov-report/api/controllers/role.js.html +16 -16
  33. package/coverage/lcov-report/api/controllers/routing.js.html +10 -7
  34. package/coverage/lcov-report/api/controllers/row/external.js.html +27 -21
  35. package/coverage/lcov-report/api/controllers/row/index.html +34 -49
  36. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  37. package/coverage/lcov-report/api/controllers/row/internal.js.html +226 -118
  38. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +34 -52
  39. package/coverage/lcov-report/api/controllers/row/utils.js.html +62 -47
  40. package/coverage/lcov-report/api/controllers/screen.js.html +21 -15
  41. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  42. package/coverage/lcov-report/api/controllers/table/external.js.html +34 -25
  43. package/coverage/lcov-report/api/controllers/table/index.html +43 -58
  44. package/coverage/lcov-report/api/controllers/table/index.js.html +82 -58
  45. package/coverage/lcov-report/api/controllers/table/internal.js.html +66 -81
  46. package/coverage/lcov-report/api/controllers/table/utils.js.html +110 -218
  47. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/user.js.html +50 -47
  49. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  50. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  51. package/coverage/lcov-report/api/controllers/view/index.js.html +33 -27
  52. package/coverage/lcov-report/api/controllers/view/utils.js.html +20 -35
  53. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  54. package/coverage/lcov-report/api/controllers/webhook.js.html +28 -34
  55. package/coverage/lcov-report/api/index.html +1 -1
  56. package/coverage/lcov-report/api/index.js.html +8 -8
  57. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/{migrations.js.html → hosting.js.html} +14 -17
  69. package/coverage/lcov-report/api/routes/index.html +18 -18
  70. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  71. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/static.js.html +2 -17
  82. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  87. package/coverage/lcov-report/automations/actions.js.html +24 -24
  88. package/coverage/lcov-report/automations/automationUtils.js.html +10 -7
  89. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  90. package/coverage/lcov-report/automations/index.html +18 -18
  91. package/coverage/lcov-report/automations/index.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  93. package/coverage/lcov-report/automations/steps/createRow.js.html +22 -13
  94. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  95. package/coverage/lcov-report/automations/steps/deleteRow.js.html +20 -11
  96. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  97. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  98. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  99. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  100. package/coverage/lcov-report/automations/steps/index.html +13 -13
  101. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  102. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  103. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  104. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  105. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  106. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  107. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  108. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  109. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  110. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  114. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  118. package/coverage/lcov-report/automations/triggers.js.html +55 -61
  119. package/coverage/lcov-report/automations/utils.js.html +42 -54
  120. package/coverage/lcov-report/constants/index.html +5 -5
  121. package/coverage/lcov-report/constants/index.js.html +26 -53
  122. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  123. package/coverage/lcov-report/constants/screens.js.html +4 -4
  124. package/coverage/lcov-report/db/client.js.html +18 -18
  125. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  126. package/coverage/lcov-report/db/index.html +15 -15
  127. package/coverage/lcov-report/db/index.js.html +3 -3
  128. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +37 -25
  129. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  130. package/coverage/lcov-report/db/linkedRows/index.js.html +96 -51
  131. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
  132. package/coverage/lcov-report/db/newid.js.html +4 -4
  133. package/coverage/lcov-report/db/utils.js.html +87 -87
  134. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  135. package/coverage/lcov-report/events/index.html +1 -1
  136. package/coverage/lcov-report/events/index.js.html +5 -5
  137. package/coverage/lcov-report/events/utils.js.html +3 -3
  138. package/coverage/lcov-report/index.html +120 -135
  139. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  140. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  141. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  142. package/coverage/lcov-report/middleware/authorized.js.html +65 -173
  143. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  144. package/coverage/lcov-report/middleware/currentapp.js.html +83 -95
  145. package/coverage/lcov-report/middleware/index.html +38 -38
  146. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  147. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  148. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  149. package/coverage/lcov-report/middleware/usageQuota.js.html +53 -281
  150. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  151. package/coverage/lcov-report/threads/automation.js.html +24 -30
  152. package/coverage/lcov-report/threads/index.html +26 -26
  153. package/coverage/lcov-report/threads/index.js.html +10 -10
  154. package/coverage/lcov-report/threads/query.js.html +26 -62
  155. package/coverage/lcov-report/threads/utils.js.html +14 -14
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  158. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  159. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  160. package/coverage/lcov-report/utilities/global.js.html +49 -58
  161. package/coverage/lcov-report/utilities/index.html +37 -37
  162. package/coverage/lcov-report/utilities/index.js.html +73 -43
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  164. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +103 -97
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +27 -75
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  171. package/coverage/lcov-report/utilities/security.js.html +8 -8
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  173. package/coverage/lcov-report/utilities/users.js.html +9 -9
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +112 -43
  175. package/coverage/lcov.info +4423 -5022
  176. package/dist/api/controllers/application.js +60 -90
  177. package/dist/api/controllers/auth.js +5 -8
  178. package/dist/api/controllers/automation.js +19 -14
  179. package/dist/api/controllers/cloud.js +3 -2
  180. package/dist/api/controllers/component.js +4 -3
  181. package/dist/api/controllers/datasource.js +10 -20
  182. package/dist/api/controllers/deploy/Deployment.js +6 -3
  183. package/dist/api/controllers/deploy/index.js +13 -12
  184. package/dist/api/controllers/dev.js +5 -5
  185. package/dist/api/controllers/hosting.js +30 -0
  186. package/dist/api/controllers/layout.js +3 -3
  187. package/dist/api/controllers/metadata.js +4 -4
  188. package/dist/api/controllers/permission.js +4 -4
  189. package/dist/api/controllers/query/import/index.js +6 -4
  190. package/dist/api/controllers/query/index.js +10 -11
  191. package/dist/api/controllers/role.js +5 -5
  192. package/dist/api/controllers/routing.js +6 -5
  193. package/dist/api/controllers/row/ExternalRequest.js +63 -76
  194. package/dist/api/controllers/row/external.js +4 -4
  195. package/dist/api/controllers/row/internal.js +93 -55
  196. package/dist/api/controllers/row/internalSearch.js +17 -23
  197. package/dist/api/controllers/row/utils.js +14 -13
  198. package/dist/api/controllers/screen.js +7 -5
  199. package/dist/api/controllers/static/index.js +12 -61
  200. package/dist/api/controllers/table/external.js +10 -7
  201. package/dist/api/controllers/table/index.js +13 -16
  202. package/dist/api/controllers/table/internal.js +16 -22
  203. package/dist/api/controllers/table/utils.js +35 -62
  204. package/dist/api/controllers/user.js +20 -18
  205. package/dist/api/controllers/view/index.js +10 -8
  206. package/dist/api/controllers/view/utils.js +4 -9
  207. package/dist/api/controllers/webhook.js +8 -10
  208. package/dist/api/routes/hosting.js +11 -0
  209. package/dist/api/routes/index.js +2 -2
  210. package/dist/api/routes/static.js +1 -2
  211. package/dist/api/routes/tests/utilities/TestFunctions.js +17 -37
  212. package/dist/app.js +5 -35
  213. package/dist/automations/automationUtils.js +3 -2
  214. package/dist/automations/steps/createRow.js +5 -3
  215. package/dist/automations/steps/deleteRow.js +4 -1
  216. package/dist/automations/steps/updateRow.js +1 -1
  217. package/dist/automations/triggers.js +25 -27
  218. package/dist/automations/utils.js +5 -10
  219. package/dist/constants/index.js +0 -7
  220. package/dist/db/linkedRows/LinkController.js +7 -3
  221. package/dist/db/linkedRows/index.js +27 -16
  222. package/dist/db/linkedRows/linkUtils.js +6 -6
  223. package/dist/db/views/staticViews.js +10 -9
  224. package/dist/definitions/datasource.js +0 -1
  225. package/dist/environment.js +1 -4
  226. package/dist/integrations/base/sql.js +6 -13
  227. package/dist/integrations/index.js +0 -3
  228. package/dist/integrations/utils.js +9 -60
  229. package/dist/middleware/authorized.js +30 -57
  230. package/dist/middleware/builder.js +2 -2
  231. package/dist/middleware/currentapp.js +37 -41
  232. package/dist/middleware/usageQuota.js +15 -82
  233. package/dist/package.json +5 -8
  234. package/dist/tests/utilities/TestConfiguration.js +50 -80
  235. package/dist/threads/automation.js +11 -13
  236. package/dist/threads/query.js +13 -23
  237. package/dist/tsconfig.tsbuildinfo +1 -1
  238. package/dist/utilities/fileSystem/index.js +3 -4
  239. package/dist/utilities/global.js +12 -15
  240. package/dist/utilities/index.js +17 -7
  241. package/dist/utilities/routing/index.js +5 -5
  242. package/dist/utilities/rowProcessor/index.js +17 -23
  243. package/dist/utilities/rowProcessor/utils.js +4 -14
  244. package/dist/utilities/{usageQuota/index.js → usageQuota.js} +31 -45
  245. package/dist/utilities/users.js +3 -3
  246. package/dist/utilities/workerRequests.js +24 -4
  247. package/nodemon.json +1 -1
  248. package/package.json +6 -9
  249. package/scripts/likeCypress.ts +1 -1
  250. package/src/api/controllers/application.js +50 -85
  251. package/src/api/controllers/auth.js +5 -8
  252. package/src/api/controllers/automation.js +23 -13
  253. package/src/api/controllers/cloud.js +3 -2
  254. package/src/api/controllers/component.js +4 -3
  255. package/src/api/controllers/datasource.js +11 -21
  256. package/src/api/controllers/deploy/Deployment.js +7 -3
  257. package/src/api/controllers/deploy/index.js +13 -20
  258. package/src/api/controllers/dev.js +5 -5
  259. package/src/api/controllers/hosting.js +22 -0
  260. package/src/api/controllers/layout.js +3 -3
  261. package/src/api/controllers/metadata.js +9 -4
  262. package/src/api/controllers/permission.js +4 -4
  263. package/src/api/controllers/query/import/index.ts +6 -4
  264. package/src/api/controllers/query/import/tests/index.spec.js +1 -2
  265. package/src/api/controllers/query/index.js +10 -11
  266. package/src/api/controllers/role.js +5 -5
  267. package/src/api/controllers/routing.js +6 -5
  268. package/src/api/controllers/row/ExternalRequest.ts +42 -53
  269. package/src/api/controllers/row/external.js +6 -4
  270. package/src/api/controllers/row/internal.js +90 -54
  271. package/src/api/controllers/row/internalSearch.js +17 -23
  272. package/src/api/controllers/row/utils.js +18 -13
  273. package/src/api/controllers/screen.js +7 -5
  274. package/src/api/controllers/static/index.js +12 -65
  275. package/src/api/controllers/table/external.js +10 -7
  276. package/src/api/controllers/table/index.js +28 -20
  277. package/src/api/controllers/table/internal.js +19 -24
  278. package/src/api/controllers/table/utils.js +42 -78
  279. package/src/api/controllers/user.js +20 -19
  280. package/src/api/controllers/view/index.js +10 -8
  281. package/src/api/controllers/view/utils.js +4 -9
  282. package/src/api/controllers/webhook.js +8 -10
  283. package/src/api/routes/hosting.js +13 -0
  284. package/src/api/routes/index.js +2 -2
  285. package/src/api/routes/static.js +0 -5
  286. package/src/api/routes/tests/application.spec.js +2 -2
  287. package/src/api/routes/tests/auth.spec.js +2 -1
  288. package/src/api/routes/tests/automation.spec.js +0 -1
  289. package/src/api/routes/tests/hosting.spec.js +36 -0
  290. package/src/api/routes/tests/misc.spec.js +1 -0
  291. package/src/api/routes/tests/routing.spec.js +12 -21
  292. package/src/api/routes/tests/row.spec.js +4 -7
  293. package/src/api/routes/tests/utilities/TestFunctions.js +17 -39
  294. package/src/app.ts +5 -18
  295. package/src/automations/automationUtils.js +3 -2
  296. package/src/automations/steps/createRow.js +5 -2
  297. package/src/automations/steps/deleteRow.js +4 -1
  298. package/src/automations/steps/updateRow.js +1 -1
  299. package/src/automations/triggers.js +31 -33
  300. package/src/automations/utils.js +5 -9
  301. package/src/constants/index.js +0 -9
  302. package/src/db/linkedRows/LinkController.js +7 -3
  303. package/src/db/linkedRows/index.js +31 -16
  304. package/src/db/linkedRows/linkUtils.js +6 -6
  305. package/src/db/tests/linkController.spec.js +1 -0
  306. package/src/db/tests/linkTests.spec.js +6 -5
  307. package/src/db/views/staticViews.js +10 -8
  308. package/src/definitions/common.ts +0 -3
  309. package/src/definitions/datasource.ts +0 -3
  310. package/src/environment.js +1 -4
  311. package/src/integrations/base/sql.ts +7 -14
  312. package/src/integrations/index.ts +0 -3
  313. package/src/integrations/tests/sql.spec.js +0 -16
  314. package/src/integrations/utils.ts +12 -75
  315. package/src/middleware/authorized.js +30 -66
  316. package/src/middleware/builder.js +2 -2
  317. package/src/middleware/currentapp.js +46 -50
  318. package/src/middleware/tests/authorized.spec.js +6 -13
  319. package/src/middleware/tests/currentapp.spec.js +0 -6
  320. package/src/middleware/tests/usageQuota.spec.js +24 -18
  321. package/src/middleware/usageQuota.js +17 -93
  322. package/src/tests/utilities/TestConfiguration.js +55 -82
  323. package/src/threads/automation.js +15 -17
  324. package/src/threads/query.js +14 -26
  325. package/src/utilities/fileSystem/index.js +3 -4
  326. package/src/utilities/global.js +12 -15
  327. package/src/utilities/index.js +17 -7
  328. package/src/utilities/routing/index.js +5 -5
  329. package/src/utilities/rowProcessor/index.js +27 -25
  330. package/src/utilities/rowProcessor/utils.js +7 -23
  331. package/src/utilities/usageQuota.js +73 -0
  332. package/src/utilities/users.js +3 -3
  333. package/src/utilities/workerRequests.js +27 -4
  334. package/builder/assets/index.83c0944f.css +0 -1
  335. package/coverage/lcov-report/api/controllers/migrations.js.html +0 -119
  336. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +0 -548
  337. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +0 -599
  338. package/coverage/lcov-report/utilities/usageQuota/index.html +0 -141
  339. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  340. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +0 -305
  341. package/dist/api/controllers/migrations.js +0 -21
  342. package/dist/api/controllers/row/staticFormula.js +0 -147
  343. package/dist/api/controllers/table/bulkFormula.js +0 -159
  344. package/dist/api/routes/migrations.js +0 -9
  345. package/dist/integrations/googlesheets.js +0 -340
  346. package/dist/migrations/functions/appUrls.js +0 -46
  347. package/dist/migrations/functions/quotas1.js +0 -50
  348. package/dist/migrations/functions/usageQuotas/index.js +0 -20
  349. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -30
  350. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  351. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  352. package/dist/migrations/index.js +0 -62
  353. package/dist/utilities/usageQuota/rows.js +0 -78
  354. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  355. package/src/api/controllers/migrations.js +0 -13
  356. package/src/api/controllers/row/staticFormula.js +0 -156
  357. package/src/api/controllers/table/bulkFormula.js +0 -173
  358. package/src/api/routes/migrations.js +0 -14
  359. package/src/api/routes/tests/static.spec.js +0 -98
  360. package/src/integrations/googlesheets.ts +0 -353
  361. package/src/migrations/functions/appUrls.ts +0 -34
  362. package/src/migrations/functions/quotas1.ts +0 -20
  363. package/src/migrations/functions/tests/appUrls.spec.js +0 -29
  364. package/src/migrations/functions/tests/quotas1.spec.js +0 -27
  365. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +0 -25
  366. package/src/migrations/functions/usageQuotas/index.ts +0 -8
  367. package/src/migrations/functions/usageQuotas/syncApps.ts +0 -19
  368. package/src/migrations/functions/usageQuotas/syncRows.ts +0 -22
  369. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
  370. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
  371. package/src/migrations/functions/userEmailViewCasing.ts +0 -13
  372. package/src/migrations/index.ts +0 -56
  373. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  374. package/src/utilities/usageQuota/index.js +0 -93
  375. package/src/utilities/usageQuota/rows.js +0 -75
  376. package/src/utilities/usageQuota/usageQuoteReset.js +0 -18
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">83.6% </span>
26
+ <span class="strong">81.03% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>51/61</span>
28
+ <span class='fraction'>47/58</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">78.57% </span>
33
+ <span class="strong">68% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>22/28</span>
35
+ <span class='fraction'>17/25</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">84.74% </span>
47
+ <span class="strong">82.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>50/59</span>
49
+ <span class='fraction'>46/56</span>
50
50
  </div>
51
51
 
52
52
 
@@ -161,74 +161,68 @@
161
161
  <a name='L102'></a><a href='#L102'>102</a>
162
162
  <a name='L103'></a><a href='#L103'>103</a>
163
163
  <a name='L104'></a><a href='#L104'>104</a>
164
- <a name='L105'></a><a href='#L105'>105</a>
165
- <a name='L106'></a><a href='#L106'>106</a>
166
- <a name='L107'></a><a href='#L107'>107</a>
167
- <a name='L108'></a><a href='#L108'>108</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
164
+ <a name='L105'></a><a href='#L105'>105</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
168
165
  <span class="cline-any cline-neutral">&nbsp;</span>
169
166
  <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">44x</span>
171
- <span class="cline-any cline-yes">44x</span>
172
- <span class="cline-any cline-yes">44x</span>
173
- <span class="cline-any cline-yes">44x</span>
174
- <span class="cline-any cline-yes">44x</span>
167
+ <span class="cline-any cline-yes">39x</span>
168
+ <span class="cline-any cline-yes">39x</span>
169
+ <span class="cline-any cline-yes">39x</span>
170
+ <span class="cline-any cline-yes">39x</span>
171
+ <span class="cline-any cline-yes">39x</span>
175
172
  <span class="cline-any cline-neutral">&nbsp;</span>
176
173
  <span class="cline-any cline-neutral">&nbsp;</span>
177
174
  <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-yes">44x</span>
179
- <span class="cline-any cline-yes">44x</span>
180
- <span class="cline-any cline-yes">44x</span>
175
+ <span class="cline-any cline-yes">39x</span>
176
+ <span class="cline-any cline-yes">39x</span>
181
177
  <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-yes">44x</span>
183
- <span class="cline-any cline-yes">173x</span>
184
- <span class="cline-any cline-yes">173x</span>
178
+ <span class="cline-any cline-yes">39x</span>
179
+ <span class="cline-any cline-yes">143x</span>
185
180
  <span class="cline-any cline-yes">3x</span>
186
181
  <span class="cline-any cline-neutral">&nbsp;</span>
187
182
  <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-yes">170x</span>
183
+ <span class="cline-any cline-yes">140x</span>
189
184
  <span class="cline-any cline-no">&nbsp;</span>
190
185
  <span class="cline-any cline-no">&nbsp;</span>
191
186
  <span class="cline-any cline-no">&nbsp;</span>
192
187
  <span class="cline-any cline-no">&nbsp;</span>
193
188
  <span class="cline-any cline-neutral">&nbsp;</span>
194
189
  <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-yes">170x</span>
190
+ <span class="cline-any cline-yes">140x</span>
196
191
  <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-yes">170x</span>
198
- <span class="cline-any cline-yes">138x</span>
199
- <span class="cline-any cline-yes">32x</span>
200
- <span class="cline-any cline-yes">27x</span>
192
+ <span class="cline-any cline-yes">140x</span>
193
+ <span class="cline-any cline-yes">135x</span>
194
+ <span class="cline-any cline-yes">5x</span>
195
+ <span class="cline-any cline-no">&nbsp;</span>
201
196
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-yes">170x</span>
203
- <span class="cline-any cline-yes">170x</span>
197
+ <span class="cline-any cline-yes">140x</span>
198
+ <span class="cline-any cline-yes">140x</span>
204
199
  <span class="cline-any cline-neutral">&nbsp;</span>
205
200
  <span class="cline-any cline-neutral">&nbsp;</span>
206
201
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">166x</span>
208
- <span class="cline-any cline-yes">166x</span>
202
+ <span class="cline-any cline-yes">136x</span>
203
+ <span class="cline-any cline-yes">136x</span>
209
204
  <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-yes">166x</span>
205
+ <span class="cline-any cline-yes">136x</span>
211
206
  <span class="cline-any cline-neutral">&nbsp;</span>
212
207
  <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-yes">44x</span>
208
+ <span class="cline-any cline-yes">39x</span>
214
209
  <span class="cline-any cline-neutral">&nbsp;</span>
215
210
  <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-yes">164x</span>
217
- <span class="cline-any cline-yes">164x</span>
211
+ <span class="cline-any cline-yes">134x</span>
212
+ <span class="cline-any cline-yes">134x</span>
218
213
  <span class="cline-any cline-neutral">&nbsp;</span>
219
214
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">44x</span>
215
+ <span class="cline-any cline-yes">39x</span>
221
216
  <span class="cline-any cline-yes">2x</span>
222
217
  <span class="cline-any cline-yes">2x</span>
223
218
  <span class="cline-any cline-neutral">&nbsp;</span>
224
219
  <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-yes">44x</span>
220
+ <span class="cline-any cline-yes">39x</span>
226
221
  <span class="cline-any cline-yes">2x</span>
227
222
  <span class="cline-any cline-yes">2x</span>
228
223
  <span class="cline-any cline-neutral">&nbsp;</span>
229
224
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">44x</span>
231
- <span class="cline-any cline-yes">32x</span>
225
+ <span class="cline-any cline-yes">39x</span>
232
226
  <span class="cline-any cline-yes">32x</span>
233
227
  <span class="cline-any cline-neutral">&nbsp;</span>
234
228
  <span class="cline-any cline-yes">32x</span>
@@ -258,7 +252,7 @@
258
252
  <span class="cline-any cline-yes">32x</span>
259
253
  <span class="cline-any cline-neutral">&nbsp;</span>
260
254
  <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-yes">44x</span>
255
+ <span class="cline-any cline-yes">39x</span>
262
256
  <span class="cline-any cline-yes">30x</span>
263
257
  <span class="cline-any cline-yes">30x</span>
264
258
  <span class="cline-any cline-no">&nbsp;</span>
@@ -276,7 +270,7 @@
276
270
  getGlobalIDFromUserMetadataID,
277
271
  } = require("../db/utils")
278
272
  const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
279
- const { getProdAppID } = require("@budibase/backend-core/db")
273
+ const { getDeployedAppID } = require("@budibase/backend-core/db")
280
274
  const { getGlobalUserParams } = require("@budibase/backend-core/db")
281
275
  const { user: userCache } = require("@budibase/backend-core/cache")
282
276
  const {
@@ -284,10 +278,8 @@ const {
284
278
  isUserInAppTenant,
285
279
  } = require("@budibase/backend-core/tenancy")
286
280
  const env = require("../environment")
287
- const { getAppId } = require("@budibase/backend-core/context")
288
281
  &nbsp;
289
- exports.updateAppRole = (user, { appId } = {}) =&gt; {
290
- appId = appId || getAppId()
282
+ exports.updateAppRole = (appId, user) =&gt; {
291
283
  if (!user || !user.roles) {
292
284
  return user
293
285
  }
@@ -299,29 +291,29 @@ exports.updateAppRole = (user, { appId } = {}) =&gt; {
299
291
  <span class="cstat-no" title="statement not covered" > return user</span>
300
292
  }
301
293
  // always use the deployed app
302
- user.roleId = user.roles[getProdAppID(appId)]
294
+ user.roleId = user.roles[getDeployedAppID(appId)]
303
295
  // if a role wasn't found then either set as admin (builder) or public (everyone else)
304
296
  if (!user.roleId &amp;&amp; user.builder &amp;&amp; user.builder.global) {
305
297
  user.roleId = BUILTIN_ROLE_IDS.ADMIN
306
- } else if (!user.roleId) {
307
- user.roleId = BUILTIN_ROLE_IDS.PUBLIC
298
+ } else <span class="missing-if-branch" title="if path not taken" >I</span>if (!user.roleId) {
299
+ <span class="cstat-no" title="statement not covered" > user.roleId = BUILTIN_ROLE_IDS.PUBLIC</span>
308
300
  }
309
301
  delete user.roles
310
302
  return user
311
303
  }
312
304
  &nbsp;
313
- function processUser(user, { appId } = {}) {
305
+ function processUser(appId, user) {
314
306
  if (user) {
315
307
  delete user.password
316
308
  }
317
- return exports.updateAppRole(user, { appId })
309
+ return exports.updateAppRole(appId, user)
318
310
  }
319
311
  &nbsp;
320
312
  exports.getCachedSelf = async (ctx, appId) =&gt; {
321
313
  // this has to be tenant aware, can't depend on the context to find it out
322
314
  // running some middlewares before the tenancy causes context to break
323
315
  const user = await userCache.getUser(ctx.user._id)
324
- return processUser(user, { appId })
316
+ return processUser(appId, user)
325
317
  }
326
318
  &nbsp;
327
319
  exports.getRawGlobalUser = async userId =&gt; {
@@ -329,13 +321,12 @@ exports.getRawGlobalUser = async userId =&gt; {
329
321
  return db.get(getGlobalIDFromUserMetadataID(userId))
330
322
  }
331
323
  &nbsp;
332
- exports.getGlobalUser = async userId =&gt; {
324
+ exports.getGlobalUser = async (appId, userId) =&gt; {
333
325
  let user = await exports.getRawGlobalUser(userId)
334
- return processUser(user)
326
+ return processUser(appId, user)
335
327
  }
336
328
  &nbsp;
337
- exports.getGlobalUsers = async (users = null) =&gt; {
338
- const appId = getAppId()
329
+ exports.getGlobalUsers = async (appId = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span> users = null) =&gt; {
339
330
  const db = getGlobalDB()
340
331
  let globalUsers
341
332
  if (users) {
@@ -362,11 +353,11 @@ exports.getGlobalUsers = async (users = null) =&gt; {
362
353
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!appId) {
363
354
  <span class="cstat-no" title="statement not covered" > return globalUsers</span>
364
355
  }
365
- return globalUsers.map(user =&gt; exports.updateAppRole(user))
356
+ return globalUsers.map(user =&gt; exports.updateAppRole(appId, user))
366
357
  }
367
358
  &nbsp;
368
- exports.getGlobalUsersFromMetadata = async users =&gt; {
369
- const globalUsers = await exports.getGlobalUsers(users)
359
+ exports.getGlobalUsersFromMetadata = async (appId, users) =&gt; {
360
+ const globalUsers = await exports.getGlobalUsers(appId, users)
370
361
  return users.map(<span class="fstat-no" title="function not covered" >us</span>er =&gt; {
371
362
  const globalUser = <span class="cstat-no" title="statement not covered" >globalUsers.find(</span>
372
363
  <span class="fstat-no" title="function not covered" > gl</span>obalUser =&gt; <span class="cstat-no" title="statement not covered" >globalUser &amp;&amp; user._id.includes(globalUser._id)</span>
@@ -385,7 +376,7 @@ exports.getGlobalUsersFromMetadata = async users =&gt; {
385
376
  <div class='footer quiet pad2 space-top1 center small'>
386
377
  Code coverage generated by
387
378
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
388
- at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
379
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
389
380
  </div>
390
381
  </div>
391
382
  <script src="../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">72.83% </span>
26
+ <span class="strong">72.78% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>236/324</span>
28
+ <span class='fraction'>246/338</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">56.81% </span>
33
+ <span class="strong">55.63% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>75/132</span>
35
+ <span class='fraction'>74/133</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">68.85% </span>
40
+ <span class="strong">68.25% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>42/61</span>
42
+ <span class='fraction'>43/63</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">72.55% </span>
47
+ <span class="strong">72.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>230/317</span>
49
+ <span class='fraction'>240/331</span>
50
50
  </div>
51
51
 
52
52
 
@@ -134,32 +134,32 @@
134
134
 
135
135
  <tr>
136
136
  <td class="file high" data-value="global.js"><a href="global.js.html">global.js</a></td>
137
- <td data-value="83.6" class="pic high">
138
- <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
137
+ <td data-value="81.03" class="pic high">
138
+ <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
139
139
  </td>
140
- <td data-value="83.6" class="pct high">83.6%</td>
141
- <td data-value="61" class="abs high">51/61</td>
142
- <td data-value="78.57" class="pct medium">78.57%</td>
143
- <td data-value="28" class="abs medium">22/28</td>
140
+ <td data-value="81.03" class="pct high">81.03%</td>
141
+ <td data-value="58" class="abs high">47/58</td>
142
+ <td data-value="68" class="pct medium">68%</td>
143
+ <td data-value="25" class="abs medium">17/25</td>
144
144
  <td data-value="73.33" class="pct medium">73.33%</td>
145
145
  <td data-value="15" class="abs medium">11/15</td>
146
- <td data-value="84.74" class="pct high">84.74%</td>
147
- <td data-value="59" class="abs high">50/59</td>
146
+ <td data-value="82.14" class="pct high">82.14%</td>
147
+ <td data-value="56" class="abs high">46/56</td>
148
148
  </tr>
149
149
 
150
150
  <tr>
151
151
  <td class="file medium" data-value="index.js"><a href="index.js.html">index.js</a></td>
152
- <td data-value="77.77" class="pic medium">
153
- <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
152
+ <td data-value="73.07" class="pic medium">
153
+ <div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
154
154
  </td>
155
- <td data-value="77.77" class="pct medium">77.77%</td>
156
- <td data-value="72" class="abs medium">56/72</td>
157
- <td data-value="53.84" class="pct medium">53.84%</td>
158
- <td data-value="26" class="abs medium">14/26</td>
159
- <td data-value="80" class="pct high">80%</td>
160
- <td data-value="15" class="abs high">12/15</td>
161
- <td data-value="77.14" class="pct medium">77.14%</td>
162
- <td data-value="70" class="abs medium">54/70</td>
155
+ <td data-value="73.07" class="pct medium">73.07%</td>
156
+ <td data-value="78" class="abs medium">57/78</td>
157
+ <td data-value="50" class="pct medium">50%</td>
158
+ <td data-value="28" class="abs medium">14/28</td>
159
+ <td data-value="75" class="pct medium">75%</td>
160
+ <td data-value="16" class="abs medium">12/16</td>
161
+ <td data-value="72.36" class="pct medium">72.36%</td>
162
+ <td data-value="76" class="abs medium">55/76</td>
163
163
  </tr>
164
164
 
165
165
  <tr>
@@ -224,17 +224,17 @@
224
224
 
225
225
  <tr>
226
226
  <td class="file medium" data-value="workerRequests.js"><a href="workerRequests.js.html">workerRequests.js</a></td>
227
- <td data-value="52.38" class="pic medium">
228
- <div class="chart"><div class="cover-fill" style="width: 52%"></div><div class="cover-empty" style="width: 48%"></div></div>
227
+ <td data-value="66.03" class="pic medium">
228
+ <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
229
229
  </td>
230
- <td data-value="52.38" class="pct medium">52.38%</td>
231
- <td data-value="42" class="abs medium">22/42</td>
232
- <td data-value="32" class="pct low">32%</td>
233
- <td data-value="25" class="abs low">8/25</td>
234
- <td data-value="50" class="pct medium">50%</td>
235
- <td data-value="4" class="abs medium">2/4</td>
236
- <td data-value="52.38" class="pct medium">52.38%</td>
237
- <td data-value="42" class="abs medium">22/42</td>
230
+ <td data-value="66.03" class="pct medium">66.03%</td>
231
+ <td data-value="53" class="abs medium">35/53</td>
232
+ <td data-value="44.44" class="pct low">44.44%</td>
233
+ <td data-value="27" class="abs low">12/27</td>
234
+ <td data-value="60" class="pct medium">60%</td>
235
+ <td data-value="5" class="abs medium">3/5</td>
236
+ <td data-value="66.03" class="pct medium">66.03%</td>
237
+ <td data-value="53" class="abs medium">35/53</td>
238
238
  </tr>
239
239
 
240
240
  </tbody>
@@ -245,7 +245,7 @@
245
245
  <div class='footer quiet pad2 space-top1 center small'>
246
246
  Code coverage generated by
247
247
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
248
- at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
248
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
249
249
  </div>
250
250
  </div>
251
251
  <script src="../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">77.77% </span>
26
+ <span class="strong">73.07% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>56/72</span>
28
+ <span class='fraction'>57/78</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">53.84% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>14/26</span>
35
+ <span class='fraction'>14/28</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">80% </span>
40
+ <span class="strong">75% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/15</span>
42
+ <span class='fraction'>12/16</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">77.14% </span>
47
+ <span class="strong">72.36% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>54/70</span>
49
+ <span class='fraction'>55/76</span>
50
50
  </div>
51
51
 
52
52
 
@@ -210,20 +210,30 @@
210
210
  <a name='L151'></a><a href='#L151'>151</a>
211
211
  <a name='L152'></a><a href='#L152'>152</a>
212
212
  <a name='L153'></a><a href='#L153'>153</a>
213
- <a name='L154'></a><a href='#L154'>154</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
214
- <span class="cline-any cline-yes">41x</span>
215
- <span class="cline-any cline-yes">41x</span>
216
- <span class="cline-any cline-yes">41x</span>
217
- <span class="cline-any cline-yes">41x</span>
218
- <span class="cline-any cline-yes">41x</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">41x</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">41x</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-yes">41x</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-yes">41x</span>
213
+ <a name='L154'></a><a href='#L154'>154</a>
214
+ <a name='L155'></a><a href='#L155'>155</a>
215
+ <a name='L156'></a><a href='#L156'>156</a>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a>
219
+ <a name='L160'></a><a href='#L160'>160</a>
220
+ <a name='L161'></a><a href='#L161'>161</a>
221
+ <a name='L162'></a><a href='#L162'>162</a>
222
+ <a name='L163'></a><a href='#L163'>163</a>
223
+ <a name='L164'></a><a href='#L164'>164</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
224
+ <span class="cline-any cline-yes">37x</span>
225
+ <span class="cline-any cline-yes">37x</span>
226
+ <span class="cline-any cline-yes">37x</span>
227
+ <span class="cline-any cline-yes">37x</span>
228
+ <span class="cline-any cline-yes">37x</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-yes">37x</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-yes">37x</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-yes">37x</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-yes">37x</span>
227
237
  <span class="cline-any cline-yes">1x</span>
228
238
  <span class="cline-any cline-yes">1x</span>
229
239
  <span class="cline-any cline-yes">1x</span>
@@ -237,15 +247,15 @@
237
247
  <span class="cline-any cline-neutral">&nbsp;</span>
238
248
  <span class="cline-any cline-neutral">&nbsp;</span>
239
249
  <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">41x</span>
241
- <span class="cline-any cline-yes">13x</span>
250
+ <span class="cline-any cline-yes">37x</span>
251
+ <span class="cline-any cline-yes">189x</span>
242
252
  <span class="cline-any cline-neutral">&nbsp;</span>
243
253
  <span class="cline-any cline-neutral">&nbsp;</span>
244
254
  <span class="cline-any cline-neutral">&nbsp;</span>
245
255
  <span class="cline-any cline-neutral">&nbsp;</span>
246
256
  <span class="cline-any cline-neutral">&nbsp;</span>
247
257
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-yes">41x</span>
258
+ <span class="cline-any cline-yes">37x</span>
249
259
  <span class="cline-any cline-yes">2x</span>
250
260
  <span class="cline-any cline-neutral">&nbsp;</span>
251
261
  <span class="cline-any cline-yes">2x</span>
@@ -264,8 +274,8 @@
264
274
  <span class="cline-any cline-neutral">&nbsp;</span>
265
275
  <span class="cline-any cline-neutral">&nbsp;</span>
266
276
  <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-yes">41x</span>
268
- <span class="cline-any cline-yes">204x</span>
277
+ <span class="cline-any cline-yes">37x</span>
278
+ <span class="cline-any cline-yes">194x</span>
269
279
  <span class="cline-any cline-no">&nbsp;</span>
270
280
  <span class="cline-any cline-neutral">&nbsp;</span>
271
281
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -275,17 +285,17 @@
275
285
  <span class="cline-any cline-neutral">&nbsp;</span>
276
286
  <span class="cline-any cline-no">&nbsp;</span>
277
287
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">204x</span>
288
+ <span class="cline-any cline-yes">194x</span>
279
289
  <span class="cline-any cline-neutral">&nbsp;</span>
280
290
  <span class="cline-any cline-neutral">&nbsp;</span>
281
291
  <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-yes">41x</span>
292
+ <span class="cline-any cline-yes">37x</span>
283
293
  <span class="cline-any cline-yes">2x</span>
284
294
  <span class="cline-any cline-neutral">&nbsp;</span>
285
295
  <span class="cline-any cline-neutral">&nbsp;</span>
286
296
  <span class="cline-any cline-neutral">&nbsp;</span>
287
297
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-yes">41x</span>
298
+ <span class="cline-any cline-yes">37x</span>
289
299
  <span class="cline-any cline-yes">3x</span>
290
300
  <span class="cline-any cline-yes">3x</span>
291
301
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -311,13 +321,13 @@
311
321
  <span class="cline-any cline-neutral">&nbsp;</span>
312
322
  <span class="cline-any cline-neutral">&nbsp;</span>
313
323
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">41x</span>
324
+ <span class="cline-any cline-yes">37x</span>
315
325
  <span class="cline-any cline-yes">1x</span>
316
326
  <span class="cline-any cline-yes">1x</span>
317
327
  <span class="cline-any cline-neutral">&nbsp;</span>
318
328
  <span class="cline-any cline-neutral">&nbsp;</span>
319
329
  <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">41x</span>
330
+ <span class="cline-any cline-yes">37x</span>
321
331
  <span class="cline-any cline-yes">4x</span>
322
332
  <span class="cline-any cline-yes">4x</span>
323
333
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -334,7 +344,7 @@
334
344
  <span class="cline-any cline-neutral">&nbsp;</span>
335
345
  <span class="cline-any cline-neutral">&nbsp;</span>
336
346
  <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-yes">41x</span>
347
+ <span class="cline-any cline-yes">37x</span>
338
348
  <span class="cline-any cline-no">&nbsp;</span>
339
349
  <span class="cline-any cline-neutral">&nbsp;</span>
340
350
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -344,7 +354,7 @@
344
354
  <span class="cline-any cline-neutral">&nbsp;</span>
345
355
  <span class="cline-any cline-neutral">&nbsp;</span>
346
356
  <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">41x</span>
357
+ <span class="cline-any cline-yes">37x</span>
348
358
  <span class="cline-any cline-no">&nbsp;</span>
349
359
  <span class="cline-any cline-neutral">&nbsp;</span>
350
360
  <span class="cline-any cline-no">&nbsp;</span>
@@ -353,7 +363,17 @@
353
363
  <span class="cline-any cline-neutral">&nbsp;</span>
354
364
  <span class="cline-any cline-neutral">&nbsp;</span>
355
365
  <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">41x</span>
366
+ <span class="cline-any cline-yes">37x</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
369
+ <span class="cline-any cline-no">&nbsp;</span>
370
+ <span class="cline-any cline-no">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-yes">37x</span>
357
377
  <span class="cline-any cline-yes">29x</span>
358
378
  <span class="cline-any cline-yes">29x</span>
359
379
  <span class="cline-any cline-yes">29x</span>
@@ -366,9 +386,9 @@
366
386
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const env = require("../environment")
367
387
  const { OBJ_STORE_DIRECTORY } = require("../constants")
368
388
  const { sanitizeKey } = require("@budibase/backend-core/objectStore")
389
+ const CouchDB = require("../db")
369
390
  const { generateMetadataID } = require("../db/utils")
370
391
  const Readable = require("stream").Readable
371
- const { getAppDB } = require("@budibase/backend-core/context")
372
392
  &nbsp;
373
393
  const BB_CDN = "https://cdn.budi.live"
374
394
  &nbsp;
@@ -438,8 +458,8 @@ exports.attachmentsRelativeURL = attachmentKey =&gt; {
438
458
  )
439
459
  }
440
460
  &nbsp;
441
- exports.updateEntityMetadata = async (type, entityId, updateFn) =&gt; {
442
- const db = getAppDB()
461
+ exports.updateEntityMetadata = async (appId, type, entityId, updateFn) =&gt; {
462
+ const db = new CouchDB(appId)
443
463
  const id = generateMetadataID(type, entityId)
444
464
  // read it to see if it exists, we'll overwrite it no matter what
445
465
  let rev,
@@ -464,14 +484,14 @@ exports.updateEntityMetadata = async (type, entityId, updateFn) =&gt; {
464
484
  }
465
485
  }
466
486
  &nbsp;
467
- exports.saveEntityMetadata = async (type, entityId, metadata) =&gt; {
468
- return exports.updateEntityMetadata(type, entityId, () =&gt; {
487
+ exports.saveEntityMetadata = async (appId, type, entityId, metadata) =&gt; {
488
+ return exports.updateEntityMetadata(appId, type, entityId, () =&gt; {
469
489
  return metadata
470
490
  })
471
491
  }
472
492
  &nbsp;
473
- exports.deleteEntityMetadata = async (type, entityId) =&gt; {
474
- const db = getAppDB()
493
+ exports.deleteEntityMetadata = async (appId, type, entityId) =&gt; {
494
+ const db = new CouchDB(appId)
475
495
  const id = generateMetadataID(type, entityId)
476
496
  let rev
477
497
  try {
@@ -506,6 +526,16 @@ exports.stringToReadStream = <span class="fstat-no" title="function not covered"
506
526
  })
507
527
  }
508
528
  &nbsp;
529
+ exports.doesDatabaseExist = <span class="fstat-no" title="function not covered" >as</span>ync dbName =&gt; {
530
+ <span class="cstat-no" title="statement not covered" > try {</span>
531
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(dbName, { skip_setup: true })</span>
532
+ const info = <span class="cstat-no" title="statement not covered" >await db.info()</span>
533
+ <span class="cstat-no" title="statement not covered" > return info &amp;&amp; !info.error</span>
534
+ } catch (err) {
535
+ <span class="cstat-no" title="statement not covered" > return false</span>
536
+ }
537
+ }
538
+ &nbsp;
509
539
  exports.formatBytes = bytes =&gt; {
510
540
  const units = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
511
541
  const byteIncrements = 1024
@@ -523,7 +553,7 @@ exports.formatBytes = bytes =&gt; {
523
553
  <div class='footer quiet pad2 space-top1 center small'>
524
554
  Code coverage generated by
525
555
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
526
- at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
556
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
527
557
  </div>
528
558
  </div>
529
559
  <script src="../prettify.js"></script>