@budibase/server 1.0.49-alpha.9 → 1.0.49

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 (379) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +5 -4
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +1 -2
  6. package/__mocks__/pg.ts +5 -3
  7. package/builder/assets/{index.ad5370ae.js → index.2c37968e.js} +246 -249
  8. package/builder/assets/index.39e01193.css +1 -0
  9. package/builder/assets/{vendor.d526bfe8.js → vendor.f9faf6ab.js} +12 -12
  10. package/builder/index.html +3 -3
  11. package/coverage/clover.xml +2827 -3117
  12. package/coverage/coverage-final.json +101 -106
  13. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/application.js.html +152 -257
  16. package/coverage/lcov-report/api/controllers/auth.js.html +13 -22
  17. package/coverage/lcov-report/api/controllers/automation.js.html +69 -39
  18. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -8
  20. package/coverage/lcov-report/api/controllers/component.js.html +16 -13
  21. package/coverage/lcov-report/api/controllers/datasource.js.html +51 -81
  22. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  23. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → api/controllers/hosting.js.html} +48 -36
  24. package/coverage/lcov-report/api/controllers/index.html +76 -76
  25. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
  27. package/coverage/lcov-report/api/controllers/metadata.js.html +21 -6
  28. package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
  29. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  30. package/coverage/lcov-report/api/controllers/query/index.js.html +35 -38
  31. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  32. package/coverage/lcov-report/api/controllers/role.js.html +16 -16
  33. package/coverage/lcov-report/api/controllers/routing.js.html +10 -7
  34. package/coverage/lcov-report/api/controllers/row/external.js.html +141 -48
  35. package/coverage/lcov-report/api/controllers/row/index.html +40 -55
  36. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  37. package/coverage/lcov-report/api/controllers/row/internal.js.html +226 -118
  38. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +34 -52
  39. package/coverage/lcov-report/api/controllers/row/utils.js.html +62 -47
  40. package/coverage/lcov-report/api/controllers/screen.js.html +21 -15
  41. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  42. package/coverage/lcov-report/api/controllers/table/external.js.html +34 -25
  43. package/coverage/lcov-report/api/controllers/table/index.html +43 -58
  44. package/coverage/lcov-report/api/controllers/table/index.js.html +82 -58
  45. package/coverage/lcov-report/api/controllers/table/internal.js.html +66 -81
  46. package/coverage/lcov-report/api/controllers/table/utils.js.html +110 -218
  47. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/user.js.html +50 -47
  49. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  50. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  51. package/coverage/lcov-report/api/controllers/view/index.js.html +33 -27
  52. package/coverage/lcov-report/api/controllers/view/utils.js.html +20 -35
  53. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  54. package/coverage/lcov-report/api/controllers/webhook.js.html +28 -34
  55. package/coverage/lcov-report/api/index.html +1 -1
  56. package/coverage/lcov-report/api/index.js.html +8 -8
  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/{migrations.js.html → hosting.js.html} +14 -17
  69. package/coverage/lcov-report/api/routes/index.html +18 -18
  70. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  71. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/metadata.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 +2 -17
  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 +24 -24
  88. package/coverage/lcov-report/automations/automationUtils.js.html +10 -7
  89. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  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 +6 -6
  93. package/coverage/lcov-report/automations/steps/createRow.js.html +22 -13
  94. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  95. package/coverage/lcov-report/automations/steps/deleteRow.js.html +20 -11
  96. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  97. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  98. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  99. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  100. package/coverage/lcov-report/automations/steps/index.html +13 -13
  101. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  102. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  103. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  104. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  105. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  106. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  107. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  108. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  109. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  110. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  114. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  118. package/coverage/lcov-report/automations/triggers.js.html +55 -61
  119. package/coverage/lcov-report/automations/utils.js.html +42 -54
  120. package/coverage/lcov-report/constants/index.html +5 -5
  121. package/coverage/lcov-report/constants/index.js.html +26 -53
  122. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  123. package/coverage/lcov-report/constants/screens.js.html +4 -4
  124. package/coverage/lcov-report/db/client.js.html +18 -18
  125. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  126. package/coverage/lcov-report/db/index.html +15 -15
  127. package/coverage/lcov-report/db/index.js.html +3 -3
  128. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +37 -25
  129. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  130. package/coverage/lcov-report/db/linkedRows/index.js.html +96 -51
  131. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
  132. package/coverage/lcov-report/db/newid.js.html +4 -4
  133. package/coverage/lcov-report/db/utils.js.html +87 -87
  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 +5 -5
  137. package/coverage/lcov-report/events/utils.js.html +3 -3
  138. package/coverage/lcov-report/index.html +120 -135
  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 +65 -173
  143. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  144. package/coverage/lcov-report/middleware/currentapp.js.html +83 -95
  145. package/coverage/lcov-report/middleware/index.html +38 -38
  146. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  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 +53 -281
  150. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  151. package/coverage/lcov-report/threads/automation.js.html +24 -30
  152. package/coverage/lcov-report/threads/index.html +26 -26
  153. package/coverage/lcov-report/threads/index.js.html +10 -10
  154. package/coverage/lcov-report/threads/query.js.html +24 -39
  155. package/coverage/lcov-report/threads/utils.js.html +14 -14
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  158. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  159. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  160. package/coverage/lcov-report/utilities/global.js.html +49 -58
  161. package/coverage/lcov-report/utilities/index.html +37 -37
  162. package/coverage/lcov-report/utilities/index.js.html +73 -43
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  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 +27 -27
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +103 -97
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +27 -75
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  171. package/coverage/lcov-report/utilities/security.js.html +8 -8
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  173. package/coverage/lcov-report/utilities/users.js.html +9 -9
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +112 -43
  175. package/coverage/lcov.info +4431 -5013
  176. package/dist/api/controllers/application.js +60 -90
  177. package/dist/api/controllers/auth.js +5 -8
  178. package/dist/api/controllers/automation.js +19 -14
  179. package/dist/api/controllers/cloud.js +3 -2
  180. package/dist/api/controllers/component.js +4 -3
  181. package/dist/api/controllers/datasource.js +10 -20
  182. package/dist/api/controllers/deploy/Deployment.js +6 -3
  183. package/dist/api/controllers/deploy/index.js +13 -12
  184. package/dist/api/controllers/dev.js +5 -5
  185. package/dist/api/controllers/hosting.js +30 -0
  186. package/dist/api/controllers/layout.js +3 -3
  187. package/dist/api/controllers/metadata.js +4 -4
  188. package/dist/api/controllers/permission.js +4 -4
  189. package/dist/api/controllers/query/import/index.js +6 -4
  190. package/dist/api/controllers/query/index.js +10 -11
  191. package/dist/api/controllers/role.js +5 -5
  192. package/dist/api/controllers/routing.js +6 -5
  193. package/dist/api/controllers/row/ExternalRequest.js +67 -90
  194. package/dist/api/controllers/row/external.js +22 -14
  195. package/dist/api/controllers/row/internal.js +93 -55
  196. package/dist/api/controllers/row/internalSearch.js +17 -23
  197. package/dist/api/controllers/row/utils.js +14 -13
  198. package/dist/api/controllers/screen.js +7 -5
  199. package/dist/api/controllers/static/index.js +12 -61
  200. package/dist/api/controllers/table/external.js +10 -7
  201. package/dist/api/controllers/table/index.js +13 -16
  202. package/dist/api/controllers/table/internal.js +16 -22
  203. package/dist/api/controllers/table/utils.js +35 -62
  204. package/dist/api/controllers/user.js +20 -18
  205. package/dist/api/controllers/view/index.js +10 -8
  206. package/dist/api/controllers/view/utils.js +4 -9
  207. package/dist/api/controllers/webhook.js +8 -10
  208. package/dist/api/routes/hosting.js +11 -0
  209. package/dist/api/routes/index.js +2 -2
  210. package/dist/api/routes/static.js +1 -2
  211. package/dist/api/routes/tests/utilities/TestFunctions.js +17 -37
  212. package/dist/app.js +5 -35
  213. package/dist/automations/automationUtils.js +3 -2
  214. package/dist/automations/steps/createRow.js +5 -3
  215. package/dist/automations/steps/deleteRow.js +4 -1
  216. package/dist/automations/steps/updateRow.js +1 -1
  217. package/dist/automations/triggers.js +25 -27
  218. package/dist/automations/utils.js +5 -10
  219. package/dist/constants/index.js +0 -7
  220. package/dist/db/linkedRows/LinkController.js +7 -3
  221. package/dist/db/linkedRows/index.js +27 -16
  222. package/dist/db/linkedRows/linkUtils.js +6 -6
  223. package/dist/db/views/staticViews.js +10 -9
  224. package/dist/definitions/datasource.js +0 -1
  225. package/dist/environment.js +1 -4
  226. package/dist/integrations/base/sql.js +14 -56
  227. package/dist/integrations/index.js +0 -3
  228. package/dist/integrations/utils.js +9 -60
  229. package/dist/middleware/authorized.js +30 -57
  230. package/dist/middleware/builder.js +2 -2
  231. package/dist/middleware/currentapp.js +37 -41
  232. package/dist/middleware/usageQuota.js +15 -82
  233. package/dist/package.json +5 -8
  234. package/dist/tests/utilities/TestConfiguration.js +50 -80
  235. package/dist/threads/automation.js +11 -13
  236. package/dist/threads/query.js +11 -15
  237. package/dist/tsconfig.tsbuildinfo +1 -1
  238. package/dist/utilities/fileSystem/index.js +3 -4
  239. package/dist/utilities/global.js +12 -15
  240. package/dist/utilities/index.js +17 -7
  241. package/dist/utilities/routing/index.js +5 -5
  242. package/dist/utilities/rowProcessor/index.js +17 -23
  243. package/dist/utilities/rowProcessor/utils.js +4 -14
  244. package/dist/utilities/{usageQuota/index.js → usageQuota.js} +31 -45
  245. package/dist/utilities/users.js +3 -3
  246. package/dist/utilities/workerRequests.js +24 -4
  247. package/nodemon.json +1 -1
  248. package/package.json +6 -9
  249. package/scripts/integrations/postgres/init.sql +6 -11
  250. package/scripts/likeCypress.ts +1 -1
  251. package/src/api/controllers/application.js +50 -85
  252. package/src/api/controllers/auth.js +5 -8
  253. package/src/api/controllers/automation.js +23 -13
  254. package/src/api/controllers/cloud.js +3 -2
  255. package/src/api/controllers/component.js +4 -3
  256. package/src/api/controllers/datasource.js +11 -21
  257. package/src/api/controllers/deploy/Deployment.js +7 -3
  258. package/src/api/controllers/deploy/index.js +13 -20
  259. package/src/api/controllers/dev.js +5 -5
  260. package/src/api/controllers/hosting.js +22 -0
  261. package/src/api/controllers/layout.js +3 -3
  262. package/src/api/controllers/metadata.js +9 -4
  263. package/src/api/controllers/permission.js +4 -4
  264. package/src/api/controllers/query/import/index.ts +6 -4
  265. package/src/api/controllers/query/import/tests/index.spec.js +1 -2
  266. package/src/api/controllers/query/index.js +10 -11
  267. package/src/api/controllers/role.js +5 -5
  268. package/src/api/controllers/routing.js +6 -5
  269. package/src/api/controllers/row/ExternalRequest.ts +43 -67
  270. package/src/api/controllers/row/external.js +58 -27
  271. package/src/api/controllers/row/internal.js +90 -54
  272. package/src/api/controllers/row/internalSearch.js +17 -23
  273. package/src/api/controllers/row/utils.js +18 -13
  274. package/src/api/controllers/screen.js +7 -5
  275. package/src/api/controllers/static/index.js +12 -65
  276. package/src/api/controllers/table/external.js +10 -7
  277. package/src/api/controllers/table/index.js +28 -20
  278. package/src/api/controllers/table/internal.js +19 -24
  279. package/src/api/controllers/table/utils.js +42 -78
  280. package/src/api/controllers/user.js +20 -19
  281. package/src/api/controllers/view/index.js +10 -8
  282. package/src/api/controllers/view/utils.js +4 -9
  283. package/src/api/controllers/webhook.js +8 -10
  284. package/src/api/routes/hosting.js +13 -0
  285. package/src/api/routes/index.js +2 -2
  286. package/src/api/routes/static.js +0 -5
  287. package/src/api/routes/tests/application.spec.js +2 -2
  288. package/src/api/routes/tests/auth.spec.js +2 -1
  289. package/src/api/routes/tests/automation.spec.js +0 -1
  290. package/src/api/routes/tests/hosting.spec.js +36 -0
  291. package/src/api/routes/tests/misc.spec.js +1 -0
  292. package/src/api/routes/tests/routing.spec.js +12 -21
  293. package/src/api/routes/tests/row.spec.js +4 -7
  294. package/src/api/routes/tests/utilities/TestFunctions.js +17 -39
  295. package/src/app.ts +5 -18
  296. package/src/automations/automationUtils.js +3 -2
  297. package/src/automations/steps/createRow.js +5 -2
  298. package/src/automations/steps/deleteRow.js +4 -1
  299. package/src/automations/steps/updateRow.js +1 -1
  300. package/src/automations/triggers.js +31 -33
  301. package/src/automations/utils.js +5 -9
  302. package/src/constants/index.js +0 -9
  303. package/src/db/linkedRows/LinkController.js +7 -3
  304. package/src/db/linkedRows/index.js +31 -16
  305. package/src/db/linkedRows/linkUtils.js +6 -6
  306. package/src/db/tests/linkController.spec.js +1 -0
  307. package/src/db/tests/linkTests.spec.js +6 -5
  308. package/src/db/views/staticViews.js +10 -8
  309. package/src/definitions/common.ts +0 -3
  310. package/src/definitions/datasource.ts +0 -3
  311. package/src/environment.js +1 -4
  312. package/src/integrations/base/sql.ts +21 -69
  313. package/src/integrations/index.ts +0 -3
  314. package/src/integrations/tests/sql.spec.js +0 -16
  315. package/src/integrations/utils.ts +12 -75
  316. package/src/middleware/authorized.js +30 -66
  317. package/src/middleware/builder.js +2 -2
  318. package/src/middleware/currentapp.js +46 -50
  319. package/src/middleware/tests/authorized.spec.js +6 -13
  320. package/src/middleware/tests/currentapp.spec.js +0 -6
  321. package/src/middleware/tests/usageQuota.spec.js +24 -18
  322. package/src/middleware/usageQuota.js +17 -93
  323. package/src/tests/utilities/TestConfiguration.js +55 -82
  324. package/src/threads/automation.js +15 -17
  325. package/src/threads/query.js +12 -17
  326. package/src/utilities/fileSystem/index.js +3 -4
  327. package/src/utilities/global.js +12 -15
  328. package/src/utilities/index.js +17 -7
  329. package/src/utilities/routing/index.js +5 -5
  330. package/src/utilities/rowProcessor/index.js +27 -25
  331. package/src/utilities/rowProcessor/utils.js +7 -23
  332. package/src/utilities/usageQuota.js +73 -0
  333. package/src/utilities/users.js +3 -3
  334. package/src/utilities/workerRequests.js +27 -4
  335. package/tsconfig.json +1 -2
  336. package/builder/assets/index.83c0944f.css +0 -1
  337. package/coverage/lcov-report/api/controllers/migrations.js.html +0 -119
  338. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +0 -548
  339. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +0 -599
  340. package/coverage/lcov-report/utilities/usageQuota/index.html +0 -141
  341. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  342. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +0 -305
  343. package/dist/api/controllers/migrations.js +0 -21
  344. package/dist/api/controllers/row/staticFormula.js +0 -147
  345. package/dist/api/controllers/table/bulkFormula.js +0 -159
  346. package/dist/api/routes/migrations.js +0 -9
  347. package/dist/integrations/googlesheets.js +0 -340
  348. package/dist/migrations/functions/appUrls.js +0 -46
  349. package/dist/migrations/functions/quotas1.js +0 -50
  350. package/dist/migrations/functions/usageQuotas/index.js +0 -20
  351. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -29
  352. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  353. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  354. package/dist/migrations/index.js +0 -62
  355. package/dist/utilities/usageQuota/rows.js +0 -78
  356. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  357. package/src/api/controllers/migrations.js +0 -13
  358. package/src/api/controllers/row/staticFormula.js +0 -156
  359. package/src/api/controllers/table/bulkFormula.js +0 -173
  360. package/src/api/routes/migrations.js +0 -14
  361. package/src/api/routes/tests/static.spec.js +0 -98
  362. package/src/integrations/googlesheets.ts +0 -353
  363. package/src/migrations/functions/appUrls.ts +0 -34
  364. package/src/migrations/functions/quotas1.ts +0 -20
  365. package/src/migrations/functions/tests/appUrls.spec.js +0 -29
  366. package/src/migrations/functions/tests/quotas1.spec.js +0 -27
  367. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +0 -25
  368. package/src/migrations/functions/usageQuotas/index.ts +0 -8
  369. package/src/migrations/functions/usageQuotas/syncApps.ts +0 -18
  370. package/src/migrations/functions/usageQuotas/syncRows.ts +0 -22
  371. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
  372. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
  373. package/src/migrations/functions/userEmailViewCasing.ts +0 -13
  374. package/src/migrations/index.ts +0 -56
  375. package/src/module.d.ts +0 -3
  376. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  377. package/src/utilities/usageQuota/index.js +0 -93
  378. package/src/utilities/usageQuota/rows.js +0 -75
  379. package/src/utilities/usageQuota/usageQuoteReset.js +0 -18
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">31.66% </span>
26
+ <span class="strong">32.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>38/120</span>
28
+ <span class='fraction'>39/120</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">31.93% </span>
47
+ <span class="strong">32.77% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>38/119</span>
49
+ <span class='fraction'>39/119</span>
50
50
  </div>
51
51
 
52
52
 
@@ -289,27 +289,27 @@
289
289
  <a name='L230'></a><a href='#L230'>230</a>
290
290
  <a name='L231'></a><a href='#L231'>231</a>
291
291
  <a name='L232'></a><a href='#L232'>232</a>
292
- <a name='L233'></a><a href='#L233'>233</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
292
+ <a name='L233'></a><a href='#L233'>233</a>
293
+ <a name='L234'></a><a href='#L234'>234</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
293
294
  <span class="cline-any cline-neutral">&nbsp;</span>
294
295
  <span class="cline-any cline-neutral">&nbsp;</span>
295
296
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-yes">39x</span>
297
- <span class="cline-any cline-yes">39x</span>
298
- <span class="cline-any cline-yes">39x</span>
299
- <span class="cline-any cline-yes">39x</span>
300
- <span class="cline-any cline-yes">39x</span>
301
- <span class="cline-any cline-yes">39x</span>
302
297
  <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-yes">34x</span>
299
+ <span class="cline-any cline-yes">34x</span>
300
+ <span class="cline-any cline-yes">34x</span>
301
+ <span class="cline-any cline-yes">34x</span>
302
+ <span class="cline-any cline-yes">34x</span>
303
+ <span class="cline-any cline-yes">34x</span>
303
304
  <span class="cline-any cline-neutral">&nbsp;</span>
304
305
  <span class="cline-any cline-neutral">&nbsp;</span>
305
306
  <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-yes">39x</span>
307
- <span class="cline-any cline-yes">39x</span>
308
- <span class="cline-any cline-yes">39x</span>
307
+ <span class="cline-any cline-yes">34x</span>
308
+ <span class="cline-any cline-yes">34x</span>
309
+ <span class="cline-any cline-yes">34x</span>
309
310
  <span class="cline-any cline-neutral">&nbsp;</span>
310
311
  <span class="cline-any cline-neutral">&nbsp;</span>
311
312
  <span class="cline-any cline-yes">2x</span>
312
- <span class="cline-any cline-yes">2x</span>
313
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
314
  <span class="cline-any cline-neutral">&nbsp;</span>
315
315
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -346,10 +346,13 @@
346
346
  <span class="cline-any cline-no">&nbsp;</span>
347
347
  <span class="cline-any cline-neutral">&nbsp;</span>
348
348
  <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">39x</span>
349
+ <span class="cline-any cline-yes">34x</span>
350
350
  <span class="cline-any cline-neutral">&nbsp;</span>
351
351
  <span class="cline-any cline-no">&nbsp;</span>
352
352
  <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
356
  <span class="cline-any cline-no">&nbsp;</span>
354
357
  <span class="cline-any cline-no">&nbsp;</span>
355
358
  <span class="cline-any cline-no">&nbsp;</span>
@@ -360,7 +363,7 @@
360
363
  <span class="cline-any cline-no">&nbsp;</span>
361
364
  <span class="cline-any cline-neutral">&nbsp;</span>
362
365
  <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-yes">39x</span>
366
+ <span class="cline-any cline-yes">34x</span>
364
367
  <span class="cline-any cline-no">&nbsp;</span>
365
368
  <span class="cline-any cline-neutral">&nbsp;</span>
366
369
  <span class="cline-any cline-no">&nbsp;</span>
@@ -431,7 +434,7 @@
431
434
  <span class="cline-any cline-neutral">&nbsp;</span>
432
435
  <span class="cline-any cline-neutral">&nbsp;</span>
433
436
  <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-yes">39x</span>
437
+ <span class="cline-any cline-yes">34x</span>
435
438
  <span class="cline-any cline-yes">2x</span>
436
439
  <span class="cline-any cline-yes">2x</span>
437
440
  <span class="cline-any cline-yes">2x</span>
@@ -451,9 +454,7 @@
451
454
  <span class="cline-any cline-yes">2x</span>
452
455
  <span class="cline-any cline-neutral">&nbsp;</span>
453
456
  <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-yes">39x</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-yes">34x</span>
457
458
  <span class="cline-any cline-neutral">&nbsp;</span>
458
459
  <span class="cline-any cline-no">&nbsp;</span>
459
460
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -461,7 +462,8 @@
461
462
  <span class="cline-any cline-no">&nbsp;</span>
462
463
  <span class="cline-any cline-neutral">&nbsp;</span>
463
464
  <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-yes">39x</span>
465
+ <span class="cline-any cline-yes">34x</span>
466
+ <span class="cline-any cline-yes">1x</span>
465
467
  <span class="cline-any cline-yes">1x</span>
466
468
  <span class="cline-any cline-yes">1x</span>
467
469
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -473,7 +475,7 @@
473
475
  <span class="cline-any cline-yes">1x</span>
474
476
  <span class="cline-any cline-neutral">&nbsp;</span>
475
477
  <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-yes">39x</span>
478
+ <span class="cline-any cline-yes">34x</span>
477
479
  <span class="cline-any cline-yes">1x</span>
478
480
  <span class="cline-any cline-yes">1x</span>
479
481
  <span class="cline-any cline-yes">1x</span>
@@ -486,11 +488,11 @@
486
488
  <span class="cline-any cline-neutral">&nbsp;</span>
487
489
  <span class="cline-any cline-neutral">&nbsp;</span>
488
490
  <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-yes">39x</span>
491
+ <span class="cline-any cline-yes">34x</span>
490
492
  <span class="cline-any cline-yes">1x</span>
491
493
  <span class="cline-any cline-neutral">&nbsp;</span>
492
494
  <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-yes">39x</span>
495
+ <span class="cline-any cline-yes">34x</span>
494
496
  <span class="cline-any cline-no">&nbsp;</span>
495
497
  <span class="cline-any cline-no">&nbsp;</span>
496
498
  <span class="cline-any cline-no">&nbsp;</span>
@@ -509,7 +511,7 @@
509
511
  <span class="cline-any cline-no">&nbsp;</span>
510
512
  <span class="cline-any cline-neutral">&nbsp;</span>
511
513
  <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-yes">39x</span>
514
+ <span class="cline-any cline-yes">34x</span>
513
515
  <span class="cline-any cline-no">&nbsp;</span>
514
516
  <span class="cline-any cline-no">&nbsp;</span>
515
517
  <span class="cline-any cline-no">&nbsp;</span>
@@ -521,7 +523,8 @@
521
523
  <span class="cline-any cline-neutral">&nbsp;</span>
522
524
  <span class="cline-any cline-no">&nbsp;</span>
523
525
  <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
526
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
527
+ const {
525
528
  generateUserMetadataID,
526
529
  getUserMetadataParams,
527
530
  generateUserFlagID,
@@ -533,14 +536,12 @@ const { isEqual } = require("lodash")
533
536
  const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
534
537
  const {
535
538
  getDevelopmentAppID,
536
- getProdAppIDs,
537
- dbExists,
539
+ getDeployedAppIDs,
538
540
  } = require("@budibase/backend-core/db")
541
+ const { doesDatabaseExist } = require("../../utilities")
539
542
  const { UserStatus } = require("@budibase/backend-core/constants")
540
- const { getAppDB } = require("@budibase/backend-core/context")
541
543
  &nbsp;
542
- async function rawMetadata() {
543
- const db = getAppDB()
544
+ async function rawMetadata(db) {
544
545
  return (
545
546
  await db.allDocs(
546
547
  getUserMetadataParams(null, {
@@ -578,10 +579,13 @@ function <span class="fstat-no" title="function not covered" >combineMetadataAnd
578
579
  <span class="cstat-no" title="statement not covered" > return null</span>
579
580
  }
580
581
  &nbsp;
581
- exports.syncGlobalUsers = <span class="fstat-no" title="function not covered" >as</span>ync () =&gt; {
582
+ exports.syncGlobalUsers = <span class="fstat-no" title="function not covered" >as</span>ync appId =&gt; {
582
583
  // sync user metadata
583
- const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
584
- const [users, metadata] = <span class="cstat-no" title="statement not covered" >await Promise.all([getGlobalUsers(), rawMetadata()])</span>
584
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
585
+ const [users, metadata] = <span class="cstat-no" title="statement not covered" >await Promise.all([</span>
586
+ getGlobalUsers(appId),
587
+ rawMetadata(db),
588
+ ])
585
589
  const toWrite = <span class="cstat-no" title="statement not covered" >[]</span>
586
590
  <span class="cstat-no" title="statement not covered" > for (let user of users) {</span>
587
591
  const combined = <span class="cstat-no" title="statement not covered" >await combineMetadataAndUser(user, metadata)</span>
@@ -615,7 +619,7 @@ exports.syncUser = <span class="fstat-no" title="function not covered" >as</span
615
619
  let prodAppIds
616
620
  // if they are a builder then get all production app IDs
617
621
  <span class="cstat-no" title="statement not covered" > if ((user.builder &amp;&amp; user.builder.global) || deleting) {</span>
618
- <span class="cstat-no" title="statement not covered" > prodAppIds = await getProdAppIDs()</span>
622
+ <span class="cstat-no" title="statement not covered" > prodAppIds = await getDeployedAppIDs(CouchDB)</span>
619
623
  } else {
620
624
  <span class="cstat-no" title="statement not covered" > prodAppIds = Object.entries(roles)</span>
621
625
  .filter(<span class="fstat-no" title="function not covered" >en</span>try =&gt; <span class="cstat-no" title="statement not covered" >entry[1] !== BUILTIN_ROLE_IDS.PUBLIC)</span>
@@ -625,10 +629,10 @@ exports.syncUser = <span class="fstat-no" title="function not covered" >as</span
625
629
  const roleId = <span class="cstat-no" title="statement not covered" >roles[prodAppId]</span>
626
630
  const devAppId = <span class="cstat-no" title="statement not covered" >getDevelopmentAppID(prodAppId)</span>
627
631
  <span class="cstat-no" title="statement not covered" > for (let appId of [prodAppId, devAppId]) {</span>
628
- <span class="cstat-no" title="statement not covered" > if (!(await dbExists(appId))) {</span>
632
+ <span class="cstat-no" title="statement not covered" > if (!(await doesDatabaseExist(appId))) {</span>
629
633
  <span class="cstat-no" title="statement not covered" > continue</span>
630
634
  }
631
- const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
635
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
632
636
  const metadataId = <span class="cstat-no" title="statement not covered" >generateUserMetadataID(userId)</span>
633
637
  let metadata
634
638
  <span class="cstat-no" title="statement not covered" > try {</span>
@@ -664,8 +668,8 @@ exports.syncUser = <span class="fstat-no" title="function not covered" >as</span
664
668
  }
665
669
  &nbsp;
666
670
  exports.fetchMetadata = async function (ctx) {
667
- const database = getAppDB()
668
- const global = await getGlobalUsers()
671
+ const database = new CouchDB(ctx.appId)
672
+ const global = await getGlobalUsers(ctx.appId)
669
673
  const metadata = await rawMetadata(database)
670
674
  const users = []
671
675
  for (let user of global) {
@@ -688,13 +692,12 @@ exports.updateSelfMetadata = <span class="fstat-no" title="function not covered"
688
692
  <span class="cstat-no" title="statement not covered" > ctx.request.body._id = ctx.user._id</span>
689
693
  // make sure no stale rev
690
694
  <span class="cstat-no" title="statement not covered" > delete ctx.request.body._rev</span>
691
- // make sure no csrf token
692
- <span class="cstat-no" title="statement not covered" > delete ctx.request.body.csrfToken</span>
693
695
  <span class="cstat-no" title="statement not covered" > await exports.updateMetadata(ctx)</span>
694
696
  }
695
697
  &nbsp;
696
698
  exports.updateMetadata = async function (ctx) {
697
- const db = getAppDB()
699
+ const appId = ctx.appId
700
+ const db = new CouchDB(appId)
698
701
  const user = ctx.request.body
699
702
  // this isn't applicable to the user
700
703
  delete user.roles
@@ -706,7 +709,7 @@ exports.updateMetadata = async function (ctx) {
706
709
  }
707
710
  &nbsp;
708
711
  exports.destroyMetadata = async function (ctx) {
709
- const db = getAppDB()
712
+ const db = new CouchDB(ctx.appId)
710
713
  try {
711
714
  const dbUser = await db.get(ctx.params.id)
712
715
  <span class="cstat-no" title="statement not covered" > await db.remove(dbUser._id, dbUser._rev)</span>
@@ -729,7 +732,7 @@ exports.setFlag = <span class="fstat-no" title="function not covered" >as</span>
729
732
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Must supply a 'flag' field in request body.")</span>
730
733
  }
731
734
  const flagDocId = <span class="cstat-no" title="statement not covered" >generateUserFlagID(userId)</span>
732
- const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
735
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(ctx.appId)</span>
733
736
  let doc
734
737
  <span class="cstat-no" title="statement not covered" > try {</span>
735
738
  <span class="cstat-no" title="statement not covered" > doc = await db.get(flagDocId)</span>
@@ -744,7 +747,7 @@ exports.setFlag = <span class="fstat-no" title="function not covered" >as</span>
744
747
  exports.getFlags = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
745
748
  const userId = <span class="cstat-no" title="statement not covered" >ctx.user._id</span>
746
749
  const docId = <span class="cstat-no" title="statement not covered" >generateUserFlagID(userId)</span>
747
- const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
750
+ const db = <span class="cstat-no" title="statement not covered" >new CouchDB(ctx.appId)</span>
748
751
  let doc
749
752
  <span class="cstat-no" title="statement not covered" > try {</span>
750
753
  <span class="cstat-no" title="statement not covered" > doc = await db.get(docId)</span>
@@ -760,7 +763,7 @@ exports.getFlags = <span class="fstat-no" title="function not covered" >as</span
760
763
  <div class='footer quiet pad2 space-top1 center small'>
761
764
  Code coverage generated by
762
765
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
763
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
766
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
764
767
  </div>
765
768
  </div>
766
769
  <script src="../../prettify.js"></script>
@@ -80,7 +80,7 @@
80
80
  <a name='L21'></a><a href='#L21'>21</a>
81
81
  <a name='L22'></a><a href='#L22'>22</a>
82
82
  <a name='L23'></a><a href='#L23'>23</a>
83
- <a name='L24'></a><a href='#L24'>24</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
83
+ <a name='L24'></a><a href='#L24'>24</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
84
84
  <span class="cline-any cline-yes">2x</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
86
86
  <span class="cline-any cline-yes">1x</span>
@@ -95,11 +95,11 @@
95
95
  <span class="cline-any cline-yes">1x</span>
96
96
  <span class="cline-any cline-neutral">&nbsp;</span>
97
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
- <span class="cline-any cline-yes">38x</span>
98
+ <span class="cline-any cline-yes">33x</span>
99
99
  <span class="cline-any cline-yes">1x</span>
100
100
  <span class="cline-any cline-neutral">&nbsp;</span>
101
101
  <span class="cline-any cline-neutral">&nbsp;</span>
102
- <span class="cline-any cline-yes">38x</span>
102
+ <span class="cline-any cline-yes">33x</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
105
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -133,7 +133,7 @@ exports.ExportFormats = {
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
136
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
136
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
137
137
  </div>
138
138
  </div>
139
139
  <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">73.84% </span>
26
+ <span class="strong">73.43% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>144/195</span>
28
+ <span class='fraction'>141/192</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">74.09% </span>
47
+ <span class="strong">73.68% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>143/193</span>
49
+ <span class='fraction'>140/190</span>
50
50
  </div>
51
51
 
52
52
 
@@ -89,32 +89,32 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
92
- <td data-value="88.4" class="pic high">
92
+ <td data-value="88.73" class="pic high">
93
93
  <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
94
94
  </td>
95
- <td data-value="88.4" class="pct high">88.4%</td>
96
- <td data-value="69" class="abs high">61/69</td>
95
+ <td data-value="88.73" class="pct high">88.73%</td>
96
+ <td data-value="71" class="abs high">63/71</td>
97
97
  <td data-value="72" class="pct medium">72%</td>
98
98
  <td data-value="25" class="abs medium">18/25</td>
99
99
  <td data-value="62.5" class="pct medium">62.5%</td>
100
100
  <td data-value="8" class="abs medium">5/8</td>
101
- <td data-value="89.7" class="pct high">89.7%</td>
102
- <td data-value="68" class="abs high">61/68</td>
101
+ <td data-value="90" class="pct high">90%</td>
102
+ <td data-value="70" class="abs high">63/70</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
106
106
  <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
107
- <td data-value="53.08" class="pic medium">
108
- <div class="chart"><div class="cover-fill" style="width: 53%"></div><div class="cover-empty" style="width: 47%"></div></div>
107
+ <td data-value="50" class="pic medium">
108
+ <div class="chart"><div class="cover-fill" style="width: 50%"></div><div class="cover-empty" style="width: 50%"></div></div>
109
109
  </td>
110
- <td data-value="53.08" class="pct medium">53.08%</td>
111
- <td data-value="81" class="abs medium">43/81</td>
110
+ <td data-value="50" class="pct medium">50%</td>
111
+ <td data-value="76" class="abs medium">38/76</td>
112
112
  <td data-value="34.61" class="pct low">34.61%</td>
113
113
  <td data-value="26" class="abs low">9/26</td>
114
114
  <td data-value="66.66" class="pct medium">66.66%</td>
115
115
  <td data-value="9" class="abs medium">6/9</td>
116
- <td data-value="53.08" class="pct medium">53.08%</td>
117
- <td data-value="81" class="abs medium">43/81</td>
116
+ <td data-value="50" class="pct medium">50%</td>
117
+ <td data-value="76" class="abs medium">38/76</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
143
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <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">88.4% </span>
26
+ <span class="strong">88.73% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>61/69</span>
28
+ <span class='fraction'>63/71</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.7% </span>
47
+ <span class="strong">90% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>61/68</span>
49
+ <span class='fraction'>63/70</span>
50
50
  </div>
51
51
 
52
52
 
@@ -176,20 +176,23 @@
176
176
  <a name='L117'></a><a href='#L117'>117</a>
177
177
  <a name='L118'></a><a href='#L118'>118</a>
178
178
  <a name='L119'></a><a href='#L119'>119</a>
179
- <a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
180
- <span class="cline-any cline-yes">38x</span>
181
- <span class="cline-any cline-yes">38x</span>
182
- <span class="cline-any cline-yes">38x</span>
183
- <span class="cline-any cline-yes">38x</span>
184
- <span class="cline-any cline-yes">38x</span>
185
- <span class="cline-any cline-yes">38x</span>
186
- <span class="cline-any cline-yes">38x</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-yes">38x</span>
179
+ <a name='L120'></a><a href='#L120'>120</a>
180
+ <a name='L121'></a><a href='#L121'>121</a>
181
+ <a name='L122'></a><a href='#L122'>122</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
182
+ <span class="cline-any cline-yes">33x</span>
183
+ <span class="cline-any cline-yes">33x</span>
184
+ <span class="cline-any cline-yes">33x</span>
185
+ <span class="cline-any cline-yes">33x</span>
186
+ <span class="cline-any cline-yes">33x</span>
187
+ <span class="cline-any cline-yes">33x</span>
188
+ <span class="cline-any cline-yes">33x</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-yes">33x</span>
191
+ <span class="cline-any cline-yes">1x</span>
189
192
  <span class="cline-any cline-yes">1x</span>
190
193
  <span class="cline-any cline-neutral">&nbsp;</span>
191
194
  <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-yes">38x</span>
195
+ <span class="cline-any cline-yes">33x</span>
193
196
  <span class="cline-any cline-yes">8x</span>
194
197
  <span class="cline-any cline-yes">8x</span>
195
198
  <span class="cline-any cline-yes">8x</span>
@@ -218,7 +221,7 @@
218
221
  <span class="cline-any cline-neutral">&nbsp;</span>
219
222
  <span class="cline-any cline-neutral">&nbsp;</span>
220
223
  <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-yes">38x</span>
224
+ <span class="cline-any cline-yes">33x</span>
222
225
  <span class="cline-any cline-yes">1x</span>
223
226
  <span class="cline-any cline-yes">1x</span>
224
227
  <span class="cline-any cline-yes">1x</span>
@@ -229,7 +232,8 @@
229
232
  <span class="cline-any cline-yes">1x</span>
230
233
  <span class="cline-any cline-neutral">&nbsp;</span>
231
234
  <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-yes">38x</span>
235
+ <span class="cline-any cline-yes">33x</span>
236
+ <span class="cline-any cline-yes">2x</span>
233
237
  <span class="cline-any cline-yes">2x</span>
234
238
  <span class="cline-any cline-yes">2x</span>
235
239
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -295,21 +299,22 @@
295
299
  <span class="cline-any cline-yes">2x</span>
296
300
  <span class="cline-any cline-yes">2x</span>
297
301
  <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const viewTemplate = require("./viewBuilder")
302
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
303
+ const viewTemplate = require("./viewBuilder")
299
304
  const { apiFileReturn } = require("../../../utilities/fileSystem")
300
305
  const exporters = require("./exporters")
301
306
  const { saveView, getView, getViews, deleteView } = require("./utils")
302
307
  const { fetchView } = require("../row")
303
308
  const { getTable } = require("../table/utils")
304
309
  const { FieldTypes } = require("../../../constants")
305
- const { getAppDB } = require("@budibase/backend-core/context")
306
310
  &nbsp;
307
311
  exports.fetch = async ctx =&gt; {
308
- ctx.body = await getViews()
312
+ const db = new CouchDB(ctx.appId)
313
+ ctx.body = await getViews(db)
309
314
  }
310
315
  &nbsp;
311
316
  exports.save = async ctx =&gt; {
312
- const db = getAppDB()
317
+ const db = new CouchDB(ctx.appId)
313
318
  const { originalName, ...viewToSave } = ctx.request.body
314
319
  const view = viewTemplate(viewToSave)
315
320
  &nbsp;
@@ -317,7 +322,7 @@ exports.save = async ctx =&gt; {
317
322
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot create view without a name")</span>
318
323
  }
319
324
  &nbsp;
320
- await saveView(originalName, viewToSave.name, view)
325
+ await saveView(db, originalName, viewToSave.name, view)
321
326
  &nbsp;
322
327
  // add views to table document
323
328
  const table = await db.get(ctx.request.body.tableId)
@@ -338,9 +343,9 @@ exports.save = async ctx =&gt; {
338
343
  }
339
344
  &nbsp;
340
345
  exports.destroy = async ctx =&gt; {
341
- const db = getAppDB()
346
+ const db = new CouchDB(ctx.appId)
342
347
  const viewName = decodeURI(ctx.params.viewName)
343
- const view = await deleteView(viewName)
348
+ const view = await deleteView(db, viewName)
344
349
  const table = await db.get(view.meta.tableId)
345
350
  delete table.views[viewName]
346
351
  await db.put(table)
@@ -349,8 +354,9 @@ exports.destroy = async ctx =&gt; {
349
354
  }
350
355
  &nbsp;
351
356
  exports.exportView = async ctx =&gt; {
357
+ const db = new CouchDB(ctx.appId)
352
358
  const viewName = decodeURI(ctx.query.view)
353
- const view = await getView(viewName)
359
+ const view = await getView(db, viewName)
354
360
  &nbsp;
355
361
  const format = ctx.query.format
356
362
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!format || !Object.values(exporters.ExportFormats).includes(format)) {
@@ -378,7 +384,7 @@ exports.exportView = async ctx =&gt; {
378
384
  let schema = view &amp;&amp; view.meta &amp;&amp; view.meta.schema
379
385
  if (!schema) {
380
386
  const tableId = ctx.params.tableId || view.meta.tableId
381
- const table = await getTable(tableId)
387
+ const table = await getTable(ctx.appId, tableId)
382
388
  schema = table.schema
383
389
  }
384
390
  &nbsp;
@@ -421,7 +427,7 @@ exports.exportView = async ctx =&gt; {
421
427
  <div class='footer quiet pad2 space-top1 center small'>
422
428
  Code coverage generated by
423
429
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
424
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
430
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
425
431
  </div>
426
432
  </div>
427
433
  <script src="../../../prettify.js"></script>