@budibase/server 1.0.49-alpha.1 → 1.0.49-alpha.13

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 (353) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +4 -5
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +2 -1
  6. package/__mocks__/pg.ts +3 -5
  7. package/builder/assets/{index.ba78c49d.css → index.83c0944f.css} +1 -1
  8. package/builder/assets/{index.ed1cf508.js → index.f686d3cd.js} +184 -184
  9. package/builder/index.html +2 -2
  10. package/coverage/clover.xml +2656 -2712
  11. package/coverage/coverage-final.json +104 -105
  12. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/application.js.html +157 -136
  15. package/coverage/lcov-report/api/controllers/auth.js.html +11 -14
  16. package/coverage/lcov-report/api/controllers/automation.js.html +39 -69
  17. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
  19. package/coverage/lcov-report/api/controllers/component.js.html +10 -13
  20. package/coverage/lcov-report/api/controllers/datasource.js.html +31 -37
  21. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  22. package/coverage/lcov-report/api/controllers/index.html +69 -54
  23. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
  25. package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
  26. package/coverage/lcov-report/{migrations/usageQuotas/syncApps.js.html → api/controllers/migrations.js.html} +30 -45
  27. package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
  28. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  29. package/coverage/lcov-report/api/controllers/query/index.js.html +38 -35
  30. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  31. package/coverage/lcov-report/api/controllers/role.js.html +16 -16
  32. package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
  33. package/coverage/lcov-report/api/controllers/row/external.js.html +48 -141
  34. package/coverage/lcov-report/api/controllers/row/index.html +28 -28
  35. package/coverage/lcov-report/api/controllers/row/index.js.html +13 -13
  36. package/coverage/lcov-report/api/controllers/row/internal.js.html +60 -105
  37. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +25 -31
  38. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +21 -24
  39. package/coverage/lcov-report/api/controllers/row/utils.js.html +27 -24
  40. package/coverage/lcov-report/api/controllers/screen.js.html +15 -21
  41. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  42. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +27 -57
  43. package/coverage/lcov-report/api/controllers/table/external.js.html +25 -34
  44. package/coverage/lcov-report/api/controllers/table/index.html +37 -37
  45. package/coverage/lcov-report/api/controllers/table/index.js.html +20 -20
  46. package/coverage/lcov-report/api/controllers/table/internal.js.html +45 -54
  47. package/coverage/lcov-report/api/controllers/table/utils.js.html +67 -103
  48. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/user.js.html +43 -52
  50. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  51. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  52. package/coverage/lcov-report/api/controllers/view/index.js.html +27 -33
  53. package/coverage/lcov-report/api/controllers/view/utils.js.html +35 -20
  54. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  55. package/coverage/lcov-report/api/controllers/webhook.js.html +34 -28
  56. package/coverage/lcov-report/api/index.html +1 -1
  57. package/coverage/lcov-report/api/index.js.html +3 -3
  58. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/index.html +22 -7
  70. package/coverage/lcov-report/api/routes/index.js.html +10 -4
  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/{migrations/usageQuotas/index.js.html → api/routes/migrations.js.html} +25 -55
  75. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  87. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  88. package/coverage/lcov-report/automations/actions.js.html +24 -24
  89. package/coverage/lcov-report/automations/automationUtils.js.html +7 -10
  90. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  91. package/coverage/lcov-report/automations/index.html +18 -18
  92. package/coverage/lcov-report/automations/index.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  94. package/coverage/lcov-report/automations/steps/createRow.js.html +7 -10
  95. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  96. package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
  97. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  98. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  99. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  100. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  101. package/coverage/lcov-report/automations/steps/index.html +1 -1
  102. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  103. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  104. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  105. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  106. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  107. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  108. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  109. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  110. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  111. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  114. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  115. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  118. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  119. package/coverage/lcov-report/automations/triggers.js.html +61 -55
  120. package/coverage/lcov-report/automations/utils.js.html +54 -42
  121. package/coverage/lcov-report/constants/index.html +1 -1
  122. package/coverage/lcov-report/constants/index.js.html +26 -26
  123. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  124. package/coverage/lcov-report/constants/screens.js.html +4 -4
  125. package/coverage/lcov-report/db/client.js.html +18 -18
  126. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  127. package/coverage/lcov-report/db/index.html +1 -1
  128. package/coverage/lcov-report/db/index.js.html +3 -3
  129. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +15 -27
  130. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  131. package/coverage/lcov-report/db/linkedRows/index.js.html +40 -82
  132. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +40 -40
  133. package/coverage/lcov-report/db/newid.js.html +4 -4
  134. package/coverage/lcov-report/db/utils.js.html +74 -74
  135. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  136. package/coverage/lcov-report/events/index.html +1 -1
  137. package/coverage/lcov-report/events/index.js.html +5 -5
  138. package/coverage/lcov-report/events/utils.js.html +3 -3
  139. package/coverage/lcov-report/index.html +97 -112
  140. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  141. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  142. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  143. package/coverage/lcov-report/middleware/authorized.js.html +21 -15
  144. package/coverage/lcov-report/middleware/builder.js.html +3 -3
  145. package/coverage/lcov-report/middleware/currentapp.js.html +72 -60
  146. package/coverage/lcov-report/middleware/index.html +28 -28
  147. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  148. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  149. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  150. package/coverage/lcov-report/middleware/usageQuota.js.html +29 -35
  151. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  152. package/coverage/lcov-report/threads/automation.js.html +30 -24
  153. package/coverage/lcov-report/threads/index.html +25 -25
  154. package/coverage/lcov-report/threads/index.js.html +10 -10
  155. package/coverage/lcov-report/threads/query.js.html +26 -47
  156. package/coverage/lcov-report/threads/utils.js.html +14 -14
  157. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  158. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  159. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  160. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  161. package/coverage/lcov-report/utilities/global.js.html +57 -48
  162. package/coverage/lcov-report/utilities/index.html +27 -27
  163. package/coverage/lcov-report/utilities/index.js.html +42 -72
  164. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  165. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  167. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  168. package/coverage/lcov-report/utilities/rowProcessor/index.html +11 -11
  169. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +32 -74
  170. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +4 -4
  171. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  172. package/coverage/lcov-report/utilities/security.js.html +8 -8
  173. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  174. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  175. package/coverage/lcov-report/utilities/usageQuota/index.js.html +13 -10
  176. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +5 -2
  177. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  178. package/coverage/lcov-report/utilities/users.js.html +9 -9
  179. package/coverage/lcov-report/utilities/workerRequests.js.html +16 -16
  180. package/coverage/lcov.info +4018 -4092
  181. package/dist/api/controllers/application.js +49 -48
  182. package/dist/api/controllers/auth.js +4 -5
  183. package/dist/api/controllers/automation.js +14 -19
  184. package/dist/api/controllers/cloud.js +2 -3
  185. package/dist/api/controllers/component.js +3 -4
  186. package/dist/api/controllers/datasource.js +9 -10
  187. package/dist/api/controllers/deploy/Deployment.js +3 -6
  188. package/dist/api/controllers/deploy/index.js +12 -13
  189. package/dist/api/controllers/dev.js +5 -5
  190. package/dist/api/controllers/layout.js +3 -3
  191. package/dist/api/controllers/metadata.js +4 -4
  192. package/dist/api/controllers/migrations.js +21 -0
  193. package/dist/api/controllers/permission.js +4 -4
  194. package/dist/api/controllers/query/import/index.js +4 -6
  195. package/dist/api/controllers/query/index.js +11 -10
  196. package/dist/api/controllers/role.js +5 -5
  197. package/dist/api/controllers/routing.js +5 -6
  198. package/dist/api/controllers/row/ExternalRequest.js +90 -67
  199. package/dist/api/controllers/row/external.js +14 -22
  200. package/dist/api/controllers/row/internal.js +29 -44
  201. package/dist/api/controllers/row/internalSearch.js +11 -13
  202. package/dist/api/controllers/row/staticFormula.js +11 -11
  203. package/dist/api/controllers/row/utils.js +7 -6
  204. package/dist/api/controllers/screen.js +5 -7
  205. package/dist/api/controllers/static/index.js +4 -4
  206. package/dist/api/controllers/table/bulkFormula.js +14 -15
  207. package/dist/api/controllers/table/external.js +7 -10
  208. package/dist/api/controllers/table/index.js +5 -5
  209. package/dist/api/controllers/table/internal.js +16 -19
  210. package/dist/api/controllers/table/utils.js +29 -31
  211. package/dist/api/controllers/user.js +16 -20
  212. package/dist/api/controllers/view/index.js +8 -10
  213. package/dist/api/controllers/view/utils.js +9 -4
  214. package/dist/api/controllers/webhook.js +10 -8
  215. package/dist/api/routes/index.js +2 -0
  216. package/dist/api/routes/migrations.js +9 -0
  217. package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
  218. package/dist/app.js +35 -5
  219. package/dist/automations/automationUtils.js +2 -3
  220. package/dist/automations/steps/createRow.js +1 -1
  221. package/dist/automations/steps/updateRow.js +1 -1
  222. package/dist/automations/triggers.js +27 -25
  223. package/dist/automations/utils.js +10 -5
  224. package/dist/db/linkedRows/LinkController.js +3 -7
  225. package/dist/db/linkedRows/index.js +16 -26
  226. package/dist/db/linkedRows/linkUtils.js +6 -6
  227. package/dist/db/views/staticViews.js +9 -10
  228. package/dist/environment.js +3 -1
  229. package/dist/integrations/base/sql.js +49 -15
  230. package/dist/integrations/utils.js +3 -0
  231. package/dist/middleware/authorized.js +5 -3
  232. package/dist/middleware/builder.js +2 -2
  233. package/dist/middleware/currentapp.js +41 -37
  234. package/dist/middleware/usageQuota.js +2 -4
  235. package/dist/migrations/functions/appUrls.js +46 -0
  236. package/dist/migrations/functions/quotas1.js +50 -0
  237. package/dist/migrations/{usageQuotas → functions/usageQuotas}/index.js +6 -10
  238. package/dist/migrations/{usageQuotas → functions/usageQuotas}/syncApps.js +12 -9
  239. package/dist/migrations/{usageQuotas → functions/usageQuotas}/syncRows.js +16 -12
  240. package/dist/migrations/functions/userEmailViewCasing.js +24 -0
  241. package/dist/migrations/index.js +62 -0
  242. package/dist/package.json +4 -4
  243. package/dist/tests/utilities/TestConfiguration.js +70 -44
  244. package/dist/threads/automation.js +13 -11
  245. package/dist/threads/query.js +13 -19
  246. package/dist/tsconfig.tsbuildinfo +1 -1
  247. package/dist/utilities/fileSystem/index.js +4 -3
  248. package/dist/utilities/global.js +15 -12
  249. package/dist/utilities/index.js +7 -17
  250. package/dist/utilities/routing/index.js +5 -5
  251. package/dist/utilities/rowProcessor/index.js +9 -10
  252. package/dist/utilities/usageQuota/index.js +1 -0
  253. package/dist/utilities/usageQuota/rows.js +1 -0
  254. package/dist/utilities/users.js +3 -3
  255. package/dist/utilities/workerRequests.js +4 -4
  256. package/package.json +5 -5
  257. package/scripts/integrations/mssql/data/Dockerfile +1 -1
  258. package/scripts/integrations/mssql/data/setup.sql +17 -4
  259. package/scripts/integrations/postgres/init.sql +11 -6
  260. package/scripts/likeCypress.ts +1 -1
  261. package/src/api/controllers/application.js +38 -31
  262. package/src/api/controllers/auth.js +4 -5
  263. package/src/api/controllers/automation.js +13 -23
  264. package/src/api/controllers/cloud.js +2 -3
  265. package/src/api/controllers/component.js +3 -4
  266. package/src/api/controllers/datasource.js +9 -11
  267. package/src/api/controllers/deploy/Deployment.js +3 -7
  268. package/src/api/controllers/deploy/index.js +20 -13
  269. package/src/api/controllers/dev.js +5 -5
  270. package/src/api/controllers/layout.js +3 -3
  271. package/src/api/controllers/metadata.js +4 -9
  272. package/src/api/controllers/migrations.js +13 -0
  273. package/src/api/controllers/permission.js +4 -4
  274. package/src/api/controllers/query/import/index.ts +4 -6
  275. package/src/api/controllers/query/import/tests/index.spec.js +2 -1
  276. package/src/api/controllers/query/index.js +11 -10
  277. package/src/api/controllers/role.js +5 -5
  278. package/src/api/controllers/routing.js +5 -6
  279. package/src/api/controllers/row/ExternalRequest.ts +67 -43
  280. package/src/api/controllers/row/external.js +27 -58
  281. package/src/api/controllers/row/internal.js +29 -44
  282. package/src/api/controllers/row/internalSearch.js +11 -13
  283. package/src/api/controllers/row/staticFormula.js +10 -11
  284. package/src/api/controllers/row/utils.js +7 -6
  285. package/src/api/controllers/screen.js +5 -7
  286. package/src/api/controllers/static/index.js +4 -4
  287. package/src/api/controllers/table/bulkFormula.js +13 -23
  288. package/src/api/controllers/table/external.js +7 -10
  289. package/src/api/controllers/table/index.js +5 -5
  290. package/src/api/controllers/table/internal.js +18 -21
  291. package/src/api/controllers/table/utils.js +29 -41
  292. package/src/api/controllers/user.js +17 -20
  293. package/src/api/controllers/view/index.js +8 -10
  294. package/src/api/controllers/view/utils.js +9 -4
  295. package/src/api/controllers/webhook.js +10 -8
  296. package/src/api/routes/index.js +2 -0
  297. package/src/api/routes/migrations.js +14 -0
  298. package/src/api/routes/tests/automation.spec.js +1 -0
  299. package/src/api/routes/tests/misc.spec.js +0 -1
  300. package/src/api/routes/tests/routing.spec.js +21 -12
  301. package/src/api/routes/tests/row.spec.js +7 -4
  302. package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
  303. package/src/app.ts +18 -5
  304. package/src/automations/automationUtils.js +2 -3
  305. package/src/automations/steps/createRow.js +0 -1
  306. package/src/automations/steps/updateRow.js +1 -1
  307. package/src/automations/triggers.js +33 -31
  308. package/src/automations/utils.js +9 -5
  309. package/src/db/linkedRows/LinkController.js +3 -7
  310. package/src/db/linkedRows/index.js +16 -30
  311. package/src/db/linkedRows/linkUtils.js +6 -6
  312. package/src/db/tests/linkController.spec.js +0 -1
  313. package/src/db/tests/linkTests.spec.js +5 -6
  314. package/src/db/views/staticViews.js +8 -10
  315. package/src/environment.js +3 -1
  316. package/src/integrations/base/sql.ts +61 -22
  317. package/src/integrations/utils.ts +4 -1
  318. package/src/middleware/authorized.js +5 -3
  319. package/src/middleware/builder.js +2 -2
  320. package/src/middleware/currentapp.js +50 -46
  321. package/src/middleware/tests/authorized.spec.js +7 -2
  322. package/src/middleware/tests/currentapp.spec.js +6 -0
  323. package/src/middleware/usageQuota.js +2 -4
  324. package/src/migrations/functions/appUrls.ts +34 -0
  325. package/src/migrations/functions/quotas1.ts +20 -0
  326. package/src/migrations/functions/tests/appUrls.spec.js +29 -0
  327. package/src/migrations/{tests/usageQuotas/index.spec.js → functions/tests/quotas1.spec.js} +5 -5
  328. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
  329. package/src/migrations/functions/usageQuotas/index.ts +8 -0
  330. package/src/migrations/{usageQuotas/syncApps.js → functions/usageQuotas/syncApps.ts} +6 -6
  331. package/src/migrations/functions/usageQuotas/syncRows.ts +22 -0
  332. package/src/migrations/{tests/usageQuotas → functions/usageQuotas/tests}/syncApps.spec.js +4 -4
  333. package/src/migrations/{tests/usageQuotas → functions/usageQuotas/tests}/syncRows.spec.js +4 -4
  334. package/src/migrations/functions/userEmailViewCasing.ts +13 -0
  335. package/src/migrations/index.ts +56 -0
  336. package/src/module.d.ts +3 -0
  337. package/src/tests/utilities/TestConfiguration.js +73 -50
  338. package/src/threads/automation.js +17 -15
  339. package/src/threads/query.js +14 -21
  340. package/src/utilities/fileSystem/index.js +4 -3
  341. package/src/utilities/global.js +15 -12
  342. package/src/utilities/index.js +7 -17
  343. package/src/utilities/routing/index.js +5 -5
  344. package/src/utilities/rowProcessor/index.js +9 -23
  345. package/src/utilities/usageQuota/index.js +1 -0
  346. package/src/utilities/usageQuota/rows.js +1 -0
  347. package/src/utilities/users.js +3 -3
  348. package/src/utilities/workerRequests.js +4 -4
  349. package/tsconfig.json +2 -1
  350. package/coverage/lcov-report/migrations/usageQuotas/index.html +0 -141
  351. package/coverage/lcov-report/migrations/usageQuotas/syncRows.js.html +0 -143
  352. package/src/migrations/usageQuotas/index.js +0 -24
  353. package/src/migrations/usageQuotas/syncRows.js +0 -21
@@ -99,10 +99,10 @@
99
99
  <a name='L40'></a><a href='#L40'>40</a>
100
100
  <a name='L41'></a><a href='#L41'>41</a>
101
101
  <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
103
- <span class="cline-any cline-yes">38x</span>
102
+ <a name='L43'></a><a href='#L43'>43</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">40x</span>
103
+ <span class="cline-any cline-yes">40x</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-yes">38x</span>
105
+ <span class="cline-any cline-yes">40x</span>
106
106
  <span class="cline-any cline-yes">28x</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -124,12 +124,12 @@
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-yes">38x</span>
127
+ <span class="cline-any cline-yes">40x</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
129
  <span class="cline-any cline-yes">23x</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-yes">38x</span>
132
+ <span class="cline-any cline-yes">40x</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-yes">23x</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -190,7 +190,7 @@ exports.generateQueryPreviewValidation = () =&gt; {
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
193
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
193
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  </div>
196
196
  <script src="../../../prettify.js"></script>
@@ -155,20 +155,20 @@
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">36x</span>
158
+ <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
159
159
  <span class="cline-any cline-neutral">&nbsp;</span>
160
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
161
  <span class="cline-any cline-neutral">&nbsp;</span>
162
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-yes">38x</span>
163
164
  <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-yes">36x</span>
165
165
  <span class="cline-any cline-neutral">&nbsp;</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
167
  <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-yes">38x</span>
169
+ <span class="cline-any cline-yes">38x</span>
168
170
  <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-yes">36x</span>
170
- <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-yes">36x</span>
171
+ <span class="cline-any cline-yes">38x</span>
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
174
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -196,15 +196,15 @@
196
196
  <span class="cline-any cline-neutral">&nbsp;</span>
197
197
  <span class="cline-any cline-neutral">&nbsp;</span>
198
198
  <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-yes">36x</span>
199
+ <span class="cline-any cline-yes">38x</span>
200
200
  <span class="cline-any cline-yes">2x</span>
201
201
  <span class="cline-any cline-neutral">&nbsp;</span>
202
202
  <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-yes">36x</span>
203
+ <span class="cline-any cline-yes">38x</span>
204
204
  <span class="cline-any cline-yes">1x</span>
205
205
  <span class="cline-any cline-neutral">&nbsp;</span>
206
206
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">36x</span>
207
+ <span class="cline-any cline-yes">38x</span>
208
208
  <span class="cline-any cline-yes">3x</span>
209
209
  <span class="cline-any cline-yes">3x</span>
210
210
  <span class="cline-any cline-yes">3x</span>
@@ -225,7 +225,7 @@
225
225
  <span class="cline-any cline-yes">3x</span>
226
226
  <span class="cline-any cline-neutral">&nbsp;</span>
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-yes">36x</span>
228
+ <span class="cline-any cline-yes">38x</span>
229
229
  <span class="cline-any cline-yes">1x</span>
230
230
  <span class="cline-any cline-yes">1x</span>
231
231
  <span class="cline-any cline-yes">1x</span>
@@ -253,8 +253,7 @@
253
253
  <span class="cline-any cline-yes">1x</span>
254
254
  <span class="cline-any cline-yes">1x</span>
255
255
  <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 CouchDB = require("../../db")
257
- const {
256
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
258
257
  Role,
259
258
  getRole,
260
259
  isBuiltin,
@@ -265,6 +264,7 @@ const {
265
264
  getUserMetadataParams,
266
265
  InternalTables,
267
266
  } = require("../../db/utils")
267
+ const { getAppDB } = require("@budibase/backend-core/context")
268
268
  &nbsp;
269
269
  const UpdateRolesOptions = {
270
270
  CREATED: "created",
@@ -295,15 +295,15 @@ async function updateRolesOnUserTable(db, roleId, updateOption) {
295
295
  }
296
296
  &nbsp;
297
297
  exports.fetch = async function (ctx) {
298
- ctx.body = await getAllRoles(ctx.appId)
298
+ ctx.body = await getAllRoles()
299
299
  }
300
300
  &nbsp;
301
301
  exports.find = async function (ctx) {
302
- ctx.body = await getRole(ctx.appId, ctx.params.roleId)
302
+ ctx.body = await getRole(ctx.params.roleId)
303
303
  }
304
304
  &nbsp;
305
305
  exports.save = async function (ctx) {
306
- const db = new CouchDB(ctx.appId)
306
+ const db = getAppDB()
307
307
  let { _id, name, inherits, permissionId } = ctx.request.body
308
308
  if (!_id) {
309
309
  _id = generateRoleID()
@@ -324,7 +324,7 @@ exports.save = async function (ctx) {
324
324
  }
325
325
  &nbsp;
326
326
  exports.destroy = async function (ctx) {
327
- const db = new CouchDB(ctx.appId)
327
+ const db = getAppDB()
328
328
  const roleId = ctx.params.roleId
329
329
  <span class="missing-if-branch" title="if path not taken" >I</span>if (isBuiltin(roleId)) {
330
330
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot delete builtin role.")</span>
@@ -358,7 +358,7 @@ exports.destroy = async function (ctx) {
358
358
  <div class='footer quiet pad2 space-top1 center small'>
359
359
  Code coverage generated by
360
360
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
361
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
361
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
362
362
  </div>
363
363
  </div>
364
364
  <script src="../../prettify.js"></script>
@@ -149,8 +149,7 @@
149
149
  <a name='L90'></a><a href='#L90'>90</a>
150
150
  <a name='L91'></a><a href='#L91'>91</a>
151
151
  <a name='L92'></a><a href='#L92'>92</a>
152
- <a name='L93'></a><a href='#L93'>93</a>
153
- <a name='L94'></a><a href='#L94'>94</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
152
+ <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
154
153
  <span class="cline-any cline-neutral">&nbsp;</span>
155
154
  <span class="cline-any cline-neutral">&nbsp;</span>
156
155
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -195,7 +194,6 @@
195
194
  <span class="cline-any cline-neutral">&nbsp;</span>
196
195
  <span class="cline-any cline-neutral">&nbsp;</span>
197
196
  <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-neutral">&nbsp;</span>
199
197
  <span class="cline-any cline-yes">3x</span>
200
198
  <span class="cline-any cline-yes">3x</span>
201
199
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -284,12 +282,11 @@ Routing.prototype.addScreenId = function (fullpath, roleId, screenId) {
284
282
  &nbsp;
285
283
  /**
286
284
  * Gets the full routing structure by querying the routing view and processing the result into the tree.
287
- * @param {string} appId The application to produce the routing structure for.
288
285
  * @returns {Promise&lt;object&gt;} The routing structure, this is the full structure designed for use in the builder,
289
286
  * if the client routing is required then the updateRoutingStructureForUserRole should be used.
290
287
  */
291
- async function getRoutingStructure(appId) {
292
- const screenRoutes = await getRoutingInfo(appId)
288
+ async function getRoutingStructure() {
289
+ const screenRoutes = await getRoutingInfo()
293
290
  const routing = new Routing()
294
291
  &nbsp;
295
292
  for (let screenRoute of screenRoutes) {
@@ -302,13 +299,13 @@ async function getRoutingStructure(appId) {
302
299
  }
303
300
  &nbsp;
304
301
  exports.fetch = async ctx =&gt; {
305
- ctx.body = await getRoutingStructure(ctx.appId)
302
+ ctx.body = await getRoutingStructure()
306
303
  }
307
304
  &nbsp;
308
305
  exports.clientFetch = async ctx =&gt; {
309
- const routing = await getRoutingStructure(ctx.appId)
306
+ const routing = await getRoutingStructure()
310
307
  let roleId = ctx.user.role._id
311
- const roleIds = await getUserRoleHierarchy(ctx.appId, roleId)
308
+ const roleIds = await getUserRoleHierarchy(roleId)
312
309
  for (let topLevel of Object.values(routing.routes)) {
313
310
  for (let subpathKey of Object.keys(topLevel.subpaths)) {
314
311
  let found = false
@@ -343,7 +340,7 @@ exports.clientFetch = async ctx =&gt; {
343
340
  <div class='footer quiet pad2 space-top1 center small'>
344
341
  Code coverage generated by
345
342
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
346
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
343
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
347
344
  </div>
348
345
  </div>
349
346
  <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">14.85% </span>
26
+ <span class="strong">16.12% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>15/101</span>
28
+ <span class='fraction'>15/93</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">15.15% </span>
47
+ <span class="strong">16.48% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>15/99</span>
49
+ <span class='fraction'>15/91</span>
50
50
  </div>
51
51
 
52
52
 
@@ -257,49 +257,18 @@
257
257
  <a name='L198'></a><a href='#L198'>198</a>
258
258
  <a name='L199'></a><a href='#L199'>199</a>
259
259
  <a name='L200'></a><a href='#L200'>200</a>
260
- <a name='L201'></a><a href='#L201'>201</a>
261
- <a name='L202'></a><a href='#L202'>202</a>
262
- <a name='L203'></a><a href='#L203'>203</a>
263
- <a name='L204'></a><a href='#L204'>204</a>
264
- <a name='L205'></a><a href='#L205'>205</a>
265
- <a name='L206'></a><a href='#L206'>206</a>
266
- <a name='L207'></a><a href='#L207'>207</a>
267
- <a name='L208'></a><a href='#L208'>208</a>
268
- <a name='L209'></a><a href='#L209'>209</a>
269
- <a name='L210'></a><a href='#L210'>210</a>
270
- <a name='L211'></a><a href='#L211'>211</a>
271
- <a name='L212'></a><a href='#L212'>212</a>
272
- <a name='L213'></a><a href='#L213'>213</a>
273
- <a name='L214'></a><a href='#L214'>214</a>
274
- <a name='L215'></a><a href='#L215'>215</a>
275
- <a name='L216'></a><a href='#L216'>216</a>
276
- <a name='L217'></a><a href='#L217'>217</a>
277
- <a name='L218'></a><a href='#L218'>218</a>
278
- <a name='L219'></a><a href='#L219'>219</a>
279
- <a name='L220'></a><a href='#L220'>220</a>
280
- <a name='L221'></a><a href='#L221'>221</a>
281
- <a name='L222'></a><a href='#L222'>222</a>
282
- <a name='L223'></a><a href='#L223'>223</a>
283
- <a name='L224'></a><a href='#L224'>224</a>
284
- <a name='L225'></a><a href='#L225'>225</a>
285
- <a name='L226'></a><a href='#L226'>226</a>
286
- <a name='L227'></a><a href='#L227'>227</a>
287
- <a name='L228'></a><a href='#L228'>228</a>
288
- <a name='L229'></a><a href='#L229'>229</a>
289
- <a name='L230'></a><a href='#L230'>230</a>
290
- <a name='L231'></a><a href='#L231'>231</a>
291
- <a name='L232'></a><a href='#L232'>232</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
260
+ <a name='L201'></a><a href='#L201'>201</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
292
261
  <span class="cline-any cline-neutral">&nbsp;</span>
293
262
  <span class="cline-any cline-neutral">&nbsp;</span>
294
263
  <span class="cline-any cline-neutral">&nbsp;</span>
295
264
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-yes">37x</span>
265
+ <span class="cline-any cline-yes">39x</span>
297
266
  <span class="cline-any cline-neutral">&nbsp;</span>
298
267
  <span class="cline-any cline-neutral">&nbsp;</span>
299
268
  <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-yes">37x</span>
301
- <span class="cline-any cline-yes">37x</span>
302
- <span class="cline-any cline-yes">37x</span>
269
+ <span class="cline-any cline-yes">39x</span>
270
+ <span class="cline-any cline-yes">39x</span>
271
+ <span class="cline-any cline-yes">39x</span>
303
272
  <span class="cline-any cline-neutral">&nbsp;</span>
304
273
  <span class="cline-any cline-neutral">&nbsp;</span>
305
274
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -318,12 +287,9 @@
318
287
  <span class="cline-any cline-no">&nbsp;</span>
319
288
  <span class="cline-any cline-neutral">&nbsp;</span>
320
289
  <span class="cline-any cline-neutral">&nbsp;</span>
290
+ <span class="cline-any cline-yes">39x</span>
321
291
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">37x</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-yes">37x</span>
326
- <span class="cline-any cline-no">&nbsp;</span>
292
+ <span class="cline-any cline-yes">39x</span>
327
293
  <span class="cline-any cline-no">&nbsp;</span>
328
294
  <span class="cline-any cline-no">&nbsp;</span>
329
295
  <span class="cline-any cline-no">&nbsp;</span>
@@ -335,8 +301,7 @@
335
301
  <span class="cline-any cline-neutral">&nbsp;</span>
336
302
  <span class="cline-any cline-neutral">&nbsp;</span>
337
303
  <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-yes">37x</span>
339
- <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-yes">39x</span>
340
305
  <span class="cline-any cline-no">&nbsp;</span>
341
306
  <span class="cline-any cline-no">&nbsp;</span>
342
307
  <span class="cline-any cline-no">&nbsp;</span>
@@ -344,7 +309,7 @@
344
309
  <span class="cline-any cline-neutral">&nbsp;</span>
345
310
  <span class="cline-any cline-neutral">&nbsp;</span>
346
311
  <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">37x</span>
312
+ <span class="cline-any cline-yes">39x</span>
348
313
  <span class="cline-any cline-neutral">&nbsp;</span>
349
314
  <span class="cline-any cline-neutral">&nbsp;</span>
350
315
  <span class="cline-any cline-no">&nbsp;</span>
@@ -352,44 +317,30 @@
352
317
  <span class="cline-any cline-no">&nbsp;</span>
353
318
  <span class="cline-any cline-neutral">&nbsp;</span>
354
319
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">37x</span>
356
- <span class="cline-any cline-no">&nbsp;</span>
320
+ <span class="cline-any cline-yes">39x</span>
357
321
  <span class="cline-any cline-no">&nbsp;</span>
358
322
  <span class="cline-any cline-no">&nbsp;</span>
359
323
  <span class="cline-any cline-neutral">&nbsp;</span>
360
324
  <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-yes">37x</span>
362
- <span class="cline-any cline-no">&nbsp;</span>
325
+ <span class="cline-any cline-yes">39x</span>
363
326
  <span class="cline-any cline-no">&nbsp;</span>
364
327
  <span class="cline-any cline-no">&nbsp;</span>
365
328
  <span class="cline-any cline-no">&nbsp;</span>
366
329
  <span class="cline-any cline-neutral">&nbsp;</span>
367
330
  <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
331
  <span class="cline-any cline-no">&nbsp;</span>
374
332
  <span class="cline-any cline-neutral">&nbsp;</span>
375
333
  <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-yes">37x</span>
377
- <span class="cline-any cline-no">&nbsp;</span>
334
+ <span class="cline-any cline-yes">39x</span>
378
335
  <span class="cline-any cline-no">&nbsp;</span>
379
336
  <span class="cline-any cline-no">&nbsp;</span>
380
337
  <span class="cline-any cline-no">&nbsp;</span>
381
338
  <span class="cline-any cline-neutral">&nbsp;</span>
382
339
  <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
340
  <span class="cline-any cline-no">&nbsp;</span>
389
341
  <span class="cline-any cline-neutral">&nbsp;</span>
390
342
  <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-yes">37x</span>
392
- <span class="cline-any cline-no">&nbsp;</span>
343
+ <span class="cline-any cline-yes">39x</span>
393
344
  <span class="cline-any cline-no">&nbsp;</span>
394
345
  <span class="cline-any cline-no">&nbsp;</span>
395
346
  <span class="cline-any cline-no">&nbsp;</span>
@@ -404,8 +355,7 @@
404
355
  <span class="cline-any cline-no">&nbsp;</span>
405
356
  <span class="cline-any cline-neutral">&nbsp;</span>
406
357
  <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-yes">37x</span>
408
- <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-yes">39x</span>
409
359
  <span class="cline-any cline-no">&nbsp;</span>
410
360
  <span class="cline-any cline-no">&nbsp;</span>
411
361
  <span class="cline-any cline-no">&nbsp;</span>
@@ -450,24 +400,18 @@
450
400
  <span class="cline-any cline-neutral">&nbsp;</span>
451
401
  <span class="cline-any cline-neutral">&nbsp;</span>
452
402
  <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
403
  <span class="cline-any cline-no">&nbsp;</span>
459
404
  <span class="cline-any cline-neutral">&nbsp;</span>
460
405
  <span class="cline-any cline-neutral">&nbsp;</span>
461
406
  <span class="cline-any cline-no">&nbsp;</span>
462
407
  <span class="cline-any cline-neutral">&nbsp;</span>
463
408
  <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-yes">37x</span>
409
+ <span class="cline-any cline-yes">39x</span>
465
410
  <span class="cline-any cline-neutral">&nbsp;</span>
466
411
  <span class="cline-any cline-no">&nbsp;</span>
467
412
  <span class="cline-any cline-neutral">&nbsp;</span>
468
413
  <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-yes">37x</span>
470
- <span class="cline-any cline-no">&nbsp;</span>
414
+ <span class="cline-any cline-yes">39x</span>
471
415
  <span class="cline-any cline-no">&nbsp;</span>
472
416
  <span class="cline-any cline-no">&nbsp;</span>
473
417
  <span class="cline-any cline-no">&nbsp;</span>
@@ -481,11 +425,6 @@
481
425
  <span class="cline-any cline-neutral">&nbsp;</span>
482
426
  <span class="cline-any cline-neutral">&nbsp;</span>
483
427
  <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
428
  <span class="cline-any cline-no">&nbsp;</span>
490
429
  <span class="cline-any cline-no">&nbsp;</span>
491
430
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -516,7 +455,6 @@
516
455
  <span class="cline-any cline-neutral">&nbsp;</span>
517
456
  <span class="cline-any cline-neutral">&nbsp;</span>
518
457
  <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
458
  <span class="cline-any cline-no">&nbsp;</span>
521
459
  <span class="cline-any cline-neutral">&nbsp;</span>
522
460
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
@@ -530,9 +468,9 @@ const {
530
468
  breakRowIdField,
531
469
  } = require("../../../integrations/utils")
532
470
  const ExternalRequest = require("./ExternalRequest")
533
- const CouchDB = require("../../../db")
471
+ const { getAppDB } = require("@budibase/backend-core/context")
534
472
  &nbsp;
535
- async function <span class="fstat-no" title="function not covered" >handleRequest(</span>appId, operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
473
+ async function <span class="fstat-no" title="function not covered" >handleRequest(</span>operation, tableId, opts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
536
474
  // make sure the filters are cleaned up, no empty strings for equals, fuzzy or string
537
475
  <span class="cstat-no" title="statement not covered" > if (opts &amp;&amp; opts.filters) {</span>
538
476
  <span class="cstat-no" title="statement not covered" > for (let filterField of NoEmptyFilterStrings) {</span>
@@ -546,31 +484,27 @@ async function <span class="fstat-no" title="function not covered" >handleReques
546
484
  }
547
485
  }
548
486
  }
549
- <span class="cstat-no" title="statement not covered" > return new ExternalRequest(appId, operation, tableId, opts.datasource).run(</span>
550
- opts
551
- )
487
+ <span class="cstat-no" title="statement not covered" > return new ExternalRequest(operation, tableId, opts.datasource).run(opts)</span>
552
488
  }
553
489
  &nbsp;
554
490
  exports.handleRequest = handleRequest
555
491
  &nbsp;
556
492
  exports.patch = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
557
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
558
493
  const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
559
494
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
560
495
  const id = <span class="cstat-no" title="statement not covered" >breakRowIdField(inputs._id)</span>
561
496
  // don't save the ID to db
562
497
  <span class="cstat-no" title="statement not covered" > delete inputs._id</span>
563
- <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.UPDATE, tableId, {</span>
498
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.UPDATE, tableId, {</span>
564
499
  id,
565
500
  row: inputs,
566
501
  })
567
502
  }
568
503
  &nbsp;
569
504
  exports.save = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
570
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
571
505
  const inputs = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
572
506
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
573
- <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.CREATE, tableId, {</span>
507
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.CREATE, tableId, {</span>
574
508
  row: inputs,
575
509
  })
576
510
  }
@@ -584,49 +518,35 @@ exports.fetchView = <span class="fstat-no" title="function not covered" >as</spa
584
518
  }
585
519
  &nbsp;
586
520
  exports.fetch = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
587
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
588
521
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
589
- <span class="cstat-no" title="statement not covered" > return handleRequest(appId, DataSourceOperation.READ, tableId)</span>
522
+ <span class="cstat-no" title="statement not covered" > return handleRequest(DataSourceOperation.READ, tableId)</span>
590
523
  }
591
524
  &nbsp;
592
525
  exports.find = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
593
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
594
526
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
595
527
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
596
- const response = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
597
- appId,
598
- DataSourceOperation.READ,
599
- tableId,
600
- {
601
- id,
602
- }
603
- )
528
+ const response = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
529
+ id,
530
+ })
604
531
  <span class="cstat-no" title="statement not covered" > return response ? response[0] : response</span>
605
532
  }
606
533
  &nbsp;
607
534
  exports.destroy = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
608
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
609
535
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
610
536
  const id = <span class="cstat-no" title="statement not covered" >ctx.request.body._id</span>
611
- const { row } = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
612
- appId,
613
- DataSourceOperation.DELETE,
614
- tableId,
615
- {
616
- id,
617
- }
618
- )
537
+ const { row } = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.DELETE, tableId, {</span>
538
+ id,
539
+ })
619
540
  <span class="cstat-no" title="statement not covered" > return { response: { ok: true }, row }</span>
620
541
  }
621
542
  &nbsp;
622
543
  exports.bulkDestroy = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
623
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
624
544
  const { rows } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
625
545
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
626
546
  let promises = <span class="cstat-no" title="statement not covered" >[]</span>
627
547
  <span class="cstat-no" title="statement not covered" > for (let row of rows) {</span>
628
548
  <span class="cstat-no" title="statement not covered" > promises.push(</span>
629
- handleRequest(appId, DataSourceOperation.DELETE, tableId, {
549
+ handleRequest(DataSourceOperation.DELETE, tableId, {
630
550
  id: breakRowIdField(row._id),
631
551
  })
632
552
  )
@@ -636,7 +556,6 @@ exports.bulkDestroy = <span class="fstat-no" title="function not covered" >as</s
636
556
  }
637
557
  &nbsp;
638
558
  exports.search = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
639
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
640
559
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
641
560
  const { paginate, query, ...params } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
642
561
  let { bookmark, limit } = <span class="cstat-no" title="statement not covered" >params</span>
@@ -666,26 +585,21 @@ exports.search = <span class="fstat-no" title="function not covered" >as</span>y
666
585
  [params.sort]: direction,
667
586
  }
668
587
  }
669
- const rows = <span class="cstat-no" title="statement not covered" >await handleRequest(appId, DataSourceOperation.READ, tableId, {</span>
588
+ const rows = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
670
589
  filters: query,
671
590
  sort,
672
591
  paginate: paginateObj,
673
592
  })
674
593
  let hasNextPage = <span class="cstat-no" title="statement not covered" >false</span>
675
594
  <span class="cstat-no" title="statement not covered" > if (paginate &amp;&amp; rows.length === limit) {</span>
676
- const nextRows = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
677
- appId,
678
- DataSourceOperation.READ,
679
- tableId,
680
- {
681
- filters: query,
682
- sort,
683
- paginate: {
684
- limit: 1,
685
- page: bookmark * limit + 1,
686
- },
687
- }
688
- )
595
+ const nextRows = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
596
+ filters: query,
597
+ sort,
598
+ paginate: {
599
+ limit: 1,
600
+ page: bookmark * limit + 1,
601
+ },
602
+ })
689
603
  <span class="cstat-no" title="statement not covered" > hasNextPage = nextRows.length &gt; 0</span>
690
604
  }
691
605
  // need wrapper object for bookmarks etc when paginating
@@ -698,25 +612,19 @@ exports.validate = <span class="fstat-no" title="function not covered" >as</span
698
612
  }
699
613
  &nbsp;
700
614
  exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
701
- const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
702
615
  const id = <span class="cstat-no" title="statement not covered" >ctx.params.rowId</span>
703
616
  const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
704
617
  const { datasourceId, tableName } = <span class="cstat-no" title="statement not covered" >breakExternalTableId(tableId)</span>
705
- const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
618
+ const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
706
619
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(datasourceId)</span>
707
620
  <span class="cstat-no" title="statement not covered" > if (!datasource || !datasource.entities) {</span>
708
621
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Datasource has not been configured for plus API.")</span>
709
622
  }
710
623
  const tables = <span class="cstat-no" title="statement not covered" >datasource.entities</span>
711
- const response = <span class="cstat-no" title="statement not covered" >await handleRequest(</span>
712
- appId,
713
- DataSourceOperation.READ,
714
- tableId,
715
- {
716
- id,
717
- datasource,
718
- }
719
- )
624
+ const response = <span class="cstat-no" title="statement not covered" >await handleRequest(DataSourceOperation.READ, tableId, {</span>
625
+ id,
626
+ datasource,
627
+ })
720
628
  const table = <span class="cstat-no" title="statement not covered" >tables[tableName]</span>
721
629
  const row = <span class="cstat-no" title="statement not covered" >response[0]</span>
722
630
  // this seems like a lot of work, but basically we need to dig deeper for the enrich
@@ -735,7 +643,6 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
735
643
  // don't support composite keys right now
736
644
  const linkedIds = <span class="cstat-no" title="statement not covered" >links.map(<span class="fstat-no" title="function not covered" >li</span>nk =&gt; <span class="cstat-no" title="statement not covered" >breakRowIdField(link._id)[0])</span></span>
737
645
  <span class="cstat-no" title="statement not covered" > row[fieldName] = await handleRequest(</span>
738
- appId,
739
646
  DataSourceOperation.READ,
740
647
  linkedTableId,
741
648
  {
@@ -757,7 +664,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
757
664
  <div class='footer quiet pad2 space-top1 center small'>
758
665
  Code coverage generated by
759
666
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
760
- at Mon Jan 31 2022 16:01:47 GMT+0000 (Coordinated Universal Time)
667
+ at Mon Feb 07 2022 10:27:17 GMT+0000 (Coordinated Universal Time)
761
668
  </div>
762
669
  </div>
763
670
  <script src="../../../prettify.js"></script>