@budibase/server 1.0.49-alpha.6 → 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 (376) 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.1b905242.js → index.2c37968e.js} +231 -234
  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 +2816 -3119
  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 +27 -21
  35. package/coverage/lcov-report/api/controllers/row/index.html +34 -49
  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 +26 -62
  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 +4423 -5022
  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 +63 -76
  194. package/dist/api/controllers/row/external.js +4 -4
  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 +6 -13
  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 +13 -23
  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/likeCypress.ts +1 -1
  250. package/src/api/controllers/application.js +50 -85
  251. package/src/api/controllers/auth.js +5 -8
  252. package/src/api/controllers/automation.js +23 -13
  253. package/src/api/controllers/cloud.js +3 -2
  254. package/src/api/controllers/component.js +4 -3
  255. package/src/api/controllers/datasource.js +11 -21
  256. package/src/api/controllers/deploy/Deployment.js +7 -3
  257. package/src/api/controllers/deploy/index.js +13 -20
  258. package/src/api/controllers/dev.js +5 -5
  259. package/src/api/controllers/hosting.js +22 -0
  260. package/src/api/controllers/layout.js +3 -3
  261. package/src/api/controllers/metadata.js +9 -4
  262. package/src/api/controllers/permission.js +4 -4
  263. package/src/api/controllers/query/import/index.ts +6 -4
  264. package/src/api/controllers/query/import/tests/index.spec.js +1 -2
  265. package/src/api/controllers/query/index.js +10 -11
  266. package/src/api/controllers/role.js +5 -5
  267. package/src/api/controllers/routing.js +6 -5
  268. package/src/api/controllers/row/ExternalRequest.ts +42 -53
  269. package/src/api/controllers/row/external.js +6 -4
  270. package/src/api/controllers/row/internal.js +90 -54
  271. package/src/api/controllers/row/internalSearch.js +17 -23
  272. package/src/api/controllers/row/utils.js +18 -13
  273. package/src/api/controllers/screen.js +7 -5
  274. package/src/api/controllers/static/index.js +12 -65
  275. package/src/api/controllers/table/external.js +10 -7
  276. package/src/api/controllers/table/index.js +28 -20
  277. package/src/api/controllers/table/internal.js +19 -24
  278. package/src/api/controllers/table/utils.js +42 -78
  279. package/src/api/controllers/user.js +20 -19
  280. package/src/api/controllers/view/index.js +10 -8
  281. package/src/api/controllers/view/utils.js +4 -9
  282. package/src/api/controllers/webhook.js +8 -10
  283. package/src/api/routes/hosting.js +13 -0
  284. package/src/api/routes/index.js +2 -2
  285. package/src/api/routes/static.js +0 -5
  286. package/src/api/routes/tests/application.spec.js +2 -2
  287. package/src/api/routes/tests/auth.spec.js +2 -1
  288. package/src/api/routes/tests/automation.spec.js +0 -1
  289. package/src/api/routes/tests/hosting.spec.js +36 -0
  290. package/src/api/routes/tests/misc.spec.js +1 -0
  291. package/src/api/routes/tests/routing.spec.js +12 -21
  292. package/src/api/routes/tests/row.spec.js +4 -7
  293. package/src/api/routes/tests/utilities/TestFunctions.js +17 -39
  294. package/src/app.ts +5 -18
  295. package/src/automations/automationUtils.js +3 -2
  296. package/src/automations/steps/createRow.js +5 -2
  297. package/src/automations/steps/deleteRow.js +4 -1
  298. package/src/automations/steps/updateRow.js +1 -1
  299. package/src/automations/triggers.js +31 -33
  300. package/src/automations/utils.js +5 -9
  301. package/src/constants/index.js +0 -9
  302. package/src/db/linkedRows/LinkController.js +7 -3
  303. package/src/db/linkedRows/index.js +31 -16
  304. package/src/db/linkedRows/linkUtils.js +6 -6
  305. package/src/db/tests/linkController.spec.js +1 -0
  306. package/src/db/tests/linkTests.spec.js +6 -5
  307. package/src/db/views/staticViews.js +10 -8
  308. package/src/definitions/common.ts +0 -3
  309. package/src/definitions/datasource.ts +0 -3
  310. package/src/environment.js +1 -4
  311. package/src/integrations/base/sql.ts +7 -14
  312. package/src/integrations/index.ts +0 -3
  313. package/src/integrations/tests/sql.spec.js +0 -16
  314. package/src/integrations/utils.ts +12 -75
  315. package/src/middleware/authorized.js +30 -66
  316. package/src/middleware/builder.js +2 -2
  317. package/src/middleware/currentapp.js +46 -50
  318. package/src/middleware/tests/authorized.spec.js +6 -13
  319. package/src/middleware/tests/currentapp.spec.js +0 -6
  320. package/src/middleware/tests/usageQuota.spec.js +24 -18
  321. package/src/middleware/usageQuota.js +17 -93
  322. package/src/tests/utilities/TestConfiguration.js +55 -82
  323. package/src/threads/automation.js +15 -17
  324. package/src/threads/query.js +14 -26
  325. package/src/utilities/fileSystem/index.js +3 -4
  326. package/src/utilities/global.js +12 -15
  327. package/src/utilities/index.js +17 -7
  328. package/src/utilities/routing/index.js +5 -5
  329. package/src/utilities/rowProcessor/index.js +27 -25
  330. package/src/utilities/rowProcessor/utils.js +7 -23
  331. package/src/utilities/usageQuota.js +73 -0
  332. package/src/utilities/users.js +3 -3
  333. package/src/utilities/workerRequests.js +27 -4
  334. package/builder/assets/index.83c0944f.css +0 -1
  335. package/coverage/lcov-report/api/controllers/migrations.js.html +0 -119
  336. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +0 -548
  337. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +0 -599
  338. package/coverage/lcov-report/utilities/usageQuota/index.html +0 -141
  339. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  340. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +0 -305
  341. package/dist/api/controllers/migrations.js +0 -21
  342. package/dist/api/controllers/row/staticFormula.js +0 -147
  343. package/dist/api/controllers/table/bulkFormula.js +0 -159
  344. package/dist/api/routes/migrations.js +0 -9
  345. package/dist/integrations/googlesheets.js +0 -340
  346. package/dist/migrations/functions/appUrls.js +0 -46
  347. package/dist/migrations/functions/quotas1.js +0 -50
  348. package/dist/migrations/functions/usageQuotas/index.js +0 -20
  349. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -30
  350. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  351. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  352. package/dist/migrations/index.js +0 -62
  353. package/dist/utilities/usageQuota/rows.js +0 -78
  354. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  355. package/src/api/controllers/migrations.js +0 -13
  356. package/src/api/controllers/row/staticFormula.js +0 -156
  357. package/src/api/controllers/table/bulkFormula.js +0 -173
  358. package/src/api/routes/migrations.js +0 -14
  359. package/src/api/routes/tests/static.spec.js +0 -98
  360. package/src/integrations/googlesheets.ts +0 -353
  361. package/src/migrations/functions/appUrls.ts +0 -34
  362. package/src/migrations/functions/quotas1.ts +0 -20
  363. package/src/migrations/functions/tests/appUrls.spec.js +0 -29
  364. package/src/migrations/functions/tests/quotas1.spec.js +0 -27
  365. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +0 -25
  366. package/src/migrations/functions/usageQuotas/index.ts +0 -8
  367. package/src/migrations/functions/usageQuotas/syncApps.ts +0 -19
  368. package/src/migrations/functions/usageQuotas/syncRows.ts +0 -22
  369. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
  370. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
  371. package/src/migrations/functions/userEmailViewCasing.ts +0 -13
  372. package/src/migrations/index.ts +0 -56
  373. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  374. package/src/utilities/usageQuota/index.js +0 -93
  375. package/src/utilities/usageQuota/rows.js +0 -75
  376. 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">76.78% </span>
26
+ <span class="strong">81.81% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>43/56</span>
28
+ <span class='fraction'>45/55</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">70% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/9</span>
42
+ <span class='fraction'>7/10</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.18% </span>
47
+ <span class="strong">83.01% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>43/55</span>
49
+ <span class='fraction'>44/53</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line medium'></div>
58
+ <div class='status-line high'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -155,72 +155,88 @@
155
155
  <a name='L96'></a><a href='#L96'>96</a>
156
156
  <a name='L97'></a><a href='#L97'>97</a>
157
157
  <a name='L98'></a><a href='#L98'>98</a>
158
- <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
159
- <span class="cline-any cline-yes">39x</span>
160
- <span class="cline-any cline-yes">39x</span>
161
- <span class="cline-any cline-yes">39x</span>
162
- <span class="cline-any cline-yes">39x</span>
163
- <span class="cline-any cline-yes">39x</span>
164
- <span class="cline-any cline-yes">39x</span>
158
+ <a name='L99'></a><a href='#L99'>99</a>
159
+ <a name='L100'></a><a href='#L100'>100</a>
160
+ <a name='L101'></a><a href='#L101'>101</a>
161
+ <a name='L102'></a><a href='#L102'>102</a>
162
+ <a name='L103'></a><a href='#L103'>103</a>
163
+ <a name='L104'></a><a href='#L104'>104</a>
164
+ <a name='L105'></a><a href='#L105'>105</a>
165
+ <a name='L106'></a><a href='#L106'>106</a>
166
+ <a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
167
+ <span class="cline-any cline-yes">34x</span>
168
+ <span class="cline-any cline-yes">34x</span>
169
+ <span class="cline-any cline-yes">34x</span>
170
+ <span class="cline-any cline-yes">34x</span>
171
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
+ <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-yes">34x</span>
176
+ <span class="cline-any cline-yes">34x</span>
165
177
  <span class="cline-any cline-neutral">&nbsp;</span>
166
178
  <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-yes">103x</span>
168
179
  <span class="cline-any cline-yes">101x</span>
180
+ <span class="cline-any cline-yes">99x</span>
169
181
  <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">103x</span>
182
+ <span class="cline-any cline-yes">101x</span>
171
183
  <span class="cline-any cline-no">&nbsp;</span>
172
- <span class="cline-any cline-yes">103x</span>
184
+ <span class="cline-any cline-yes">101x</span>
173
185
  <span class="cline-any cline-no">&nbsp;</span>
174
186
  <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-yes">103x</span>
187
+ <span class="cline-any cline-yes">101x</span>
176
188
  <span class="cline-any cline-neutral">&nbsp;</span>
177
189
  <span class="cline-any cline-neutral">&nbsp;</span>
178
190
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-yes">39x</span>
191
+ <span class="cline-any cline-yes">34x</span>
180
192
  <span class="cline-any cline-yes">1x</span>
181
193
  <span class="cline-any cline-neutral">&nbsp;</span>
182
194
  <span class="cline-any cline-yes">1x</span>
183
195
  <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-yes">1x</span>
185
196
  <span class="cline-any cline-neutral">&nbsp;</span>
186
197
  <span class="cline-any cline-neutral">&nbsp;</span>
187
198
  <span class="cline-any cline-neutral">&nbsp;</span>
188
199
  <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-yes">2x</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
204
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-yes">1x</span>
191
- <span class="cline-any cline-no">&nbsp;</span>
192
- <span class="cline-any cline-no">&nbsp;</span>
193
- <span class="cline-any cline-no">&nbsp;</span>
194
205
  <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-yes">1x</span>
195
207
  <span class="cline-any cline-neutral">&nbsp;</span>
196
208
  <span class="cline-any cline-neutral">&nbsp;</span>
197
209
  <span class="cline-any cline-neutral">&nbsp;</span>
198
210
  <span class="cline-any cline-neutral">&nbsp;</span>
199
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-yes">1x</span>
200
213
  <span class="cline-any cline-no">&nbsp;</span>
201
214
  <span class="cline-any cline-neutral">&nbsp;</span>
202
215
  <span class="cline-any cline-neutral">&nbsp;</span>
203
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
220
  <span class="cline-any cline-yes">1x</span>
205
221
  <span class="cline-any cline-neutral">&nbsp;</span>
206
222
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">39x</span>
223
+ <span class="cline-any cline-yes">34x</span>
208
224
  <span class="cline-any cline-yes">19x</span>
209
225
  <span class="cline-any cline-yes">19x</span>
210
226
  <span class="cline-any cline-neutral">&nbsp;</span>
211
227
  <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-yes">39x</span>
213
- <span class="cline-any cline-yes">101x</span>
214
- <span class="cline-any cline-yes">101x</span>
215
- <span class="cline-any cline-yes">101x</span>
216
- <span class="cline-any cline-yes">101x</span>
217
- <span class="cline-any cline-yes">101x</span>
218
- <span class="cline-any cline-yes">101x</span>
228
+ <span class="cline-any cline-yes">34x</span>
229
+ <span class="cline-any cline-yes">99x</span>
230
+ <span class="cline-any cline-yes">99x</span>
231
+ <span class="cline-any cline-yes">99x</span>
232
+ <span class="cline-any cline-yes">99x</span>
233
+ <span class="cline-any cline-yes">99x</span>
234
+ <span class="cline-any cline-yes">99x</span>
219
235
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">101x</span>
236
+ <span class="cline-any cline-yes">99x</span>
221
237
  <span class="cline-any cline-neutral">&nbsp;</span>
222
238
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">39x</span>
239
+ <span class="cline-any cline-yes">34x</span>
224
240
  <span class="cline-any cline-yes">2x</span>
225
241
  <span class="cline-any cline-yes">2x</span>
226
242
  <span class="cline-any cline-yes">2x</span>
@@ -230,7 +246,7 @@
230
246
  <span class="cline-any cline-yes">2x</span>
231
247
  <span class="cline-any cline-neutral">&nbsp;</span>
232
248
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">39x</span>
249
+ <span class="cline-any cline-yes">34x</span>
234
250
  <span class="cline-any cline-no">&nbsp;</span>
235
251
  <span class="cline-any cline-no">&nbsp;</span>
236
252
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -240,7 +256,7 @@
240
256
  <span class="cline-any cline-no">&nbsp;</span>
241
257
  <span class="cline-any cline-neutral">&nbsp;</span>
242
258
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">39x</span>
259
+ <span class="cline-any cline-yes">34x</span>
244
260
  <span class="cline-any cline-neutral">&nbsp;</span>
245
261
  <span class="cline-any cline-yes">1x</span>
246
262
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -253,13 +269,17 @@
253
269
  <span class="cline-any cline-neutral">&nbsp;</span>
254
270
  <span class="cline-any cline-yes">1x</span>
255
271
  <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const internal = require("./internal")
272
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
273
+ const internal = require("./internal")
257
274
  const external = require("./external")
258
275
  const csvParser = require("../../../utilities/csvParser")
259
- const { isExternalTable, isSQL } = require("../../../integrations/utils")
260
- const { getDatasourceParams } = require("../../../db/utils")
261
- const { getAppDB } = require("@budibase/backend-core/context")
262
- const { getTable, getAllInternalTables } = require("./utils")
276
+ const { isExternalTable } = require("../../../integrations/utils")
277
+ const {
278
+ getTableParams,
279
+ getDatasourceParams,
280
+ BudibaseInternalDB,
281
+ } = require("../../../db/utils")
282
+ const { getTable } = require("./utils")
263
283
  &nbsp;
264
284
  function pickApi({ tableId, table }) {
265
285
  if (table &amp;&amp; !tableId) {
@@ -275,9 +295,19 @@ function pickApi({ tableId, table }) {
275
295
  &nbsp;
276
296
  // covers both internal and external
277
297
  exports.fetch = async function (ctx) {
278
- const db = getAppDB()
298
+ const db = new CouchDB(ctx.appId)
299
+ &nbsp;
300
+ const internalTables = await db.allDocs(
301
+ getTableParams(null, {
302
+ include_docs: true,
303
+ })
304
+ )
279
305
  &nbsp;
280
- const internal = await getAllInternalTables()
306
+ const internal = internalTables.rows.map(row =&gt; ({
307
+ ...row.doc,
308
+ type: "internal",
309
+ sourceId: BudibaseInternalDB._id,
310
+ }))
281
311
  &nbsp;
282
312
  const externalTables = await db.allDocs(
283
313
  getDatasourceParams("plus", {
@@ -285,18 +315,12 @@ exports.fetch = async function (ctx) {
285
315
  })
286
316
  )
287
317
  &nbsp;
288
- const external = externalTables.rows.flatMap(<span class="fstat-no" title="function not covered" >ta</span>bleDoc =&gt; {
289
- let entities = <span class="cstat-no" title="statement not covered" >tableDoc.doc.entities</span>
290
- <span class="cstat-no" title="statement not covered" > if (entities) {</span>
291
- <span class="cstat-no" title="statement not covered" > return Object.values(entities).map(<span class="fstat-no" title="function not covered" >en</span>tity =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
292
- ...entity,
293
- type: "external",
294
- sourceId: tableDoc.doc._id,
295
- sql: isSQL(tableDoc.doc),
296
- }))
297
- } else {
298
- <span class="cstat-no" title="statement not covered" > return []</span>
299
- }
318
+ const external = externalTables.rows.flatMap(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; {
319
+ <span class="cstat-no" title="statement not covered" > return Object.values(row.doc.entities || {}).map(<span class="fstat-no" title="function not covered" >en</span>tity =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
320
+ ...entity,
321
+ type: "external",
322
+ sourceId: row.doc._id,
323
+ }))
300
324
  })
301
325
  &nbsp;
302
326
  ctx.body = [...internal, ...external]
@@ -304,7 +328,7 @@ exports.fetch = async function (ctx) {
304
328
  &nbsp;
305
329
  exports.find = async function (ctx) {
306
330
  const tableId = ctx.params.id
307
- ctx.body = await getTable(tableId)
331
+ ctx.body = await getTable(ctx.appId, tableId)
308
332
  }
309
333
  &nbsp;
310
334
  exports.save = async function (ctx) {
@@ -343,7 +367,7 @@ exports.validateCSVSchema = async function (ctx) {
343
367
  const { csvString, schema = {}, tableId } = ctx.request.body
344
368
  let existingTable
345
369
  <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId) {
346
- <span class="cstat-no" title="statement not covered" > existingTable = await getTable(tableId)</span>
370
+ <span class="cstat-no" title="statement not covered" > existingTable = await getTable(ctx.appId, tableId)</span>
347
371
  }
348
372
  let result = await csvParser.parse(csvString, schema)
349
373
  <span class="missing-if-branch" title="if path not taken" >I</span>if (existingTable) {
@@ -358,7 +382,7 @@ exports.validateCSVSchema = async function (ctx) {
358
382
  <div class='footer quiet pad2 space-top1 center small'>
359
383
  Code coverage generated by
360
384
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
361
- at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
385
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
362
386
  </div>
363
387
  </div>
364
388
  <script src="../../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">72.46% </span>
26
+ <span class="strong">74.6% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>50/69</span>
28
+ <span class='fraction'>47/63</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">67.64% </span>
33
+ <span class="strong">71.87% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>23/34</span>
35
+ <span class='fraction'>23/32</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">40% </span>
40
+ <span class="strong">60% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/5</span>
42
+ <span class='fraction'>3/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">75.75% </span>
47
+ <span class="strong">78.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>50/66</span>
49
+ <span class='fraction'>47/60</span>
50
50
  </div>
51
51
 
52
52
 
@@ -208,30 +208,22 @@
208
208
  <a name='L149'></a><a href='#L149'>149</a>
209
209
  <a name='L150'></a><a href='#L150'>150</a>
210
210
  <a name='L151'></a><a href='#L151'>151</a>
211
- <a name='L152'></a><a href='#L152'>152</a>
212
- <a name='L153'></a><a href='#L153'>153</a>
213
- <a name='L154'></a><a href='#L154'>154</a>
214
- <a name='L155'></a><a href='#L155'>155</a>
215
- <a name='L156'></a><a href='#L156'>156</a>
216
- <a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">39x</span>
217
- <span class="cline-any cline-yes">39x</span>
218
- <span class="cline-any cline-yes">39x</span>
211
+ <a name='L152'></a><a href='#L152'>152</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
212
+ <span class="cline-any cline-yes">34x</span>
213
+ <span class="cline-any cline-yes">34x</span>
214
+ <span class="cline-any cline-yes">34x</span>
219
215
  <span class="cline-any cline-neutral">&nbsp;</span>
220
216
  <span class="cline-any cline-neutral">&nbsp;</span>
221
217
  <span class="cline-any cline-neutral">&nbsp;</span>
222
218
  <span class="cline-any cline-neutral">&nbsp;</span>
223
219
  <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-yes">39x</span>
225
- <span class="cline-any cline-yes">39x</span>
226
- <span class="cline-any cline-yes">39x</span>
227
- <span class="cline-any cline-yes">39x</span>
228
- <span class="cline-any cline-yes">39x</span>
229
- <span class="cline-any cline-yes">39x</span>
220
+ <span class="cline-any cline-yes">34x</span>
230
221
  <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-yes">39x</span>
232
- <span class="cline-any cline-yes">101x</span>
233
- <span class="cline-any cline-yes">101x</span>
234
- <span class="cline-any cline-yes">101x</span>
222
+ <span class="cline-any cline-yes">34x</span>
223
+ <span class="cline-any cline-yes">99x</span>
224
+ <span class="cline-any cline-yes">99x</span>
225
+ <span class="cline-any cline-yes">99x</span>
226
+ <span class="cline-any cline-yes">99x</span>
235
227
  <span class="cline-any cline-neutral">&nbsp;</span>
236
228
  <span class="cline-any cline-neutral">&nbsp;</span>
237
229
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -240,26 +232,27 @@
240
232
  <span class="cline-any cline-neutral">&nbsp;</span>
241
233
  <span class="cline-any cline-neutral">&nbsp;</span>
242
234
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">101x</span>
235
+ <span class="cline-any cline-yes">99x</span>
244
236
  <span class="cline-any cline-yes">4x</span>
245
237
  <span class="cline-any cline-neutral">&nbsp;</span>
246
238
  <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-yes">101x</span>
239
+ <span class="cline-any cline-yes">99x</span>
248
240
  <span class="cline-any cline-no">&nbsp;</span>
249
241
  <span class="cline-any cline-neutral">&nbsp;</span>
250
242
  <span class="cline-any cline-neutral">&nbsp;</span>
251
243
  <span class="cline-any cline-neutral">&nbsp;</span>
252
244
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">101x</span>
245
+ <span class="cline-any cline-yes">99x</span>
254
246
  <span class="cline-any cline-neutral">&nbsp;</span>
255
247
  <span class="cline-any cline-neutral">&nbsp;</span>
256
248
  <span class="cline-any cline-neutral">&nbsp;</span>
257
249
  <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-yes">101x</span>
259
250
  <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-yes">99x</span>
260
252
  <span class="cline-any cline-neutral">&nbsp;</span>
261
253
  <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-yes">101x</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-yes">99x</span>
263
256
  <span class="cline-any cline-yes">4x</span>
264
257
  <span class="cline-any cline-yes">13x</span>
265
258
  <span class="cline-any cline-yes">13x</span>
@@ -269,7 +262,7 @@
269
262
  <span class="cline-any cline-neutral">&nbsp;</span>
270
263
  <span class="cline-any cline-neutral">&nbsp;</span>
271
264
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">101x</span>
265
+ <span class="cline-any cline-yes">99x</span>
273
266
  <span class="cline-any cline-neutral">&nbsp;</span>
274
267
  <span class="cline-any cline-neutral">&nbsp;</span>
275
268
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -282,10 +275,10 @@
282
275
  <span class="cline-any cline-neutral">&nbsp;</span>
283
276
  <span class="cline-any cline-neutral">&nbsp;</span>
284
277
  <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-yes">101x</span>
278
+ <span class="cline-any cline-yes">99x</span>
286
279
  <span class="cline-any cline-neutral">&nbsp;</span>
287
280
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-yes">101x</span>
281
+ <span class="cline-any cline-yes">99x</span>
289
282
  <span class="cline-any cline-no">&nbsp;</span>
290
283
  <span class="cline-any cline-no">&nbsp;</span>
291
284
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -294,15 +287,16 @@
294
287
  <span class="cline-any cline-neutral">&nbsp;</span>
295
288
  <span class="cline-any cline-neutral">&nbsp;</span>
296
289
  <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-yes">101x</span>
298
- <span class="cline-any cline-yes">101x</span>
290
+ <span class="cline-any cline-yes">99x</span>
291
+ <span class="cline-any cline-yes">99x</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
293
  <span class="cline-any cline-neutral">&nbsp;</span>
300
294
  <span class="cline-any cline-neutral">&nbsp;</span>
301
295
  <span class="cline-any cline-neutral">&nbsp;</span>
302
296
  <span class="cline-any cline-neutral">&nbsp;</span>
303
297
  <span class="cline-any cline-neutral">&nbsp;</span>
304
298
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">101x</span>
299
+ <span class="cline-any cline-yes">99x</span>
306
300
  <span class="cline-any cline-yes">4x</span>
307
301
  <span class="cline-any cline-neutral">&nbsp;</span>
308
302
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -311,20 +305,20 @@
311
305
  <span class="cline-any cline-neutral">&nbsp;</span>
312
306
  <span class="cline-any cline-neutral">&nbsp;</span>
313
307
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">101x</span>
315
- <span class="cline-any cline-yes">101x</span>
308
+ <span class="cline-any cline-yes">99x</span>
309
+ <span class="cline-any cline-yes">99x</span>
316
310
  <span class="cline-any cline-yes">1x</span>
317
311
  <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-yes">101x</span>
319
- <span class="cline-any cline-yes">101x</span>
312
+ <span class="cline-any cline-yes">99x</span>
313
+ <span class="cline-any cline-yes">99x</span>
320
314
  <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-yes">101x</span>
315
+ <span class="cline-any cline-yes">99x</span>
322
316
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">101x</span>
324
- <span class="cline-any cline-yes">101x</span>
317
+ <span class="cline-any cline-yes">99x</span>
325
318
  <span class="cline-any cline-neutral">&nbsp;</span>
326
319
  <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-yes">39x</span>
320
+ <span class="cline-any cline-yes">34x</span>
321
+ <span class="cline-any cline-yes">2x</span>
328
322
  <span class="cline-any cline-yes">2x</span>
329
323
  <span class="cline-any cline-yes">2x</span>
330
324
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -335,7 +329,6 @@
335
329
  <span class="cline-any cline-neutral">&nbsp;</span>
336
330
  <span class="cline-any cline-neutral">&nbsp;</span>
337
331
  <span class="cline-any cline-yes">2x</span>
338
- <span class="cline-any cline-yes">2x</span>
339
332
  <span class="cline-any cline-neutral">&nbsp;</span>
340
333
  <span class="cline-any cline-neutral">&nbsp;</span>
341
334
  <span class="cline-any cline-yes">2x</span>
@@ -344,32 +337,30 @@
344
337
  <span class="cline-any cline-neutral">&nbsp;</span>
345
338
  <span class="cline-any cline-neutral">&nbsp;</span>
346
339
  <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
341
  <span class="cline-any cline-yes">2x</span>
348
342
  <span class="cline-any cline-neutral">&nbsp;</span>
349
343
  <span class="cline-any cline-neutral">&nbsp;</span>
350
344
  <span class="cline-any cline-yes">2x</span>
351
- <span class="cline-any cline-no">&nbsp;</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
353
- <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-yes">2x</span>
346
+ <span class="cline-any cline-yes">2x</span>
354
347
  <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-yes">2x</span>
355
349
  <span class="cline-any cline-no">&nbsp;</span>
356
- <span class="cline-any cline-no">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
350
  <span class="cline-any cline-neutral">&nbsp;</span>
359
351
  <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-yes">2x</span>
362
- <span class="cline-any cline-yes">2x</span>
363
352
  <span class="cline-any cline-yes">2x</span>
364
353
  <span class="cline-any cline-neutral">&nbsp;</span>
365
354
  <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">39x</span>
355
+ <span class="cline-any cline-yes">34x</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
367
357
  <span class="cline-any cline-no">&nbsp;</span>
368
358
  <span class="cline-any cline-no">&nbsp;</span>
369
359
  <span class="cline-any cline-no">&nbsp;</span>
370
360
  <span class="cline-any cline-no">&nbsp;</span>
371
361
  <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const linkRows = require("../../../db/linkedRows")
362
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
363
+ const linkRows = require("../../../db/linkedRows")
373
364
  const { getRowParams, generateTableID } = require("../../../db/utils")
374
365
  const { FieldTypes } = require("../../../constants")
375
366
  const {
@@ -378,14 +369,10 @@ const {
378
369
  getTable,
379
370
  handleDataImport,
380
371
  } = require("./utils")
381
- const usageQuota = require("../../../utilities/usageQuota")
382
- const { getAppDB } = require("@budibase/backend-core/context")
383
- const env = require("../../../environment")
384
- const { cleanupAttachments } = require("../../../utilities/rowProcessor")
385
- const { runStaticFormulaChecks } = require("./bulkFormula")
386
372
  &nbsp;
387
373
  exports.save = async function (ctx) {
388
- const db = getAppDB()
374
+ const appId = ctx.appId
375
+ const db = new CouchDB(appId)
389
376
  const { dataImport, ...rest } = ctx.request.body
390
377
  let tableToSave = {
391
378
  type: "table",
@@ -407,7 +394,8 @@ exports.save = async function (ctx) {
407
394
  // saving a table is a complex operation, involving many different steps, this
408
395
  // has been broken out into a utility to make it more obvious/easier to manipulate
409
396
  const tableSaveFunctions = new TableSaveFunctions({
410
- user: ctx.user,
397
+ db,
398
+ ctx,
411
399
  oldTable,
412
400
  dataImport,
413
401
  })
@@ -452,6 +440,7 @@ exports.save = async function (ctx) {
452
440
  // update linked rows
453
441
  try {
454
442
  const linkResp = await linkRows.updateLinks({
443
+ appId,
455
444
  eventType: oldTable
456
445
  ? linkRows.EventType.TABLE_UPDATED
457
446
  : linkRows.EventType.TABLE_SAVE,
@@ -475,13 +464,13 @@ exports.save = async function (ctx) {
475
464
  tableToSave._rev = result.rev
476
465
  &nbsp;
477
466
  tableToSave = await tableSaveFunctions.after(tableToSave)
478
- // has to run after, make sure it has _id
479
- await runStaticFormulaChecks(tableToSave, { oldTable })
467
+ &nbsp;
480
468
  return tableToSave
481
469
  }
482
470
  &nbsp;
483
471
  exports.destroy = async function (ctx) {
484
- const db = getAppDB()
472
+ const appId = ctx.appId
473
+ const db = new CouchDB(appId)
485
474
  const tableToDelete = await db.get(ctx.params.tableId)
486
475
  &nbsp;
487
476
  // Delete all rows for that table
@@ -491,10 +480,10 @@ exports.destroy = async function (ctx) {
491
480
  })
492
481
  )
493
482
  await db.bulkDocs(rows.rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; (<span class="cstat-no" title="statement not covered" >{ ...row.doc, _deleted: true })</span>))
494
- await usageQuota.update(usageQuota.Properties.ROW, -rows.rows.length)
495
483
  &nbsp;
496
484
  // update linked rows
497
485
  await linkRows.updateLinks({
486
+ appId,
498
487
  eventType: linkRows.EventType.TABLE_DELETE,
499
488
  table: tableToDelete,
500
489
  })
@@ -503,26 +492,22 @@ exports.destroy = async function (ctx) {
503
492
  await db.remove(tableToDelete)
504
493
  &nbsp;
505
494
  // remove table search index
506
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest()) {
507
- const currentIndexes = <span class="cstat-no" title="statement not covered" >await db.getIndexes()</span>
508
- const existingIndex = <span class="cstat-no" title="statement not covered" >currentIndexes.indexes.find(</span>
509
- <span class="fstat-no" title="function not covered" > ex</span>isting =&gt; <span class="cstat-no" title="statement not covered" >existing.name === `search:${ctx.params.tableId}`</span>
510
- )
511
- <span class="cstat-no" title="statement not covered" > if (existingIndex) {</span>
512
- <span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
513
- }
495
+ const currentIndexes = await db.getIndexes()
496
+ const existingIndex = currentIndexes.indexes.find(
497
+ existing =&gt; existing.name === `search:${ctx.params.tableId}`
498
+ )
499
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (existingIndex) {
500
+ <span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
514
501
  }
515
502
  &nbsp;
516
- // has to run after, make sure it has _id
517
- await runStaticFormulaChecks(tableToDelete, { deletion: true })
518
- await cleanupAttachments(tableToDelete, { rows })
519
503
  return tableToDelete
520
504
  }
521
505
  &nbsp;
522
506
  exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
523
- const table = <span class="cstat-no" title="statement not covered" >await getTable(ctx.params.tableId)</span>
507
+ const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
508
+ const table = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
524
509
  const { dataImport } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
525
- <span class="cstat-no" title="statement not covered" > await handleDataImport(ctx.user, table, dataImport)</span>
510
+ <span class="cstat-no" title="statement not covered" > await handleDataImport(appId, ctx.user, table, dataImport)</span>
526
511
  <span class="cstat-no" title="statement not covered" > return table</span>
527
512
  }
528
513
  &nbsp;</pre></td></tr></table></pre>
@@ -532,7 +517,7 @@ exports.bulkImport = <span class="fstat-no" title="function not covered" >as</sp
532
517
  <div class='footer quiet pad2 space-top1 center small'>
533
518
  Code coverage generated by
534
519
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
535
- at Tue Feb 01 2022 16:32:19 GMT+0000 (Coordinated Universal Time)
520
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
536
521
  </div>
537
522
  </div>
538
523
  <script src="../../../prettify.js"></script>