@budibase/server 1.0.49-alpha.5 → 1.0.49-alpha.6

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 (311) hide show
  1. package/builder/assets/{index.8f94a789.js → index.1b905242.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +1917 -1929
  4. package/coverage/coverage-final.json +54 -54
  5. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/application.js.html +58 -37
  8. package/coverage/lcov-report/api/controllers/auth.js.html +11 -14
  9. package/coverage/lcov-report/api/controllers/automation.js.html +21 -51
  10. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
  12. package/coverage/lcov-report/api/controllers/component.js.html +10 -13
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +17 -23
  14. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  15. package/coverage/lcov-report/api/controllers/index.html +52 -52
  16. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/layout.js.html +4 -4
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +6 -6
  21. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  22. package/coverage/lcov-report/api/controllers/query/index.js.html +21 -18
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  25. package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +6 -12
  27. package/coverage/lcov-report/api/controllers/row/index.html +22 -22
  28. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/internal.js.html +37 -82
  30. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +19 -25
  31. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +14 -17
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +15 -12
  33. package/coverage/lcov-report/api/controllers/screen.js.html +10 -16
  34. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +20 -50
  36. package/coverage/lcov-report/api/controllers/table/external.js.html +15 -24
  37. package/coverage/lcov-report/api/controllers/table/index.html +37 -37
  38. package/coverage/lcov-report/api/controllers/table/index.js.html +7 -7
  39. package/coverage/lcov-report/api/controllers/table/internal.js.html +36 -45
  40. package/coverage/lcov-report/api/controllers/table/utils.js.html +40 -76
  41. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/user.js.html +26 -35
  43. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  45. package/coverage/lcov-report/api/controllers/view/index.js.html +15 -21
  46. package/coverage/lcov-report/api/controllers/view/utils.js.html +25 -10
  47. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/webhook.js.html +21 -15
  49. package/coverage/lcov-report/api/index.html +1 -1
  50. package/coverage/lcov-report/api/index.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/index.html +1 -1
  63. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  81. package/coverage/lcov-report/automations/actions.js.html +1 -1
  82. package/coverage/lcov-report/automations/automationUtils.js.html +4 -7
  83. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  84. package/coverage/lcov-report/automations/index.html +18 -18
  85. package/coverage/lcov-report/automations/index.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/createRow.js.html +2 -5
  88. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/index.html +1 -1
  95. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/updateRow.js.html +2 -2
  102. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggers.js.html +46 -40
  113. package/coverage/lcov-report/automations/utils.js.html +24 -12
  114. package/coverage/lcov-report/constants/index.html +1 -1
  115. package/coverage/lcov-report/constants/index.js.html +1 -1
  116. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  117. package/coverage/lcov-report/constants/screens.js.html +1 -1
  118. package/coverage/lcov-report/db/client.js.html +18 -18
  119. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  120. package/coverage/lcov-report/db/index.html +1 -1
  121. package/coverage/lcov-report/db/index.js.html +3 -3
  122. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +11 -23
  123. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  124. package/coverage/lcov-report/db/linkedRows/index.js.html +24 -66
  125. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +28 -28
  126. package/coverage/lcov-report/db/newid.js.html +1 -1
  127. package/coverage/lcov-report/db/utils.js.html +5 -5
  128. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  129. package/coverage/lcov-report/events/index.html +1 -1
  130. package/coverage/lcov-report/events/index.js.html +1 -1
  131. package/coverage/lcov-report/events/utils.js.html +1 -1
  132. package/coverage/lcov-report/index.html +88 -88
  133. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  134. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  135. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  136. package/coverage/lcov-report/middleware/authorized.js.html +21 -15
  137. package/coverage/lcov-report/middleware/builder.js.html +3 -3
  138. package/coverage/lcov-report/middleware/currentapp.js.html +72 -60
  139. package/coverage/lcov-report/middleware/index.html +28 -28
  140. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  141. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  142. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  143. package/coverage/lcov-report/middleware/usageQuota.js.html +29 -29
  144. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  145. package/coverage/lcov-report/threads/automation.js.html +30 -24
  146. package/coverage/lcov-report/threads/index.html +16 -16
  147. package/coverage/lcov-report/threads/index.js.html +1 -1
  148. package/coverage/lcov-report/threads/query.js.html +17 -17
  149. package/coverage/lcov-report/threads/utils.js.html +1 -1
  150. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  151. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  152. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  153. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  154. package/coverage/lcov-report/utilities/global.js.html +44 -35
  155. package/coverage/lcov-report/utilities/index.html +27 -27
  156. package/coverage/lcov-report/utilities/index.js.html +40 -70
  157. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  158. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  159. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  160. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  161. package/coverage/lcov-report/utilities/rowProcessor/index.html +11 -11
  162. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +16 -58
  163. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  164. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  165. package/coverage/lcov-report/utilities/security.js.html +1 -1
  166. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  167. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  168. package/coverage/lcov-report/utilities/usageQuota/index.js.html +5 -2
  169. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +5 -2
  170. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  171. package/coverage/lcov-report/utilities/users.js.html +5 -5
  172. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  173. package/coverage/lcov.info +3189 -3198
  174. package/dist/api/controllers/application.js +31 -28
  175. package/dist/api/controllers/auth.js +4 -5
  176. package/dist/api/controllers/automation.js +14 -19
  177. package/dist/api/controllers/cloud.js +2 -3
  178. package/dist/api/controllers/component.js +3 -4
  179. package/dist/api/controllers/datasource.js +9 -10
  180. package/dist/api/controllers/deploy/Deployment.js +3 -6
  181. package/dist/api/controllers/deploy/index.js +12 -13
  182. package/dist/api/controllers/dev.js +5 -5
  183. package/dist/api/controllers/layout.js +3 -3
  184. package/dist/api/controllers/metadata.js +4 -4
  185. package/dist/api/controllers/permission.js +4 -4
  186. package/dist/api/controllers/query/import/index.js +4 -6
  187. package/dist/api/controllers/query/index.js +11 -10
  188. package/dist/api/controllers/role.js +5 -5
  189. package/dist/api/controllers/routing.js +5 -6
  190. package/dist/api/controllers/row/ExternalRequest.js +76 -63
  191. package/dist/api/controllers/row/external.js +4 -4
  192. package/dist/api/controllers/row/internal.js +29 -44
  193. package/dist/api/controllers/row/internalSearch.js +11 -13
  194. package/dist/api/controllers/row/staticFormula.js +11 -11
  195. package/dist/api/controllers/row/utils.js +7 -6
  196. package/dist/api/controllers/screen.js +5 -7
  197. package/dist/api/controllers/static/index.js +4 -4
  198. package/dist/api/controllers/table/bulkFormula.js +14 -15
  199. package/dist/api/controllers/table/external.js +7 -10
  200. package/dist/api/controllers/table/index.js +5 -5
  201. package/dist/api/controllers/table/internal.js +16 -19
  202. package/dist/api/controllers/table/utils.js +29 -31
  203. package/dist/api/controllers/user.js +16 -20
  204. package/dist/api/controllers/view/index.js +8 -10
  205. package/dist/api/controllers/view/utils.js +9 -4
  206. package/dist/api/controllers/webhook.js +10 -8
  207. package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
  208. package/dist/automations/automationUtils.js +2 -3
  209. package/dist/automations/steps/createRow.js +1 -1
  210. package/dist/automations/steps/updateRow.js +1 -1
  211. package/dist/automations/triggers.js +27 -25
  212. package/dist/automations/utils.js +10 -5
  213. package/dist/db/linkedRows/LinkController.js +3 -7
  214. package/dist/db/linkedRows/index.js +16 -26
  215. package/dist/db/linkedRows/linkUtils.js +6 -6
  216. package/dist/db/views/staticViews.js +9 -10
  217. package/dist/environment.js +2 -1
  218. package/dist/integrations/utils.js +3 -0
  219. package/dist/middleware/authorized.js +5 -3
  220. package/dist/middleware/builder.js +2 -2
  221. package/dist/middleware/currentapp.js +41 -37
  222. package/dist/middleware/usageQuota.js +2 -2
  223. package/dist/migrations/functions/usageQuotas/syncApps.js +7 -9
  224. package/dist/migrations/functions/usageQuotas/syncRows.js +7 -9
  225. package/dist/package.json +4 -4
  226. package/dist/tests/utilities/TestConfiguration.js +67 -44
  227. package/dist/threads/automation.js +13 -11
  228. package/dist/threads/query.js +11 -11
  229. package/dist/tsconfig.tsbuildinfo +1 -1
  230. package/dist/utilities/fileSystem/index.js +4 -3
  231. package/dist/utilities/global.js +15 -12
  232. package/dist/utilities/index.js +7 -17
  233. package/dist/utilities/routing/index.js +5 -5
  234. package/dist/utilities/rowProcessor/index.js +9 -10
  235. package/dist/utilities/usageQuota/index.js +1 -0
  236. package/dist/utilities/usageQuota/rows.js +1 -0
  237. package/dist/utilities/users.js +3 -3
  238. package/dist/utilities/workerRequests.js +4 -4
  239. package/package.json +5 -5
  240. package/src/api/controllers/application.js +35 -28
  241. package/src/api/controllers/auth.js +4 -5
  242. package/src/api/controllers/automation.js +13 -23
  243. package/src/api/controllers/cloud.js +2 -3
  244. package/src/api/controllers/component.js +3 -4
  245. package/src/api/controllers/datasource.js +9 -11
  246. package/src/api/controllers/deploy/Deployment.js +3 -7
  247. package/src/api/controllers/deploy/index.js +20 -13
  248. package/src/api/controllers/dev.js +5 -5
  249. package/src/api/controllers/layout.js +3 -3
  250. package/src/api/controllers/metadata.js +4 -9
  251. package/src/api/controllers/permission.js +4 -4
  252. package/src/api/controllers/query/import/index.ts +4 -6
  253. package/src/api/controllers/query/import/tests/index.spec.js +2 -1
  254. package/src/api/controllers/query/index.js +11 -10
  255. package/src/api/controllers/role.js +5 -5
  256. package/src/api/controllers/routing.js +5 -6
  257. package/src/api/controllers/row/ExternalRequest.ts +53 -42
  258. package/src/api/controllers/row/external.js +4 -6
  259. package/src/api/controllers/row/internal.js +29 -44
  260. package/src/api/controllers/row/internalSearch.js +11 -13
  261. package/src/api/controllers/row/staticFormula.js +10 -11
  262. package/src/api/controllers/row/utils.js +7 -6
  263. package/src/api/controllers/screen.js +5 -7
  264. package/src/api/controllers/static/index.js +4 -4
  265. package/src/api/controllers/table/bulkFormula.js +13 -23
  266. package/src/api/controllers/table/external.js +7 -10
  267. package/src/api/controllers/table/index.js +5 -5
  268. package/src/api/controllers/table/internal.js +18 -21
  269. package/src/api/controllers/table/utils.js +29 -41
  270. package/src/api/controllers/user.js +17 -20
  271. package/src/api/controllers/view/index.js +8 -10
  272. package/src/api/controllers/view/utils.js +9 -4
  273. package/src/api/controllers/webhook.js +10 -8
  274. package/src/api/routes/tests/automation.spec.js +1 -0
  275. package/src/api/routes/tests/misc.spec.js +0 -1
  276. package/src/api/routes/tests/routing.spec.js +21 -12
  277. package/src/api/routes/tests/row.spec.js +7 -4
  278. package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
  279. package/src/automations/automationUtils.js +2 -3
  280. package/src/automations/steps/createRow.js +0 -1
  281. package/src/automations/steps/updateRow.js +1 -1
  282. package/src/automations/triggers.js +33 -31
  283. package/src/automations/utils.js +9 -5
  284. package/src/db/linkedRows/LinkController.js +3 -7
  285. package/src/db/linkedRows/index.js +16 -30
  286. package/src/db/linkedRows/linkUtils.js +6 -6
  287. package/src/db/tests/linkController.spec.js +0 -1
  288. package/src/db/tests/linkTests.spec.js +5 -6
  289. package/src/db/views/staticViews.js +8 -10
  290. package/src/environment.js +2 -1
  291. package/src/integrations/utils.ts +4 -1
  292. package/src/middleware/authorized.js +5 -3
  293. package/src/middleware/builder.js +2 -2
  294. package/src/middleware/currentapp.js +50 -46
  295. package/src/middleware/tests/authorized.spec.js +7 -2
  296. package/src/middleware/tests/currentapp.spec.js +6 -0
  297. package/src/middleware/usageQuota.js +2 -2
  298. package/src/migrations/functions/usageQuotas/syncApps.ts +5 -4
  299. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  300. package/src/tests/utilities/TestConfiguration.js +69 -50
  301. package/src/threads/automation.js +17 -15
  302. package/src/threads/query.js +12 -12
  303. package/src/utilities/fileSystem/index.js +4 -3
  304. package/src/utilities/global.js +15 -12
  305. package/src/utilities/index.js +7 -17
  306. package/src/utilities/routing/index.js +5 -5
  307. package/src/utilities/rowProcessor/index.js +9 -23
  308. package/src/utilities/usageQuota/index.js +1 -0
  309. package/src/utilities/usageQuota/rows.js +1 -0
  310. package/src/utilities/users.js +3 -3
  311. package/src/utilities/workerRequests.js +4 -4
@@ -98,12 +98,7 @@
98
98
  <a name='L39'></a><a href='#L39'>39</a>
99
99
  <a name='L40'></a><a href='#L40'>40</a>
100
100
  <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
101
+ <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
107
102
  <span class="cline-any cline-yes">23x</span>
108
103
  <span class="cline-any cline-yes">23x</span>
109
104
  <span class="cline-any cline-yes">23x</span>
@@ -122,11 +117,6 @@
122
117
  <span class="cline-any cline-yes">1x</span>
123
118
  <span class="cline-any cline-neutral">&nbsp;</span>
124
119
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
120
  <span class="cline-any cline-yes">23x</span>
131
121
  <span class="cline-any cline-yes">1x</span>
132
122
  <span class="cline-any cline-yes">1x</span>
@@ -150,9 +140,9 @@
150
140
  <span class="cline-any cline-neutral">&nbsp;</span>
151
141
  <span class="cline-any cline-neutral">&nbsp;</span>
152
142
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { MetadataTypes } = require("../../constants")
153
- const CouchDB = require("../../db")
154
143
  const { generateMetadataID } = require("../../db/utils")
155
144
  const { saveEntityMetadata, deleteEntityMetadata } = require("../../utilities")
145
+ const { getAppDB } = require("@budibase/backend-core/context")
156
146
  &nbsp;
157
147
  exports.getTypes = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
158
148
  <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
@@ -165,17 +155,12 @@ exports.saveMetadata = async ctx =&gt; {
165
155
  <span class="missing-if-branch" title="if path not taken" >I</span>if (type === MetadataTypes.AUTOMATION_TEST_HISTORY) {
166
156
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot save automation history type")</span>
167
157
  }
168
- ctx.body = await saveEntityMetadata(
169
- ctx.appId,
170
- type,
171
- entityId,
172
- ctx.request.body
173
- )
158
+ ctx.body = await saveEntityMetadata(type, entityId, ctx.request.body)
174
159
  }
175
160
  &nbsp;
176
161
  exports.deleteMetadata = async ctx =&gt; {
177
162
  const { type, entityId } = ctx.params
178
- await deleteEntityMetadata(ctx.appId, type, entityId)
163
+ await deleteEntityMetadata(type, entityId)
179
164
  ctx.body = {
180
165
  message: "Metadata deleted successfully",
181
166
  }
@@ -183,7 +168,7 @@ exports.deleteMetadata = async ctx =&gt; {
183
168
  &nbsp;
184
169
  exports.getMetadata = async ctx =&gt; {
185
170
  const { type, entityId } = ctx.params
186
- const db = new CouchDB(ctx.appId)
171
+ const db = getAppDB()
187
172
  const id = generateMetadataID(type, entityId)
188
173
  try {
189
174
  ctx.body = await db.get(id)
@@ -202,7 +187,7 @@ exports.getMetadata = async ctx =&gt; {
202
187
  <div class='footer quiet pad2 space-top1 center small'>
203
188
  Code coverage generated by
204
189
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
205
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
190
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
206
191
  </div>
207
192
  </div>
208
193
  <script src="../../prettify.js"></script>
@@ -103,7 +103,7 @@ exports.fetchDefinitions = <span class="fstat-no" title="function not covered" >
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
106
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
106
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
107
107
  </div>
108
108
  </div>
109
109
  <script src="../../prettify.js"></script>
@@ -240,12 +240,12 @@
240
240
  <span class="cline-any cline-neutral">&nbsp;</span>
241
241
  <span class="cline-any cline-yes">38x</span>
242
242
  <span class="cline-any cline-yes">38x</span>
243
- <span class="cline-any cline-yes">38x</span>
244
243
  <span class="cline-any cline-neutral">&nbsp;</span>
245
244
  <span class="cline-any cline-neutral">&nbsp;</span>
246
245
  <span class="cline-any cline-neutral">&nbsp;</span>
247
246
  <span class="cline-any cline-yes">38x</span>
248
247
  <span class="cline-any cline-yes">38x</span>
248
+ <span class="cline-any cline-yes">38x</span>
249
249
  <span class="cline-any cline-neutral">&nbsp;</span>
250
250
  <span class="cline-any cline-yes">38x</span>
251
251
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -415,12 +415,12 @@ const {
415
415
  getBuiltinRoles,
416
416
  } = require("@budibase/backend-core/roles")
417
417
  const { getRoleParams } = require("../../db/utils")
418
- const CouchDB = require("../../db")
419
418
  const {
420
419
  CURRENTLY_SUPPORTED_LEVELS,
421
420
  getBasePermissions,
422
421
  } = require("../../utilities/security")
423
422
  const { removeFromArray } = require("../../utilities")
423
+ const { getAppDB } = require("@budibase/backend-core/context")
424
424
  &nbsp;
425
425
  const PermissionUpdateType = {
426
426
  REMOVE: "remove",
@@ -444,7 +444,7 @@ async function updatePermissionOnRole(
444
444
  { roleId, resourceId, level },
445
445
  updateType
446
446
  ) {
447
- const db = new CouchDB(appId)
447
+ const db = getAppDB()
448
448
  const remove = updateType === PermissionUpdateType.REMOVE
449
449
  const isABuiltin = isBuiltin(roleId)
450
450
  const dbRoleId = getDBRoleID(roleId)
@@ -515,7 +515,7 @@ exports.fetchLevels = function (ctx) {
515
515
  }
516
516
  &nbsp;
517
517
  exports.fetch = async function (ctx) {
518
- const db = new CouchDB(ctx.appId)
518
+ const db = getAppDB()
519
519
  const roles = await getAllDBRoles(db)
520
520
  let permissions = {}
521
521
  // create an object with structure role ID -&gt; resource ID -&gt; level
@@ -542,7 +542,7 @@ exports.fetch = async function (ctx) {
542
542
  &nbsp;
543
543
  exports.getResourcePerms = async function (ctx) {
544
544
  const resourceId = ctx.params.resourceId
545
- const db = new CouchDB(ctx.appId)
545
+ const db = getAppDB()
546
546
  const body = await db.allDocs(
547
547
  getRoleParams(null, {
548
548
  include_docs: true,
@@ -589,7 +589,7 @@ exports.removePermission = async function (ctx) {
589
589
  <div class='footer quiet pad2 space-top1 center small'>
590
590
  Code coverage generated by
591
591
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
592
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
592
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
593
593
  </div>
594
594
  </div>
595
595
  <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">81.55% </span>
26
+ <span class="strong">81.73% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>84/103</span>
28
+ <span class='fraction'>85/104</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">81.37% </span>
47
+ <span class="strong">81.55% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>83/102</span>
49
+ <span class='fraction'>84/103</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
77
- <td data-value="80" class="pic high">
77
+ <td data-value="80.2" class="pic high">
78
78
  <div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
79
79
  </td>
80
- <td data-value="80" class="pct high">80%</td>
81
- <td data-value="95" class="abs high">76/95</td>
80
+ <td data-value="80.2" class="pct high">80.2%</td>
81
+ <td data-value="96" class="abs high">77/96</td>
82
82
  <td data-value="65.51" class="pct medium">65.51%</td>
83
83
  <td data-value="29" class="abs medium">19/29</td>
84
84
  <td data-value="85.71" class="pct high">85.71%</td>
85
85
  <td data-value="14" class="abs high">12/14</td>
86
- <td data-value="79.78" class="pct medium">79.78%</td>
87
- <td data-value="94" class="abs medium">75/94</td>
86
+ <td data-value="80" class="pct high">80%</td>
87
+ <td data-value="95" class="abs high">76/95</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -110,7 +110,7 @@
110
110
  <div class='footer quiet pad2 space-top1 center small'>
111
111
  Code coverage generated by
112
112
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
113
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
113
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
114
114
  </div>
115
115
  </div>
116
116
  <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">80% </span>
26
+ <span class="strong">80.2% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>76/95</span>
28
+ <span class='fraction'>77/96</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">79.78% </span>
47
+ <span class="strong">80% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>75/94</span>
49
+ <span class='fraction'>76/95</span>
50
50
  </div>
51
51
 
52
52
 
@@ -267,8 +267,8 @@
267
267
  <a name='L208'></a><a href='#L208'>208</a>
268
268
  <a name='L209'></a><a href='#L209'>209</a>
269
269
  <a name='L210'></a><a href='#L210'>210</a>
270
- <a name='L211'></a><a href='#L211'>211</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
271
- <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <a name='L211'></a><a href='#L211'>211</a>
271
+ <a name='L212'></a><a href='#L212'>212</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
272
272
  <span class="cline-any cline-neutral">&nbsp;</span>
273
273
  <span class="cline-any cline-neutral">&nbsp;</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -279,6 +279,7 @@
279
279
  <span class="cline-any cline-yes">39x</span>
280
280
  <span class="cline-any cline-yes">39x</span>
281
281
  <span class="cline-any cline-yes">39x</span>
282
+ <span class="cline-any cline-yes">39x</span>
282
283
  <span class="cline-any cline-neutral">&nbsp;</span>
283
284
  <span class="cline-any cline-yes">39x</span>
284
285
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -454,6 +455,7 @@
454
455
  <span class="cline-any cline-yes">2x</span>
455
456
  <span class="cline-any cline-yes">2x</span>
456
457
  <span class="cline-any cline-yes">2x</span>
458
+ <span class="cline-any cline-yes">2x</span>
457
459
  <span class="cline-any cline-neutral">&nbsp;</span>
458
460
  <span class="cline-any cline-yes">2x</span>
459
461
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -477,8 +479,7 @@
477
479
  <span class="cline-any cline-yes">2x</span>
478
480
  <span class="cline-any cline-yes">2x</span>
479
481
  <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
481
- const {
482
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
482
483
  generateQueryID,
483
484
  getQueryParams,
484
485
  isProdAppID,
@@ -489,6 +490,7 @@ const { save: saveDatasource } = require("../datasource")
489
490
  const { RestImporter } = require("./import")
490
491
  const { invalidateDynamicVariables } = require("../../../threads/utils")
491
492
  const environment = require("../../../environment")
493
+ const { getAppDB } = require("@budibase/backend-core/context")
492
494
  &nbsp;
493
495
  const Runner = new Thread(ThreadType.QUERY, {
494
496
  timeoutMs: environment.QUERY_THREAD_TIMEOUT || 10000,
@@ -507,7 +509,7 @@ function enrichQueries(input) {
507
509
  }
508
510
  &nbsp;
509
511
  exports.fetch = async function (ctx) {
510
- const db = new CouchDB(ctx.appId)
512
+ const db = getAppDB()
511
513
  &nbsp;
512
514
  const body = await db.allDocs(
513
515
  getQueryParams(null, {
@@ -548,7 +550,7 @@ exports.import = <span class="fstat-no" title="function not covered" >as</span>y
548
550
  <span class="cstat-no" title="statement not covered" > datasourceId = body.datasourceId</span>
549
551
  }
550
552
  &nbsp;
551
- const importResult = <span class="cstat-no" title="statement not covered" >await importer.importQueries(ctx.appId, datasourceId)</span>
553
+ const importResult = <span class="cstat-no" title="statement not covered" >await importer.importQueries(datasourceId)</span>
552
554
  &nbsp;
553
555
  <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
554
556
  ...importResult,
@@ -558,7 +560,7 @@ exports.import = <span class="fstat-no" title="function not covered" >as</span>y
558
560
  }
559
561
  &nbsp;
560
562
  exports.save = async function (ctx) {
561
- const db = new CouchDB(ctx.appId)
563
+ const db = getAppDB()
562
564
  const query = ctx.request.body
563
565
  &nbsp;
564
566
  if (!query._id) {
@@ -573,7 +575,7 @@ exports.save = async function (ctx) {
573
575
  }
574
576
  &nbsp;
575
577
  exports.find = async function (ctx) {
576
- const db = new CouchDB(ctx.appId)
578
+ const db = getAppDB()
577
579
  const query = enrichQueries(await db.get(ctx.params.queryId))
578
580
  // remove properties that could be dangerous in real app
579
581
  if (isProdAppID(ctx.appId)) {
@@ -584,7 +586,7 @@ exports.find = async function (ctx) {
584
586
  }
585
587
  &nbsp;
586
588
  exports.preview = async function (ctx) {
587
- const db = new CouchDB(ctx.appId)
589
+ const db = getAppDB()
588
590
  &nbsp;
589
591
  const datasource = await db.get(ctx.request.body.datasourceId)
590
592
  // preview may not have a queryId as it hasn't been saved, but if it does
@@ -615,7 +617,7 @@ exports.preview = async function (ctx) {
615
617
  }
616
618
  &nbsp;
617
619
  async function execute(ctx, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{ rowsOnly: false })</span> {
618
- const db = new CouchDB(ctx.appId)
620
+ const db = getAppDB()
619
621
  &nbsp;
620
622
  const query = await db.get(ctx.params.queryId)
621
623
  const datasource = await db.get(query.datasourceId)
@@ -660,7 +662,8 @@ exports.executeV2 = <span class="fstat-no" title="function not covered" >as</spa
660
662
  <span class="cstat-no" title="statement not covered" > return execute(ctx, { rowsOnly: false })</span>
661
663
  }
662
664
  &nbsp;
663
- const removeDynamicVariables = async (db, queryId) =&gt; {
665
+ const removeDynamicVariables = async queryId =&gt; {
666
+ const db = getAppDB()
664
667
  const query = await db.get(queryId)
665
668
  const datasource = await db.get(query.datasourceId)
666
669
  const dynamicVariables = datasource.config.dynamicVariables
@@ -681,8 +684,8 @@ const removeDynamicVariables = async (db, queryId) =&gt; {
681
684
  }
682
685
  &nbsp;
683
686
  exports.destroy = async function (ctx) {
684
- const db = new CouchDB(ctx.appId)
685
- await removeDynamicVariables(db, ctx.params.queryId)
687
+ const db = getAppDB()
688
+ await removeDynamicVariables(ctx.params.queryId)
686
689
  await db.remove(ctx.params.queryId, ctx.params.revId)
687
690
  ctx.message = `Query deleted.`
688
691
  ctx.status = 200
@@ -694,7 +697,7 @@ exports.destroy = async function (ctx) {
694
697
  <div class='footer quiet pad2 space-top1 center small'>
695
698
  Code coverage generated by
696
699
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
697
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
700
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
698
701
  </div>
699
702
  </div>
700
703
  <script src="../../../prettify.js"></script>
@@ -190,7 +190,7 @@ exports.generateQueryPreviewValidation = () =&gt; {
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
193
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
193
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  </div>
196
196
  <script src="../../../prettify.js"></script>
@@ -155,8 +155,7 @@
155
155
  <a name='L96'></a><a href='#L96'>96</a>
156
156
  <a name='L97'></a><a href='#L97'>97</a>
157
157
  <a name='L98'></a><a href='#L98'>98</a>
158
- <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
159
- <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
160
159
  <span class="cline-any cline-neutral">&nbsp;</span>
161
160
  <span class="cline-any cline-neutral">&nbsp;</span>
162
161
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -167,6 +166,7 @@
167
166
  <span class="cline-any cline-neutral">&nbsp;</span>
168
167
  <span class="cline-any cline-neutral">&nbsp;</span>
169
168
  <span class="cline-any cline-yes">38x</span>
169
+ <span class="cline-any cline-yes">38x</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
171
  <span class="cline-any cline-yes">38x</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -253,8 +253,7 @@
253
253
  <span class="cline-any cline-yes">1x</span>
254
254
  <span class="cline-any cline-yes">1x</span>
255
255
  <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
257
- const {
256
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
258
257
  Role,
259
258
  getRole,
260
259
  isBuiltin,
@@ -265,6 +264,7 @@ const {
265
264
  getUserMetadataParams,
266
265
  InternalTables,
267
266
  } = require("../../db/utils")
267
+ const { getAppDB } = require("@budibase/backend-core/context")
268
268
  &nbsp;
269
269
  const UpdateRolesOptions = {
270
270
  CREATED: "created",
@@ -295,15 +295,15 @@ async function updateRolesOnUserTable(db, roleId, updateOption) {
295
295
  }
296
296
  &nbsp;
297
297
  exports.fetch = async function (ctx) {
298
- ctx.body = await getAllRoles(ctx.appId)
298
+ ctx.body = await getAllRoles()
299
299
  }
300
300
  &nbsp;
301
301
  exports.find = async function (ctx) {
302
- ctx.body = await getRole(ctx.appId, ctx.params.roleId)
302
+ ctx.body = await getRole(ctx.params.roleId)
303
303
  }
304
304
  &nbsp;
305
305
  exports.save = async function (ctx) {
306
- const db = new CouchDB(ctx.appId)
306
+ const db = getAppDB()
307
307
  let { _id, name, inherits, permissionId } = ctx.request.body
308
308
  if (!_id) {
309
309
  _id = generateRoleID()
@@ -324,7 +324,7 @@ exports.save = async function (ctx) {
324
324
  }
325
325
  &nbsp;
326
326
  exports.destroy = async function (ctx) {
327
- const db = new CouchDB(ctx.appId)
327
+ const db = getAppDB()
328
328
  const roleId = ctx.params.roleId
329
329
  <span class="missing-if-branch" title="if path not taken" >I</span>if (isBuiltin(roleId)) {
330
330
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot delete builtin role.")</span>
@@ -358,7 +358,7 @@ exports.destroy = async function (ctx) {
358
358
  <div class='footer quiet pad2 space-top1 center small'>
359
359
  Code coverage generated by
360
360
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
361
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
361
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
362
362
  </div>
363
363
  </div>
364
364
  <script src="../../prettify.js"></script>
@@ -149,8 +149,7 @@
149
149
  <a name='L90'></a><a href='#L90'>90</a>
150
150
  <a name='L91'></a><a href='#L91'>91</a>
151
151
  <a name='L92'></a><a href='#L92'>92</a>
152
- <a name='L93'></a><a href='#L93'>93</a>
153
- <a name='L94'></a><a href='#L94'>94</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
152
+ <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
154
153
  <span class="cline-any cline-neutral">&nbsp;</span>
155
154
  <span class="cline-any cline-neutral">&nbsp;</span>
156
155
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -195,7 +194,6 @@
195
194
  <span class="cline-any cline-neutral">&nbsp;</span>
196
195
  <span class="cline-any cline-neutral">&nbsp;</span>
197
196
  <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-neutral">&nbsp;</span>
199
197
  <span class="cline-any cline-yes">3x</span>
200
198
  <span class="cline-any cline-yes">3x</span>
201
199
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -284,12 +282,11 @@ Routing.prototype.addScreenId = function (fullpath, roleId, screenId) {
284
282
  &nbsp;
285
283
  /**
286
284
  * Gets the full routing structure by querying the routing view and processing the result into the tree.
287
- * @param {string} appId The application to produce the routing structure for.
288
285
  * @returns {Promise&lt;object&gt;} The routing structure, this is the full structure designed for use in the builder,
289
286
  * if the client routing is required then the updateRoutingStructureForUserRole should be used.
290
287
  */
291
- async function getRoutingStructure(appId) {
292
- const screenRoutes = await getRoutingInfo(appId)
288
+ async function getRoutingStructure() {
289
+ const screenRoutes = await getRoutingInfo()
293
290
  const routing = new Routing()
294
291
  &nbsp;
295
292
  for (let screenRoute of screenRoutes) {
@@ -302,13 +299,13 @@ async function getRoutingStructure(appId) {
302
299
  }
303
300
  &nbsp;
304
301
  exports.fetch = async ctx =&gt; {
305
- ctx.body = await getRoutingStructure(ctx.appId)
302
+ ctx.body = await getRoutingStructure()
306
303
  }
307
304
  &nbsp;
308
305
  exports.clientFetch = async ctx =&gt; {
309
- const routing = await getRoutingStructure(ctx.appId)
306
+ const routing = await getRoutingStructure()
310
307
  let roleId = ctx.user.role._id
311
- const roleIds = await getUserRoleHierarchy(ctx.appId, roleId)
308
+ const roleIds = await getUserRoleHierarchy(roleId)
312
309
  for (let topLevel of Object.values(routing.routes)) {
313
310
  for (let subpathKey of Object.keys(topLevel.subpaths)) {
314
311
  let found = false
@@ -343,7 +340,7 @@ exports.clientFetch = async ctx =&gt; {
343
340
  <div class='footer quiet pad2 space-top1 center small'>
344
341
  Code coverage generated by
345
342
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
346
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
343
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
347
344
  </div>
348
345
  </div>
349
346
  <script src="../../prettify.js"></script>
@@ -286,9 +286,7 @@
286
286
  <a name='L227'></a><a href='#L227'>227</a>
287
287
  <a name='L228'></a><a href='#L228'>228</a>
288
288
  <a name='L229'></a><a href='#L229'>229</a>
289
- <a name='L230'></a><a href='#L230'>230</a>
290
- <a name='L231'></a><a href='#L231'>231</a>
291
- <a name='L232'></a><a href='#L232'>232</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
289
+ <a name='L230'></a><a href='#L230'>230</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
292
290
  <span class="cline-any cline-neutral">&nbsp;</span>
293
291
  <span class="cline-any cline-neutral">&nbsp;</span>
294
292
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -318,8 +316,6 @@
318
316
  <span class="cline-any cline-no">&nbsp;</span>
319
317
  <span class="cline-any cline-neutral">&nbsp;</span>
320
318
  <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
319
  <span class="cline-any cline-yes">39x</span>
324
320
  <span class="cline-any cline-neutral">&nbsp;</span>
325
321
  <span class="cline-any cline-yes">39x</span>
@@ -530,9 +526,9 @@ const {
530
526
  breakRowIdField,
531
527
  } = require("../../../integrations/utils")
532
528
  const ExternalRequest = require("./ExternalRequest")
533
- const CouchDB = require("../../../db")
529
+ const { getAppDB } = require("@budibase/backend-core/context")
534
530
  &nbsp;
535
- async function <span class="fstat-no" title="function not covered" >handleRequest(</span>appId, operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
531
+ async function <span class="fstat-no" title="function not covered" >handleRequest(</span>operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
536
532
  // make sure the filters are cleaned up, no empty strings for equals, fuzzy or string
537
533
  <span class="cstat-no" title="statement not covered" > if (opts &amp;&amp; opts.filters) {</span>
538
534
  <span class="cstat-no" title="statement not covered" > for (let filterField of NoEmptyFilterStrings) {</span>
@@ -546,9 +542,7 @@ async function <span class="fstat-no" title="function not covered" >handleReques
546
542
  }
547
543
  }
548
544
  }
549
- <span class="cstat-no" title="statement not covered" > return new ExternalRequest(appId, operation, tableId, opts.datasource).run(</span>
550
- opts
551
- )
545
+ <span class="cstat-no" title="statement not covered" > return new ExternalRequest(operation, tableId, opts.datasource).run(opts)</span>
552
546
  }
553
547
  &nbsp;
554
548
  exports.handleRequest = handleRequest
@@ -702,7 +696,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
702
696
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
703
697
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
704
698
  const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
705
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
699
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
706
700
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
707
701
  <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
708
702
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
@@ -757,7 +751,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
757
751
  <div class='footer quiet pad2 space-top1 center small'>
758
752
  Code coverage generated by
759
753
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
760
- at Tue Feb 01 2022 10:11:17 GMT+0000 (Coordinated Universal Time)
754
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
761
755
  </div>
762
756
  </div>
763
757
  <script src="../../../prettify.js"></script>