@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
@@ -155,13 +155,13 @@
155
155
  <a name='L96'></a><a href='#L96'>96</a>
156
156
  <a name='L97'></a><a href='#L97'>97</a>
157
157
  <a name='L98'></a><a href='#L98'>98</a>
158
- <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
159
- <span class="cline-any cline-yes">37x</span>
160
- <span class="cline-any cline-yes">37x</span>
161
- <span class="cline-any cline-yes">37x</span>
162
- <span class="cline-any cline-yes">37x</span>
163
- <span class="cline-any cline-yes">37x</span>
164
- <span class="cline-any cline-yes">37x</span>
158
+ <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
159
+ <span class="cline-any cline-yes">39x</span>
160
+ <span class="cline-any cline-yes">39x</span>
161
+ <span class="cline-any cline-yes">39x</span>
162
+ <span class="cline-any cline-yes">39x</span>
163
+ <span class="cline-any cline-yes">39x</span>
164
+ <span class="cline-any cline-yes">39x</span>
165
165
  <span class="cline-any cline-neutral">&nbsp;</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
167
  <span class="cline-any cline-yes">103x</span>
@@ -176,7 +176,7 @@
176
176
  <span class="cline-any cline-neutral">&nbsp;</span>
177
177
  <span class="cline-any cline-neutral">&nbsp;</span>
178
178
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-yes">37x</span>
179
+ <span class="cline-any cline-yes">39x</span>
180
180
  <span class="cline-any cline-yes">1x</span>
181
181
  <span class="cline-any cline-neutral">&nbsp;</span>
182
182
  <span class="cline-any cline-yes">1x</span>
@@ -204,12 +204,12 @@
204
204
  <span class="cline-any cline-yes">1x</span>
205
205
  <span class="cline-any cline-neutral">&nbsp;</span>
206
206
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">37x</span>
207
+ <span class="cline-any cline-yes">39x</span>
208
208
  <span class="cline-any cline-yes">19x</span>
209
209
  <span class="cline-any cline-yes">19x</span>
210
210
  <span class="cline-any cline-neutral">&nbsp;</span>
211
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-yes">37x</span>
212
+ <span class="cline-any cline-yes">39x</span>
213
213
  <span class="cline-any cline-yes">101x</span>
214
214
  <span class="cline-any cline-yes">101x</span>
215
215
  <span class="cline-any cline-yes">101x</span>
@@ -220,7 +220,7 @@
220
220
  <span class="cline-any cline-yes">101x</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">37x</span>
223
+ <span class="cline-any cline-yes">39x</span>
224
224
  <span class="cline-any cline-yes">2x</span>
225
225
  <span class="cline-any cline-yes">2x</span>
226
226
  <span class="cline-any cline-yes">2x</span>
@@ -230,7 +230,7 @@
230
230
  <span class="cline-any cline-yes">2x</span>
231
231
  <span class="cline-any cline-neutral">&nbsp;</span>
232
232
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">37x</span>
233
+ <span class="cline-any cline-yes">39x</span>
234
234
  <span class="cline-any cline-no">&nbsp;</span>
235
235
  <span class="cline-any cline-no">&nbsp;</span>
236
236
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -240,7 +240,7 @@
240
240
  <span class="cline-any cline-no">&nbsp;</span>
241
241
  <span class="cline-any cline-neutral">&nbsp;</span>
242
242
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">37x</span>
243
+ <span class="cline-any cline-yes">39x</span>
244
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
245
  <span class="cline-any cline-yes">1x</span>
246
246
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -253,12 +253,12 @@
253
253
  <span class="cline-any cline-neutral">&nbsp;</span>
254
254
  <span class="cline-any cline-yes">1x</span>
255
255
  <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
257
- const internal = require("./internal")
256
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const internal = require("./internal")
258
257
  const external = require("./external")
259
258
  const csvParser = require("../../../utilities/csvParser")
260
259
  const { isExternalTable, isSQL } = require("../../../integrations/utils")
261
260
  const { getDatasourceParams } = require("../../../db/utils")
261
+ const { getAppDB } = require("@budibase/backend-core/context")
262
262
  const { getTable, getAllInternalTables } = require("./utils")
263
263
  &nbsp;
264
264
  function pickApi({ tableId, table }) {
@@ -275,9 +275,9 @@ function pickApi({ tableId, table }) {
275
275
  &nbsp;
276
276
  // covers both internal and external
277
277
  exports.fetch = async function (ctx) {
278
- const db = new CouchDB(ctx.appId)
278
+ const db = getAppDB()
279
279
  &nbsp;
280
- const internal = await getAllInternalTables(ctx.appId)
280
+ const internal = await getAllInternalTables()
281
281
  &nbsp;
282
282
  const externalTables = await db.allDocs(
283
283
  getDatasourceParams("plus", {
@@ -304,7 +304,7 @@ exports.fetch = async function (ctx) {
304
304
  &nbsp;
305
305
  exports.find = async function (ctx) {
306
306
  const tableId = ctx.params.id
307
- ctx.body = await getTable(ctx.appId, tableId)
307
+ ctx.body = await getTable(tableId)
308
308
  }
309
309
  &nbsp;
310
310
  exports.save = async function (ctx) {
@@ -343,7 +343,7 @@ exports.validateCSVSchema = async function (ctx) {
343
343
  const { csvString, schema = {}, tableId } = ctx.request.body
344
344
  let existingTable
345
345
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId) {
346
- <span class="cstat-no" title="statement not covered" > existingTable = await getTable(ctx.appId, tableId)</span>
346
+ <span class="cstat-no" title="statement not covered" > existingTable = await getTable(tableId)</span>
347
347
  }
348
348
  let result = await csvParser.parse(csvString, schema)
349
349
  <span class="missing-if-branch" title="if path not taken" >I</span>if (existingTable) {
@@ -358,7 +358,7 @@ exports.validateCSVSchema = async function (ctx) {
358
358
  <div class='footer quiet pad2 space-top1 center small'>
359
359
  Code coverage generated by
360
360
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
361
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
361
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
362
362
  </div>
363
363
  </div>
364
364
  <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.14% </span>
26
+ <span class="strong">72.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>54/70</span>
28
+ <span class='fraction'>50/69</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">71.87% </span>
33
+ <span class="strong">67.64% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>23/32</span>
35
+ <span class='fraction'>23/34</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">60% </span>
40
+ <span class="strong">40% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/5</span>
42
+ <span class='fraction'>2/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.59% </span>
47
+ <span class="strong">75.75% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>54/67</span>
49
+ <span class='fraction'>50/66</span>
50
50
  </div>
51
51
 
52
52
 
@@ -213,25 +213,22 @@
213
213
  <a name='L154'></a><a href='#L154'>154</a>
214
214
  <a name='L155'></a><a href='#L155'>155</a>
215
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
220
- <span class="cline-any cline-yes">37x</span>
221
- <span class="cline-any cline-yes">37x</span>
222
- <span class="cline-any cline-yes">37x</span>
216
+ <a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
217
+ <span class="cline-any cline-yes">39x</span>
218
+ <span class="cline-any cline-yes">39x</span>
223
219
  <span class="cline-any cline-neutral">&nbsp;</span>
224
220
  <span class="cline-any cline-neutral">&nbsp;</span>
225
221
  <span class="cline-any cline-neutral">&nbsp;</span>
226
222
  <span class="cline-any cline-neutral">&nbsp;</span>
227
223
  <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-yes">37x</span>
229
- <span class="cline-any cline-yes">37x</span>
230
- <span class="cline-any cline-yes">37x</span>
231
- <span class="cline-any cline-yes">37x</span>
224
+ <span class="cline-any cline-yes">39x</span>
225
+ <span class="cline-any cline-yes">39x</span>
226
+ <span class="cline-any cline-yes">39x</span>
227
+ <span class="cline-any cline-yes">39x</span>
228
+ <span class="cline-any cline-yes">39x</span>
229
+ <span class="cline-any cline-yes">39x</span>
232
230
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">37x</span>
234
- <span class="cline-any cline-yes">101x</span>
231
+ <span class="cline-any cline-yes">39x</span>
235
232
  <span class="cline-any cline-yes">101x</span>
236
233
  <span class="cline-any cline-yes">101x</span>
237
234
  <span class="cline-any cline-yes">101x</span>
@@ -258,7 +255,6 @@
258
255
  <span class="cline-any cline-neutral">&nbsp;</span>
259
256
  <span class="cline-any cline-neutral">&nbsp;</span>
260
257
  <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-neutral">&nbsp;</span>
262
258
  <span class="cline-any cline-yes">101x</span>
263
259
  <span class="cline-any cline-neutral">&nbsp;</span>
264
260
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -306,7 +302,6 @@
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
- <span class="cline-any cline-neutral">&nbsp;</span>
310
305
  <span class="cline-any cline-yes">101x</span>
311
306
  <span class="cline-any cline-yes">4x</span>
312
307
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -329,8 +324,7 @@
329
324
  <span class="cline-any cline-yes">101x</span>
330
325
  <span class="cline-any cline-neutral">&nbsp;</span>
331
326
  <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-yes">37x</span>
333
- <span class="cline-any cline-yes">2x</span>
327
+ <span class="cline-any cline-yes">39x</span>
334
328
  <span class="cline-any cline-yes">2x</span>
335
329
  <span class="cline-any cline-yes">2x</span>
336
330
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -350,33 +344,32 @@
350
344
  <span class="cline-any cline-neutral">&nbsp;</span>
351
345
  <span class="cline-any cline-neutral">&nbsp;</span>
352
346
  <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
347
  <span class="cline-any cline-yes">2x</span>
355
348
  <span class="cline-any cline-neutral">&nbsp;</span>
356
349
  <span class="cline-any cline-neutral">&nbsp;</span>
357
350
  <span class="cline-any cline-yes">2x</span>
358
- <span class="cline-any cline-yes">2x</span>
359
- <span class="cline-any cline-yes">2x</span>
351
+ <span class="cline-any cline-no">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
360
354
  <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-yes">2x</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
362
356
  <span class="cline-any cline-no">&nbsp;</span>
363
357
  <span class="cline-any cline-neutral">&nbsp;</span>
364
358
  <span class="cline-any cline-neutral">&nbsp;</span>
365
359
  <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
361
  <span class="cline-any cline-yes">2x</span>
367
362
  <span class="cline-any cline-yes">2x</span>
368
363
  <span class="cline-any cline-yes">2x</span>
369
364
  <span class="cline-any cline-neutral">&nbsp;</span>
370
365
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">37x</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-yes">39x</span>
373
367
  <span class="cline-any cline-no">&nbsp;</span>
374
368
  <span class="cline-any cline-no">&nbsp;</span>
375
369
  <span class="cline-any cline-no">&nbsp;</span>
376
370
  <span class="cline-any cline-no">&nbsp;</span>
377
371
  <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
379
- const linkRows = require("../../../db/linkedRows")
372
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const linkRows = require("../../../db/linkedRows")
380
373
  const { getRowParams, generateTableID } = require("../../../db/utils")
381
374
  const { FieldTypes } = require("../../../constants")
382
375
  const {
@@ -386,12 +379,13 @@ const {
386
379
  handleDataImport,
387
380
  } = require("./utils")
388
381
  const usageQuota = require("../../../utilities/usageQuota")
382
+ const { getAppDB } = require("@budibase/backend-core/context")
383
+ const env = require("../../../environment")
389
384
  const { cleanupAttachments } = require("../../../utilities/rowProcessor")
390
385
  const { runStaticFormulaChecks } = require("./bulkFormula")
391
386
  &nbsp;
392
387
  exports.save = async function (ctx) {
393
- const appId = ctx.appId
394
- const db = new CouchDB(appId)
388
+ const db = getAppDB()
395
389
  const { dataImport, ...rest } = ctx.request.body
396
390
  let tableToSave = {
397
391
  type: "table",
@@ -413,8 +407,7 @@ exports.save = async function (ctx) {
413
407
  // saving a table is a complex operation, involving many different steps, this
414
408
  // has been broken out into a utility to make it more obvious/easier to manipulate
415
409
  const tableSaveFunctions = new TableSaveFunctions({
416
- db,
417
- ctx,
410
+ user: ctx.user,
418
411
  oldTable,
419
412
  dataImport,
420
413
  })
@@ -459,7 +452,6 @@ exports.save = async function (ctx) {
459
452
  // update linked rows
460
453
  try {
461
454
  const linkResp = await linkRows.updateLinks({
462
- appId,
463
455
  eventType: oldTable
464
456
  ? linkRows.EventType.TABLE_UPDATED
465
457
  : linkRows.EventType.TABLE_SAVE,
@@ -484,13 +476,12 @@ exports.save = async function (ctx) {
484
476
  &nbsp;
485
477
  tableToSave = await tableSaveFunctions.after(tableToSave)
486
478
  // has to run after, make sure it has _id
487
- await runStaticFormulaChecks(appId, tableToSave, { oldTable })
479
+ await runStaticFormulaChecks(tableToSave, { oldTable })
488
480
  return tableToSave
489
481
  }
490
482
  &nbsp;
491
483
  exports.destroy = async function (ctx) {
492
- const appId = ctx.appId
493
- const db = new CouchDB(appId)
484
+ const db = getAppDB()
494
485
  const tableToDelete = await db.get(ctx.params.tableId)
495
486
  &nbsp;
496
487
  // Delete all rows for that table
@@ -504,7 +495,6 @@ exports.destroy = async function (ctx) {
504
495
  &nbsp;
505
496
  // update linked rows
506
497
  await linkRows.updateLinks({
507
- appId,
508
498
  eventType: linkRows.EventType.TABLE_DELETE,
509
499
  table: tableToDelete,
510
500
  })
@@ -513,25 +503,26 @@ exports.destroy = async function (ctx) {
513
503
  await db.remove(tableToDelete)
514
504
  &nbsp;
515
505
  // remove table search index
516
- const currentIndexes = await db.getIndexes()
517
- const existingIndex = currentIndexes.indexes.find(
518
- existing =&gt; existing.name === `search:${ctx.params.tableId}`
519
- )
520
- <span class="missing-if-branch" title="if path not taken" >I</span>if (existingIndex) {
521
- <span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
506
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest()) {
507
+ const currentIndexes = <span class="cstat-no" title="statement not covered" >await db.getIndexes()</span>
508
+ const existingIndex = <span class="cstat-no" title="statement not covered" >currentIndexes.indexes.find(</span>
509
+ <span class="fstat-no" title="function not covered" > ex</span>isting =&gt; <span class="cstat-no" title="statement not covered" >existing.name === `search:${ctx.params.tableId}`</span>
510
+ )
511
+ <span class="cstat-no" title="statement not covered" > if (existingIndex) {</span>
512
+ <span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
513
+ }
522
514
  }
523
515
  &nbsp;
524
516
  // has to run after, make sure it has _id
525
- await runStaticFormulaChecks(appId, tableToDelete, { deletion: true })
526
- await cleanupAttachments(appId, tableToDelete, { rows })
517
+ await runStaticFormulaChecks(tableToDelete, { deletion: true })
518
+ await cleanupAttachments(tableToDelete, { rows })
527
519
  return tableToDelete
528
520
  }
529
521
  &nbsp;
530
522
  exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
531
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
532
- const table = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
523
+ const table = <span class="cstat-no" title="statement not covered" >await getTable(ctx.params.tableId)</span>
533
524
  const { dataImport } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
534
- <span class="cstat-no" title="statement not covered" > await handleDataImport(appId, ctx.user, table, dataImport)</span>
525
+ <span class="cstat-no" title="statement not covered" > await handleDataImport(ctx.user, table, dataImport)</span>
535
526
  <span class="cstat-no" title="statement not covered" > return table</span>
536
527
  }
537
528
  &nbsp;</pre></td></tr></table></pre>
@@ -541,7 +532,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
541
532
  <div class='footer quiet pad2 space-top1 center small'>
542
533
  Code coverage generated by
543
534
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
544
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
535
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
545
536
  </div>
546
537
  </div>
547
538
  <script src="../../../prettify.js"></script>