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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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.82e12602.js → index.1b905242.js} +1 -1
  8. package/builder/index.html +1 -1
  9. package/coverage/clover.xml +1917 -1929
  10. package/coverage/coverage-final.json +54 -54
  11. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/application.js.html +58 -37
  14. package/coverage/lcov-report/api/controllers/auth.js.html +11 -14
  15. package/coverage/lcov-report/api/controllers/automation.js.html +21 -51
  16. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
  18. package/coverage/lcov-report/api/controllers/component.js.html +10 -13
  19. package/coverage/lcov-report/api/controllers/datasource.js.html +17 -23
  20. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  21. package/coverage/lcov-report/api/controllers/index.html +52 -52
  22. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/layout.js.html +4 -4
  24. package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
  25. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/permission.js.html +6 -6
  27. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  28. package/coverage/lcov-report/api/controllers/query/index.js.html +21 -18
  29. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  31. package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
  32. package/coverage/lcov-report/api/controllers/row/external.js.html +6 -12
  33. package/coverage/lcov-report/api/controllers/row/index.html +22 -22
  34. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/row/internal.js.html +37 -82
  36. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +19 -25
  37. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +14 -17
  38. package/coverage/lcov-report/api/controllers/row/utils.js.html +15 -12
  39. package/coverage/lcov-report/api/controllers/screen.js.html +10 -16
  40. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +20 -50
  42. package/coverage/lcov-report/api/controllers/table/external.js.html +15 -24
  43. package/coverage/lcov-report/api/controllers/table/index.html +37 -37
  44. package/coverage/lcov-report/api/controllers/table/index.js.html +7 -7
  45. package/coverage/lcov-report/api/controllers/table/internal.js.html +36 -45
  46. package/coverage/lcov-report/api/controllers/table/utils.js.html +40 -76
  47. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/user.js.html +26 -35
  49. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  50. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  51. package/coverage/lcov-report/api/controllers/view/index.js.html +15 -21
  52. package/coverage/lcov-report/api/controllers/view/utils.js.html +25 -10
  53. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  54. package/coverage/lcov-report/api/controllers/webhook.js.html +21 -15
  55. package/coverage/lcov-report/api/index.html +1 -1
  56. package/coverage/lcov-report/api/index.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/index.html +1 -1
  69. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  87. package/coverage/lcov-report/automations/actions.js.html +1 -1
  88. package/coverage/lcov-report/automations/automationUtils.js.html +4 -7
  89. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  90. package/coverage/lcov-report/automations/index.html +18 -18
  91. package/coverage/lcov-report/automations/index.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/createRow.js.html +2 -5
  94. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/index.html +1 -1
  101. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  106. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  107. package/coverage/lcov-report/automations/steps/updateRow.js.html +2 -2
  108. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  109. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  114. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  115. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  116. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  117. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  118. package/coverage/lcov-report/automations/triggers.js.html +46 -40
  119. package/coverage/lcov-report/automations/utils.js.html +24 -12
  120. package/coverage/lcov-report/constants/index.html +1 -1
  121. package/coverage/lcov-report/constants/index.js.html +1 -1
  122. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  123. package/coverage/lcov-report/constants/screens.js.html +1 -1
  124. package/coverage/lcov-report/db/client.js.html +18 -18
  125. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  126. package/coverage/lcov-report/db/index.html +1 -1
  127. package/coverage/lcov-report/db/index.js.html +3 -3
  128. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +11 -23
  129. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  130. package/coverage/lcov-report/db/linkedRows/index.js.html +24 -66
  131. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +28 -28
  132. package/coverage/lcov-report/db/newid.js.html +1 -1
  133. package/coverage/lcov-report/db/utils.js.html +5 -5
  134. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  135. package/coverage/lcov-report/events/index.html +1 -1
  136. package/coverage/lcov-report/events/index.js.html +1 -1
  137. package/coverage/lcov-report/events/utils.js.html +1 -1
  138. package/coverage/lcov-report/index.html +88 -88
  139. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  140. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  141. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  142. package/coverage/lcov-report/middleware/authorized.js.html +21 -15
  143. package/coverage/lcov-report/middleware/builder.js.html +3 -3
  144. package/coverage/lcov-report/middleware/currentapp.js.html +72 -60
  145. package/coverage/lcov-report/middleware/index.html +28 -28
  146. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  147. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  148. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  149. package/coverage/lcov-report/middleware/usageQuota.js.html +29 -29
  150. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  151. package/coverage/lcov-report/threads/automation.js.html +30 -24
  152. package/coverage/lcov-report/threads/index.html +16 -16
  153. package/coverage/lcov-report/threads/index.js.html +1 -1
  154. package/coverage/lcov-report/threads/query.js.html +17 -17
  155. package/coverage/lcov-report/threads/utils.js.html +1 -1
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  158. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  159. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  160. package/coverage/lcov-report/utilities/global.js.html +44 -35
  161. package/coverage/lcov-report/utilities/index.html +27 -27
  162. package/coverage/lcov-report/utilities/index.js.html +40 -70
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  164. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +11 -11
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +16 -58
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  171. package/coverage/lcov-report/utilities/security.js.html +1 -1
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  174. package/coverage/lcov-report/utilities/usageQuota/index.js.html +5 -2
  175. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +5 -2
  176. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  177. package/coverage/lcov-report/utilities/users.js.html +5 -5
  178. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  179. package/coverage/lcov.info +3189 -3198
  180. package/dist/api/controllers/application.js +31 -28
  181. package/dist/api/controllers/auth.js +4 -5
  182. package/dist/api/controllers/automation.js +14 -19
  183. package/dist/api/controllers/cloud.js +2 -3
  184. package/dist/api/controllers/component.js +3 -4
  185. package/dist/api/controllers/datasource.js +9 -10
  186. package/dist/api/controllers/deploy/Deployment.js +3 -6
  187. package/dist/api/controllers/deploy/index.js +12 -13
  188. package/dist/api/controllers/dev.js +5 -5
  189. package/dist/api/controllers/layout.js +3 -3
  190. package/dist/api/controllers/metadata.js +4 -4
  191. package/dist/api/controllers/permission.js +4 -4
  192. package/dist/api/controllers/query/import/index.js +4 -6
  193. package/dist/api/controllers/query/index.js +11 -10
  194. package/dist/api/controllers/role.js +5 -5
  195. package/dist/api/controllers/routing.js +5 -6
  196. package/dist/api/controllers/row/ExternalRequest.js +76 -63
  197. package/dist/api/controllers/row/external.js +4 -4
  198. package/dist/api/controllers/row/internal.js +29 -44
  199. package/dist/api/controllers/row/internalSearch.js +11 -13
  200. package/dist/api/controllers/row/staticFormula.js +11 -11
  201. package/dist/api/controllers/row/utils.js +7 -6
  202. package/dist/api/controllers/screen.js +5 -7
  203. package/dist/api/controllers/static/index.js +4 -4
  204. package/dist/api/controllers/table/bulkFormula.js +14 -15
  205. package/dist/api/controllers/table/external.js +7 -10
  206. package/dist/api/controllers/table/index.js +5 -5
  207. package/dist/api/controllers/table/internal.js +16 -19
  208. package/dist/api/controllers/table/utils.js +29 -31
  209. package/dist/api/controllers/user.js +16 -20
  210. package/dist/api/controllers/view/index.js +8 -10
  211. package/dist/api/controllers/view/utils.js +9 -4
  212. package/dist/api/controllers/webhook.js +10 -8
  213. package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
  214. package/dist/automations/automationUtils.js +2 -3
  215. package/dist/automations/steps/createRow.js +1 -1
  216. package/dist/automations/steps/updateRow.js +1 -1
  217. package/dist/automations/triggers.js +27 -25
  218. package/dist/automations/utils.js +10 -5
  219. package/dist/db/linkedRows/LinkController.js +3 -7
  220. package/dist/db/linkedRows/index.js +16 -26
  221. package/dist/db/linkedRows/linkUtils.js +6 -6
  222. package/dist/db/views/staticViews.js +9 -10
  223. package/dist/environment.js +2 -1
  224. package/dist/integrations/utils.js +3 -0
  225. package/dist/middleware/authorized.js +5 -3
  226. package/dist/middleware/builder.js +2 -2
  227. package/dist/middleware/currentapp.js +41 -37
  228. package/dist/middleware/usageQuota.js +2 -2
  229. package/dist/migrations/functions/appUrls.js +11 -2
  230. package/dist/migrations/functions/usageQuotas/syncApps.js +7 -9
  231. package/dist/migrations/functions/usageQuotas/syncRows.js +7 -9
  232. package/dist/package.json +4 -4
  233. package/dist/tests/utilities/TestConfiguration.js +67 -44
  234. package/dist/threads/automation.js +13 -11
  235. package/dist/threads/query.js +11 -11
  236. package/dist/tsconfig.tsbuildinfo +1 -1
  237. package/dist/utilities/fileSystem/index.js +4 -3
  238. package/dist/utilities/global.js +15 -12
  239. package/dist/utilities/index.js +7 -17
  240. package/dist/utilities/routing/index.js +5 -5
  241. package/dist/utilities/rowProcessor/index.js +9 -10
  242. package/dist/utilities/usageQuota/index.js +1 -0
  243. package/dist/utilities/usageQuota/rows.js +1 -0
  244. package/dist/utilities/users.js +3 -3
  245. package/dist/utilities/workerRequests.js +4 -4
  246. package/package.json +5 -5
  247. package/scripts/likeCypress.ts +1 -1
  248. package/src/api/controllers/application.js +35 -28
  249. package/src/api/controllers/auth.js +4 -5
  250. package/src/api/controllers/automation.js +13 -23
  251. package/src/api/controllers/cloud.js +2 -3
  252. package/src/api/controllers/component.js +3 -4
  253. package/src/api/controllers/datasource.js +9 -11
  254. package/src/api/controllers/deploy/Deployment.js +3 -7
  255. package/src/api/controllers/deploy/index.js +20 -13
  256. package/src/api/controllers/dev.js +5 -5
  257. package/src/api/controllers/layout.js +3 -3
  258. package/src/api/controllers/metadata.js +4 -9
  259. package/src/api/controllers/permission.js +4 -4
  260. package/src/api/controllers/query/import/index.ts +4 -6
  261. package/src/api/controllers/query/import/tests/index.spec.js +2 -1
  262. package/src/api/controllers/query/index.js +11 -10
  263. package/src/api/controllers/role.js +5 -5
  264. package/src/api/controllers/routing.js +5 -6
  265. package/src/api/controllers/row/ExternalRequest.ts +53 -42
  266. package/src/api/controllers/row/external.js +4 -6
  267. package/src/api/controllers/row/internal.js +29 -44
  268. package/src/api/controllers/row/internalSearch.js +11 -13
  269. package/src/api/controllers/row/staticFormula.js +10 -11
  270. package/src/api/controllers/row/utils.js +7 -6
  271. package/src/api/controllers/screen.js +5 -7
  272. package/src/api/controllers/static/index.js +4 -4
  273. package/src/api/controllers/table/bulkFormula.js +13 -23
  274. package/src/api/controllers/table/external.js +7 -10
  275. package/src/api/controllers/table/index.js +5 -5
  276. package/src/api/controllers/table/internal.js +18 -21
  277. package/src/api/controllers/table/utils.js +29 -41
  278. package/src/api/controllers/user.js +17 -20
  279. package/src/api/controllers/view/index.js +8 -10
  280. package/src/api/controllers/view/utils.js +9 -4
  281. package/src/api/controllers/webhook.js +10 -8
  282. package/src/api/routes/tests/automation.spec.js +1 -0
  283. package/src/api/routes/tests/misc.spec.js +0 -1
  284. package/src/api/routes/tests/routing.spec.js +21 -12
  285. package/src/api/routes/tests/row.spec.js +7 -4
  286. package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
  287. package/src/automations/automationUtils.js +2 -3
  288. package/src/automations/steps/createRow.js +0 -1
  289. package/src/automations/steps/updateRow.js +1 -1
  290. package/src/automations/triggers.js +33 -31
  291. package/src/automations/utils.js +9 -5
  292. package/src/db/linkedRows/LinkController.js +3 -7
  293. package/src/db/linkedRows/index.js +16 -30
  294. package/src/db/linkedRows/linkUtils.js +6 -6
  295. package/src/db/tests/linkController.spec.js +0 -1
  296. package/src/db/tests/linkTests.spec.js +5 -6
  297. package/src/db/views/staticViews.js +8 -10
  298. package/src/environment.js +2 -1
  299. package/src/integrations/utils.ts +4 -1
  300. package/src/middleware/authorized.js +5 -3
  301. package/src/middleware/builder.js +2 -2
  302. package/src/middleware/currentapp.js +50 -46
  303. package/src/middleware/tests/authorized.spec.js +7 -2
  304. package/src/middleware/tests/currentapp.spec.js +6 -0
  305. package/src/middleware/usageQuota.js +2 -2
  306. package/src/migrations/functions/appUrls.ts +11 -2
  307. package/src/migrations/functions/usageQuotas/syncApps.ts +5 -4
  308. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  309. package/src/tests/utilities/TestConfiguration.js +69 -50
  310. package/src/threads/automation.js +17 -15
  311. package/src/threads/query.js +12 -12
  312. package/src/utilities/fileSystem/index.js +4 -3
  313. package/src/utilities/global.js +15 -12
  314. package/src/utilities/index.js +7 -17
  315. package/src/utilities/routing/index.js +5 -5
  316. package/src/utilities/rowProcessor/index.js +9 -23
  317. package/src/utilities/usageQuota/index.js +1 -0
  318. package/src/utilities/usageQuota/rows.js +1 -0
  319. package/src/utilities/users.js +3 -3
  320. package/src/utilities/workerRequests.js +4 -4
@@ -181,7 +181,7 @@ exports.endUserPing = <span class="fstat-no" title="function not covered" >as</s
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 16:54:35 GMT+0000 (Coordinated Universal Time)
184
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
185
185
  </div>
186
186
  </div>
187
187
  <script src="../../prettify.js"></script>
@@ -226,7 +226,7 @@ exports.update = async function (ctx) {
226
226
  <div class='footer quiet pad2 space-top1 center small'>
227
227
  Code coverage generated by
228
228
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
229
- at Mon Jan 31 2022 16:54:35 GMT+0000 (Coordinated Universal Time)
229
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
230
230
  </div>
231
231
  </div>
232
232
  <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">79.51% </span>
26
+ <span class="strong">79.71% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>163/205</span>
28
+ <span class='fraction'>165/207</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">79.89% </span>
47
+ <span class="strong">80.09% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>159/199</span>
49
+ <span class='fraction'>161/201</span>
50
50
  </div>
51
51
 
52
52
 
@@ -499,8 +499,14 @@
499
499
  <a name='L440'></a><a href='#L440'>440</a>
500
500
  <a name='L441'></a><a href='#L441'>441</a>
501
501
  <a name='L442'></a><a href='#L442'>442</a>
502
- <a name='L443'></a><a href='#L443'>443</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
503
- <span class="cline-any cline-yes">38x</span>
502
+ <a name='L443'></a><a href='#L443'>443</a>
503
+ <a name='L444'></a><a href='#L444'>444</a>
504
+ <a name='L445'></a><a href='#L445'>445</a>
505
+ <a name='L446'></a><a href='#L446'>446</a>
506
+ <a name='L447'></a><a href='#L447'>447</a>
507
+ <a name='L448'></a><a href='#L448'>448</a>
508
+ <a name='L449'></a><a href='#L449'>449</a>
509
+ <a name='L450'></a><a href='#L450'>450</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
504
510
  <span class="cline-any cline-yes">38x</span>
505
511
  <span class="cline-any cline-neutral">&nbsp;</span>
506
512
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -547,11 +553,17 @@
547
553
  <span class="cline-any cline-yes">38x</span>
548
554
  <span class="cline-any cline-yes">38x</span>
549
555
  <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-yes">38x</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
561
  <span class="cline-any cline-yes">38x</span>
551
562
  <span class="cline-any cline-neutral">&nbsp;</span>
552
563
  <span class="cline-any cline-neutral">&nbsp;</span>
553
564
  <span class="cline-any cline-neutral">&nbsp;</span>
554
565
  <span class="cline-any cline-yes">205x</span>
566
+ <span class="cline-any cline-yes">205x</span>
555
567
  <span class="cline-any cline-neutral">&nbsp;</span>
556
568
  <span class="cline-any cline-neutral">&nbsp;</span>
557
569
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -562,6 +574,7 @@
562
574
  <span class="cline-any cline-neutral">&nbsp;</span>
563
575
  <span class="cline-any cline-neutral">&nbsp;</span>
564
576
  <span class="cline-any cline-yes">205x</span>
577
+ <span class="cline-any cline-yes">205x</span>
565
578
  <span class="cline-any cline-neutral">&nbsp;</span>
566
579
  <span class="cline-any cline-neutral">&nbsp;</span>
567
580
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -618,6 +631,7 @@
618
631
  <span class="cline-any cline-yes">195x</span>
619
632
  <span class="cline-any cline-yes">195x</span>
620
633
  <span class="cline-any cline-yes">195x</span>
634
+ <span class="cline-any cline-yes">195x</span>
621
635
  <span class="cline-any cline-neutral">&nbsp;</span>
622
636
  <span class="cline-any cline-yes">195x</span>
623
637
  <span class="cline-any cline-yes">195x</span>
@@ -684,7 +698,6 @@
684
698
  <span class="cline-any cline-yes">1x</span>
685
699
  <span class="cline-any cline-yes">1x</span>
686
700
  <span class="cline-any cline-yes">1x</span>
687
- <span class="cline-any cline-yes">1x</span>
688
701
  <span class="cline-any cline-neutral">&nbsp;</span>
689
702
  <span class="cline-any cline-neutral">&nbsp;</span>
690
703
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -872,6 +885,7 @@
872
885
  <span class="cline-any cline-no">&nbsp;</span>
873
886
  <span class="cline-any cline-neutral">&nbsp;</span>
874
887
  <span class="cline-any cline-no">&nbsp;</span>
888
+ <span class="cline-any cline-neutral">&nbsp;</span>
875
889
  <span class="cline-any cline-no">&nbsp;</span>
876
890
  <span class="cline-any cline-no">&nbsp;</span>
877
891
  <span class="cline-any cline-no">&nbsp;</span>
@@ -941,8 +955,7 @@
941
955
  <span class="cline-any cline-neutral">&nbsp;</span>
942
956
  <span class="cline-any cline-yes">195x</span>
943
957
  <span class="cline-any cline-neutral">&nbsp;</span>
944
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
945
- const env = require("../../environment")
958
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const env = require("../../environment")
946
959
  const packageJson = require("../../../package.json")
947
960
  const {
948
961
  createLinkView,
@@ -972,7 +985,7 @@ const { processObject } = require("@budibase/string-templates")
972
985
  const {
973
986
  getAllApps,
974
987
  isDevAppID,
975
- getDeployedAppID,
988
+ getProdAppID,
976
989
  Replication,
977
990
  } = require("@budibase/backend-core/db")
978
991
  const { USERS_TABLE_SCHEMA } = require("../../constants")
@@ -988,11 +1001,17 @@ const { getTenantId, isMultiTenant } = require("@budibase/backend-core/tenancy")
988
1001
  const { syncGlobalUsers } = require("./user")
989
1002
  const { app: appCache } = require("@budibase/backend-core/cache")
990
1003
  const { cleanupAutomations } = require("../../automations/utils")
1004
+ const {
1005
+ getAppDB,
1006
+ getProdAppDB,
1007
+ updateAppId,
1008
+ } = require("@budibase/backend-core/context")
991
1009
  &nbsp;
992
1010
  const URL_REGEX_SLASH = /\/|\\/g
993
1011
  &nbsp;
994
1012
  // utility function, need to do away with this
995
- async function getLayouts(db) {
1013
+ async function getLayouts() {
1014
+ const db = getAppDB()
996
1015
  return (
997
1016
  await db.allDocs(
998
1017
  getLayoutParams(null, {
@@ -1002,7 +1021,8 @@ async function getLayouts(db) {
1002
1021
  ).rows.map(row =&gt; row.doc)
1003
1022
  }
1004
1023
  &nbsp;
1005
- async function getScreens(db) {
1024
+ async function getScreens() {
1025
+ const db = getAppDB()
1006
1026
  return (
1007
1027
  await db.allDocs(
1008
1028
  getScreenParams(null, {
@@ -1060,8 +1080,9 @@ async function createInstance(template) {
1060
1080
  const tenantId = isMultiTenant() ? <span class="branch-0 cbranch-no" title="branch not covered" >getTenantId() </span>: null
1061
1081
  const baseAppId = generateAppID(tenantId)
1062
1082
  const appId = generateDevAppID(baseAppId)
1083
+ updateAppId(appId)
1063
1084
  &nbsp;
1064
- const db = new CouchDB(appId)
1085
+ const db = getAppDB()
1065
1086
  await db.put({
1066
1087
  _id: "_design/database",
1067
1088
  // view collation information, read before writing any complex views:
@@ -1071,9 +1092,9 @@ async function createInstance(template) {
1071
1092
  &nbsp;
1072
1093
  // NOTE: indexes need to be created before any tables/templates
1073
1094
  // add view for linked rows
1074
- await createLinkView(appId)
1075
- await createRoutingView(appId)
1076
- await createAllSearchIndex(appId)
1095
+ await createLinkView()
1096
+ await createRoutingView()
1097
+ await createAllSearchIndex()
1077
1098
  &nbsp;
1078
1099
  // replicate the template data to the instance DB
1079
1100
  // this is currently very hard to test, downloading and importing template files
@@ -1099,7 +1120,7 @@ async function createInstance(template) {
1099
1120
  exports.fetch = async ctx =&gt; {
1100
1121
  const dev = ctx.query &amp;&amp; ctx.query.status === AppStatus.DEV
1101
1122
  const all = ctx.query &amp;&amp; ctx.query.status === AppStatus.ALL
1102
- const apps = await getAllApps(CouchDB, { dev, all })
1123
+ const apps = await getAllApps({ dev, all })
1103
1124
  &nbsp;
1104
1125
  // get the locks for all the dev apps
1105
1126
  if (dev || <span class="branch-1 cbranch-no" title="branch not covered" >all)</span> {
@@ -1122,12 +1143,11 @@ exports.fetch = async ctx =&gt; {
1122
1143
  }
1123
1144
  &nbsp;
1124
1145
  exports.fetchAppDefinition = async ctx =&gt; {
1125
- const db = new CouchDB(ctx.params.appId)
1126
- const layouts = await getLayouts(db)
1146
+ const layouts = await getLayouts()
1127
1147
  const userRoleId = getUserRoleId(ctx)
1128
- const accessController = new AccessController(ctx.params.appId)
1148
+ const accessController = new AccessController()
1129
1149
  const screens = await accessController.checkScreensAccess(
1130
- await getScreens(db),
1150
+ await getScreens(),
1131
1151
  userRoleId
1132
1152
  )
1133
1153
  ctx.body = {
@@ -1138,15 +1158,15 @@ exports.fetchAppDefinition = async ctx =&gt; {
1138
1158
  }
1139
1159
  &nbsp;
1140
1160
  exports.fetchAppPackage = async ctx =&gt; {
1141
- const db = new CouchDB(ctx.params.appId)
1161
+ const db = getAppDB()
1142
1162
  const application = await db.get(DocumentTypes.APP_METADATA)
1143
- const layouts = await getLayouts(db)
1144
- let screens = await getScreens(db)
1163
+ const layouts = await getLayouts()
1164
+ let screens = await getScreens()
1145
1165
  &nbsp;
1146
1166
  // Only filter screens if the user is not a builder
1147
1167
  if (!(ctx.user.builder &amp;&amp; ctx.user.builder.global)) {
1148
1168
  const userRoleId = getUserRoleId(ctx)
1149
- const accessController = new AccessController(ctx.params.appId)
1169
+ const accessController = new AccessController()
1150
1170
  screens = await accessController.checkScreensAccess(screens, userRoleId)
1151
1171
  }
1152
1172
  &nbsp;
@@ -1159,7 +1179,7 @@ exports.fetchAppPackage = async ctx =&gt; {
1159
1179
  }
1160
1180
  &nbsp;
1161
1181
  exports.create = async ctx =&gt; {
1162
- const apps = await getAllApps(CouchDB, { dev: true })
1182
+ const apps = await getAllApps({ dev: true })
1163
1183
  const name = ctx.request.body.name
1164
1184
  checkAppName(ctx, apps, name)
1165
1185
  const url = exports.getAppUrl(ctx)
@@ -1177,7 +1197,7 @@ exports.create = async ctx =&gt; {
1177
1197
  const instance = await createInstance(instanceConfig)
1178
1198
  const appId = instance._id
1179
1199
  &nbsp;
1180
- const db = new CouchDB(appId)
1200
+ const db = getAppDB()
1181
1201
  let _rev
1182
1202
  try {
1183
1203
  // if template there will be an existing doc
@@ -1223,7 +1243,7 @@ exports.create = async ctx =&gt; {
1223
1243
  // This endpoint currently operates as a PATCH rather than a PUT
1224
1244
  // Thus name and url fields are handled only if present
1225
1245
  exports.update = async ctx =&gt; {
1226
- const apps = await getAllApps(CouchDB, { dev: true })
1246
+ const apps = await getAllApps({ dev: true })
1227
1247
  // validation
1228
1248
  const name = ctx.request.body.name
1229
1249
  if (name) {
@@ -1242,7 +1262,7 @@ exports.update = async ctx =&gt; {
1242
1262
  &nbsp;
1243
1263
  exports.updateClient = async ctx =&gt; {
1244
1264
  // Get current app version
1245
- const db = new CouchDB(ctx.params.appId)
1265
+ const db = getAppDB()
1246
1266
  const application = await db.get(DocumentTypes.APP_METADATA)
1247
1267
  const currentVersion = application.version
1248
1268
  &nbsp;
@@ -1264,7 +1284,7 @@ exports.updateClient = async ctx =&gt; {
1264
1284
  &nbsp;
1265
1285
  exports.revertClient = async ctx =&gt; {
1266
1286
  // Check app can be reverted
1267
- const db = new CouchDB(ctx.params.appId)
1287
+ const db = getAppDB()
1268
1288
  const application = await db.get(DocumentTypes.APP_METADATA)
1269
1289
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!application.revertableVersion) {
1270
1290
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "There is no version to revert to")</span>
@@ -1286,7 +1306,7 @@ exports.revertClient = async ctx =&gt; {
1286
1306
  }
1287
1307
  &nbsp;
1288
1308
  exports.delete = async ctx =&gt; {
1289
- const db = new CouchDB(ctx.params.appId)
1309
+ const db = getAppDB()
1290
1310
  &nbsp;
1291
1311
  const result = await db.destroy()
1292
1312
  /* istanbul ignore next */
@@ -1311,10 +1331,11 @@ exports.sync = <span class="fstat-no" title="function not covered" >as</span>ync
1311
1331
  }
1312
1332
  &nbsp;
1313
1333
  // replicate prod to dev
1314
- const prodAppId = <span class="cstat-no" title="statement not covered" >getDeployedAppID(appId)</span>
1334
+ const prodAppId = <span class="cstat-no" title="statement not covered" >getProdAppID(appId)</span>
1315
1335
  &nbsp;
1316
1336
  <span class="cstat-no" title="statement not covered" > try {</span>
1317
- const prodDb = <span class="cstat-no" title="statement not covered" >new CouchDB(prodAppId, { skip_setup: true })</span>
1337
+ // specific case, want to make sure setup is skipped
1338
+ const prodDb = <span class="cstat-no" title="statement not covered" >getProdAppDB({ skip_setup: true })</span>
1318
1339
  const info = <span class="cstat-no" title="statement not covered" >await prodDb.info()</span>
1319
1340
  <span class="cstat-no" title="statement not covered" > if (info.error) <span class="cstat-no" title="statement not covered" >throw info.error</span></span>
1320
1341
  } catch (err) {
@@ -1342,7 +1363,7 @@ exports.sync = <span class="fstat-no" title="function not covered" >as</span>ync
1342
1363
  }
1343
1364
  &nbsp;
1344
1365
  // sync the users
1345
- <span class="cstat-no" title="statement not covered" > await syncGlobalUsers(appId)</span>
1366
+ <span class="cstat-no" title="statement not covered" > await syncGlobalUsers()</span>
1346
1367
  &nbsp;
1347
1368
  <span class="cstat-no" title="statement not covered" > if (error) {</span>
1348
1369
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, error)</span>
@@ -1354,7 +1375,7 @@ exports.sync = <span class="fstat-no" title="function not covered" >as</span>ync
1354
1375
  }
1355
1376
  &nbsp;
1356
1377
  const updateAppPackage = async (appPackage, appId) =&gt; {
1357
- const db = new CouchDB(appId)
1378
+ const db = getAppDB()
1358
1379
  const application = await db.get(DocumentTypes.APP_METADATA)
1359
1380
  &nbsp;
1360
1381
  const newAppPackage = { ...application, ...appPackage }
@@ -1373,7 +1394,7 @@ const updateAppPackage = async (appPackage, appId) =&gt; {
1373
1394
  }
1374
1395
  &nbsp;
1375
1396
  const createEmptyAppPackage = async (ctx, app) =&gt; {
1376
- const db = new CouchDB(app.appId)
1397
+ const db = getAppDB()
1377
1398
  &nbsp;
1378
1399
  let screensAndLayouts = []
1379
1400
  for (let layout of BASE_LAYOUTS) {
@@ -1390,7 +1411,7 @@ const createEmptyAppPackage = async (ctx, app) =&gt; {
1390
1411
  <div class='footer quiet pad2 space-top1 center small'>
1391
1412
  Code coverage generated by
1392
1413
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1393
- at Mon Jan 31 2022 16:54:35 GMT+0000 (Coordinated Universal Time)
1414
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
1394
1415
  </div>
1395
1416
  </div>
1396
1417
  <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">82.75% </span>
26
+ <span class="strong">82.14% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>24/29</span>
28
+ <span class='fraction'>23/28</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">82.75% </span>
47
+ <span class="strong">82.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>24/29</span>
49
+ <span class='fraction'>23/28</span>
50
50
  </div>
51
51
 
52
52
 
@@ -115,8 +115,7 @@
115
115
  <a name='L56'></a><a href='#L56'>56</a>
116
116
  <a name='L57'></a><a href='#L57'>57</a>
117
117
  <a name='L58'></a><a href='#L58'>58</a>
118
- <a name='L59'></a><a href='#L59'>59</a>
119
- <a name='L60'></a><a href='#L60'>60</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
118
+ <a name='L59'></a><a href='#L59'>59</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
120
119
  <span class="cline-any cline-yes">23x</span>
121
120
  <span class="cline-any cline-yes">23x</span>
122
121
  <span class="cline-any cline-yes">23x</span>
@@ -124,7 +123,6 @@
124
123
  <span class="cline-any cline-neutral">&nbsp;</span>
125
124
  <span class="cline-any cline-yes">23x</span>
126
125
  <span class="cline-any cline-yes">1x</span>
127
- <span class="cline-any cline-yes">1x</span>
128
126
  <span class="cline-any cline-neutral">&nbsp;</span>
129
127
  <span class="cline-any cline-neutral">&nbsp;</span>
130
128
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -175,14 +173,13 @@
175
173
  <span class="cline-any cline-no">&nbsp;</span>
176
174
  <span class="cline-any cline-neutral">&nbsp;</span>
177
175
  <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
179
- const { outputProcessing } = require("../../utilities/rowProcessor")
176
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { outputProcessing } = require("../../utilities/rowProcessor")
180
177
  const { InternalTables } = require("../../db/utils")
181
178
  const { getFullUser } = require("../../utilities/users")
182
179
  const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
180
+ const { getAppDB, getAppId } = require("@budibase/backend-core/context")
183
181
  &nbsp;
184
182
  exports.fetchSelf = async ctx =&gt; {
185
- const appId = ctx.appId
186
183
  let userId = ctx.user.userId || <span class="branch-1 cbranch-no" title="branch not covered" >ctx.user._id</span>
187
184
  /* istanbul ignore next */
188
185
  if (!userId) {
@@ -196,8 +193,8 @@ exports.fetchSelf = async ctx =&gt; {
196
193
  // forward the csrf token from the session
197
194
  user.csrfToken = ctx.user.csrfToken
198
195
  &nbsp;
199
- if (appId) {
200
- const db = new CouchDB(appId)
196
+ if (getAppId()) {
197
+ const db = getAppDB()
201
198
  // remove the full roles structure
202
199
  delete user.roles
203
200
  try {
@@ -206,7 +203,7 @@ exports.fetchSelf = async ctx =&gt; {
206
203
  // make sure there is never a stale csrf token
207
204
  <span class="cstat-no" title="statement not covered" > delete metadata.csrfToken</span>
208
205
  // specifically needs to make sure is enriched
209
- <span class="cstat-no" title="statement not covered" > ctx.body = await outputProcessing(ctx, userTable, {</span>
206
+ <span class="cstat-no" title="statement not covered" > ctx.body = await outputProcessing(userTable, {</span>
210
207
  ...user,
211
208
  ...metadata,
212
209
  })
@@ -241,7 +238,7 @@ exports.fetchSelf = async ctx =&gt; {
241
238
  <div class='footer quiet pad2 space-top1 center small'>
242
239
  Code coverage generated by
243
240
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
244
- at Mon Jan 31 2022 16:54:35 GMT+0000 (Coordinated Universal Time)
241
+ at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
245
242
  </div>
246
243
  </div>
247
244
  <script src="../../prettify.js"></script>