@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,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">77.14% </span>
26
+ <span class="strong">72.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>54/70</span>
28
+ <span class='fraction'>50/69</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">71.87% </span>
33
+ <span class="strong">67.64% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>23/32</span>
35
+ <span class='fraction'>23/34</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">60% </span>
40
+ <span class="strong">40% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/5</span>
42
+ <span class='fraction'>2/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.59% </span>
47
+ <span class="strong">75.75% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>54/67</span>
49
+ <span class='fraction'>50/66</span>
50
50
  </div>
51
51
 
52
52
 
@@ -213,11 +213,7 @@
213
213
  <a name='L154'></a><a href='#L154'>154</a>
214
214
  <a name='L155'></a><a href='#L155'>155</a>
215
215
  <a name='L156'></a><a href='#L156'>156</a>
216
- <a name='L157'></a><a href='#L157'>157</a>
217
- <a name='L158'></a><a href='#L158'>158</a>
218
- <a name='L159'></a><a href='#L159'>159</a>
219
- <a name='L160'></a><a href='#L160'>160</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
220
- <span class="cline-any cline-yes">39x</span>
216
+ <a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
221
217
  <span class="cline-any cline-yes">39x</span>
222
218
  <span class="cline-any cline-yes">39x</span>
223
219
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -229,12 +225,13 @@
229
225
  <span class="cline-any cline-yes">39x</span>
230
226
  <span class="cline-any cline-yes">39x</span>
231
227
  <span class="cline-any cline-yes">39x</span>
228
+ <span class="cline-any cline-yes">39x</span>
229
+ <span class="cline-any cline-yes">39x</span>
232
230
  <span class="cline-any cline-neutral">&nbsp;</span>
233
231
  <span class="cline-any cline-yes">39x</span>
234
232
  <span class="cline-any cline-yes">101x</span>
235
233
  <span class="cline-any cline-yes">101x</span>
236
234
  <span class="cline-any cline-yes">101x</span>
237
- <span class="cline-any cline-yes">101x</span>
238
235
  <span class="cline-any cline-neutral">&nbsp;</span>
239
236
  <span class="cline-any cline-neutral">&nbsp;</span>
240
237
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -258,7 +255,6 @@
258
255
  <span class="cline-any cline-neutral">&nbsp;</span>
259
256
  <span class="cline-any cline-neutral">&nbsp;</span>
260
257
  <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-neutral">&nbsp;</span>
262
258
  <span class="cline-any cline-yes">101x</span>
263
259
  <span class="cline-any cline-neutral">&nbsp;</span>
264
260
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -306,7 +302,6 @@
306
302
  <span class="cline-any cline-neutral">&nbsp;</span>
307
303
  <span class="cline-any cline-neutral">&nbsp;</span>
308
304
  <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
305
  <span class="cline-any cline-yes">101x</span>
311
306
  <span class="cline-any cline-yes">4x</span>
312
307
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -332,7 +327,6 @@
332
327
  <span class="cline-any cline-yes">39x</span>
333
328
  <span class="cline-any cline-yes">2x</span>
334
329
  <span class="cline-any cline-yes">2x</span>
335
- <span class="cline-any cline-yes">2x</span>
336
330
  <span class="cline-any cline-neutral">&nbsp;</span>
337
331
  <span class="cline-any cline-neutral">&nbsp;</span>
338
332
  <span class="cline-any cline-yes">2x</span>
@@ -350,19 +344,20 @@
350
344
  <span class="cline-any cline-neutral">&nbsp;</span>
351
345
  <span class="cline-any cline-neutral">&nbsp;</span>
352
346
  <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
347
  <span class="cline-any cline-yes">2x</span>
355
348
  <span class="cline-any cline-neutral">&nbsp;</span>
356
349
  <span class="cline-any cline-neutral">&nbsp;</span>
357
350
  <span class="cline-any cline-yes">2x</span>
358
- <span class="cline-any cline-yes">2x</span>
359
- <span class="cline-any cline-yes">2x</span>
351
+ <span class="cline-any cline-no">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
360
354
  <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-yes">2x</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
362
356
  <span class="cline-any cline-no">&nbsp;</span>
363
357
  <span class="cline-any cline-neutral">&nbsp;</span>
364
358
  <span class="cline-any cline-neutral">&nbsp;</span>
365
359
  <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
361
  <span class="cline-any cline-yes">2x</span>
367
362
  <span class="cline-any cline-yes">2x</span>
368
363
  <span class="cline-any cline-yes">2x</span>
@@ -373,10 +368,8 @@
373
368
  <span class="cline-any cline-no">&nbsp;</span>
374
369
  <span class="cline-any cline-no">&nbsp;</span>
375
370
  <span class="cline-any cline-no">&nbsp;</span>
376
- <span class="cline-any cline-no">&nbsp;</span>
377
371
  <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
379
- const linkRows = require("../../../db/linkedRows")
372
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const linkRows = require("../../../db/linkedRows")
380
373
  const { getRowParams, generateTableID } = require("../../../db/utils")
381
374
  const { FieldTypes } = require("../../../constants")
382
375
  const {
@@ -386,12 +379,13 @@ const {
386
379
  handleDataImport,
387
380
  } = require("./utils")
388
381
  const usageQuota = require("../../../utilities/usageQuota")
382
+ const { getAppDB } = require("@budibase/backend-core/context")
383
+ const env = require("../../../environment")
389
384
  const { cleanupAttachments } = require("../../../utilities/rowProcessor")
390
385
  const { runStaticFormulaChecks } = require("./bulkFormula")
391
386
  &nbsp;
392
387
  exports.save = async function (ctx) {
393
- const appId = ctx.appId
394
- const db = new CouchDB(appId)
388
+ const db = getAppDB()
395
389
  const { dataImport, ...rest } = ctx.request.body
396
390
  let tableToSave = {
397
391
  type: "table",
@@ -413,8 +407,7 @@ exports.save = async function (ctx) {
413
407
  // saving a table is a complex operation, involving many different steps, this
414
408
  // has been broken out into a utility to make it more obvious/easier to manipulate
415
409
  const tableSaveFunctions = new TableSaveFunctions({
416
- db,
417
- ctx,
410
+ user: ctx.user,
418
411
  oldTable,
419
412
  dataImport,
420
413
  })
@@ -459,7 +452,6 @@ exports.save = async function (ctx) {
459
452
  // update linked rows
460
453
  try {
461
454
  const linkResp = await linkRows.updateLinks({
462
- appId,
463
455
  eventType: oldTable
464
456
  ? linkRows.EventType.TABLE_UPDATED
465
457
  : linkRows.EventType.TABLE_SAVE,
@@ -484,13 +476,12 @@ exports.save = async function (ctx) {
484
476
  &nbsp;
485
477
  tableToSave = await tableSaveFunctions.after(tableToSave)
486
478
  // has to run after, make sure it has _id
487
- await runStaticFormulaChecks(appId, tableToSave, { oldTable })
479
+ await runStaticFormulaChecks(tableToSave, { oldTable })
488
480
  return tableToSave
489
481
  }
490
482
  &nbsp;
491
483
  exports.destroy = async function (ctx) {
492
- const appId = ctx.appId
493
- const db = new CouchDB(appId)
484
+ const db = getAppDB()
494
485
  const tableToDelete = await db.get(ctx.params.tableId)
495
486
  &nbsp;
496
487
  // Delete all rows for that table
@@ -504,7 +495,6 @@ exports.destroy = async function (ctx) {
504
495
  &nbsp;
505
496
  // update linked rows
506
497
  await linkRows.updateLinks({
507
- appId,
508
498
  eventType: linkRows.EventType.TABLE_DELETE,
509
499
  table: tableToDelete,
510
500
  })
@@ -513,25 +503,26 @@ exports.destroy = async function (ctx) {
513
503
  await db.remove(tableToDelete)
514
504
  &nbsp;
515
505
  // remove table search index
516
- const currentIndexes = await db.getIndexes()
517
- const existingIndex = currentIndexes.indexes.find(
518
- existing =&gt; existing.name === `search:${ctx.params.tableId}`
519
- )
520
- <span class="missing-if-branch" title="if path not taken" >I</span>if (existingIndex) {
521
- <span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
506
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest()) {
507
+ const currentIndexes = <span class="cstat-no" title="statement not covered" >await db.getIndexes()</span>
508
+ const existingIndex = <span class="cstat-no" title="statement not covered" >currentIndexes.indexes.find(</span>
509
+ <span class="fstat-no" title="function not covered" > ex</span>isting =&gt; <span class="cstat-no" title="statement not covered" >existing.name === `search:${ctx.params.tableId}`</span>
510
+ )
511
+ <span class="cstat-no" title="statement not covered" > if (existingIndex) {</span>
512
+ <span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
513
+ }
522
514
  }
523
515
  &nbsp;
524
516
  // has to run after, make sure it has _id
525
- await runStaticFormulaChecks(appId, tableToDelete, { deletion: true })
526
- await cleanupAttachments(appId, tableToDelete, { rows })
517
+ await runStaticFormulaChecks(tableToDelete, { deletion: true })
518
+ await cleanupAttachments(tableToDelete, { rows })
527
519
  return tableToDelete
528
520
  }
529
521
  &nbsp;
530
522
  exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
531
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
532
- const table = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
523
+ const table = <span class="cstat-no" title="statement not covered" >await getTable(ctx.params.tableId)</span>
533
524
  const { dataImport } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
534
- <span class="cstat-no" title="statement not covered" > await handleDataImport(appId, ctx.user, table, dataImport)</span>
525
+ <span class="cstat-no" title="statement not covered" > await handleDataImport(ctx.user, table, dataImport)</span>
535
526
  <span class="cstat-no" title="statement not covered" > return table</span>
536
527
  }
537
528
  &nbsp;</pre></td></tr></table></pre>
@@ -541,7 +532,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
541
532
  <div class='footer quiet pad2 space-top1 center small'>
542
533
  Code coverage generated by
543
534
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
544
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
535
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
545
536
  </div>
546
537
  </div>
547
538
  <script src="../../../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">64.07% </span>
26
+ <span class="strong">63.9% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>132/206</span>
28
+ <span class='fraction'>131/205</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">41.41% </span>
33
+ <span class="strong">40% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>41/99</span>
35
+ <span class='fraction'>38/95</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">64.5% </span>
47
+ <span class="strong">64.32% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>129/200</span>
49
+ <span class='fraction'>128/199</span>
50
50
  </div>
51
51
 
52
52
 
@@ -474,20 +474,7 @@
474
474
  <a name='L415'></a><a href='#L415'>415</a>
475
475
  <a name='L416'></a><a href='#L416'>416</a>
476
476
  <a name='L417'></a><a href='#L417'>417</a>
477
- <a name='L418'></a><a href='#L418'>418</a>
478
- <a name='L419'></a><a href='#L419'>419</a>
479
- <a name='L420'></a><a href='#L420'>420</a>
480
- <a name='L421'></a><a href='#L421'>421</a>
481
- <a name='L422'></a><a href='#L422'>422</a>
482
- <a name='L423'></a><a href='#L423'>423</a>
483
- <a name='L424'></a><a href='#L424'>424</a>
484
- <a name='L425'></a><a href='#L425'>425</a>
485
- <a name='L426'></a><a href='#L426'>426</a>
486
- <a name='L427'></a><a href='#L427'>427</a>
487
- <a name='L428'></a><a href='#L428'>428</a>
488
- <a name='L429'></a><a href='#L429'>429</a>
489
- <a name='L430'></a><a href='#L430'>430</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
490
- <span class="cline-any cline-yes">39x</span>
477
+ <a name='L418'></a><a href='#L418'>418</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
491
478
  <span class="cline-any cline-neutral">&nbsp;</span>
492
479
  <span class="cline-any cline-neutral">&nbsp;</span>
493
480
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -515,6 +502,7 @@
515
502
  <span class="cline-any cline-yes">39x</span>
516
503
  <span class="cline-any cline-yes">39x</span>
517
504
  <span class="cline-any cline-yes">39x</span>
505
+ <span class="cline-any cline-yes">39x</span>
518
506
  <span class="cline-any cline-neutral">&nbsp;</span>
519
507
  <span class="cline-any cline-yes">39x</span>
520
508
  <span class="cline-any cline-no">&nbsp;</span>
@@ -536,6 +524,7 @@
536
524
  <span class="cline-any cline-yes">101x</span>
537
525
  <span class="cline-any cline-yes">101x</span>
538
526
  <span class="cline-any cline-yes">101x</span>
527
+ <span class="cline-any cline-yes">101x</span>
539
528
  <span class="cline-any cline-yes">4x</span>
540
529
  <span class="cline-any cline-yes">11x</span>
541
530
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -705,9 +694,6 @@
705
694
  <span class="cline-any cline-yes">101x</span>
706
695
  <span class="cline-any cline-neutral">&nbsp;</span>
707
696
  <span class="cline-any cline-yes">101x</span>
708
- <span class="cline-any cline-yes">101x</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-yes">101x</span>
711
697
  <span class="cline-any cline-neutral">&nbsp;</span>
712
698
  <span class="cline-any cline-neutral">&nbsp;</span>
713
699
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -722,11 +708,6 @@
722
708
  <span class="cline-any cline-neutral">&nbsp;</span>
723
709
  <span class="cline-any cline-neutral">&nbsp;</span>
724
710
  <span class="cline-any cline-yes">101x</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
711
  <span class="cline-any cline-yes">101x</span>
731
712
  <span class="cline-any cline-yes">101x</span>
732
713
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -735,11 +716,6 @@
735
716
  <span class="cline-any cline-neutral">&nbsp;</span>
736
717
  <span class="cline-any cline-yes">101x</span>
737
718
  <span class="cline-any cline-yes">101x</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-neutral">&nbsp;</span>
743
719
  <span class="cline-any cline-yes">101x</span>
744
720
  <span class="cline-any cline-neutral">&nbsp;</span>
745
721
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -915,8 +891,7 @@
915
891
  <span class="cline-any cline-neutral">&nbsp;</span>
916
892
  <span class="cline-any cline-neutral">&nbsp;</span>
917
893
  <span class="cline-any cline-yes">39x</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
919
- const csvParser = require("../../../utilities/csvParser")
894
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const csvParser = require("../../../utilities/csvParser")
920
895
  const {
921
896
  getRowParams,
922
897
  generateRowID,
@@ -943,10 +918,11 @@ const {
943
918
  const { getViews, saveView } = require("../view/utils")
944
919
  const viewTemplate = require("../view/viewBuilder")
945
920
  const usageQuota = require("../../../utilities/usageQuota")
921
+ const { getAppDB } = require("@budibase/backend-core/context")
946
922
  const { cloneDeep } = require("lodash/fp")
947
923
  &nbsp;
948
- exports.clearColumns = <span class="fstat-no" title="function not covered" >as</span>ync (appId, table, columnNames) =&gt; {
949
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
924
+ exports.clearColumns = <span class="fstat-no" title="function not covered" >as</span>ync (table, columnNames) =&gt; {
925
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
950
926
  const rows = <span class="cstat-no" title="statement not covered" >await db.allDocs(</span>
951
927
  getRowParams(table._id, null, {
952
928
  include_docs: true,
@@ -960,7 +936,8 @@ exports.clearColumns = <span class="fstat-no" title="function not covered" >as</
960
936
  )
961
937
  }
962
938
  &nbsp;
963
- exports.checkForColumnUpdates = async (appId, db, oldTable, updatedTable) =&gt; {
939
+ exports.checkForColumnUpdates = async (oldTable, updatedTable) =&gt; {
940
+ const db = getAppDB()
964
941
  let updatedRows = []
965
942
  const rename = updatedTable._rename
966
943
  let deletedColumns = []
@@ -990,9 +967,9 @@ exports.checkForColumnUpdates = async (appId, db, oldTable, updatedTable) =&gt;
990
967
  })
991
968
  &nbsp;
992
969
  // cleanup any attachments from object storage for deleted attachment columns
993
- await cleanupAttachments(appId, updatedTable, { oldTable, rows: rawRows })
970
+ await cleanupAttachments(updatedTable, { oldTable, rows: rawRows })
994
971
  // Update views
995
- await exports.checkForViewUpdates(db, updatedTable, rename, deletedColumns)
972
+ await exports.checkForViewUpdates(updatedTable, rename, deletedColumns)
996
973
  delete updatedTable._rename
997
974
  }
998
975
  return { rows: updatedRows, table: updatedTable }
@@ -1019,12 +996,12 @@ exports.makeSureTableUpToDate = (table, tableToSave) =&gt; {
1019
996
  return tableToSave
1020
997
  }
1021
998
  &nbsp;
1022
- exports.handleDataImport = async (appId, user, table, dataImport) =&gt; {
999
+ exports.handleDataImport = async (user, table, dataImport) =&gt; {
1023
1000
  if (!dataImport || !dataImport.csvString) {
1024
1001
  return table
1025
1002
  }
1026
1003
  &nbsp;
1027
- const db = new CouchDB(appId)
1004
+ const db = getAppDB()
1028
1005
  // Populate the table with rows imported from CSV in a bulk update
1029
1006
  const data = await csvParser.transform({
1030
1007
  ...dataImport,
@@ -1069,8 +1046,8 @@ exports.handleDataImport = async (appId, user, table, dataImport) =&gt; {
1069
1046
  return table
1070
1047
  }
1071
1048
  &nbsp;
1072
- exports.handleSearchIndexes = async (appId, table) =&gt; {
1073
- const db = new CouchDB(appId)
1049
+ exports.handleSearchIndexes = async table =&gt; {
1050
+ const db = getAppDB()
1074
1051
  // create relevant search indexes
1075
1052
  if (table.indexes &amp;&amp; table.indexes.length &gt; 0) {
1076
1053
  const currentIndexes = await db.getIndexes()
@@ -1127,12 +1104,9 @@ exports.checkStaticTables = table =&gt; {
1127
1104
  }
1128
1105
  &nbsp;
1129
1106
  class TableSaveFunctions {
1130
- constructor({ db, ctx, oldTable, dataImport }) {
1131
- this.db = db
1132
- this.ctx = ctx
1133
- if (this.ctx &amp;&amp; this.ctx.user) {
1134
- this.appId = this.ctx.appId
1135
- }
1107
+ constructor({ user, oldTable, dataImport }) {
1108
+ this.db = getAppDB()
1109
+ this.user = user
1136
1110
  this.oldTable = oldTable
1137
1111
  this.dataImport = dataImport
1138
1112
  // any rows that need updated
@@ -1150,25 +1124,15 @@ class TableSaveFunctions {
1150
1124
  &nbsp;
1151
1125
  // when confirmed valid
1152
1126
  async mid(table) {
1153
- let response = await exports.checkForColumnUpdates(
1154
- this.appId,
1155
- this.db,
1156
- this.oldTable,
1157
- table
1158
- )
1127
+ let response = await exports.checkForColumnUpdates(this.oldTable, table)
1159
1128
  this.rows = this.rows.concat(response.rows)
1160
1129
  return table
1161
1130
  }
1162
1131
  &nbsp;
1163
1132
  // after saving
1164
1133
  async after(table) {
1165
- table = await exports.handleSearchIndexes(this.appId, table)
1166
- table = await exports.handleDataImport(
1167
- this.appId,
1168
- this.ctx.user,
1169
- table,
1170
- this.dataImport
1171
- )
1134
+ table = await exports.handleSearchIndexes(table)
1135
+ table = await exports.handleDataImport(this.user, table, this.dataImport)
1172
1136
  return table
1173
1137
  }
1174
1138
  &nbsp;
@@ -1177,8 +1141,8 @@ class TableSaveFunctions {
1177
1141
  }
1178
1142
  }
1179
1143
  &nbsp;
1180
- exports.getAllInternalTables = async appId =&gt; {
1181
- const db = new CouchDB(appId)
1144
+ exports.getAllInternalTables = async () =&gt; {
1145
+ const db = getAppDB()
1182
1146
  const internalTables = await db.allDocs(
1183
1147
  getTableParams(null, {
1184
1148
  include_docs: true,
@@ -1191,8 +1155,8 @@ exports.getAllInternalTables = async appId =&gt; {
1191
1155
  }))
1192
1156
  }
1193
1157
  &nbsp;
1194
- exports.getAllExternalTables = <span class="fstat-no" title="function not covered" >as</span>ync (appId, datasourceId) =&gt; {
1195
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
1158
+ exports.getAllExternalTables = <span class="fstat-no" title="function not covered" >as</span>ync datasourceId =&gt; {
1159
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
1196
1160
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
1197
1161
  <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
1198
1162
  <span class="cstat-no" title="statement not covered" > throw "Datasource is not configured fully."</span>
@@ -1200,25 +1164,25 @@ exports.getAllExternalTables = <span class="fstat-no" title="function not covere
1200
1164
  <span class="cstat-no" title="statement not covered" > return datasource.entities</span>
1201
1165
  }
1202
1166
  &nbsp;
1203
- exports.getExternalTable = <span class="fstat-no" title="function not covered" >as</span>ync (appId, datasourceId, tableName) =&gt; {
1204
- const entities = <span class="cstat-no" title="statement not covered" >await exports.getAllExternalTables(appId, datasourceId)</span>
1167
+ exports.getExternalTable = <span class="fstat-no" title="function not covered" >as</span>ync (datasourceId, tableName) =&gt; {
1168
+ const entities = <span class="cstat-no" title="statement not covered" >await exports.getAllExternalTables(datasourceId)</span>
1205
1169
  <span class="cstat-no" title="statement not covered" > return entities[tableName]</span>
1206
1170
  }
1207
1171
  &nbsp;
1208
- exports.getTable = async (appId, tableId) =&gt; {
1209
- const db = new CouchDB(appId)
1172
+ exports.getTable = async tableId =&gt; {
1173
+ const db = getAppDB()
1210
1174
  <span class="missing-if-branch" title="if path not taken" >I</span>if (isExternalTable(tableId)) {
1211
1175
  let { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
1212
1176
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
1213
- const table = <span class="cstat-no" title="statement not covered" >await exports.getExternalTable(appId, datasourceId, tableName)</span>
1177
+ const table = <span class="cstat-no" title="statement not covered" >await exports.getExternalTable(datasourceId, tableName)</span>
1214
1178
  <span class="cstat-no" title="statement not covered" > return { ...table, sql: isSQL(datasource) }</span>
1215
1179
  } else {
1216
1180
  return db.get(tableId)
1217
1181
  }
1218
1182
  }
1219
1183
  &nbsp;
1220
- exports.checkForViewUpdates = async (db, table, rename, deletedColumns) =&gt; {
1221
- const views = await getViews(db)
1184
+ exports.checkForViewUpdates = async (table, rename, deletedColumns) =&gt; {
1185
+ const views = await getViews()
1222
1186
  const tableViews = views.filter(<span class="fstat-no" title="function not covered" >vi</span>ew =&gt; <span class="cstat-no" title="statement not covered" >view.meta.tableId === table._id)</span>
1223
1187
  &nbsp;
1224
1188
  // Check each table view to see if impacted by this table action
@@ -1280,7 +1244,7 @@ exports.checkForViewUpdates = async (db, table, rename, deletedColumns) =&gt; {
1280
1244
  // Update view if required
1281
1245
  <span class="cstat-no" title="statement not covered" > if (needsUpdated) {</span>
1282
1246
  const newViewTemplate = <span class="cstat-no" title="statement not covered" >viewTemplate(view.meta)</span>
1283
- <span class="cstat-no" title="statement not covered" > await saveView(db, null, view.name, newViewTemplate)</span>
1247
+ <span class="cstat-no" title="statement not covered" > await saveView(null, view.name, newViewTemplate)</span>
1284
1248
  <span class="cstat-no" title="statement not covered" > if (!newViewTemplate.meta.schema) {</span>
1285
1249
  <span class="cstat-no" title="statement not covered" > newViewTemplate.meta.schema = table.schema</span>
1286
1250
  }
@@ -1351,7 +1315,7 @@ exports.TableSaveFunctions = TableSaveFunctions
1351
1315
  <div class='footer quiet pad2 space-top1 center small'>
1352
1316
  Code coverage generated by
1353
1317
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1354
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
1318
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
1355
1319
  </div>
1356
1320
  </div>
1357
1321
  <script src="../../../prettify.js"></script>
@@ -181,7 +181,7 @@ exports.downloadTemplate = async function (ctx) {
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
184
- at Mon Jan 31 2022 19:12:04 GMT+0000 (Coordinated Universal Time)
184
+ at Wed Feb 02 2022 10:59:03 GMT+0000 (Coordinated Universal Time)
185
185
  </div>
186
186
  </div>
187
187
  <script src="../../prettify.js"></script>