@budibase/server 1.0.49-alpha.4 → 1.0.49-alpha.8

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.f763d886.js → index.94a9250f.js} +1 -1
  8. package/builder/index.html +1 -1
  9. package/coverage/clover.xml +1920 -1940
  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 +33 -126
  33. package/coverage/lcov-report/api/controllers/row/index.html +28 -28
  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 +3192 -3209
  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 +14 -22
  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 +27 -58
  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">89.69% </span>
26
+ <span class="strong">90.52% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>87/97</span>
28
+ <span class='fraction'>86/95</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">89.58% </span>
47
+ <span class="strong">90.42% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>86/96</span>
49
+ <span class='fraction'>85/94</span>
50
50
  </div>
51
51
 
52
52
 
@@ -275,18 +275,7 @@
275
275
  <a name='L216'></a><a href='#L216'>216</a>
276
276
  <a name='L217'></a><a href='#L217'>217</a>
277
277
  <a name='L218'></a><a href='#L218'>218</a>
278
- <a name='L219'></a><a href='#L219'>219</a>
279
- <a name='L220'></a><a href='#L220'>220</a>
280
- <a name='L221'></a><a href='#L221'>221</a>
281
- <a name='L222'></a><a href='#L222'>222</a>
282
- <a name='L223'></a><a href='#L223'>223</a>
283
- <a name='L224'></a><a href='#L224'>224</a>
284
- <a name='L225'></a><a href='#L225'>225</a>
285
- <a name='L226'></a><a href='#L226'>226</a>
286
- <a name='L227'></a><a href='#L227'>227</a>
287
- <a name='L228'></a><a href='#L228'>228</a>
288
- <a name='L229'></a><a href='#L229'>229</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
289
- <span class="cline-any cline-yes">38x</span>
278
+ <a name='L219'></a><a href='#L219'>219</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
290
279
  <span class="cline-any cline-yes">38x</span>
291
280
  <span class="cline-any cline-yes">38x</span>
292
281
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -297,6 +286,7 @@
297
286
  <span class="cline-any cline-yes">38x</span>
298
287
  <span class="cline-any cline-yes">38x</span>
299
288
  <span class="cline-any cline-yes">38x</span>
289
+ <span class="cline-any cline-yes">38x</span>
300
290
  <span class="cline-any cline-neutral">&nbsp;</span>
301
291
  <span class="cline-any cline-yes">38x</span>
302
292
  <span class="cline-any cline-yes">38x</span>
@@ -309,10 +299,6 @@
309
299
  <span class="cline-any cline-neutral">&nbsp;</span>
310
300
  <span class="cline-any cline-neutral">&nbsp;</span>
311
301
  <span class="cline-any cline-yes">1x</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
302
  <span class="cline-any cline-yes">1x</span>
317
303
  <span class="cline-any cline-neutral">&nbsp;</span>
318
304
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -320,7 +306,6 @@
320
306
  <span class="cline-any cline-neutral">&nbsp;</span>
321
307
  <span class="cline-any cline-neutral">&nbsp;</span>
322
308
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
309
  <span class="cline-any cline-yes">22x</span>
325
310
  <span class="cline-any cline-no">&nbsp;</span>
326
311
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -361,7 +346,6 @@
361
346
  <span class="cline-any cline-yes">20x</span>
362
347
  <span class="cline-any cline-neutral">&nbsp;</span>
363
348
  <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
349
  <span class="cline-any cline-yes">20x</span>
366
350
  <span class="cline-any cline-yes">20x</span>
367
351
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -385,7 +369,6 @@
385
369
  <span class="cline-any cline-neutral">&nbsp;</span>
386
370
  <span class="cline-any cline-neutral">&nbsp;</span>
387
371
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
372
  <span class="cline-any cline-yes">2x</span>
390
373
  <span class="cline-any cline-yes">2x</span>
391
374
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -440,7 +423,6 @@
440
423
  <span class="cline-any cline-neutral">&nbsp;</span>
441
424
  <span class="cline-any cline-neutral">&nbsp;</span>
442
425
  <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
426
  <span class="cline-any cline-yes">1x</span>
445
427
  <span class="cline-any cline-yes">1x</span>
446
428
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -470,7 +452,6 @@
470
452
  <span class="cline-any cline-no">&nbsp;</span>
471
453
  <span class="cline-any cline-no">&nbsp;</span>
472
454
  <span class="cline-any cline-no">&nbsp;</span>
473
- <span class="cline-any cline-no">&nbsp;</span>
474
455
  <span class="cline-any cline-neutral">&nbsp;</span>
475
456
  <span class="cline-any cline-neutral">&nbsp;</span>
476
457
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -497,7 +478,6 @@
497
478
  <span class="cline-any cline-yes">2x</span>
498
479
  <span class="cline-any cline-yes">2x</span>
499
480
  <span class="cline-any cline-yes">2x</span>
500
- <span class="cline-any cline-yes">2x</span>
501
481
  <span class="cline-any cline-neutral">&nbsp;</span>
502
482
  <span class="cline-any cline-neutral">&nbsp;</span>
503
483
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -513,8 +493,7 @@
513
493
  <span class="cline-any cline-yes">2x</span>
514
494
  <span class="cline-any cline-yes">2x</span>
515
495
  <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
517
- const actions = require("../../automations/actions")
496
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const actions = require("../../automations/actions")
518
497
  const triggers = require("../../automations/triggers")
519
498
  const { getAutomationParams, generateAutomationID } = require("../../db/utils")
520
499
  const {
@@ -525,6 +504,7 @@ const {
525
504
  const { deleteEntityMetadata } = require("../../utilities")
526
505
  const { MetadataTypes } = require("../../constants")
527
506
  const { setTestFlag, clearTestFlag } = require("../../utilities/redis")
507
+ const { getAppDB } = require("@budibase/backend-core/context")
528
508
  &nbsp;
529
509
  const ACTION_DEFS = removeDeprecated(actions.ACTION_DEFINITIONS)
530
510
  const TRIGGER_DEFS = removeDeprecated(triggers.TRIGGER_DEFINITIONS)
@@ -535,14 +515,9 @@ const TRIGGER_DEFS = removeDeprecated(triggers.TRIGGER_DEFINITIONS)
535
515
  * *
536
516
  *************************/
537
517
  &nbsp;
538
- async function cleanupAutomationMetadata(appId, automationId) {
539
- await deleteEntityMetadata(
540
- appId,
541
- MetadataTypes.AUTOMATION_TEST_INPUT,
542
- automationId
543
- )
518
+ async function cleanupAutomationMetadata(automationId) {
519
+ await deleteEntityMetadata(MetadataTypes.AUTOMATION_TEST_INPUT, automationId)
544
520
  await deleteEntityMetadata(
545
- appId,
546
521
  MetadataTypes.AUTOMATION_TEST_HISTORY,
547
522
  automationId
548
523
  )
@@ -573,7 +548,7 @@ function cleanAutomationInputs(automation) {
573
548
  }
574
549
  &nbsp;
575
550
  exports.create = async function (ctx) {
576
- const db = new CouchDB(ctx.appId)
551
+ const db = getAppDB()
577
552
  let automation = ctx.request.body
578
553
  automation.appId = ctx.appId
579
554
  &nbsp;
@@ -587,7 +562,6 @@ exports.create = async function (ctx) {
587
562
  automation.type = "automation"
588
563
  automation = cleanAutomationInputs(automation)
589
564
  automation = await checkForWebhooks({
590
- appId: ctx.appId,
591
565
  newAuto: automation,
592
566
  })
593
567
  const response = await db.put(automation)
@@ -604,13 +578,12 @@ exports.create = async function (ctx) {
604
578
  }
605
579
  &nbsp;
606
580
  exports.update = async function (ctx) {
607
- const db = new CouchDB(ctx.appId)
581
+ const db = getAppDB()
608
582
  let automation = ctx.request.body
609
583
  automation.appId = ctx.appId
610
584
  const oldAutomation = await db.get(automation._id)
611
585
  automation = cleanAutomationInputs(automation)
612
586
  automation = await checkForWebhooks({
613
- appId: ctx.appId,
614
587
  oldAuto: oldAutomation,
615
588
  newAuto: automation,
616
589
  })
@@ -646,7 +619,7 @@ exports.update = async function (ctx) {
646
619
  }
647
620
  &nbsp;
648
621
  exports.fetch = async function (ctx) {
649
- const db = new CouchDB(ctx.appId)
622
+ const db = getAppDB()
650
623
  const response = await db.allDocs(
651
624
  getAutomationParams(null, {
652
625
  include_docs: true,
@@ -656,20 +629,19 @@ exports.fetch = async function (ctx) {
656
629
  }
657
630
  &nbsp;
658
631
  exports.find = async function (ctx) {
659
- const db = new CouchDB(ctx.appId)
632
+ const db = getAppDB()
660
633
  ctx.body = await db.get(ctx.params.id)
661
634
  }
662
635
  &nbsp;
663
636
  exports.destroy = async function (ctx) {
664
- const db = new CouchDB(ctx.appId)
637
+ const db = getAppDB()
665
638
  const automationId = ctx.params.id
666
639
  const oldAutomation = await db.get(automationId)
667
640
  await checkForWebhooks({
668
- appId: ctx.appId,
669
641
  oldAuto: oldAutomation,
670
642
  })
671
643
  // delete metadata first
672
- await cleanupAutomationMetadata(ctx.appId, automationId)
644
+ await cleanupAutomationMetadata(automationId)
673
645
  ctx.body = await db.remove(automationId, ctx.params.rev)
674
646
  }
675
647
  &nbsp;
@@ -695,12 +667,11 @@ module.exports.getDefinitionList = async function (ctx) {
695
667
  *********************/
696
668
  &nbsp;
697
669
  exports.trigger = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
698
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
699
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
670
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
700
671
  let automation = <span class="cstat-no" title="statement not covered" >await db.get(ctx.params.id)</span>
701
672
  <span class="cstat-no" title="statement not covered" > await triggers.externalTrigger(automation, {</span>
702
673
  ...ctx.request.body,
703
- appId,
674
+ appId: ctx.appId,
704
675
  })
705
676
  <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
706
677
  message: `Automation ${automation._id} has been triggered.`,
@@ -720,8 +691,7 @@ function prepareTestInput(input) {
720
691
  }
721
692
  &nbsp;
722
693
  exports.test = async function (ctx) {
723
- const appId = ctx.appId
724
- const db = new CouchDB(appId)
694
+ const db = getAppDB()
725
695
  let automation = await db.get(ctx.params.id)
726
696
  await setTestFlag(automation._id)
727
697
  const testInput = prepareTestInput(ctx.request.body)
@@ -729,7 +699,7 @@ exports.test = async function (ctx) {
729
699
  automation,
730
700
  {
731
701
  ...testInput,
732
- appId,
702
+ appId: ctx.appId,
733
703
  },
734
704
  { getResponses: true }
735
705
  )
@@ -748,7 +718,7 @@ exports.test = async function (ctx) {
748
718
  <div class='footer quiet pad2 space-top1 center small'>
749
719
  Code coverage generated by
750
720
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
751
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
721
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
752
722
  </div>
753
723
  </div>
754
724
  <script src="../../prettify.js"></script>
@@ -91,7 +91,7 @@ exports.exportAppDump = async function (ctx) {
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
94
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
94
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <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">19.64% </span>
26
+ <span class="strong">18.18% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/56</span>
28
+ <span class='fraction'>10/55</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">20% </span>
47
+ <span class="strong">18.51% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/55</span>
49
+ <span class='fraction'>10/54</span>
50
50
  </div>
51
51
 
52
52
 
@@ -170,9 +170,7 @@
170
170
  <a name='L111'></a><a href='#L111'>111</a>
171
171
  <a name='L112'></a><a href='#L112'>112</a>
172
172
  <a name='L113'></a><a href='#L113'>113</a>
173
- <a name='L114'></a><a href='#L114'>114</a>
174
- <a name='L115'></a><a href='#L115'>115</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
175
- <span class="cline-any cline-yes">23x</span>
173
+ <a name='L114'></a><a href='#L114'>114</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
176
174
  <span class="cline-any cline-yes">23x</span>
177
175
  <span class="cline-any cline-neutral">&nbsp;</span>
178
176
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,7 +285,6 @@
287
285
  <span class="cline-any cline-neutral">&nbsp;</span>
288
286
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const env = require("../../environment")
289
287
  const { getAllApps } = require("@budibase/backend-core/db")
290
- const CouchDB = require("../../db")
291
288
  const {
292
289
  exportDB,
293
290
  sendTempFile,
@@ -317,7 +314,7 @@ exports.exportApps = <span class="fstat-no" title="function not covered" >as</sp
317
314
  <span class="cstat-no" title="statement not covered" > if (env.SELF_HOSTED || !env.MULTI_TENANCY) {</span>
318
315
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Exporting only allowed in multi-tenant cloud environments.")</span>
319
316
  }
320
- const apps = <span class="cstat-no" title="statement not covered" >await getAllApps(CouchDB, { all: true })</span>
317
+ const apps = <span class="cstat-no" title="statement not covered" >await getAllApps({ all: true })</span>
321
318
  const globalDBString = <span class="cstat-no" title="statement not covered" >await exportDB(getGlobalDBName(), {</span>
322
319
  filter: <span class="fstat-no" title="function not covered" >do</span>c =&gt; <span class="cstat-no" title="statement not covered" >!doc._id.startsWith(DocumentTypes.USER),</span>
323
320
  })
@@ -350,7 +347,7 @@ async function <span class="fstat-no" title="function not covered" >hasBeenImpor
350
347
  <span class="cstat-no" title="statement not covered" > if (!env.SELF_HOSTED || env.MULTI_TENANCY) {</span>
351
348
  <span class="cstat-no" title="statement not covered" > return true</span>
352
349
  }
353
- const apps = <span class="cstat-no" title="statement not covered" >await getAllApps(CouchDB, { all: true })</span>
350
+ const apps = <span class="cstat-no" title="statement not covered" >await getAllApps({ all: true })</span>
354
351
  <span class="cstat-no" title="statement not covered" > return apps.length !== 0</span>
355
352
  }
356
353
  &nbsp;
@@ -406,7 +403,7 @@ exports.importApps = <span class="fstat-no" title="function not covered" >as</sp
406
403
  <div class='footer quiet pad2 space-top1 center small'>
407
404
  Code coverage generated by
408
405
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
409
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
406
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
410
407
  </div>
411
408
  </div>
412
409
  <script src="../../prettify.js"></script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/18</span>
28
+ <span class='fraction'>17/17</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">75% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>3/4</span>
35
+ <span class='fraction'>2/2</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>18/18</span>
49
+ <span class='fraction'>17/17</span>
50
50
  </div>
51
51
 
52
52
 
@@ -91,15 +91,13 @@
91
91
  <a name='L32'></a><a href='#L32'>32</a>
92
92
  <a name='L33'></a><a href='#L33'>33</a>
93
93
  <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
94
+ <a name='L35'></a><a href='#L35'>35</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
96
95
  <span class="cline-any cline-yes">23x</span>
97
96
  <span class="cline-any cline-yes">23x</span>
98
97
  <span class="cline-any cline-neutral">&nbsp;</span>
99
98
  <span class="cline-any cline-yes">23x</span>
100
99
  <span class="cline-any cline-yes">1x</span>
101
100
  <span class="cline-any cline-yes">1x</span>
102
- <span class="cline-any cline-yes">1x</span>
103
101
  <span class="cline-any cline-neutral">&nbsp;</span>
104
102
  <span class="cline-any cline-yes">1x</span>
105
103
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -127,18 +125,17 @@
127
125
  <span class="cline-any cline-neutral">&nbsp;</span>
128
126
  <span class="cline-any cline-yes">1x</span>
129
127
  <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
131
- const { DocumentTypes } = require("../../db/utils")
128
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { DocumentTypes } = require("../../db/utils")
132
129
  const { getComponentLibraryManifest } = require("../../utilities/fileSystem")
130
+ const { getAppDB } = require("@budibase/backend-core/context")
133
131
  &nbsp;
134
132
  exports.fetchAppComponentDefinitions = async function (ctx) {
135
- const appId = ctx.params.appId || <span class="branch-1 cbranch-no" title="branch not covered" >ctx.appId</span>
136
- const db = new CouchDB(appId)
133
+ const db = getAppDB()
137
134
  const app = await db.get(DocumentTypes.APP_METADATA)
138
135
  &nbsp;
139
136
  let componentManifests = await Promise.all(
140
137
  app.componentLibraries.map(async library =&gt; {
141
- let manifest = await getComponentLibraryManifest(appId, library)
138
+ let manifest = await getComponentLibraryManifest(library)
142
139
  &nbsp;
143
140
  return {
144
141
  manifest,
@@ -169,7 +166,7 @@ exports.fetchAppComponentDefinitions = async function (ctx) {
169
166
  <div class='footer quiet pad2 space-top1 center small'>
170
167
  Code coverage generated by
171
168
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
172
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
169
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
173
170
  </div>
174
171
  </div>
175
172
  <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">60% </span>
26
+ <span class="strong">59.68% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>78/130</span>
28
+ <span class='fraction'>77/129</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">59.68% </span>
47
+ <span class="strong">59.37% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>77/129</span>
49
+ <span class='fraction'>76/128</span>
50
50
  </div>
51
51
 
52
52
 
@@ -316,10 +316,7 @@
316
316
  <a name='L257'></a><a href='#L257'>257</a>
317
317
  <a name='L258'></a><a href='#L258'>258</a>
318
318
  <a name='L259'></a><a href='#L259'>259</a>
319
- <a name='L260'></a><a href='#L260'>260</a>
320
- <a name='L261'></a><a href='#L261'>261</a>
321
- <a name='L262'></a><a href='#L262'>262</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <a name='L260'></a><a href='#L260'>260</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
323
320
  <span class="cline-any cline-neutral">&nbsp;</span>
324
321
  <span class="cline-any cline-neutral">&nbsp;</span>
325
322
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -331,10 +328,9 @@
331
328
  <span class="cline-any cline-yes">39x</span>
332
329
  <span class="cline-any cline-yes">39x</span>
333
330
  <span class="cline-any cline-yes">39x</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
331
  <span class="cline-any cline-yes">39x</span>
336
- <span class="cline-any cline-yes">2x</span>
337
332
  <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-yes">39x</span>
338
334
  <span class="cline-any cline-neutral">&nbsp;</span>
339
335
  <span class="cline-any cline-yes">2x</span>
340
336
  <span class="cline-any cline-yes">2x</span>
@@ -579,8 +575,7 @@
579
575
  <span class="cline-any cline-neutral">&nbsp;</span>
580
576
  <span class="cline-any cline-no">&nbsp;</span>
581
577
  <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
583
- const {
578
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
584
579
  generateDatasourceID,
585
580
  getDatasourceParams,
586
581
  getQueryParams,
@@ -592,12 +587,11 @@ const { BuildSchemaErrors, InvalidColumns } = require("../../constants")
592
587
  const { integrations } = require("../../integrations")
593
588
  const { getDatasourceAndQuery } = require("./row/utils")
594
589
  const { invalidateDynamicVariables } = require("../../threads/utils")
590
+ const { getAppDB } = require("@budibase/backend-core/context")
595
591
  &nbsp;
596
592
  exports.fetch = async function (ctx) {
597
- const database = new CouchDB(ctx.appId)
598
- &nbsp;
599
593
  // Get internal tables
600
- const db = new CouchDB(ctx.appId)
594
+ const db = getAppDB()
601
595
  const internalTables = await db.allDocs(
602
596
  getTableParams(null, {
603
597
  include_docs: true,
@@ -612,7 +606,7 @@ exports.fetch = async function (ctx) {
612
606
  &nbsp;
613
607
  // Get external datasources
614
608
  const datasources = (
615
- await database.allDocs(
609
+ await db.allDocs(
616
610
  getDatasourceParams(null, {
617
611
  include_docs: true,
618
612
  })
@@ -630,7 +624,7 @@ exports.fetch = async function (ctx) {
630
624
  }
631
625
  &nbsp;
632
626
  exports.buildSchemaFromDb = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
633
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(ctx.appId)</span>
627
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
634
628
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(ctx.params.datasourceId)</span>
635
629
  &nbsp;
636
630
  const { tables, error } = <span class="cstat-no" title="statement not covered" >await buildSchemaHelper(datasource)</span>
@@ -679,7 +673,7 @@ const invalidateVariables = async (existingDatasource, updatedDatasource) =&gt;
679
673
  }
680
674
  &nbsp;
681
675
  exports.update = async function (ctx) {
682
- const db = new CouchDB(ctx.appId)
676
+ const db = getAppDB()
683
677
  const datasourceId = ctx.params.datasourceId
684
678
  let datasource = await db.get(datasourceId)
685
679
  const auth = datasource.config.auth
@@ -707,7 +701,7 @@ exports.update = async function (ctx) {
707
701
  }
708
702
  &nbsp;
709
703
  exports.save = async function (ctx) {
710
- const db = new CouchDB(ctx.appId)
704
+ const db = getAppDB()
711
705
  const plus = ctx.request.body.datasource.plus
712
706
  const fetchSchema = ctx.request.body.fetchSchema
713
707
  &nbsp;
@@ -743,7 +737,7 @@ exports.save = async function (ctx) {
743
737
  }
744
738
  &nbsp;
745
739
  exports.destroy = async function (ctx) {
746
- const db = new CouchDB(ctx.appId)
740
+ const db = getAppDB()
747
741
  &nbsp;
748
742
  // Delete all queries for the datasource
749
743
  const queries = await db.allDocs(
@@ -765,7 +759,7 @@ exports.destroy = async function (ctx) {
765
759
  }
766
760
  &nbsp;
767
761
  exports.find = async function (ctx) {
768
- const database = new CouchDB(ctx.appId)
762
+ const database = getAppDB()
769
763
  ctx.body = await database.get(ctx.params.datasourceId)
770
764
  }
771
765
  &nbsp;
@@ -773,7 +767,7 @@ exports.find = async function (ctx) {
773
767
  exports.query = async function (ctx) {
774
768
  const queryJson = ctx.request.body
775
769
  try {
776
- ctx.body = await getDatasourceAndQuery(ctx.appId, queryJson)
770
+ ctx.body = await getDatasourceAndQuery(queryJson)
777
771
  } catch (err) {
778
772
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
779
773
  }
@@ -847,7 +841,7 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
847
841
  <div class='footer quiet pad2 space-top1 center small'>
848
842
  Code coverage generated by
849
843
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
850
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
844
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
851
845
  </div>
852
846
  </div>
853
847
  <script src="../../prettify.js"></script>
@@ -302,14 +302,14 @@
302
302
  <span class="cline-any cline-no">&nbsp;</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const fetch = require("node-fetch")
305
- const CouchDB = require("../../db")
306
305
  const env = require("../../environment")
307
306
  const { checkSlashesInUrl } = require("../../utilities")
308
307
  const { request } = require("../../utilities/workerRequests")
309
308
  const { clearLock } = require("../../utilities/redis")
310
- const { Replication } = require("@budibase/backend-core/db")
309
+ const { Replication, getProdAppID } = require("@budibase/backend-core/db")
311
310
  const { DocumentTypes } = require("../../db/utils")
312
311
  const { app: appCache } = require("@budibase/backend-core/cache")
312
+ const { getProdAppDB, getAppDB } = require("@budibase/backend-core/context")
313
313
  &nbsp;
314
314
  async function <span class="fstat-no" title="function not covered" >redirect(</span>ctx, method, path = <span class="branch-0 cbranch-no" title="branch not covered" >"global")</span> {
315
315
  const { devPath } = <span class="cstat-no" title="statement not covered" >ctx.params</span>
@@ -380,11 +380,11 @@ exports.clearLock = <span class="fstat-no" title="function not covered" >as</spa
380
380
  &nbsp;
381
381
  exports.revert = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
382
382
  const { appId } = <span class="cstat-no" title="statement not covered" >ctx.params</span>
383
- const productionAppId = <span class="cstat-no" title="statement not covered" >appId.replace("_dev", "")</span>
383
+ const productionAppId = <span class="cstat-no" title="statement not covered" >getProdAppID(appId)</span>
384
384
  &nbsp;
385
385
  // App must have been deployed first
386
386
  <span class="cstat-no" title="statement not covered" > try {</span>
387
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(productionAppId, { skip_setup: true })</span>
387
+ const db = <span class="cstat-no" title="statement not covered" >getProdAppDB({ skip_setup: true })</span>
388
388
  const info = <span class="cstat-no" title="statement not covered" >await db.info()</span>
389
389
  <span class="cstat-no" title="statement not covered" > if (info.error) <span class="cstat-no" title="statement not covered" >throw info.error</span></span>
390
390
  const deploymentDoc = <span class="cstat-no" title="statement not covered" >await db.get(DocumentTypes.DEPLOYMENTS)</span>
@@ -406,7 +406,7 @@ exports.revert = <span class="fstat-no" title="function not covered" >as</span>y
406
406
  &nbsp;
407
407
  <span class="cstat-no" title="statement not covered" > await replication.rollback()</span>
408
408
  // update appID in reverted app to be dev version again
409
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
409
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
410
410
  const appDoc = <span class="cstat-no" title="statement not covered" >await db.get(DocumentTypes.APP_METADATA)</span>
411
411
  <span class="cstat-no" title="statement not covered" > appDoc.appId = appId</span>
412
412
  <span class="cstat-no" title="statement not covered" > appDoc.instance._id = appId</span>
@@ -430,7 +430,7 @@ exports.getBudibaseVersion = <span class="fstat-no" title="function not covered"
430
430
  <div class='footer quiet pad2 space-top1 center small'>
431
431
  Code coverage generated by
432
432
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
433
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
433
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
434
434
  </div>
435
435
  </div>
436
436
  <script src="../../prettify.js"></script>