@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,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.05% </span>
26
+ <span class="strong">96.02% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>146/152</span>
28
+ <span class='fraction'>145/151</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">96.68% </span>
47
+ <span class="strong">96.66% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>146/151</span>
49
+ <span class='fraction'>145/150</span>
50
50
  </div>
51
51
 
52
52
 
@@ -521,19 +521,15 @@
521
521
  <a name='L462'></a><a href='#L462'>462</a>
522
522
  <a name='L463'></a><a href='#L463'>463</a>
523
523
  <a name='L464'></a><a href='#L464'>464</a>
524
- <a name='L465'></a><a href='#L465'>465</a>
525
- <a name='L466'></a><a href='#L466'>466</a>
526
- <a name='L467'></a><a href='#L467'>467</a>
527
- <a name='L468'></a><a href='#L468'>468</a>
528
- <a name='L469'></a><a href='#L469'>469</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
529
- <span class="cline-any cline-yes">37x</span>
524
+ <a name='L465'></a><a href='#L465'>465</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
530
525
  <span class="cline-any cline-neutral">&nbsp;</span>
531
526
  <span class="cline-any cline-neutral">&nbsp;</span>
532
527
  <span class="cline-any cline-neutral">&nbsp;</span>
533
528
  <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-yes">37x</span>
535
- <span class="cline-any cline-yes">37x</span>
536
- <span class="cline-any cline-yes">37x</span>
529
+ <span class="cline-any cline-yes">39x</span>
530
+ <span class="cline-any cline-yes">39x</span>
531
+ <span class="cline-any cline-yes">39x</span>
532
+ <span class="cline-any cline-yes">39x</span>
537
533
  <span class="cline-any cline-neutral">&nbsp;</span>
538
534
  <span class="cline-any cline-neutral">&nbsp;</span>
539
535
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -585,7 +581,6 @@
585
581
  <span class="cline-any cline-yes">192x</span>
586
582
  <span class="cline-any cline-yes">192x</span>
587
583
  <span class="cline-any cline-yes">192x</span>
588
- <span class="cline-any cline-yes">192x</span>
589
584
  <span class="cline-any cline-neutral">&nbsp;</span>
590
585
  <span class="cline-any cline-neutral">&nbsp;</span>
591
586
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -636,7 +631,6 @@
636
631
  <span class="cline-any cline-neutral">&nbsp;</span>
637
632
  <span class="cline-any cline-neutral">&nbsp;</span>
638
633
  <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
634
  <span class="cline-any cline-yes">9x</span>
641
635
  <span class="cline-any cline-neutral">&nbsp;</span>
642
636
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -647,7 +641,6 @@
647
641
  <span class="cline-any cline-neutral">&nbsp;</span>
648
642
  <span class="cline-any cline-neutral">&nbsp;</span>
649
643
  <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
644
  <span class="cline-any cline-yes">22x</span>
652
645
  <span class="cline-any cline-yes">22x</span>
653
646
  <span class="cline-any cline-yes">82x</span>
@@ -763,7 +756,6 @@
763
756
  <span class="cline-any cline-neutral">&nbsp;</span>
764
757
  <span class="cline-any cline-neutral">&nbsp;</span>
765
758
  <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
759
  <span class="cline-any cline-yes">1x</span>
768
760
  <span class="cline-any cline-neutral">&nbsp;</span>
769
761
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -992,9 +984,8 @@
992
984
  <span class="cline-any cline-neutral">&nbsp;</span>
993
985
  <span class="cline-any cline-neutral">&nbsp;</span>
994
986
  <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-yes">37x</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../index")
997
- const { IncludeDocs, getLinkDocuments } = require("./linkUtils")
987
+ <span class="cline-any cline-yes">39x</span>
988
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { IncludeDocs, getLinkDocuments } = require("./linkUtils")
998
989
  const {
999
990
  generateLinkID,
1000
991
  InternalTables,
@@ -1002,6 +993,7 @@ const {
1002
993
  } = require("../utils")
1003
994
  const Sentry = require("@sentry/node")
1004
995
  const { FieldTypes, RelationshipTypes } = require("../../constants")
996
+ const { getAppDB } = require("@budibase/backend-core/context")
1005
997
  &nbsp;
1006
998
  /**
1007
999
  * Creates a new link document structure which can be put to the database. It is important to
@@ -1047,9 +1039,8 @@ function LinkDocument(
1047
1039
  }
1048
1040
  &nbsp;
1049
1041
  class LinkController {
1050
- constructor({ appId, tableId, row, table, oldTable }) {
1051
- this._appId = appId
1052
- this._db = new CouchDB(appId)
1042
+ constructor({ tableId, row, table, oldTable }) {
1043
+ this._db = getAppDB()
1053
1044
  this._tableId = tableId
1054
1045
  this._row = row
1055
1046
  this._table = table
@@ -1094,7 +1085,6 @@ class LinkController {
1094
1085
  */
1095
1086
  getRowLinkDocs(rowId) {
1096
1087
  return getLinkDocuments({
1097
- appId: this._appId,
1098
1088
  tableId: this._tableId,
1099
1089
  rowId,
1100
1090
  includeDocs: IncludeDocs.INCLUDE,
@@ -1106,7 +1096,6 @@ class LinkController {
1106
1096
  */
1107
1097
  getTableLinkDocs() {
1108
1098
  return getLinkDocuments({
1109
- appId: this._appId,
1110
1099
  tableId: this._tableId,
1111
1100
  includeDocs: IncludeDocs.INCLUDE,
1112
1101
  })
@@ -1225,7 +1214,6 @@ class LinkController {
1225
1214
  if (linkedSchema.relationshipType === RelationshipTypes.ONE_TO_MANY) {
1226
1215
  let links = (
1227
1216
  await getLinkDocuments({
1228
- appId: this._appId,
1229
1217
  tableId: field.tableId,
1230
1218
  rowId: linkId,
1231
1219
  includeDocs: IncludeDocs.EXCLUDE,
@@ -1468,7 +1456,7 @@ module.exports = LinkController
1468
1456
  <div class='footer quiet pad2 space-top1 center small'>
1469
1457
  Code coverage generated by
1470
1458
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1471
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
1459
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
1472
1460
  </div>
1473
1461
  </div>
1474
1462
  <script src="../../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.45% </span>
26
+ <span class="strong">95.75% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>299/310</span>
28
+ <span class='fraction'>293/306</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">86.02% </span>
33
+ <span class="strong">84.32% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>117/136</span>
35
+ <span class='fraction'>113/134</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">96.65% </span>
47
+ <span class="strong">95.93% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>289/299</span>
49
+ <span class='fraction'>283/295</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,47 +74,47 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file high" data-value="LinkController.js"><a href="LinkController.js.html">LinkController.js</a></td>
77
- <td data-value="96.05" class="pic high">
77
+ <td data-value="96.02" class="pic high">
78
78
  <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
79
79
  </td>
80
- <td data-value="96.05" class="pct high">96.05%</td>
81
- <td data-value="152" class="abs high">146/152</td>
80
+ <td data-value="96.02" class="pct high">96.02%</td>
81
+ <td data-value="151" class="abs high">145/151</td>
82
82
  <td data-value="88.23" class="pct high">88.23%</td>
83
83
  <td data-value="68" class="abs high">60/68</td>
84
84
  <td data-value="88.88" class="pct high">88.88%</td>
85
85
  <td data-value="27" class="abs high">24/27</td>
86
- <td data-value="96.68" class="pct high">96.68%</td>
87
- <td data-value="151" class="abs high">146/151</td>
86
+ <td data-value="96.66" class="pct high">96.66%</td>
87
+ <td data-value="150" class="abs high">145/150</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="96.03" class="pic high">
92
+ <td data-value="96.9" class="pic high">
93
93
  <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
94
94
  </td>
95
- <td data-value="96.03" class="pct high">96.03%</td>
96
- <td data-value="101" class="abs high">97/101</td>
97
- <td data-value="80.95" class="pct high">80.95%</td>
98
- <td data-value="42" class="abs high">34/42</td>
95
+ <td data-value="96.9" class="pct high">96.9%</td>
96
+ <td data-value="97" class="abs high">94/97</td>
97
+ <td data-value="82.5" class="pct high">82.5%</td>
98
+ <td data-value="40" class="abs high">33/40</td>
99
99
  <td data-value="100" class="pct high">100%</td>
100
100
  <td data-value="20" class="abs high">20/20</td>
101
- <td data-value="95.78" class="pct high">95.78%</td>
102
- <td data-value="95" class="abs high">91/95</td>
101
+ <td data-value="96.7" class="pct high">96.7%</td>
102
+ <td data-value="91" class="abs high">88/91</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
106
106
  <td class="file high" data-value="linkUtils.js"><a href="linkUtils.js.html">linkUtils.js</a></td>
107
- <td data-value="98.24" class="pic high">
108
- <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
107
+ <td data-value="93.1" class="pic high">
108
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
109
109
  </td>
110
- <td data-value="98.24" class="pct high">98.24%</td>
111
- <td data-value="57" class="abs high">56/57</td>
112
- <td data-value="88.46" class="pct high">88.46%</td>
113
- <td data-value="26" class="abs high">23/26</td>
110
+ <td data-value="93.1" class="pct high">93.1%</td>
111
+ <td data-value="58" class="abs high">54/58</td>
112
+ <td data-value="76.92" class="pct medium">76.92%</td>
113
+ <td data-value="26" class="abs medium">20/26</td>
114
114
  <td data-value="100" class="pct high">100%</td>
115
115
  <td data-value="13" class="abs high">13/13</td>
116
- <td data-value="98.11" class="pct high">98.11%</td>
117
- <td data-value="53" class="abs high">52/53</td>
116
+ <td data-value="92.59" class="pct high">92.59%</td>
117
+ <td data-value="54" class="abs high">50/54</td>
118
118
  </tr>
119
119
 
120
120
  </tbody>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
128
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">96.03% </span>
26
+ <span class="strong">96.9% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>97/101</span>
28
+ <span class='fraction'>94/97</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80.95% </span>
33
+ <span class="strong">82.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>34/42</span>
35
+ <span class='fraction'>33/40</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.78% </span>
47
+ <span class="strong">96.7% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>91/95</span>
49
+ <span class='fraction'>88/91</span>
50
50
  </div>
51
51
 
52
52
 
@@ -268,21 +268,7 @@
268
268
  <a name='L209'></a><a href='#L209'>209</a>
269
269
  <a name='L210'></a><a href='#L210'>210</a>
270
270
  <a name='L211'></a><a href='#L211'>211</a>
271
- <a name='L212'></a><a href='#L212'>212</a>
272
- <a name='L213'></a><a href='#L213'>213</a>
273
- <a name='L214'></a><a href='#L214'>214</a>
274
- <a name='L215'></a><a href='#L215'>215</a>
275
- <a name='L216'></a><a href='#L216'>216</a>
276
- <a name='L217'></a><a href='#L217'>217</a>
277
- <a name='L218'></a><a href='#L218'>218</a>
278
- <a name='L219'></a><a href='#L219'>219</a>
279
- <a name='L220'></a><a href='#L220'>220</a>
280
- <a name='L221'></a><a href='#L221'>221</a>
281
- <a name='L222'></a><a href='#L222'>222</a>
282
- <a name='L223'></a><a href='#L223'>223</a>
283
- <a name='L224'></a><a href='#L224'>224</a>
284
- <a name='L225'></a><a href='#L225'>225</a>
285
- <a name='L226'></a><a href='#L226'>226</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">37x</span>
271
+ <a name='L212'></a><a href='#L212'>212</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
286
272
  <span class="cline-any cline-neutral">&nbsp;</span>
287
273
  <span class="cline-any cline-neutral">&nbsp;</span>
288
274
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -291,21 +277,21 @@
291
277
  <span class="cline-any cline-neutral">&nbsp;</span>
292
278
  <span class="cline-any cline-neutral">&nbsp;</span>
293
279
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">37x</span>
295
- <span class="cline-any cline-yes">37x</span>
296
- <span class="cline-any cline-yes">37x</span>
297
- <span class="cline-any cline-yes">37x</span>
298
- <span class="cline-any cline-yes">37x</span>
299
- <span class="cline-any cline-yes">37x</span>
300
- <span class="cline-any cline-yes">37x</span>
301
- <span class="cline-any cline-yes">37x</span>
280
+ <span class="cline-any cline-yes">39x</span>
281
+ <span class="cline-any cline-yes">39x</span>
282
+ <span class="cline-any cline-yes">39x</span>
283
+ <span class="cline-any cline-yes">39x</span>
284
+ <span class="cline-any cline-yes">39x</span>
285
+ <span class="cline-any cline-yes">39x</span>
286
+ <span class="cline-any cline-yes">39x</span>
287
+ <span class="cline-any cline-yes">39x</span>
302
288
  <span class="cline-any cline-neutral">&nbsp;</span>
303
289
  <span class="cline-any cline-neutral">&nbsp;</span>
304
290
  <span class="cline-any cline-neutral">&nbsp;</span>
305
291
  <span class="cline-any cline-neutral">&nbsp;</span>
306
292
  <span class="cline-any cline-neutral">&nbsp;</span>
307
293
  <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-yes">37x</span>
294
+ <span class="cline-any cline-yes">39x</span>
309
295
  <span class="cline-any cline-neutral">&nbsp;</span>
310
296
  <span class="cline-any cline-neutral">&nbsp;</span>
311
297
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -314,11 +300,11 @@
314
300
  <span class="cline-any cline-neutral">&nbsp;</span>
315
301
  <span class="cline-any cline-neutral">&nbsp;</span>
316
302
  <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-yes">37x</span>
303
+ <span class="cline-any cline-yes">39x</span>
318
304
  <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-yes">37x</span>
320
- <span class="cline-any cline-yes">37x</span>
321
- <span class="cline-any cline-yes">37x</span>
305
+ <span class="cline-any cline-yes">39x</span>
306
+ <span class="cline-any cline-yes">39x</span>
307
+ <span class="cline-any cline-yes">39x</span>
322
308
  <span class="cline-any cline-neutral">&nbsp;</span>
323
309
  <span class="cline-any cline-neutral">&nbsp;</span>
324
310
  <span class="cline-any cline-yes">30x</span>
@@ -347,7 +333,6 @@
347
333
  <span class="cline-any cline-neutral">&nbsp;</span>
348
334
  <span class="cline-any cline-neutral">&nbsp;</span>
349
335
  <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
336
  <span class="cline-any cline-yes">30x</span>
352
337
  <span class="cline-any cline-neutral">&nbsp;</span>
353
338
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -387,13 +372,9 @@
387
372
  <span class="cline-any cline-neutral">&nbsp;</span>
388
373
  <span class="cline-any cline-neutral">&nbsp;</span>
389
374
  <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-yes">37x</span>
375
+ <span class="cline-any cline-yes">39x</span>
392
376
  <span class="cline-any cline-yes">182x</span>
393
377
  <span class="cline-any cline-yes">182x</span>
394
- <span class="cline-any cline-yes">182x</span>
395
- <span class="cline-any cline-no">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
378
  <span class="cline-any cline-neutral">&nbsp;</span>
398
379
  <span class="cline-any cline-yes">182x</span>
399
380
  <span class="cline-any cline-yes">103x</span>
@@ -434,16 +415,13 @@
434
415
  <span class="cline-any cline-neutral">&nbsp;</span>
435
416
  <span class="cline-any cline-neutral">&nbsp;</span>
436
417
  <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-yes">37x</span>
418
+ <span class="cline-any cline-yes">39x</span>
439
419
  <span class="cline-any cline-yes">103x</span>
440
420
  <span class="cline-any cline-yes">103x</span>
441
421
  <span class="cline-any cline-yes">73x</span>
442
422
  <span class="cline-any cline-neutral">&nbsp;</span>
443
423
  <span class="cline-any cline-neutral">&nbsp;</span>
444
424
  <span class="cline-any cline-yes">30x</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-yes">30x</span>
447
425
  <span class="cline-any cline-yes">25x</span>
448
426
  <span class="cline-any cline-neutral">&nbsp;</span>
449
427
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -461,10 +439,6 @@
461
439
  <span class="cline-any cline-neutral">&nbsp;</span>
462
440
  <span class="cline-any cline-yes">18x</span>
463
441
  <span class="cline-any cline-yes">18x</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
442
  <span class="cline-any cline-yes">18x</span>
469
443
  <span class="cline-any cline-yes">18x</span>
470
444
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -480,9 +454,7 @@
480
454
  <span class="cline-any cline-neutral">&nbsp;</span>
481
455
  <span class="cline-any cline-neutral">&nbsp;</span>
482
456
  <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-yes">37x</span>
485
- <span class="cline-any cline-yes">26x</span>
457
+ <span class="cline-any cline-yes">39x</span>
486
458
  <span class="cline-any cline-neutral">&nbsp;</span>
487
459
  <span class="cline-any cline-yes">26x</span>
488
460
  <span class="cline-any cline-yes">26x</span>
@@ -518,12 +490,12 @@ const {
518
490
  getLinkedTable,
519
491
  } = require("./linkUtils")
520
492
  const { flatten } = require("lodash")
521
- const CouchDB = require("../../db")
522
493
  const { FieldTypes } = require("../../constants")
523
494
  const { getMultiIDParams, USER_METDATA_PREFIX } = require("../../db/utils")
524
495
  const { partition } = require("lodash")
525
496
  const { getGlobalUsersFromMetadata } = require("../../utilities/global")
526
497
  const { processFormulas } = require("../../utilities/rowProcessor/utils")
498
+ const { getAppDB } = require("@budibase/backend-core/context")
527
499
  &nbsp;
528
500
  /**
529
501
  * This functionality makes sure that when rows with links are created, updated or deleted they are processed
@@ -557,14 +529,13 @@ function clearRelationshipFields(table, rows) {
557
529
  return rows
558
530
  }
559
531
  &nbsp;
560
- async function getLinksForRows(appId, rows) {
532
+ async function getLinksForRows(rows) {
561
533
  const tableIds = [...new Set(rows.map(el =&gt; el.tableId))]
562
534
  // start by getting all the link values for performance reasons
563
535
  const responses = flatten(
564
536
  await Promise.all(
565
537
  tableIds.map(tableId =&gt;
566
538
  getLinkDocuments({
567
- appId,
568
539
  tableId: tableId,
569
540
  includeDocs: IncludeDocs.EXCLUDE,
570
541
  })
@@ -581,9 +552,9 @@ async function getLinksForRows(appId, rows) {
581
552
  )
582
553
  }
583
554
  &nbsp;
584
- async function getFullLinkedDocs(appId, links) {
555
+ async function getFullLinkedDocs(links) {
585
556
  // create DBs
586
- const db = new CouchDB(appId)
557
+ const db = getAppDB()
587
558
  const linkedRowIds = links.map(link =&gt; link.id)
588
559
  const uniqueRowIds = [...new Set(linkedRowIds)]
589
560
  let dbRows = (await db.allDocs(getMultiIDParams(uniqueRowIds))).rows.map(
@@ -597,7 +568,7 @@ async function getFullLinkedDocs(appId, links) {
597
568
  let [users, other] = partition(linked, linkRow =&gt;
598
569
  linkRow._id.startsWith(USER_METDATA_PREFIX)
599
570
  )
600
- users = await getGlobalUsersFromMetadata(appId, users)
571
+ users = await getGlobalUsersFromMetadata(users)
601
572
  return [...other, ...users]
602
573
  }
603
574
  &nbsp;
@@ -605,20 +576,16 @@ async function getFullLinkedDocs(appId, links) {
605
576
  * Update link documents for a row or table - this is to be called by the API controller when a change is occurring.
606
577
  * @param {string} args.eventType states what type of change which is occurring, means this can be expanded upon in the
607
578
  * future quite easily (all updates go through one function).
608
- * @param {string} args.appId The ID of the instance in which the change is occurring.
609
579
  * @param {string} args.tableId The ID of the of the table which is being changed.
610
- * @param {object|null} args.row The row which is changing, e.g. created, updated or deleted.
611
- * @param {object|null} args.table If the table has already been retrieved this can be used to reduce database gets.
612
- * @param {object|null} args.oldTable If the table is being updated then the old table can be provided for differencing.
580
+ * @param {object|undefined} args.row The row which is changing, e.g. created, updated or deleted.
581
+ * @param {object|undefined} args.table If the table has already been retrieved this can be used to reduce database gets.
582
+ * @param {object|undefined} args.oldTable If the table is being updated then the old table can be provided for differencing.
613
583
  * @returns {Promise&lt;object&gt;} When the update is complete this will respond successfully. Returns the row for
614
584
  * row operations and the table for table operations.
615
585
  */
616
586
  exports.updateLinks = async function (args) {
617
- const { eventType, appId, row, tableId, table, oldTable } = args
587
+ const { eventType, row, tableId, table, oldTable } = args
618
588
  const baseReturnObj = row == null ? table : row
619
- <span class="missing-if-branch" title="if path not taken" >I</span>if (appId == null) {
620
- <span class="cstat-no" title="statement not covered" > throw "Cannot operate without an instance ID."</span>
621
- }
622
589
  // make sure table ID is set
623
590
  if (tableId == null &amp;&amp; table != null) {
624
591
  args.tableId = table._id
@@ -655,26 +622,23 @@ exports.updateLinks = async function (args) {
655
622
  /**
656
623
  * Given a table and a list of rows this will retrieve all of the attached docs and enrich them into the row.
657
624
  * This is required for formula fields, this may only be utilised internally (for now).
658
- * @param {string} appId The ID of the app which this request is in the context of.
659
625
  * @param {object} table The table from which the rows originated.
660
626
  * @param {array&lt;object&gt;} rows The rows which are to be enriched.
661
627
  * @return {Promise&lt;*&gt;} returns the rows with all of the enriched relationships on it.
662
628
  */
663
- exports.attachFullLinkedDocs = async (appId, table, rows) =&gt; {
629
+ exports.attachFullLinkedDocs = async (table, rows) =&gt; {
664
630
  const linkedTableIds = getLinkedTableIDs(table)
665
631
  if (linkedTableIds.length === 0) {
666
632
  return rows
667
633
  }
668
- // create DBs
669
- const db = new CouchDB(appId)
670
634
  // get all the links
671
- const links = (await getLinksForRows(appId, rows)).filter(link =&gt;
635
+ const links = (await getLinksForRows(rows)).filter(link =&gt;
672
636
  rows.some(row =&gt; row._id === link.thisId)
673
637
  )
674
638
  // clear any existing links that could be dupe'd
675
639
  rows = clearRelationshipFields(table, rows)
676
640
  // now get the docs and combine into the rows
677
- let linked = await getFullLinkedDocs(appId, links)
641
+ let linked = await getFullLinkedDocs(links)
678
642
  const linkedTables = []
679
643
  for (let row of rows) {
680
644
  for (let link of links.filter(link =&gt; link.thisId === row._id)) {
@@ -685,11 +649,7 @@ exports.attachFullLinkedDocs = async (appId, table, rows) =&gt; {
685
649
  if (linkedRow) {
686
650
  const linkedTableId =
687
651
  linkedRow.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, link.fieldName)</span>
688
- const linkedTable = await getLinkedTable(
689
- db,
690
- linkedTableId,
691
- linkedTables
692
- )
652
+ const linkedTable = await getLinkedTable(linkedTableId, linkedTables)
693
653
  if (linkedTable) {
694
654
  row[link.fieldName].push(processFormulas(linkedTable, linkedRow))
695
655
  }
@@ -701,18 +661,16 @@ exports.attachFullLinkedDocs = async (appId, table, rows) =&gt; {
701
661
  &nbsp;
702
662
  /**
703
663
  * This function will take the given enriched rows and squash the links to only contain the primary display field.
704
- * @param {string} appId The app in which the tables/rows/links exist.
705
664
  * @param {object} table The table from which the rows originated.
706
665
  * @param {array&lt;object&gt;} enriched The pre-enriched rows (full docs) which are to be squashed.
707
666
  * @returns {Promise&lt;Array&gt;} The rows after having their links squashed to only contain the ID and primary display.
708
667
  */
709
- exports.squashLinksToPrimaryDisplay = async (appId, table, enriched) =&gt; {
710
- const db = new CouchDB(appId)
668
+ exports.squashLinksToPrimaryDisplay = async (table, enriched) =&gt; {
711
669
  // will populate this as we find them
712
670
  const linkedTables = [table]
713
671
  for (let row of enriched) {
714
672
  // this only fetches the table if its not already in array
715
- const rowTable = await getLinkedTable(db, row.tableId, linkedTables)
673
+ const rowTable = await getLinkedTable(row.tableId, linkedTables)
716
674
  for (let [column, schema] of Object.entries(rowTable.schema)) {
717
675
  if (schema.type !== FieldTypes.LINK || !Array.isArray(row[column])) {
718
676
  continue
@@ -720,7 +678,7 @@ exports.squashLinksToPrimaryDisplay = async (appId, table, enriched) =&gt; {
720
678
  const newLinks = []
721
679
  for (let link of row[column]) {
722
680
  const linkTblId = link.tableId || <span class="branch-1 cbranch-no" title="branch not covered" >getRelatedTableForField(table, column)</span>
723
- const linkedTable = await getLinkedTable(db, linkTblId, linkedTables)
681
+ const linkedTable = await getLinkedTable(linkTblId, linkedTables)
724
682
  const obj = { _id: link._id }
725
683
  if (link[linkedTable.primaryDisplay]) {
726
684
  obj.primaryDisplay = link[linkedTable.primaryDisplay]
@@ -739,7 +697,7 @@ exports.squashLinksToPrimaryDisplay = async (appId, table, enriched) =&gt; {
739
697
  <div class='footer quiet pad2 space-top1 center small'>
740
698
  Code coverage generated by
741
699
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
742
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
700
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
743
701
  </div>
744
702
  </div>
745
703
  <script src="../../prettify.js"></script>