@budibase/server 1.0.49-alpha.3 → 1.0.49-alpha.7

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 (320) 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.21e57eb4.js → index.b7cd931c.js} +1 -1
  8. package/builder/index.html +1 -1
  9. package/coverage/clover.xml +1917 -1929
  10. package/coverage/coverage-final.json +54 -54
  11. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/application.js.html +58 -37
  14. package/coverage/lcov-report/api/controllers/auth.js.html +11 -14
  15. package/coverage/lcov-report/api/controllers/automation.js.html +21 -51
  16. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
  18. package/coverage/lcov-report/api/controllers/component.js.html +10 -13
  19. package/coverage/lcov-report/api/controllers/datasource.js.html +17 -23
  20. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  21. package/coverage/lcov-report/api/controllers/index.html +52 -52
  22. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/layout.js.html +4 -4
  24. package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
  25. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/permission.js.html +6 -6
  27. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  28. package/coverage/lcov-report/api/controllers/query/index.js.html +21 -18
  29. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  31. package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
  32. package/coverage/lcov-report/api/controllers/row/external.js.html +6 -12
  33. package/coverage/lcov-report/api/controllers/row/index.html +22 -22
  34. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/row/internal.js.html +37 -82
  36. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +19 -25
  37. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +14 -17
  38. package/coverage/lcov-report/api/controllers/row/utils.js.html +15 -12
  39. package/coverage/lcov-report/api/controllers/screen.js.html +10 -16
  40. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +20 -50
  42. package/coverage/lcov-report/api/controllers/table/external.js.html +15 -24
  43. package/coverage/lcov-report/api/controllers/table/index.html +37 -37
  44. package/coverage/lcov-report/api/controllers/table/index.js.html +7 -7
  45. package/coverage/lcov-report/api/controllers/table/internal.js.html +36 -45
  46. package/coverage/lcov-report/api/controllers/table/utils.js.html +40 -76
  47. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/user.js.html +26 -35
  49. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  50. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  51. package/coverage/lcov-report/api/controllers/view/index.js.html +15 -21
  52. package/coverage/lcov-report/api/controllers/view/utils.js.html +25 -10
  53. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  54. package/coverage/lcov-report/api/controllers/webhook.js.html +21 -15
  55. package/coverage/lcov-report/api/index.html +1 -1
  56. package/coverage/lcov-report/api/index.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/index.html +1 -1
  69. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  87. package/coverage/lcov-report/automations/actions.js.html +1 -1
  88. package/coverage/lcov-report/automations/automationUtils.js.html +4 -7
  89. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  90. package/coverage/lcov-report/automations/index.html +18 -18
  91. package/coverage/lcov-report/automations/index.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/createRow.js.html +2 -5
  94. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/index.html +1 -1
  101. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  106. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  107. package/coverage/lcov-report/automations/steps/updateRow.js.html +2 -2
  108. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  109. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  114. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  115. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  116. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  117. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  118. package/coverage/lcov-report/automations/triggers.js.html +46 -40
  119. package/coverage/lcov-report/automations/utils.js.html +24 -12
  120. package/coverage/lcov-report/constants/index.html +1 -1
  121. package/coverage/lcov-report/constants/index.js.html +1 -1
  122. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  123. package/coverage/lcov-report/constants/screens.js.html +1 -1
  124. package/coverage/lcov-report/db/client.js.html +18 -18
  125. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  126. package/coverage/lcov-report/db/index.html +1 -1
  127. package/coverage/lcov-report/db/index.js.html +3 -3
  128. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +11 -23
  129. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  130. package/coverage/lcov-report/db/linkedRows/index.js.html +24 -66
  131. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +28 -28
  132. package/coverage/lcov-report/db/newid.js.html +1 -1
  133. package/coverage/lcov-report/db/utils.js.html +5 -5
  134. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  135. package/coverage/lcov-report/events/index.html +1 -1
  136. package/coverage/lcov-report/events/index.js.html +1 -1
  137. package/coverage/lcov-report/events/utils.js.html +1 -1
  138. package/coverage/lcov-report/index.html +88 -88
  139. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  140. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  141. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  142. package/coverage/lcov-report/middleware/authorized.js.html +21 -15
  143. package/coverage/lcov-report/middleware/builder.js.html +3 -3
  144. package/coverage/lcov-report/middleware/currentapp.js.html +72 -60
  145. package/coverage/lcov-report/middleware/index.html +28 -28
  146. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  147. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  148. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  149. package/coverage/lcov-report/middleware/usageQuota.js.html +29 -29
  150. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  151. package/coverage/lcov-report/threads/automation.js.html +30 -24
  152. package/coverage/lcov-report/threads/index.html +16 -16
  153. package/coverage/lcov-report/threads/index.js.html +1 -1
  154. package/coverage/lcov-report/threads/query.js.html +17 -17
  155. package/coverage/lcov-report/threads/utils.js.html +1 -1
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  158. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  159. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  160. package/coverage/lcov-report/utilities/global.js.html +44 -35
  161. package/coverage/lcov-report/utilities/index.html +27 -27
  162. package/coverage/lcov-report/utilities/index.js.html +40 -70
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  164. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +11 -11
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +16 -58
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  171. package/coverage/lcov-report/utilities/security.js.html +1 -1
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  174. package/coverage/lcov-report/utilities/usageQuota/index.js.html +5 -2
  175. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +5 -2
  176. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  177. package/coverage/lcov-report/utilities/users.js.html +5 -5
  178. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  179. package/coverage/lcov.info +3189 -3198
  180. package/dist/api/controllers/application.js +31 -28
  181. package/dist/api/controllers/auth.js +4 -5
  182. package/dist/api/controllers/automation.js +14 -19
  183. package/dist/api/controllers/cloud.js +2 -3
  184. package/dist/api/controllers/component.js +3 -4
  185. package/dist/api/controllers/datasource.js +9 -10
  186. package/dist/api/controllers/deploy/Deployment.js +3 -6
  187. package/dist/api/controllers/deploy/index.js +12 -13
  188. package/dist/api/controllers/dev.js +5 -5
  189. package/dist/api/controllers/layout.js +3 -3
  190. package/dist/api/controllers/metadata.js +4 -4
  191. package/dist/api/controllers/permission.js +4 -4
  192. package/dist/api/controllers/query/import/index.js +4 -6
  193. package/dist/api/controllers/query/index.js +11 -10
  194. package/dist/api/controllers/role.js +5 -5
  195. package/dist/api/controllers/routing.js +5 -6
  196. package/dist/api/controllers/row/ExternalRequest.js +76 -63
  197. package/dist/api/controllers/row/external.js +4 -4
  198. package/dist/api/controllers/row/internal.js +29 -44
  199. package/dist/api/controllers/row/internalSearch.js +11 -13
  200. package/dist/api/controllers/row/staticFormula.js +11 -11
  201. package/dist/api/controllers/row/utils.js +7 -6
  202. package/dist/api/controllers/screen.js +5 -7
  203. package/dist/api/controllers/static/index.js +4 -4
  204. package/dist/api/controllers/table/bulkFormula.js +14 -15
  205. package/dist/api/controllers/table/external.js +7 -10
  206. package/dist/api/controllers/table/index.js +5 -5
  207. package/dist/api/controllers/table/internal.js +16 -19
  208. package/dist/api/controllers/table/utils.js +29 -31
  209. package/dist/api/controllers/user.js +16 -20
  210. package/dist/api/controllers/view/index.js +8 -10
  211. package/dist/api/controllers/view/utils.js +9 -4
  212. package/dist/api/controllers/webhook.js +10 -8
  213. package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
  214. package/dist/automations/automationUtils.js +2 -3
  215. package/dist/automations/steps/createRow.js +1 -1
  216. package/dist/automations/steps/updateRow.js +1 -1
  217. package/dist/automations/triggers.js +27 -25
  218. package/dist/automations/utils.js +10 -5
  219. package/dist/db/linkedRows/LinkController.js +3 -7
  220. package/dist/db/linkedRows/index.js +16 -26
  221. package/dist/db/linkedRows/linkUtils.js +6 -6
  222. package/dist/db/views/staticViews.js +9 -10
  223. package/dist/environment.js +2 -1
  224. package/dist/integrations/utils.js +3 -0
  225. package/dist/middleware/authorized.js +5 -3
  226. package/dist/middleware/builder.js +2 -2
  227. package/dist/middleware/currentapp.js +41 -37
  228. package/dist/middleware/usageQuota.js +2 -2
  229. package/dist/migrations/functions/usageQuotas/syncApps.js +6 -9
  230. package/dist/migrations/functions/usageQuotas/syncRows.js +7 -9
  231. package/dist/package.json +4 -4
  232. package/dist/tests/utilities/TestConfiguration.js +67 -44
  233. package/dist/threads/automation.js +13 -11
  234. package/dist/threads/query.js +11 -11
  235. package/dist/tsconfig.tsbuildinfo +1 -1
  236. package/dist/utilities/fileSystem/index.js +4 -3
  237. package/dist/utilities/global.js +15 -12
  238. package/dist/utilities/index.js +7 -17
  239. package/dist/utilities/routing/index.js +5 -5
  240. package/dist/utilities/rowProcessor/index.js +9 -10
  241. package/dist/utilities/usageQuota/index.js +1 -0
  242. package/dist/utilities/usageQuota/rows.js +1 -0
  243. package/dist/utilities/users.js +3 -3
  244. package/dist/utilities/workerRequests.js +4 -4
  245. package/package.json +5 -5
  246. package/scripts/likeCypress.ts +1 -1
  247. package/src/api/controllers/application.js +35 -28
  248. package/src/api/controllers/auth.js +4 -5
  249. package/src/api/controllers/automation.js +13 -23
  250. package/src/api/controllers/cloud.js +2 -3
  251. package/src/api/controllers/component.js +3 -4
  252. package/src/api/controllers/datasource.js +9 -11
  253. package/src/api/controllers/deploy/Deployment.js +3 -7
  254. package/src/api/controllers/deploy/index.js +20 -13
  255. package/src/api/controllers/dev.js +5 -5
  256. package/src/api/controllers/layout.js +3 -3
  257. package/src/api/controllers/metadata.js +4 -9
  258. package/src/api/controllers/permission.js +4 -4
  259. package/src/api/controllers/query/import/index.ts +4 -6
  260. package/src/api/controllers/query/import/tests/index.spec.js +2 -1
  261. package/src/api/controllers/query/index.js +11 -10
  262. package/src/api/controllers/role.js +5 -5
  263. package/src/api/controllers/routing.js +5 -6
  264. package/src/api/controllers/row/ExternalRequest.ts +53 -42
  265. package/src/api/controllers/row/external.js +4 -6
  266. package/src/api/controllers/row/internal.js +29 -44
  267. package/src/api/controllers/row/internalSearch.js +11 -13
  268. package/src/api/controllers/row/staticFormula.js +10 -11
  269. package/src/api/controllers/row/utils.js +7 -6
  270. package/src/api/controllers/screen.js +5 -7
  271. package/src/api/controllers/static/index.js +4 -4
  272. package/src/api/controllers/table/bulkFormula.js +13 -23
  273. package/src/api/controllers/table/external.js +7 -10
  274. package/src/api/controllers/table/index.js +5 -5
  275. package/src/api/controllers/table/internal.js +18 -21
  276. package/src/api/controllers/table/utils.js +29 -41
  277. package/src/api/controllers/user.js +17 -20
  278. package/src/api/controllers/view/index.js +8 -10
  279. package/src/api/controllers/view/utils.js +9 -4
  280. package/src/api/controllers/webhook.js +10 -8
  281. package/src/api/routes/tests/automation.spec.js +1 -0
  282. package/src/api/routes/tests/misc.spec.js +0 -1
  283. package/src/api/routes/tests/routing.spec.js +21 -12
  284. package/src/api/routes/tests/row.spec.js +7 -4
  285. package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
  286. package/src/automations/automationUtils.js +2 -3
  287. package/src/automations/steps/createRow.js +0 -1
  288. package/src/automations/steps/updateRow.js +1 -1
  289. package/src/automations/triggers.js +33 -31
  290. package/src/automations/utils.js +9 -5
  291. package/src/db/linkedRows/LinkController.js +3 -7
  292. package/src/db/linkedRows/index.js +16 -30
  293. package/src/db/linkedRows/linkUtils.js +6 -6
  294. package/src/db/tests/linkController.spec.js +0 -1
  295. package/src/db/tests/linkTests.spec.js +5 -6
  296. package/src/db/views/staticViews.js +8 -10
  297. package/src/environment.js +2 -1
  298. package/src/integrations/utils.ts +4 -1
  299. package/src/middleware/authorized.js +5 -3
  300. package/src/middleware/builder.js +2 -2
  301. package/src/middleware/currentapp.js +50 -46
  302. package/src/middleware/tests/authorized.spec.js +7 -2
  303. package/src/middleware/tests/currentapp.spec.js +6 -0
  304. package/src/middleware/usageQuota.js +2 -2
  305. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -4
  306. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  307. package/src/module.d.ts +3 -0
  308. package/src/tests/utilities/TestConfiguration.js +69 -50
  309. package/src/threads/automation.js +17 -15
  310. package/src/threads/query.js +12 -12
  311. package/src/utilities/fileSystem/index.js +4 -3
  312. package/src/utilities/global.js +15 -12
  313. package/src/utilities/index.js +7 -17
  314. package/src/utilities/routing/index.js +5 -5
  315. package/src/utilities/rowProcessor/index.js +9 -23
  316. package/src/utilities/usageQuota/index.js +1 -0
  317. package/src/utilities/usageQuota/rows.js +1 -0
  318. package/src/utilities/users.js +3 -3
  319. package/src/utilities/workerRequests.js +4 -4
  320. package/tsconfig.json +2 -1
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">86.05% </span>
26
+ <span class="strong">85.42% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>179/208</span>
28
+ <span class='fraction'>170/199</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">86.13% </span>
47
+ <span class="strong">85.49% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>174/202</span>
49
+ <span class='fraction'>165/193</span>
50
50
  </div>
51
51
 
52
52
 
@@ -477,23 +477,7 @@
477
477
  <a name='L418'></a><a href='#L418'>418</a>
478
478
  <a name='L419'></a><a href='#L419'>419</a>
479
479
  <a name='L420'></a><a href='#L420'>420</a>
480
- <a name='L421'></a><a href='#L421'>421</a>
481
- <a name='L422'></a><a href='#L422'>422</a>
482
- <a name='L423'></a><a href='#L423'>423</a>
483
- <a name='L424'></a><a href='#L424'>424</a>
484
- <a name='L425'></a><a href='#L425'>425</a>
485
- <a name='L426'></a><a href='#L426'>426</a>
486
- <a name='L427'></a><a href='#L427'>427</a>
487
- <a name='L428'></a><a href='#L428'>428</a>
488
- <a name='L429'></a><a href='#L429'>429</a>
489
- <a name='L430'></a><a href='#L430'>430</a>
490
- <a name='L431'></a><a href='#L431'>431</a>
491
- <a name='L432'></a><a href='#L432'>432</a>
492
- <a name='L433'></a><a href='#L433'>433</a>
493
- <a name='L434'></a><a href='#L434'>434</a>
494
- <a name='L435'></a><a href='#L435'>435</a>
495
- <a name='L436'></a><a href='#L436'>436</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
496
- <span class="cline-any cline-yes">39x</span>
480
+ <a name='L421'></a><a href='#L421'>421</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
497
481
  <span class="cline-any cline-neutral">&nbsp;</span>
498
482
  <span class="cline-any cline-neutral">&nbsp;</span>
499
483
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -520,6 +504,7 @@
520
504
  <span class="cline-any cline-yes">39x</span>
521
505
  <span class="cline-any cline-yes">39x</span>
522
506
  <span class="cline-any cline-yes">39x</span>
507
+ <span class="cline-any cline-yes">39x</span>
523
508
  <span class="cline-any cline-neutral">&nbsp;</span>
524
509
  <span class="cline-any cline-yes">39x</span>
525
510
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -574,7 +559,6 @@
574
559
  <span class="cline-any cline-yes">5x</span>
575
560
  <span class="cline-any cline-yes">5x</span>
576
561
  <span class="cline-any cline-yes">5x</span>
577
- <span class="cline-any cline-yes">5x</span>
578
562
  <span class="cline-any cline-neutral">&nbsp;</span>
579
563
  <span class="cline-any cline-yes">5x</span>
580
564
  <span class="cline-any cline-yes">5x</span>
@@ -616,7 +600,6 @@
616
600
  <span class="cline-any cline-neutral">&nbsp;</span>
617
601
  <span class="cline-any cline-neutral">&nbsp;</span>
618
602
  <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
603
  <span class="cline-any cline-yes">4x</span>
621
604
  <span class="cline-any cline-neutral">&nbsp;</span>
622
605
  <span class="cline-any cline-yes">4x</span>
@@ -636,7 +619,6 @@
636
619
  <span class="cline-any cline-yes">70x</span>
637
620
  <span class="cline-any cline-yes">70x</span>
638
621
  <span class="cline-any cline-yes">70x</span>
639
- <span class="cline-any cline-yes">70x</span>
640
622
  <span class="cline-any cline-neutral">&nbsp;</span>
641
623
  <span class="cline-any cline-yes">70x</span>
642
624
  <span class="cline-any cline-yes">70x</span>
@@ -662,7 +644,6 @@
662
644
  <span class="cline-any cline-neutral">&nbsp;</span>
663
645
  <span class="cline-any cline-neutral">&nbsp;</span>
664
646
  <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
647
  <span class="cline-any cline-yes">69x</span>
667
648
  <span class="cline-any cline-neutral">&nbsp;</span>
668
649
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -671,7 +652,6 @@
671
652
  <span class="cline-any cline-neutral">&nbsp;</span>
672
653
  <span class="cline-any cline-yes">39x</span>
673
654
  <span class="cline-any cline-yes">7x</span>
674
- <span class="cline-any cline-yes">7x</span>
675
655
  <span class="cline-any cline-neutral">&nbsp;</span>
676
656
  <span class="cline-any cline-neutral">&nbsp;</span>
677
657
  <span class="cline-any cline-yes">7x</span>
@@ -734,7 +714,6 @@
734
714
  <span class="cline-any cline-neutral">&nbsp;</span>
735
715
  <span class="cline-any cline-yes">39x</span>
736
716
  <span class="cline-any cline-yes">5x</span>
737
- <span class="cline-any cline-yes">5x</span>
738
717
  <span class="cline-any cline-neutral">&nbsp;</span>
739
718
  <span class="cline-any cline-yes">5x</span>
740
719
  <span class="cline-any cline-yes">5x</span>
@@ -746,7 +725,6 @@
746
725
  <span class="cline-any cline-yes">18x</span>
747
726
  <span class="cline-any cline-yes">18x</span>
748
727
  <span class="cline-any cline-yes">18x</span>
749
- <span class="cline-any cline-yes">18x</span>
750
728
  <span class="cline-any cline-yes">15x</span>
751
729
  <span class="cline-any cline-yes">15x</span>
752
730
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -755,7 +733,6 @@
755
733
  <span class="cline-any cline-yes">3x</span>
756
734
  <span class="cline-any cline-yes">3x</span>
757
735
  <span class="cline-any cline-yes">3x</span>
758
- <span class="cline-any cline-yes">3x</span>
759
736
  <span class="cline-any cline-neutral">&nbsp;</span>
760
737
  <span class="cline-any cline-yes">2x</span>
761
738
  <span class="cline-any cline-no">&nbsp;</span>
@@ -770,7 +747,6 @@
770
747
  <span class="cline-any cline-neutral">&nbsp;</span>
771
748
  <span class="cline-any cline-neutral">&nbsp;</span>
772
749
  <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-neutral">&nbsp;</span>
774
750
  <span class="cline-any cline-yes">2x</span>
775
751
  <span class="cline-any cline-neutral">&nbsp;</span>
776
752
  <span class="cline-any cline-yes">2x</span>
@@ -793,7 +769,6 @@
793
769
  <span class="cline-any cline-yes">2x</span>
794
770
  <span class="cline-any cline-yes">2x</span>
795
771
  <span class="cline-any cline-yes">2x</span>
796
- <span class="cline-any cline-yes">2x</span>
797
772
  <span class="cline-any cline-neutral">&nbsp;</span>
798
773
  <span class="cline-any cline-neutral">&nbsp;</span>
799
774
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -807,7 +782,6 @@
807
782
  <span class="cline-any cline-neutral">&nbsp;</span>
808
783
  <span class="cline-any cline-neutral">&nbsp;</span>
809
784
  <span class="cline-any cline-neutral">&nbsp;</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
785
  <span class="cline-any cline-yes">2x</span>
812
786
  <span class="cline-any cline-no">&nbsp;</span>
813
787
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -838,7 +812,6 @@
838
812
  <span class="cline-any cline-yes">1x</span>
839
813
  <span class="cline-any cline-yes">1x</span>
840
814
  <span class="cline-any cline-yes">1x</span>
841
- <span class="cline-any cline-yes">1x</span>
842
815
  <span class="cline-any cline-neutral">&nbsp;</span>
843
816
  <span class="cline-any cline-neutral">&nbsp;</span>
844
817
  <span class="cline-any cline-yes">1x</span>
@@ -867,12 +840,10 @@
867
840
  <span class="cline-any cline-neutral">&nbsp;</span>
868
841
  <span class="cline-any cline-neutral">&nbsp;</span>
869
842
  <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-neutral">&nbsp;</span>
871
843
  <span class="cline-any cline-yes">39x</span>
872
844
  <span class="cline-any cline-yes">1x</span>
873
845
  <span class="cline-any cline-yes">1x</span>
874
846
  <span class="cline-any cline-yes">1x</span>
875
- <span class="cline-any cline-yes">1x</span>
876
847
  <span class="cline-any cline-neutral">&nbsp;</span>
877
848
  <span class="cline-any cline-yes">1x</span>
878
849
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -884,7 +855,6 @@
884
855
  <span class="cline-any cline-neutral">&nbsp;</span>
885
856
  <span class="cline-any cline-neutral">&nbsp;</span>
886
857
  <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
858
  <span class="cline-any cline-yes">1x</span>
889
859
  <span class="cline-any cline-neutral">&nbsp;</span>
890
860
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -927,8 +897,7 @@
927
897
  <span class="cline-any cline-neutral">&nbsp;</span>
928
898
  <span class="cline-any cline-yes">1x</span>
929
899
  <span class="cline-any cline-neutral">&nbsp;</span>
930
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
931
- const linkRows = require("../../../db/linkedRows")
900
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const linkRows = require("../../../db/linkedRows")
932
901
  const {
933
902
  generateRowID,
934
903
  getRowParams,
@@ -954,6 +923,7 @@ const {
954
923
  getFromMemoryDoc,
955
924
  } = require("../view/utils")
956
925
  const { cloneDeep } = require("lodash/fp")
926
+ const { getAppDB } = require("@budibase/backend-core/context")
957
927
  const { finaliseRow, updateRelatedFormula } = require("./staticFormula")
958
928
  &nbsp;
959
929
  const CALCULATION_TYPES = {
@@ -1005,8 +975,7 @@ async function getRawTableData(ctx, db, tableId) {
1005
975
  }
1006
976
  &nbsp;
1007
977
  exports.patch = async ctx =&gt; {
1008
- const appId = ctx.appId
1009
- const db = new CouchDB(appId)
978
+ const db = getAppDB()
1010
979
  const inputs = ctx.request.body
1011
980
  const tableId = inputs.tableId
1012
981
  const isUserTable = tableId === InternalTables.USER_METADATA
@@ -1045,14 +1014,13 @@ exports.patch = async ctx =&gt; {
1045
1014
  &nbsp;
1046
1015
  // returned row is cleaned and prepared for writing to DB
1047
1016
  row = await linkRows.updateLinks({
1048
- appId,
1049
1017
  eventType: linkRows.EventType.ROW_UPDATE,
1050
1018
  row,
1051
1019
  tableId: row.tableId,
1052
1020
  table,
1053
1021
  })
1054
1022
  // check if any attachments removed
1055
- await cleanupAttachments(appId, table, { oldRow, row })
1023
+ await cleanupAttachments(table, { oldRow, row })
1056
1024
  &nbsp;
1057
1025
  <span class="missing-if-branch" title="if path not taken" >I</span>if (isUserTable) {
1058
1026
  // the row has been updated, need to put it into the ctx
@@ -1061,15 +1029,14 @@ exports.patch = async ctx =&gt; {
1061
1029
  <span class="cstat-no" title="statement not covered" > return { row: ctx.body, table }</span>
1062
1030
  }
1063
1031
  &nbsp;
1064
- return finaliseRow(ctx.appId, table, row, {
1032
+ return finaliseRow(table, row, {
1065
1033
  oldTable: dbTable,
1066
1034
  updateFormula: true,
1067
1035
  })
1068
1036
  }
1069
1037
  &nbsp;
1070
1038
  exports.save = async function (ctx) {
1071
- const appId = ctx.appId
1072
- const db = new CouchDB(appId)
1039
+ const db = getAppDB()
1073
1040
  let inputs = ctx.request.body
1074
1041
  inputs.tableId = ctx.params.tableId
1075
1042
  &nbsp;
@@ -1091,21 +1058,19 @@ exports.save = async function (ctx) {
1091
1058
  &nbsp;
1092
1059
  // make sure link rows are up to date
1093
1060
  row = await linkRows.updateLinks({
1094
- appId,
1095
1061
  eventType: linkRows.EventType.ROW_SAVE,
1096
1062
  row,
1097
1063
  tableId: row.tableId,
1098
1064
  table,
1099
1065
  })
1100
1066
  &nbsp;
1101
- return finaliseRow(ctx.appId, table, row, {
1067
+ return finaliseRow(table, row, {
1102
1068
  oldTable: dbTable,
1103
1069
  updateFormula: true,
1104
1070
  })
1105
1071
  }
1106
1072
  &nbsp;
1107
1073
  exports.fetchView = async ctx =&gt; {
1108
- const appId = ctx.appId
1109
1074
  const viewName = ctx.params.viewName
1110
1075
  &nbsp;
1111
1076
  // if this is a table view being looked for just transfer to that
@@ -1114,7 +1079,7 @@ exports.fetchView = async ctx =&gt; {
1114
1079
  return exports.fetch(ctx)
1115
1080
  }
1116
1081
  &nbsp;
1117
- const db = new CouchDB(appId)
1082
+ const db = getAppDB()
1118
1083
  const { calculation, group, field } = ctx.query
1119
1084
  const viewInfo = await getView(db, viewName)
1120
1085
  let response
@@ -1141,7 +1106,7 @@ exports.fetchView = async ctx =&gt; {
1141
1106
  schema: {},
1142
1107
  }
1143
1108
  }
1144
- rows = await outputProcessing(ctx, table, response.rows)
1109
+ rows = await outputProcessing(table, response.rows)
1145
1110
  }
1146
1111
  &nbsp;
1147
1112
  if (calculation === CALCULATION_TYPES.STATS) {
@@ -1168,27 +1133,24 @@ exports.fetchView = async ctx =&gt; {
1168
1133
  }
1169
1134
  &nbsp;
1170
1135
  exports.fetch = async ctx =&gt; {
1171
- const appId = ctx.appId
1172
- const db = new CouchDB(appId)
1136
+ const db = getAppDB()
1173
1137
  &nbsp;
1174
1138
  const tableId = ctx.params.tableId
1175
1139
  let table = await db.get(tableId)
1176
1140
  let rows = await getRawTableData(ctx, db, tableId)
1177
- return outputProcessing(ctx, table, rows)
1141
+ return outputProcessing(table, rows)
1178
1142
  }
1179
1143
  &nbsp;
1180
1144
  exports.find = async ctx =&gt; {
1181
- const appId = ctx.appId
1182
- const db = new CouchDB(appId)
1145
+ const db = getAppDB()
1183
1146
  const table = await db.get(ctx.params.tableId)
1184
- let row = await findRow(ctx, db, ctx.params.tableId, ctx.params.rowId)
1185
- row = await outputProcessing(ctx, table, row)
1147
+ let row = await findRow(ctx, ctx.params.tableId, ctx.params.rowId)
1148
+ row = await outputProcessing(table, row)
1186
1149
  return row
1187
1150
  }
1188
1151
  &nbsp;
1189
1152
  exports.destroy = async function (ctx) {
1190
- const appId = ctx.appId
1191
- const db = new CouchDB(appId)
1153
+ const db = getAppDB()
1192
1154
  const { _id, _rev } = ctx.request.body
1193
1155
  let row = await db.get(_id)
1194
1156
  &nbsp;
@@ -1197,18 +1159,17 @@ exports.destroy = async function (ctx) {
1197
1159
  }
1198
1160
  const table = await db.get(row.tableId)
1199
1161
  // update the row to include full relationships before deleting them
1200
- row = await outputProcessing(ctx, table, row, { squash: false })
1162
+ row = await outputProcessing(table, row, { squash: false })
1201
1163
  // now remove the relationships
1202
1164
  await linkRows.updateLinks({
1203
- appId,
1204
1165
  eventType: linkRows.EventType.ROW_DELETE,
1205
1166
  row,
1206
1167
  tableId: row.tableId,
1207
1168
  })
1208
1169
  // remove any attachments that were on the row from object storage
1209
- await cleanupAttachments(appId, table, { row })
1170
+ await cleanupAttachments(table, { row })
1210
1171
  // remove any static formula
1211
- await updateRelatedFormula(appId, table, row)
1172
+ await updateRelatedFormula(table, row)
1212
1173
  &nbsp;
1213
1174
  let response
1214
1175
  <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.params.tableId === InternalTables.USER_METADATA) {
@@ -1224,20 +1185,18 @@ exports.destroy = async function (ctx) {
1224
1185
  }
1225
1186
  &nbsp;
1226
1187
  exports.bulkDestroy = async ctx =&gt; {
1227
- const appId = ctx.appId
1228
- const db = new CouchDB(appId)
1188
+ const db = getAppDB()
1229
1189
  const tableId = ctx.params.tableId
1230
1190
  const table = await db.get(tableId)
1231
1191
  let { rows } = ctx.request.body
1232
1192
  &nbsp;
1233
1193
  // before carrying out any updates, make sure the rows are ready to be returned
1234
1194
  // they need to be the full rows (including previous relationships) for automations
1235
- rows = await outputProcessing(ctx, table, rows, { squash: false })
1195
+ rows = await outputProcessing(table, rows, { squash: false })
1236
1196
  &nbsp;
1237
1197
  // remove the relationships first
1238
1198
  let updates = rows.map(row =&gt;
1239
1199
  linkRows.updateLinks({
1240
- appId,
1241
1200
  eventType: linkRows.EventType.ROW_DELETE,
1242
1201
  row,
1243
1202
  tableId: row.tableId,
@@ -1256,8 +1215,8 @@ exports.bulkDestroy = async ctx =&gt; {
1256
1215
  await db.bulkDocs(rows.map(row =&gt; ({ ...row, _deleted: true })))
1257
1216
  }
1258
1217
  // remove any attachments that were on the rows from object storage
1259
- await cleanupAttachments(appId, table, { rows })
1260
- await updateRelatedFormula(appId, table, rows)
1218
+ await cleanupAttachments(table, { rows })
1219
+ await updateRelatedFormula(table, rows)
1261
1220
  await Promise.all(updates)
1262
1221
  return { response: { ok: true }, rows }
1263
1222
  }
@@ -1268,28 +1227,27 @@ exports.search = async ctx =&gt; {
1268
1227
  <span class="cstat-no" title="statement not covered" > return { rows: await exports.fetch(ctx) }</span>
1269
1228
  }
1270
1229
  &nbsp;
1271
- const appId = ctx.appId
1272
1230
  const { tableId } = ctx.params
1273
- const db = new CouchDB(appId)
1231
+ const db = getAppDB()
1274
1232
  const { paginate, query, ...params } = ctx.request.body
1275
1233
  params.version = ctx.version
1276
1234
  params.tableId = tableId
1277
1235
  &nbsp;
1278
1236
  let response
1279
1237
  <span class="missing-if-branch" title="if path not taken" >I</span>if (paginate) {
1280
- <span class="cstat-no" title="statement not covered" > response = await paginatedSearch(appId, query, params)</span>
1238
+ <span class="cstat-no" title="statement not covered" > response = await paginatedSearch(query, params)</span>
1281
1239
  } else {
1282
- response = await fullSearch(appId, query, params)
1240
+ response = await fullSearch(query, params)
1283
1241
  }
1284
1242
  &nbsp;
1285
1243
  // Enrich search results with relationships
1286
1244
  if (response.rows &amp;&amp; response.rows.length) {
1287
1245
  // enrich with global users if from users table
1288
1246
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId === InternalTables.USER_METADATA) {
1289
- <span class="cstat-no" title="statement not covered" > response.rows = await getGlobalUsersFromMetadata(appId, response.rows)</span>
1247
+ <span class="cstat-no" title="statement not covered" > response.rows = await getGlobalUsersFromMetadata(response.rows)</span>
1290
1248
  }
1291
1249
  const table = await db.get(tableId)
1292
- response.rows = await outputProcessing(ctx, table, response.rows)
1250
+ response.rows = await outputProcessing(table, response.rows)
1293
1251
  }
1294
1252
  &nbsp;
1295
1253
  return response
@@ -1297,25 +1255,22 @@ exports.search = async ctx =&gt; {
1297
1255
  &nbsp;
1298
1256
  exports.validate = async ctx =&gt; {
1299
1257
  return validate({
1300
- appId: ctx.appId,
1301
1258
  tableId: ctx.params.tableId,
1302
1259
  row: ctx.request.body,
1303
1260
  })
1304
1261
  }
1305
1262
  &nbsp;
1306
1263
  exports.fetchEnrichedRow = async ctx =&gt; {
1307
- const appId = ctx.appId
1308
- const db = new CouchDB(appId)
1264
+ const db = getAppDB()
1309
1265
  const tableId = ctx.params.tableId
1310
1266
  const rowId = ctx.params.rowId
1311
1267
  // need table to work out where links go in row
1312
1268
  let [table, row] = await Promise.all([
1313
1269
  db.get(tableId),
1314
- findRow(ctx, db, tableId, rowId),
1270
+ findRow(ctx, tableId, rowId),
1315
1271
  ])
1316
1272
  // get the link docs
1317
1273
  const linkVals = await linkRows.getLinkDocuments({
1318
- appId,
1319
1274
  tableId,
1320
1275
  rowId,
1321
1276
  })
@@ -1342,7 +1297,7 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1342
1297
  for (let [tableId, rows] of Object.entries(groups)) {
1343
1298
  // need to include the IDs in these rows for any links they may have
1344
1299
  linkedRows = linkedRows.concat(
1345
- await outputProcessing(ctx, tables[tableId], rows)
1300
+ await outputProcessing(tables[tableId], rows)
1346
1301
  )
1347
1302
  }
1348
1303
  &nbsp;
@@ -1369,7 +1324,7 @@ exports.fetchEnrichedRow = async ctx =&gt; {
1369
1324
  <div class='footer quiet pad2 space-top1 center small'>
1370
1325
  Code coverage generated by
1371
1326
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1372
- at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
1327
+ at Tue Feb 01 2022 20:38:35 GMT+0000 (Coordinated Universal Time)
1373
1328
  </div>
1374
1329
  </div>
1375
1330
  <script src="../../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">4.54% </span>
26
+ <span class="strong">5.16% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>7/154</span>
28
+ <span class='fraction'>8/155</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">4.63% </span>
47
+ <span class="strong">5.26% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>7/151</span>
49
+ <span class='fraction'>8/152</span>
50
50
  </div>
51
51
 
52
52
 
@@ -452,9 +452,8 @@
452
452
  <a name='L393'></a><a href='#L393'>393</a>
453
453
  <a name='L394'></a><a href='#L394'>394</a>
454
454
  <a name='L395'></a><a href='#L395'>395</a>
455
- <a name='L396'></a><a href='#L396'>396</a>
456
- <a name='L397'></a><a href='#L397'>397</a>
457
- <a name='L398'></a><a href='#L398'>398</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
455
+ <a name='L396'></a><a href='#L396'>396</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
456
+ <span class="cline-any cline-yes">38x</span>
458
457
  <span class="cline-any cline-yes">38x</span>
459
458
  <span class="cline-any cline-yes">38x</span>
460
459
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -465,7 +464,6 @@
465
464
  <span class="cline-any cline-neutral">&nbsp;</span>
466
465
  <span class="cline-any cline-neutral">&nbsp;</span>
467
466
  <span class="cline-any cline-no">&nbsp;</span>
468
- <span class="cline-any cline-no">&nbsp;</span>
469
467
  <span class="cline-any cline-neutral">&nbsp;</span>
470
468
  <span class="cline-any cline-neutral">&nbsp;</span>
471
469
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -698,6 +696,7 @@
698
696
  <span class="cline-any cline-neutral">&nbsp;</span>
699
697
  <span class="cline-any cline-neutral">&nbsp;</span>
700
698
  <span class="cline-any cline-no">&nbsp;</span>
699
+ <span class="cline-any cline-no">&nbsp;</span>
701
700
  <span class="cline-any cline-neutral">&nbsp;</span>
702
701
  <span class="cline-any cline-neutral">&nbsp;</span>
703
702
  <span class="cline-any cline-no">&nbsp;</span>
@@ -746,7 +745,6 @@
746
745
  <span class="cline-any cline-neutral">&nbsp;</span>
747
746
  <span class="cline-any cline-neutral">&nbsp;</span>
748
747
  <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
748
  <span class="cline-any cline-yes">38x</span>
751
749
  <span class="cline-any cline-no">&nbsp;</span>
752
750
  <span class="cline-any cline-no">&nbsp;</span>
@@ -795,7 +793,6 @@
795
793
  <span class="cline-any cline-neutral">&nbsp;</span>
796
794
  <span class="cline-any cline-neutral">&nbsp;</span>
797
795
  <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-neutral">&nbsp;</span>
799
796
  <span class="cline-any cline-yes">38x</span>
800
797
  <span class="cline-any cline-no">&nbsp;</span>
801
798
  <span class="cline-any cline-no">&nbsp;</span>
@@ -841,7 +838,6 @@
841
838
  <span class="cline-any cline-neutral">&nbsp;</span>
842
839
  <span class="cline-any cline-neutral">&nbsp;</span>
843
840
  <span class="cline-any cline-neutral">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
841
  <span class="cline-any cline-yes">38x</span>
846
842
  <span class="cline-any cline-no">&nbsp;</span>
847
843
  <span class="cline-any cline-no">&nbsp;</span>
@@ -854,14 +850,14 @@
854
850
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { SearchIndexes } = require("../../../db/utils")
855
851
  const fetch = require("node-fetch")
856
852
  const { getCouchUrl } = require("@budibase/backend-core/db")
853
+ const { getAppId } = require("@budibase/backend-core/context")
857
854
  &nbsp;
858
855
  /**
859
856
  * Class to build lucene query URLs.
860
857
  * Optionally takes a base lucene query object.
861
858
  */
862
859
  class QueryBuilder {
863
- <span class="fstat-no" title="function not covered" > co</span>nstructor(appId, base) {
864
- <span class="cstat-no" title="statement not covered" > this.appId = appId</span>
860
+ <span class="fstat-no" title="function not covered" > co</span>nstructor(base) {
865
861
  <span class="cstat-no" title="statement not covered" > this.query = {</span>
866
862
  string: {},
867
863
  fuzzy: {},
@@ -1094,7 +1090,8 @@ class QueryBuilder {
1094
1090
  }
1095
1091
  &nbsp;
1096
1092
  <span class="fstat-no" title="function not covered" > as</span>ync run() {
1097
- const url = <span class="cstat-no" title="statement not covered" >`${getCouchUrl()}/${this.appId}/_design/database/_search/${</span>
1093
+ const appId = <span class="cstat-no" title="statement not covered" >getAppId()</span>
1094
+ const url = <span class="cstat-no" title="statement not covered" >`${getCouchUrl()}/${appId}/_design/database/_search/${</span>
1098
1095
  SearchIndexes.ROWS
1099
1096
  }`
1100
1097
  const body = <span class="cstat-no" title="statement not covered" >this.buildSearchBody()</span>
@@ -1131,7 +1128,6 @@ const runQuery = <span class="fstat-no" title="function not covered" >as</span>y
1131
1128
  * Gets round the fixed limit of 200 results from a query by fetching as many
1132
1129
  * pages as required and concatenating the results. This recursively operates
1133
1130
  * until enough results have been found.
1134
- * @param appId {string} The app ID to search
1135
1131
  * @param query {object} The JSON query structure
1136
1132
  * @param params {object} The search params including:
1137
1133
  * tableId {string} The table ID to search
@@ -1144,7 +1140,7 @@ const runQuery = <span class="fstat-no" title="function not covered" >as</span>y
1144
1140
  * rows {array|null} Current results in the recursive search
1145
1141
  * @returns {Promise&lt;*[]|*&gt;}
1146
1142
  */
1147
- const recursiveSearch = <span class="fstat-no" title="function not covered" >as</span>ync (appId, query, params) =&gt; {
1143
+ const recursiveSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) =&gt; {
1148
1144
  const bookmark = <span class="cstat-no" title="statement not covered" >params.bookmark</span>
1149
1145
  const rows = <span class="cstat-no" title="statement not covered" >params.rows || []</span>
1150
1146
  <span class="cstat-no" title="statement not covered" > if (rows.length &gt;= params.limit) {</span>
@@ -1154,7 +1150,7 @@ const recursiveSearch = <span class="fstat-no" title="function not covered" >as<
1154
1150
  <span class="cstat-no" title="statement not covered" > if (rows.length &gt; params.limit - 200) {</span>
1155
1151
  <span class="cstat-no" title="statement not covered" > pageSize = params.limit - rows.length</span>
1156
1152
  }
1157
- const page = <span class="cstat-no" title="statement not covered" >await new QueryBuilder(appId, query)</span>
1153
+ const page = <span class="cstat-no" title="statement not covered" >await new QueryBuilder(query)</span>
1158
1154
  .setVersion(params.version)
1159
1155
  .setTable(params.tableId)
1160
1156
  .setBookmark(bookmark)
@@ -1174,14 +1170,13 @@ const recursiveSearch = <span class="fstat-no" title="function not covered" >as<
1174
1170
  bookmark: page.bookmark,
1175
1171
  rows: [...rows, ...page.rows],
1176
1172
  }
1177
- <span class="cstat-no" title="statement not covered" > return await recursiveSearch(appId, query, newParams)</span>
1173
+ <span class="cstat-no" title="statement not covered" > return await recursiveSearch(query, newParams)</span>
1178
1174
  }
1179
1175
  &nbsp;
1180
1176
  /**
1181
1177
  * Performs a paginated search. A bookmark will be returned to allow the next
1182
1178
  * page to be fetched. There is a max limit off 200 results per page in a
1183
1179
  * paginated search.
1184
- * @param appId {string} The app ID to search
1185
1180
  * @param query {object} The JSON query structure
1186
1181
  * @param params {object} The search params including:
1187
1182
  * tableId {string} The table ID to search
@@ -1193,13 +1188,13 @@ const recursiveSearch = <span class="fstat-no" title="function not covered" >as<
1193
1188
  * bookmark {string} The bookmark to resume from
1194
1189
  * @returns {Promise&lt;{hasNextPage: boolean, rows: *[]}&gt;}
1195
1190
  */
1196
- exports.paginatedSearch = <span class="fstat-no" title="function not covered" >as</span>ync (appId, query, params) =&gt; {
1191
+ exports.paginatedSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) =&gt; {
1197
1192
  let limit = <span class="cstat-no" title="statement not covered" >params.limit</span>
1198
1193
  <span class="cstat-no" title="statement not covered" > if (limit == null || isNaN(limit) || limit &lt; 0) {</span>
1199
1194
  <span class="cstat-no" title="statement not covered" > limit = 50</span>
1200
1195
  }
1201
1196
  <span class="cstat-no" title="statement not covered" > limit = Math.min(limit, 200)</span>
1202
- const search = <span class="cstat-no" title="statement not covered" >new QueryBuilder(appId, query)</span>
1197
+ const search = <span class="cstat-no" title="statement not covered" >new QueryBuilder(query)</span>
1203
1198
  .setVersion(params.version)
1204
1199
  .setTable(params.tableId)
1205
1200
  .setSort(params.sort)
@@ -1228,7 +1223,6 @@ exports.paginatedSearch = <span class="fstat-no" title="function not covered" >a
1228
1223
  * desired amount of results. There is a limit of 1000 results to avoid
1229
1224
  * heavy performance hits, and to avoid client components breaking from
1230
1225
  * handling too much data.
1231
- * @param appId {string} The app ID to search
1232
1226
  * @param query {object} The JSON query structure
1233
1227
  * @param params {object} The search params including:
1234
1228
  * tableId {string} The table ID to search
@@ -1239,13 +1233,13 @@ exports.paginatedSearch = <span class="fstat-no" title="function not covered" >a
1239
1233
  * limit {number} The desired number of results
1240
1234
  * @returns {Promise&lt;{rows: *}&gt;}
1241
1235
  */
1242
- exports.fullSearch = <span class="fstat-no" title="function not covered" >as</span>ync (appId, query, params) =&gt; {
1236
+ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</span>ync (query, params) =&gt; {
1243
1237
  let limit = <span class="cstat-no" title="statement not covered" >params.limit</span>
1244
1238
  <span class="cstat-no" title="statement not covered" > if (limit == null || isNaN(limit) || limit &lt; 0) {</span>
1245
1239
  <span class="cstat-no" title="statement not covered" > limit = 1000</span>
1246
1240
  }
1247
1241
  <span class="cstat-no" title="statement not covered" > params.limit = Math.min(limit, 1000)</span>
1248
- const rows = <span class="cstat-no" title="statement not covered" >await recursiveSearch(appId, query, params)</span>
1242
+ const rows = <span class="cstat-no" title="statement not covered" >await recursiveSearch(query, params)</span>
1249
1243
  <span class="cstat-no" title="statement not covered" > return { rows }</span>
1250
1244
  }
1251
1245
  &nbsp;</pre></td></tr></table></pre>
@@ -1255,7 +1249,7 @@ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</sp
1255
1249
  <div class='footer quiet pad2 space-top1 center small'>
1256
1250
  Code coverage generated by
1257
1251
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1258
- at Mon Jan 31 2022 17:55:41 GMT+0000 (Coordinated Universal Time)
1252
+ at Tue Feb 01 2022 20:38:35 GMT+0000 (Coordinated Universal Time)
1259
1253
  </div>
1260
1254
  </div>
1261
1255
  <script src="../../../prettify.js"></script>