@budibase/server 1.0.49-alpha.1 → 1.0.49-alpha.13

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 (353) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +4 -5
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +2 -1
  6. package/__mocks__/pg.ts +3 -5
  7. package/builder/assets/{index.ba78c49d.css → index.83c0944f.css} +1 -1
  8. package/builder/assets/{index.ed1cf508.js → index.f686d3cd.js} +184 -184
  9. package/builder/index.html +2 -2
  10. package/coverage/clover.xml +2656 -2712
  11. package/coverage/coverage-final.json +104 -105
  12. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/application.js.html +157 -136
  15. package/coverage/lcov-report/api/controllers/auth.js.html +11 -14
  16. package/coverage/lcov-report/api/controllers/automation.js.html +39 -69
  17. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
  19. package/coverage/lcov-report/api/controllers/component.js.html +10 -13
  20. package/coverage/lcov-report/api/controllers/datasource.js.html +31 -37
  21. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  22. package/coverage/lcov-report/api/controllers/index.html +69 -54
  23. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
  25. package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
  26. package/coverage/lcov-report/{migrations/usageQuotas/syncApps.js.html → api/controllers/migrations.js.html} +30 -45
  27. package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
  28. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  29. package/coverage/lcov-report/api/controllers/query/index.js.html +38 -35
  30. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  31. package/coverage/lcov-report/api/controllers/role.js.html +16 -16
  32. package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
  33. package/coverage/lcov-report/api/controllers/row/external.js.html +48 -141
  34. package/coverage/lcov-report/api/controllers/row/index.html +28 -28
  35. package/coverage/lcov-report/api/controllers/row/index.js.html +13 -13
  36. package/coverage/lcov-report/api/controllers/row/internal.js.html +60 -105
  37. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +25 -31
  38. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +21 -24
  39. package/coverage/lcov-report/api/controllers/row/utils.js.html +27 -24
  40. package/coverage/lcov-report/api/controllers/screen.js.html +15 -21
  41. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  42. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +27 -57
  43. package/coverage/lcov-report/api/controllers/table/external.js.html +25 -34
  44. package/coverage/lcov-report/api/controllers/table/index.html +37 -37
  45. package/coverage/lcov-report/api/controllers/table/index.js.html +20 -20
  46. package/coverage/lcov-report/api/controllers/table/internal.js.html +45 -54
  47. package/coverage/lcov-report/api/controllers/table/utils.js.html +67 -103
  48. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/user.js.html +43 -52
  50. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  51. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  52. package/coverage/lcov-report/api/controllers/view/index.js.html +27 -33
  53. package/coverage/lcov-report/api/controllers/view/utils.js.html +35 -20
  54. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  55. package/coverage/lcov-report/api/controllers/webhook.js.html +34 -28
  56. package/coverage/lcov-report/api/index.html +1 -1
  57. package/coverage/lcov-report/api/index.js.html +3 -3
  58. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/index.html +22 -7
  70. package/coverage/lcov-report/api/routes/index.js.html +10 -4
  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/{migrations/usageQuotas/index.js.html → api/routes/migrations.js.html} +25 -55
  75. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  87. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  88. package/coverage/lcov-report/automations/actions.js.html +24 -24
  89. package/coverage/lcov-report/automations/automationUtils.js.html +7 -10
  90. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  91. package/coverage/lcov-report/automations/index.html +18 -18
  92. package/coverage/lcov-report/automations/index.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  94. package/coverage/lcov-report/automations/steps/createRow.js.html +7 -10
  95. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  96. package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
  97. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  98. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  99. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  100. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  101. package/coverage/lcov-report/automations/steps/index.html +1 -1
  102. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  103. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  104. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  105. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  106. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  107. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  108. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  109. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  110. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  111. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  114. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  115. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  118. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  119. package/coverage/lcov-report/automations/triggers.js.html +61 -55
  120. package/coverage/lcov-report/automations/utils.js.html +54 -42
  121. package/coverage/lcov-report/constants/index.html +1 -1
  122. package/coverage/lcov-report/constants/index.js.html +26 -26
  123. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  124. package/coverage/lcov-report/constants/screens.js.html +4 -4
  125. package/coverage/lcov-report/db/client.js.html +18 -18
  126. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  127. package/coverage/lcov-report/db/index.html +1 -1
  128. package/coverage/lcov-report/db/index.js.html +3 -3
  129. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +15 -27
  130. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  131. package/coverage/lcov-report/db/linkedRows/index.js.html +40 -82
  132. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +40 -40
  133. package/coverage/lcov-report/db/newid.js.html +4 -4
  134. package/coverage/lcov-report/db/utils.js.html +74 -74
  135. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  136. package/coverage/lcov-report/events/index.html +1 -1
  137. package/coverage/lcov-report/events/index.js.html +5 -5
  138. package/coverage/lcov-report/events/utils.js.html +3 -3
  139. package/coverage/lcov-report/index.html +97 -112
  140. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  141. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  142. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  143. package/coverage/lcov-report/middleware/authorized.js.html +21 -15
  144. package/coverage/lcov-report/middleware/builder.js.html +3 -3
  145. package/coverage/lcov-report/middleware/currentapp.js.html +72 -60
  146. package/coverage/lcov-report/middleware/index.html +28 -28
  147. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  148. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  149. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  150. package/coverage/lcov-report/middleware/usageQuota.js.html +29 -35
  151. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  152. package/coverage/lcov-report/threads/automation.js.html +30 -24
  153. package/coverage/lcov-report/threads/index.html +25 -25
  154. package/coverage/lcov-report/threads/index.js.html +10 -10
  155. package/coverage/lcov-report/threads/query.js.html +26 -47
  156. package/coverage/lcov-report/threads/utils.js.html +14 -14
  157. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  158. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  159. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  160. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  161. package/coverage/lcov-report/utilities/global.js.html +57 -48
  162. package/coverage/lcov-report/utilities/index.html +27 -27
  163. package/coverage/lcov-report/utilities/index.js.html +42 -72
  164. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  165. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  167. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  168. package/coverage/lcov-report/utilities/rowProcessor/index.html +11 -11
  169. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +32 -74
  170. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +4 -4
  171. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  172. package/coverage/lcov-report/utilities/security.js.html +8 -8
  173. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  174. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  175. package/coverage/lcov-report/utilities/usageQuota/index.js.html +13 -10
  176. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +5 -2
  177. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  178. package/coverage/lcov-report/utilities/users.js.html +9 -9
  179. package/coverage/lcov-report/utilities/workerRequests.js.html +16 -16
  180. package/coverage/lcov.info +4018 -4092
  181. package/dist/api/controllers/application.js +49 -48
  182. package/dist/api/controllers/auth.js +4 -5
  183. package/dist/api/controllers/automation.js +14 -19
  184. package/dist/api/controllers/cloud.js +2 -3
  185. package/dist/api/controllers/component.js +3 -4
  186. package/dist/api/controllers/datasource.js +9 -10
  187. package/dist/api/controllers/deploy/Deployment.js +3 -6
  188. package/dist/api/controllers/deploy/index.js +12 -13
  189. package/dist/api/controllers/dev.js +5 -5
  190. package/dist/api/controllers/layout.js +3 -3
  191. package/dist/api/controllers/metadata.js +4 -4
  192. package/dist/api/controllers/migrations.js +21 -0
  193. package/dist/api/controllers/permission.js +4 -4
  194. package/dist/api/controllers/query/import/index.js +4 -6
  195. package/dist/api/controllers/query/index.js +11 -10
  196. package/dist/api/controllers/role.js +5 -5
  197. package/dist/api/controllers/routing.js +5 -6
  198. package/dist/api/controllers/row/ExternalRequest.js +90 -67
  199. package/dist/api/controllers/row/external.js +14 -22
  200. package/dist/api/controllers/row/internal.js +29 -44
  201. package/dist/api/controllers/row/internalSearch.js +11 -13
  202. package/dist/api/controllers/row/staticFormula.js +11 -11
  203. package/dist/api/controllers/row/utils.js +7 -6
  204. package/dist/api/controllers/screen.js +5 -7
  205. package/dist/api/controllers/static/index.js +4 -4
  206. package/dist/api/controllers/table/bulkFormula.js +14 -15
  207. package/dist/api/controllers/table/external.js +7 -10
  208. package/dist/api/controllers/table/index.js +5 -5
  209. package/dist/api/controllers/table/internal.js +16 -19
  210. package/dist/api/controllers/table/utils.js +29 -31
  211. package/dist/api/controllers/user.js +16 -20
  212. package/dist/api/controllers/view/index.js +8 -10
  213. package/dist/api/controllers/view/utils.js +9 -4
  214. package/dist/api/controllers/webhook.js +10 -8
  215. package/dist/api/routes/index.js +2 -0
  216. package/dist/api/routes/migrations.js +9 -0
  217. package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
  218. package/dist/app.js +35 -5
  219. package/dist/automations/automationUtils.js +2 -3
  220. package/dist/automations/steps/createRow.js +1 -1
  221. package/dist/automations/steps/updateRow.js +1 -1
  222. package/dist/automations/triggers.js +27 -25
  223. package/dist/automations/utils.js +10 -5
  224. package/dist/db/linkedRows/LinkController.js +3 -7
  225. package/dist/db/linkedRows/index.js +16 -26
  226. package/dist/db/linkedRows/linkUtils.js +6 -6
  227. package/dist/db/views/staticViews.js +9 -10
  228. package/dist/environment.js +3 -1
  229. package/dist/integrations/base/sql.js +49 -15
  230. package/dist/integrations/utils.js +3 -0
  231. package/dist/middleware/authorized.js +5 -3
  232. package/dist/middleware/builder.js +2 -2
  233. package/dist/middleware/currentapp.js +41 -37
  234. package/dist/middleware/usageQuota.js +2 -4
  235. package/dist/migrations/functions/appUrls.js +46 -0
  236. package/dist/migrations/functions/quotas1.js +50 -0
  237. package/dist/migrations/{usageQuotas → functions/usageQuotas}/index.js +6 -10
  238. package/dist/migrations/{usageQuotas → functions/usageQuotas}/syncApps.js +12 -9
  239. package/dist/migrations/{usageQuotas → functions/usageQuotas}/syncRows.js +16 -12
  240. package/dist/migrations/functions/userEmailViewCasing.js +24 -0
  241. package/dist/migrations/index.js +62 -0
  242. package/dist/package.json +4 -4
  243. package/dist/tests/utilities/TestConfiguration.js +70 -44
  244. package/dist/threads/automation.js +13 -11
  245. package/dist/threads/query.js +13 -19
  246. package/dist/tsconfig.tsbuildinfo +1 -1
  247. package/dist/utilities/fileSystem/index.js +4 -3
  248. package/dist/utilities/global.js +15 -12
  249. package/dist/utilities/index.js +7 -17
  250. package/dist/utilities/routing/index.js +5 -5
  251. package/dist/utilities/rowProcessor/index.js +9 -10
  252. package/dist/utilities/usageQuota/index.js +1 -0
  253. package/dist/utilities/usageQuota/rows.js +1 -0
  254. package/dist/utilities/users.js +3 -3
  255. package/dist/utilities/workerRequests.js +4 -4
  256. package/package.json +5 -5
  257. package/scripts/integrations/mssql/data/Dockerfile +1 -1
  258. package/scripts/integrations/mssql/data/setup.sql +17 -4
  259. package/scripts/integrations/postgres/init.sql +11 -6
  260. package/scripts/likeCypress.ts +1 -1
  261. package/src/api/controllers/application.js +38 -31
  262. package/src/api/controllers/auth.js +4 -5
  263. package/src/api/controllers/automation.js +13 -23
  264. package/src/api/controllers/cloud.js +2 -3
  265. package/src/api/controllers/component.js +3 -4
  266. package/src/api/controllers/datasource.js +9 -11
  267. package/src/api/controllers/deploy/Deployment.js +3 -7
  268. package/src/api/controllers/deploy/index.js +20 -13
  269. package/src/api/controllers/dev.js +5 -5
  270. package/src/api/controllers/layout.js +3 -3
  271. package/src/api/controllers/metadata.js +4 -9
  272. package/src/api/controllers/migrations.js +13 -0
  273. package/src/api/controllers/permission.js +4 -4
  274. package/src/api/controllers/query/import/index.ts +4 -6
  275. package/src/api/controllers/query/import/tests/index.spec.js +2 -1
  276. package/src/api/controllers/query/index.js +11 -10
  277. package/src/api/controllers/role.js +5 -5
  278. package/src/api/controllers/routing.js +5 -6
  279. package/src/api/controllers/row/ExternalRequest.ts +67 -43
  280. package/src/api/controllers/row/external.js +27 -58
  281. package/src/api/controllers/row/internal.js +29 -44
  282. package/src/api/controllers/row/internalSearch.js +11 -13
  283. package/src/api/controllers/row/staticFormula.js +10 -11
  284. package/src/api/controllers/row/utils.js +7 -6
  285. package/src/api/controllers/screen.js +5 -7
  286. package/src/api/controllers/static/index.js +4 -4
  287. package/src/api/controllers/table/bulkFormula.js +13 -23
  288. package/src/api/controllers/table/external.js +7 -10
  289. package/src/api/controllers/table/index.js +5 -5
  290. package/src/api/controllers/table/internal.js +18 -21
  291. package/src/api/controllers/table/utils.js +29 -41
  292. package/src/api/controllers/user.js +17 -20
  293. package/src/api/controllers/view/index.js +8 -10
  294. package/src/api/controllers/view/utils.js +9 -4
  295. package/src/api/controllers/webhook.js +10 -8
  296. package/src/api/routes/index.js +2 -0
  297. package/src/api/routes/migrations.js +14 -0
  298. package/src/api/routes/tests/automation.spec.js +1 -0
  299. package/src/api/routes/tests/misc.spec.js +0 -1
  300. package/src/api/routes/tests/routing.spec.js +21 -12
  301. package/src/api/routes/tests/row.spec.js +7 -4
  302. package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
  303. package/src/app.ts +18 -5
  304. package/src/automations/automationUtils.js +2 -3
  305. package/src/automations/steps/createRow.js +0 -1
  306. package/src/automations/steps/updateRow.js +1 -1
  307. package/src/automations/triggers.js +33 -31
  308. package/src/automations/utils.js +9 -5
  309. package/src/db/linkedRows/LinkController.js +3 -7
  310. package/src/db/linkedRows/index.js +16 -30
  311. package/src/db/linkedRows/linkUtils.js +6 -6
  312. package/src/db/tests/linkController.spec.js +0 -1
  313. package/src/db/tests/linkTests.spec.js +5 -6
  314. package/src/db/views/staticViews.js +8 -10
  315. package/src/environment.js +3 -1
  316. package/src/integrations/base/sql.ts +61 -22
  317. package/src/integrations/utils.ts +4 -1
  318. package/src/middleware/authorized.js +5 -3
  319. package/src/middleware/builder.js +2 -2
  320. package/src/middleware/currentapp.js +50 -46
  321. package/src/middleware/tests/authorized.spec.js +7 -2
  322. package/src/middleware/tests/currentapp.spec.js +6 -0
  323. package/src/middleware/usageQuota.js +2 -4
  324. package/src/migrations/functions/appUrls.ts +34 -0
  325. package/src/migrations/functions/quotas1.ts +20 -0
  326. package/src/migrations/functions/tests/appUrls.spec.js +29 -0
  327. package/src/migrations/{tests/usageQuotas/index.spec.js → functions/tests/quotas1.spec.js} +5 -5
  328. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
  329. package/src/migrations/functions/usageQuotas/index.ts +8 -0
  330. package/src/migrations/{usageQuotas/syncApps.js → functions/usageQuotas/syncApps.ts} +6 -6
  331. package/src/migrations/functions/usageQuotas/syncRows.ts +22 -0
  332. package/src/migrations/{tests/usageQuotas → functions/usageQuotas/tests}/syncApps.spec.js +4 -4
  333. package/src/migrations/{tests/usageQuotas → functions/usageQuotas/tests}/syncRows.spec.js +4 -4
  334. package/src/migrations/functions/userEmailViewCasing.ts +13 -0
  335. package/src/migrations/index.ts +56 -0
  336. package/src/module.d.ts +3 -0
  337. package/src/tests/utilities/TestConfiguration.js +73 -50
  338. package/src/threads/automation.js +17 -15
  339. package/src/threads/query.js +14 -21
  340. package/src/utilities/fileSystem/index.js +4 -3
  341. package/src/utilities/global.js +15 -12
  342. package/src/utilities/index.js +7 -17
  343. package/src/utilities/routing/index.js +5 -5
  344. package/src/utilities/rowProcessor/index.js +9 -23
  345. package/src/utilities/usageQuota/index.js +1 -0
  346. package/src/utilities/usageQuota/rows.js +1 -0
  347. package/src/utilities/users.js +3 -3
  348. package/src/utilities/workerRequests.js +4 -4
  349. package/tsconfig.json +2 -1
  350. package/coverage/lcov-report/migrations/usageQuotas/index.html +0 -141
  351. package/coverage/lcov-report/migrations/usageQuotas/syncRows.js.html +0 -143
  352. package/src/migrations/usageQuotas/index.js +0 -24
  353. package/src/migrations/usageQuotas/syncRows.js +0 -21
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">83.01% </span>
26
+ <span class="strong">83.63% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>44/53</span>
28
+ <span class='fraction'>46/55</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">78.04% </span>
33
+ <span class="strong">76.74% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>32/41</span>
35
+ <span class='fraction'>33/43</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>2/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.01% </span>
47
+ <span class="strong">83.63% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>44/53</span>
49
+ <span class='fraction'>46/55</span>
50
50
  </div>
51
51
 
52
52
 
@@ -168,7 +168,11 @@
168
168
  <a name='L109'></a><a href='#L109'>109</a>
169
169
  <a name='L110'></a><a href='#L110'>110</a>
170
170
  <a name='L111'></a><a href='#L111'>111</a>
171
- <a name='L112'></a><a href='#L112'>112</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
171
+ <a name='L112'></a><a href='#L112'>112</a>
172
+ <a name='L113'></a><a href='#L113'>113</a>
173
+ <a name='L114'></a><a href='#L114'>114</a>
174
+ <a name='L115'></a><a href='#L115'>115</a>
175
+ <a name='L116'></a><a href='#L116'>116</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
172
176
  <span class="cline-any cline-neutral">&nbsp;</span>
173
177
  <span class="cline-any cline-neutral">&nbsp;</span>
174
178
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -212,6 +216,7 @@
212
216
  <span class="cline-any cline-neutral">&nbsp;</span>
213
217
  <span class="cline-any cline-neutral">&nbsp;</span>
214
218
  <span class="cline-any cline-yes">171x</span>
219
+ <span class="cline-any cline-yes">2x</span>
215
220
  <span class="cline-any cline-neutral">&nbsp;</span>
216
221
  <span class="cline-any cline-neutral">&nbsp;</span>
217
222
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -221,16 +226,17 @@
221
226
  <span class="cline-any cline-neutral">&nbsp;</span>
222
227
  <span class="cline-any cline-neutral">&nbsp;</span>
223
228
  <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
230
  <span class="cline-any cline-yes">169x</span>
225
231
  <span class="cline-any cline-yes">169x</span>
226
232
  <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-yes">32x</span>
228
- <span class="cline-any cline-yes">137x</span>
233
+ <span class="cline-any cline-yes">5x</span>
234
+ <span class="cline-any cline-yes">164x</span>
229
235
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">137x</span>
231
- <span class="cline-any cline-yes">137x</span>
236
+ <span class="cline-any cline-yes">164x</span>
237
+ <span class="cline-any cline-yes">164x</span>
232
238
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">137x</span>
239
+ <span class="cline-any cline-yes">164x</span>
234
240
  <span class="cline-any cline-neutral">&nbsp;</span>
235
241
  <span class="cline-any cline-neutral">&nbsp;</span>
236
242
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -239,6 +245,7 @@
239
245
  <span class="cline-any cline-neutral">&nbsp;</span>
240
246
  <span class="cline-any cline-neutral">&nbsp;</span>
241
247
  <span class="cline-any cline-yes">169x</span>
248
+ <span class="cline-any cline-yes">169x</span>
242
249
  <span class="cline-any cline-neutral">&nbsp;</span>
243
250
  <span class="cline-any cline-neutral">&nbsp;</span>
244
251
  <span class="cline-any cline-yes">169x</span>
@@ -279,6 +286,7 @@
279
286
  <span class="cline-any cline-neutral">&nbsp;</span>
280
287
  <span class="cline-any cline-yes">169x</span>
281
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
290
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
283
291
  getAppId,
284
292
  setCookie,
@@ -292,9 +300,9 @@ const { generateUserMetadataID, isDevAppID } = require("../db/utils")
292
300
  const { dbExists } = require("@budibase/backend-core/db")
293
301
  const { isUserInAppTenant } = require("@budibase/backend-core/tenancy")
294
302
  const { getCachedSelf } = require("../utilities/global")
295
- const CouchDB = require("../db")
296
303
  const env = require("../environment")
297
304
  const { isWebhookEndpoint } = require("./utils")
305
+ const { doInAppContext } = require("@budibase/backend-core/context")
298
306
  &nbsp;
299
307
  module.exports = async (ctx, next) =&gt; {
300
308
  // try to get the appID from the request
@@ -312,7 +320,7 @@ module.exports = async (ctx, next) =&gt; {
312
320
  // check the app exists referenced in cookie
313
321
  if (appCookie) {
314
322
  const appId = appCookie.appId
315
- const exists = await dbExists(CouchDB, appId)
323
+ const exists = await dbExists(appId)
316
324
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!exists) {
317
325
  <span class="cstat-no" title="statement not covered" > clearCookie(ctx, Cookies.CurrentApp)</span>
318
326
  <span class="cstat-no" title="statement not covered" > return next()</span>
@@ -322,13 +330,15 @@ module.exports = async (ctx, next) =&gt; {
322
330
  }
323
331
  &nbsp;
324
332
  // deny access to application preview
325
- if (
326
- isDevAppID(requestAppId) &amp;&amp;
327
- !isWebhookEndpoint(ctx) &amp;&amp;
328
- (!ctx.user || !ctx.user.builder || !ctx.user.builder.global)
329
- ) {
330
- clearCookie(ctx, Cookies.CurrentApp)
331
- return ctx.redirect("/")
333
+ if (!env.isTest()) {
334
+ if (
335
+ isDevAppID(requestAppId) &amp;&amp;
336
+ !isWebhookEndpoint(ctx) &amp;&amp;
337
+ (!ctx.user || !ctx.user.builder || !ctx.user.builder.global)
338
+ ) {
339
+ clearCookie(ctx, Cookies.CurrentApp)
340
+ return ctx.redirect("/")
341
+ }
332
342
  }
333
343
  &nbsp;
334
344
  let appId,
@@ -349,46 +359,48 @@ module.exports = async (ctx, next) =&gt; {
349
359
  <span class="cstat-no" title="statement not covered" > return next()</span>
350
360
  }
351
361
  &nbsp;
352
- let noCookieSet = false
353
- // if the user not in the right tenant then make sure they have no permissions
354
- // need to judge this only based on the request app ID,
355
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
356
- env.MULTI_TENANCY &amp;&amp;
357
- <span class="branch-1 cbranch-no" title="branch not covered" > ctx.user </span>&amp;&amp;
358
- <span class="branch-2 cbranch-no" title="branch not covered" > requestAppId </span>&amp;&amp;
359
- <span class="branch-3 cbranch-no" title="branch not covered" > !isUserInAppTenant(requestAppId)</span>
360
- ) {
361
- // don't error, simply remove the users rights (they are a public user)
362
- <span class="cstat-no" title="statement not covered" > delete ctx.user.builder</span>
363
- <span class="cstat-no" title="statement not covered" > delete ctx.user.admin</span>
364
- <span class="cstat-no" title="statement not covered" > delete ctx.user.roles</span>
365
- <span class="cstat-no" title="statement not covered" > roleId = BUILTIN_ROLE_IDS.PUBLIC</span>
366
- <span class="cstat-no" title="statement not covered" > noCookieSet = true</span>
367
- }
362
+ return doInAppContext(appId, async () =&gt; {
363
+ let noCookieSet = false
364
+ // if the user not in the right tenant then make sure they have no permissions
365
+ // need to judge this only based on the request app ID,
366
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (
367
+ env.MULTI_TENANCY &amp;&amp;
368
+ <span class="branch-1 cbranch-no" title="branch not covered" > ctx.user </span>&amp;&amp;
369
+ <span class="branch-2 cbranch-no" title="branch not covered" > requestAppId </span>&amp;&amp;
370
+ <span class="branch-3 cbranch-no" title="branch not covered" > !isUserInAppTenant(requestAppId)</span>
371
+ ) {
372
+ // don't error, simply remove the users rights (they are a public user)
373
+ <span class="cstat-no" title="statement not covered" > delete ctx.user.builder</span>
374
+ <span class="cstat-no" title="statement not covered" > delete ctx.user.admin</span>
375
+ <span class="cstat-no" title="statement not covered" > delete ctx.user.roles</span>
376
+ <span class="cstat-no" title="statement not covered" > roleId = BUILTIN_ROLE_IDS.PUBLIC</span>
377
+ <span class="cstat-no" title="statement not covered" > noCookieSet = true</span>
378
+ }
368
379
  &nbsp;
369
- ctx.appId = appId
370
- if (roleId) {
371
- ctx.roleId = roleId
372
- const userId = ctx.user ? generateUserMetadataID(ctx.user._id) : null
373
- ctx.user = {
374
- ...ctx.user,
375
- // override userID with metadata one
376
- _id: userId,
377
- userId,
378
- roleId,
379
- role: await getRole(appId, roleId),
380
+ ctx.appId = appId
381
+ if (roleId) {
382
+ ctx.roleId = roleId
383
+ const userId = ctx.user ? generateUserMetadataID(ctx.user._id) : null
384
+ ctx.user = {
385
+ ...ctx.user,
386
+ // override userID with metadata one
387
+ _id: userId,
388
+ userId,
389
+ roleId,
390
+ role: await getRole(roleId),
391
+ }
392
+ }
393
+ if (
394
+ (requestAppId !== appId ||
395
+ appCookie == null ||
396
+ appCookie.appId !== requestAppId) &amp;&amp;
397
+ !noCookieSet
398
+ ) {
399
+ setCookie(ctx, { appId }, Cookies.CurrentApp)
380
400
  }
381
- }
382
- if (
383
- (requestAppId !== appId ||
384
- appCookie == null ||
385
- appCookie.appId !== requestAppId) &amp;&amp;
386
- !noCookieSet
387
- ) {
388
- setCookie(ctx, { appId }, Cookies.CurrentApp)
389
- }
390
401
  &nbsp;
391
- return next()
402
+ return next()
403
+ })
392
404
  }
393
405
  &nbsp;</pre></td></tr></table></pre>
394
406
 
@@ -397,7 +409,7 @@ module.exports = async (ctx, next) =&gt; {
397
409
  <div class='footer quiet pad2 space-top1 center small'>
398
410
  Code coverage generated by
399
411
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
400
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
412
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
401
413
  </div>
402
414
  </div>
403
415
  <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">82.52% </span>
26
+ <span class="strong">81.91% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>222/269</span>
28
+ <span class='fraction'>222/271</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">70.94% </span>
33
+ <span class="strong">70.71% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>127/179</span>
35
+ <span class='fraction'>128/181</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">85.71% </span>
40
+ <span class="strong">86.11% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>30/35</span>
42
+ <span class='fraction'>31/36</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">83.45% </span>
47
+ <span class="strong">82.83% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>222/266</span>
49
+ <span class='fraction'>222/268</span>
50
50
  </div>
51
51
 
52
52
 
@@ -89,17 +89,17 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="authorized.js"><a href="authorized.js.html">authorized.js</a></td>
92
- <td data-value="90.47" class="pic high">
92
+ <td data-value="90.9" class="pic high">
93
93
  <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
94
94
  </td>
95
- <td data-value="90.47" class="pct high">90.47%</td>
96
- <td data-value="42" class="abs high">38/42</td>
95
+ <td data-value="90.9" class="pct high">90.9%</td>
96
+ <td data-value="44" class="abs high">40/44</td>
97
97
  <td data-value="87.5" class="pct high">87.5%</td>
98
98
  <td data-value="32" class="abs high">28/32</td>
99
99
  <td data-value="83.33" class="pct high">83.33%</td>
100
100
  <td data-value="6" class="abs high">5/6</td>
101
- <td data-value="92.68" class="pct high">92.68%</td>
102
- <td data-value="41" class="abs high">38/41</td>
101
+ <td data-value="93.02" class="pct high">93.02%</td>
102
+ <td data-value="43" class="abs high">40/43</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
@@ -119,17 +119,17 @@
119
119
 
120
120
  <tr>
121
121
  <td class="file high" data-value="currentapp.js"><a href="currentapp.js.html">currentapp.js</a></td>
122
- <td data-value="83.01" class="pic high">
122
+ <td data-value="83.63" class="pic high">
123
123
  <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
124
124
  </td>
125
- <td data-value="83.01" class="pct high">83.01%</td>
126
- <td data-value="53" class="abs high">44/53</td>
127
- <td data-value="78.04" class="pct medium">78.04%</td>
128
- <td data-value="41" class="abs medium">32/41</td>
125
+ <td data-value="83.63" class="pct high">83.63%</td>
126
+ <td data-value="55" class="abs high">46/55</td>
127
+ <td data-value="76.74" class="pct medium">76.74%</td>
128
+ <td data-value="43" class="abs medium">33/43</td>
129
129
  <td data-value="100" class="pct high">100%</td>
130
- <td data-value="1" class="abs high">1/1</td>
131
- <td data-value="83.01" class="pct high">83.01%</td>
132
- <td data-value="53" class="abs high">44/53</td>
130
+ <td data-value="2" class="abs high">2/2</td>
131
+ <td data-value="83.63" class="pct high">83.63%</td>
132
+ <td data-value="55" class="abs high">46/55</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
@@ -179,17 +179,17 @@
179
179
 
180
180
  <tr>
181
181
  <td class="file medium" data-value="usageQuota.js"><a href="usageQuota.js.html">usageQuota.js</a></td>
182
- <td data-value="67.12" class="pic medium">
183
- <div class="chart"><div class="cover-fill" style="width: 67%"></div><div class="cover-empty" style="width: 33%"></div></div>
182
+ <td data-value="63.38" class="pic medium">
183
+ <div class="chart"><div class="cover-fill" style="width: 63%"></div><div class="cover-empty" style="width: 37%"></div></div>
184
184
  </td>
185
- <td data-value="67.12" class="pct medium">67.12%</td>
186
- <td data-value="73" class="abs medium">49/73</td>
185
+ <td data-value="63.38" class="pct medium">63.38%</td>
186
+ <td data-value="71" class="abs medium">45/71</td>
187
187
  <td data-value="50.98" class="pct medium">50.98%</td>
188
188
  <td data-value="51" class="abs medium">26/51</td>
189
189
  <td data-value="50" class="pct medium">50%</td>
190
190
  <td data-value="8" class="abs medium">4/8</td>
191
- <td data-value="69.01" class="pct medium">69.01%</td>
192
- <td data-value="71" class="abs medium">49/71</td>
191
+ <td data-value="65.21" class="pct medium">65.21%</td>
192
+ <td data-value="69" class="abs medium">45/69</td>
193
193
  </tr>
194
194
 
195
195
  <tr>
@@ -215,7 +215,7 @@
215
215
  <div class='footer quiet pad2 space-top1 center small'>
216
216
  Code coverage generated by
217
217
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
218
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
218
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
219
219
  </div>
220
220
  </div>
221
221
  <script src="../prettify.js"></script>
@@ -106,11 +106,11 @@
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-yes">38x</span>
109
+ <span class="cline-any cline-yes">40x</span>
110
110
  <span class="cline-any cline-yes">230x</span>
111
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
113
- <span class="cline-any cline-yes">38x</span>
113
+ <span class="cline-any cline-yes">40x</span>
114
114
  <span class="cline-any cline-yes">46x</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">function validate(schema, property) {
@@ -148,7 +148,7 @@ module.exports.params = schema =&gt; {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
151
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
151
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
152
152
  </div>
153
153
  </div>
154
154
  <script src="../prettify.js"></script>
@@ -247,7 +247,7 @@ module.exports.bodySubResource = (main, sub) =&gt; {
247
247
  <div class='footer quiet pad2 space-top1 center small'>
248
248
  Code coverage generated by
249
249
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
250
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
250
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
251
251
  </div>
252
252
  </div>
253
253
  <script src="../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports = async (ctx, next) =&gt; {
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
97
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">67.12% </span>
26
+ <span class="strong">63.38% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>49/73</span>
28
+ <span class='fraction'>45/71</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">69.01% </span>
47
+ <span class="strong">65.21% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>49/71</span>
49
+ <span class='fraction'>45/69</span>
50
50
  </div>
51
51
 
52
52
 
@@ -221,10 +221,7 @@
221
221
  <a name='L162'></a><a href='#L162'>162</a>
222
222
  <a name='L163'></a><a href='#L163'>163</a>
223
223
  <a name='L164'></a><a href='#L164'>164</a>
224
- <a name='L165'></a><a href='#L165'>165</a>
225
- <a name='L166'></a><a href='#L166'>166</a>
226
- <a name='L167'></a><a href='#L167'>167</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
227
- <span class="cline-any cline-yes">24x</span>
224
+ <a name='L165'></a><a href='#L165'>165</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
228
225
  <span class="cline-any cline-yes">24x</span>
229
226
  <span class="cline-any cline-neutral">&nbsp;</span>
230
227
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -273,11 +270,11 @@
273
270
  <span class="cline-any cline-yes">2x</span>
274
271
  <span class="cline-any cline-yes">2x</span>
275
272
  <span class="cline-any cline-yes">2x</span>
276
- <span class="cline-any cline-yes">2x</span>
273
+ <span class="cline-any cline-no">&nbsp;</span>
277
274
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">1x</span>
275
+ <span class="cline-any cline-no">&nbsp;</span>
279
276
  <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-yes">1x</span>
277
+ <span class="cline-any cline-yes">2x</span>
281
278
  <span class="cline-any cline-neutral">&nbsp;</span>
282
279
  <span class="cline-any cline-neutral">&nbsp;</span>
283
280
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -285,63 +282,62 @@
285
282
  <span class="cline-any cline-neutral">&nbsp;</span>
286
283
  <span class="cline-any cline-no">&nbsp;</span>
287
284
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-yes">1x</span>
285
+ <span class="cline-any cline-yes">2x</span>
289
286
  <span class="cline-any cline-neutral">&nbsp;</span>
290
287
  <span class="cline-any cline-neutral">&nbsp;</span>
291
288
  <span class="cline-any cline-neutral">&nbsp;</span>
292
289
  <span class="cline-any cline-neutral">&nbsp;</span>
293
290
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">3x</span>
291
+ <span class="cline-any cline-yes">4x</span>
295
292
  <span class="cline-any cline-neutral">&nbsp;</span>
296
293
  <span class="cline-any cline-no">&nbsp;</span>
297
294
  <span class="cline-any cline-neutral">&nbsp;</span>
298
295
  <span class="cline-any cline-neutral">&nbsp;</span>
299
296
  <span class="cline-any cline-no">&nbsp;</span>
300
297
  <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-yes">3x</span>
302
- <span class="cline-any cline-yes">3x</span>
303
- <span class="cline-any cline-yes">3x</span>
298
+ <span class="cline-any cline-yes">4x</span>
299
+ <span class="cline-any cline-yes">4x</span>
304
300
  <span class="cline-any cline-neutral">&nbsp;</span>
305
301
  <span class="cline-any cline-no">&nbsp;</span>
306
302
  <span class="cline-any cline-neutral">&nbsp;</span>
307
303
  <span class="cline-any cline-neutral">&nbsp;</span>
308
304
  <span class="cline-any cline-neutral">&nbsp;</span>
309
305
  <span class="cline-any cline-yes">24x</span>
310
- <span class="cline-any cline-yes">3x</span>
306
+ <span class="cline-any cline-yes">4x</span>
311
307
  <span class="cline-any cline-neutral">&nbsp;</span>
312
308
  <span class="cline-any cline-neutral">&nbsp;</span>
313
309
  <span class="cline-any cline-neutral">&nbsp;</span>
314
310
  <span class="cline-any cline-neutral">&nbsp;</span>
315
311
  <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-yes">3x</span>
312
+ <span class="cline-any cline-yes">4x</span>
317
313
  <span class="cline-any cline-no">&nbsp;</span>
318
314
  <span class="cline-any cline-no">&nbsp;</span>
319
315
  <span class="cline-any cline-neutral">&nbsp;</span>
320
316
  <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-yes">3x</span>
317
+ <span class="cline-any cline-yes">4x</span>
322
318
  <span class="cline-any cline-no">&nbsp;</span>
323
319
  <span class="cline-any cline-neutral">&nbsp;</span>
324
320
  <span class="cline-any cline-neutral">&nbsp;</span>
325
321
  <span class="cline-any cline-neutral">&nbsp;</span>
326
322
  <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-yes">3x</span>
328
- <span class="cline-any cline-yes">3x</span>
329
- <span class="cline-any cline-yes">3x</span>
323
+ <span class="cline-any cline-yes">4x</span>
324
+ <span class="cline-any cline-yes">4x</span>
325
+ <span class="cline-any cline-yes">4x</span>
330
326
  <span class="cline-any cline-neutral">&nbsp;</span>
331
327
  <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-yes">3x</span>
328
+ <span class="cline-any cline-yes">4x</span>
333
329
  <span class="cline-any cline-no">&nbsp;</span>
334
330
  <span class="cline-any cline-no">&nbsp;</span>
335
331
  <span class="cline-any cline-neutral">&nbsp;</span>
336
332
  <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-yes">4x</span>
337
334
  <span class="cline-any cline-yes">3x</span>
338
- <span class="cline-any cline-yes">2x</span>
339
335
  <span class="cline-any cline-neutral">&nbsp;</span>
340
336
  <span class="cline-any cline-neutral">&nbsp;</span>
341
337
  <span class="cline-any cline-neutral">&nbsp;</span>
342
338
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">3x</span>
344
- <span class="cline-any cline-yes">3x</span>
339
+ <span class="cline-any cline-yes">4x</span>
340
+ <span class="cline-any cline-yes">4x</span>
345
341
  <span class="cline-any cline-neutral">&nbsp;</span>
346
342
  <span class="cline-any cline-neutral">&nbsp;</span>
347
343
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -369,7 +365,7 @@
369
365
  <span class="cline-any cline-neutral">&nbsp;</span>
370
366
  <span class="cline-any cline-yes">24x</span>
371
367
  <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-yes">2x</span>
368
+ <span class="cline-any cline-yes">3x</span>
373
369
  <span class="cline-any cline-no">&nbsp;</span>
374
370
  <span class="cline-any cline-no">&nbsp;</span>
375
371
  <span class="cline-any cline-no">&nbsp;</span>
@@ -389,14 +385,13 @@
389
385
  <span class="cline-any cline-yes">24x</span>
390
386
  <span class="cline-any cline-neutral">&nbsp;</span>
391
387
  <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../db")
393
- const usageQuota = require("../utilities/usageQuota")
388
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const usageQuota = require("../utilities/usageQuota")
394
389
  const { getUniqueRows } = require("../utilities/usageQuota/rows")
395
390
  const {
396
391
  isExternalTable,
397
392
  isRowId: isExternalRowId,
398
393
  } = require("../integrations/utils")
399
- const migration = require("../migrations/usageQuotas")
394
+ const { getAppDB } = require("@budibase/backend-core/context")
400
395
  &nbsp;
401
396
  // currently only counting new writes and deletes
402
397
  const METHOD_MAP = {
@@ -438,10 +433,10 @@ module.exports = async (ctx, next) =&gt; {
438
433
  const usageId = ctx.request.body._id
439
434
  try {
440
435
  if (ctx.appId) {
441
- const db = new CouchDB(ctx.appId)
442
- await db.get(usageId)
436
+ const db = getAppDB()
437
+ <span class="cstat-no" title="statement not covered" > await db.get(usageId)</span>
443
438
  }
444
- return next()
439
+ <span class="cstat-no" title="statement not covered" > return next()</span>
445
440
  } catch (err) {
446
441
  <span class="missing-if-branch" title="if path not taken" >I</span>if (
447
442
  isExternalTable(usageId) ||
@@ -465,7 +460,6 @@ module.exports = async (ctx, next) =&gt; {
465
460
  <span class="cstat-no" title="statement not covered" > usage = files.map(<span class="fstat-no" title="function not covered" >fi</span>le =&gt; <span class="cstat-no" title="statement not covered" >file.size)</span>.reduce(<span class="fstat-no" title="function not covered" >(t</span>otal, size) =&gt; <span class="cstat-no" title="statement not covered" >total + size)</span></span>
466
461
  }
467
462
  try {
468
- await migration.run()
469
463
  await performRequest(ctx, next, property, usage)
470
464
  } catch (err) {
471
465
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
@@ -562,7 +556,7 @@ const POST_CREATE = {
562
556
  <div class='footer quiet pad2 space-top1 center small'>
563
557
  Code coverage generated by
564
558
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
565
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
559
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
566
560
  </div>
567
561
  </div>
568
562
  <script src="../prettify.js"></script>
@@ -69,7 +69,7 @@
69
69
  <span class="cline-any cline-neutral">&nbsp;</span>
70
70
  <span class="cline-any cline-neutral">&nbsp;</span>
71
71
  <span class="cline-any cline-yes">29x</span>
72
- <span class="cline-any cline-yes">294x</span>
72
+ <span class="cline-any cline-yes">164x</span>
73
73
  <span class="cline-any cline-neutral">&nbsp;</span>
74
74
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const WEBHOOK_ENDPOINTS = new RegExp(
75
75
  ["webhooks/trigger", "webhooks/schema"].join("|")
@@ -85,7 +85,7 @@ exports.isWebhookEndpoint = ctx =&gt; {
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
88
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
88
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  </div>
91
91
  <script src="../prettify.js"></script>