@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
@@ -8,12 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ const CouchDB = require("../../../db");
11
12
  const Deployment = require("./Deployment");
12
- const { Replication, getProdAppID, getDevelopmentAppID, } = require("@budibase/backend-core/db");
13
+ const { Replication, getDeployedAppID } = require("@budibase/backend-core/db");
13
14
  const { DocumentTypes, getAutomationParams } = require("../../../db/utils");
14
15
  const { disableAllCrons, enableCronTrigger, } = require("../../../automations/utils");
15
16
  const { app: appCache } = require("@budibase/backend-core/cache");
16
- const { getAppId, getAppDB, getProdAppDB, } = require("@budibase/backend-core/context");
17
17
  // the max time we can wait for an invalidation to complete before considering it failed
18
18
  const MAX_PENDING_TIME_MS = 30 * 60000;
19
19
  const DeploymentStatus = {
@@ -39,8 +39,9 @@ function checkAllDeployments(deployments) {
39
39
  }
40
40
  function storeDeploymentHistory(deployment) {
41
41
  return __awaiter(this, void 0, void 0, function* () {
42
+ const appId = deployment.getAppId();
42
43
  const deploymentJSON = deployment.getJSON();
43
- const db = getAppDB();
44
+ const db = new CouchDB(appId);
44
45
  let deploymentDoc;
45
46
  try {
46
47
  // theres only one deployment doc per app database
@@ -61,7 +62,7 @@ function storeDeploymentHistory(deployment) {
61
62
  }
62
63
  function initDeployedApp(prodAppId) {
63
64
  return __awaiter(this, void 0, void 0, function* () {
64
- const db = getProdAppDB();
65
+ const db = new CouchDB(prodAppId);
65
66
  console.log("Reading automation docs");
66
67
  const automations = (yield db.allDocs(getAutomationParams(null, {
67
68
  include_docs: true,
@@ -82,17 +83,15 @@ function initDeployedApp(prodAppId) {
82
83
  function deployApp(deployment) {
83
84
  return __awaiter(this, void 0, void 0, function* () {
84
85
  try {
85
- const appId = getAppId();
86
- const devAppId = getDevelopmentAppID(appId);
87
- const productionAppId = getProdAppID(appId);
86
+ const productionAppId = getDeployedAppID(deployment.appId);
88
87
  const replication = new Replication({
89
- source: devAppId,
88
+ source: deployment.appId,
90
89
  target: productionAppId,
91
90
  });
92
91
  console.log("Replication object created");
93
92
  yield replication.replicate();
94
93
  console.log("replication complete.. replacing app meta doc");
95
- const db = getProdAppDB();
94
+ const db = new CouchDB(productionAppId);
96
95
  const appDoc = yield db.get(DocumentTypes.APP_METADATA);
97
96
  appDoc.appId = productionAppId;
98
97
  appDoc.instance._id = productionAppId;
@@ -114,7 +113,8 @@ function deployApp(deployment) {
114
113
  exports.fetchDeployments = function (ctx) {
115
114
  return __awaiter(this, void 0, void 0, function* () {
116
115
  try {
117
- const db = getAppDB();
116
+ const appId = ctx.appId;
117
+ const db = new CouchDB(appId);
118
118
  const deploymentDoc = yield db.get(DocumentTypes.DEPLOYMENTS);
119
119
  const { updated, deployments } = yield checkAllDeployments(deploymentDoc, ctx.user);
120
120
  if (updated) {
@@ -130,7 +130,8 @@ exports.fetchDeployments = function (ctx) {
130
130
  exports.deploymentProgress = function (ctx) {
131
131
  return __awaiter(this, void 0, void 0, function* () {
132
132
  try {
133
- const db = getAppDB();
133
+ const appId = ctx.appId;
134
+ const db = new CouchDB(appId);
134
135
  const deploymentDoc = yield db.get(DocumentTypes.DEPLOYMENTS);
135
136
  ctx.body = deploymentDoc[ctx.params.deploymentId];
136
137
  }
@@ -141,7 +142,7 @@ exports.deploymentProgress = function (ctx) {
141
142
  };
142
143
  exports.deployApp = function (ctx) {
143
144
  return __awaiter(this, void 0, void 0, function* () {
144
- let deployment = new Deployment();
145
+ let deployment = new Deployment(ctx.appId);
145
146
  console.log("Deployment object created");
146
147
  deployment.setStatus(DeploymentStatus.PENDING);
147
148
  console.log("Deployment object set to pending");
@@ -9,14 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const fetch = require("node-fetch");
12
+ const CouchDB = require("../../db");
12
13
  const env = require("../../environment");
13
14
  const { checkSlashesInUrl } = require("../../utilities");
14
15
  const { request } = require("../../utilities/workerRequests");
15
16
  const { clearLock } = require("../../utilities/redis");
16
- const { Replication, getProdAppID } = require("@budibase/backend-core/db");
17
+ const { Replication } = require("@budibase/backend-core/db");
17
18
  const { DocumentTypes } = require("../../db/utils");
18
19
  const { app: appCache } = require("@budibase/backend-core/cache");
19
- const { getProdAppDB, getAppDB } = require("@budibase/backend-core/context");
20
20
  function redirect(ctx, method, path = "global") {
21
21
  return __awaiter(this, void 0, void 0, function* () {
22
22
  const { devPath } = ctx.params;
@@ -76,10 +76,10 @@ exports.clearLock = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
76
76
  });
77
77
  exports.revert = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
78
78
  const { appId } = ctx.params;
79
- const productionAppId = getProdAppID(appId);
79
+ const productionAppId = appId.replace("_dev", "");
80
80
  // App must have been deployed first
81
81
  try {
82
- const db = getProdAppDB({ skip_setup: true });
82
+ const db = new CouchDB(productionAppId, { skip_setup: true });
83
83
  const info = yield db.info();
84
84
  if (info.error)
85
85
  throw info.error;
@@ -99,7 +99,7 @@ exports.revert = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
99
99
  });
100
100
  yield replication.rollback();
101
101
  // update appID in reverted app to be dev version again
102
- const db = getAppDB();
102
+ const db = new CouchDB(appId);
103
103
  const appDoc = yield db.get(DocumentTypes.APP_METADATA);
104
104
  appDoc.appId = appId;
105
105
  appDoc.instance._id = appId;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ const CouchDB = require("../../db");
12
+ const { getDeployedApps } = require("../../utilities/workerRequests");
13
+ const { getScopedConfig } = require("@budibase/backend-core/db");
14
+ const { Configs } = require("@budibase/backend-core/constants");
15
+ const { checkSlashesInUrl } = require("../../utilities");
16
+ exports.fetchUrls = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
17
+ const appId = ctx.appId;
18
+ const db = new CouchDB(appId);
19
+ const settings = yield getScopedConfig(db, { type: Configs.SETTINGS });
20
+ let appUrl = "http://localhost:10000/app";
21
+ if (settings && settings["platformUrl"]) {
22
+ appUrl = checkSlashesInUrl(`${settings["platformUrl"]}/app`);
23
+ }
24
+ ctx.body = {
25
+ app: appUrl,
26
+ };
27
+ });
28
+ exports.getDeployedApps = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
29
+ ctx.body = yield getDeployedApps();
30
+ });
@@ -9,11 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const { EMPTY_LAYOUT, BASE_LAYOUT_PROP_IDS, } = require("../../constants/layouts");
12
+ const CouchDB = require("../../db");
12
13
  const { generateLayoutID, getScreenParams } = require("../../db/utils");
13
- const { getAppDB } = require("@budibase/backend-core/context");
14
14
  exports.save = function (ctx) {
15
15
  return __awaiter(this, void 0, void 0, function* () {
16
- const db = getAppDB();
16
+ const db = new CouchDB(ctx.appId);
17
17
  let layout = ctx.request.body;
18
18
  if (!layout.props) {
19
19
  layout = Object.assign(Object.assign({}, EMPTY_LAYOUT), layout);
@@ -28,7 +28,7 @@ exports.save = function (ctx) {
28
28
  };
29
29
  exports.destroy = function (ctx) {
30
30
  return __awaiter(this, void 0, void 0, function* () {
31
- const db = getAppDB();
31
+ const db = new CouchDB(ctx.appId);
32
32
  const layoutId = ctx.params.layoutId, layoutRev = ctx.params.layoutRev;
33
33
  if (Object.values(BASE_LAYOUT_PROP_IDS).includes(layoutId)) {
34
34
  ctx.throw(400, "Cannot delete a built-in layout");
@@ -9,9 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const { MetadataTypes } = require("../../constants");
12
+ const CouchDB = require("../../db");
12
13
  const { generateMetadataID } = require("../../db/utils");
13
14
  const { saveEntityMetadata, deleteEntityMetadata } = require("../../utilities");
14
- const { getAppDB } = require("@budibase/backend-core/context");
15
15
  exports.getTypes = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
16
16
  ctx.body = {
17
17
  types: MetadataTypes,
@@ -22,18 +22,18 @@ exports.saveMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
22
22
  if (type === MetadataTypes.AUTOMATION_TEST_HISTORY) {
23
23
  ctx.throw(400, "Cannot save automation history type");
24
24
  }
25
- ctx.body = yield saveEntityMetadata(type, entityId, ctx.request.body);
25
+ ctx.body = yield saveEntityMetadata(ctx.appId, type, entityId, ctx.request.body);
26
26
  });
27
27
  exports.deleteMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
28
28
  const { type, entityId } = ctx.params;
29
- yield deleteEntityMetadata(type, entityId);
29
+ yield deleteEntityMetadata(ctx.appId, type, entityId);
30
30
  ctx.body = {
31
31
  message: "Metadata deleted successfully",
32
32
  };
33
33
  });
34
34
  exports.getMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
35
35
  const { type, entityId } = ctx.params;
36
- const db = getAppDB();
36
+ const db = new CouchDB(ctx.appId);
37
37
  const id = generateMetadataID(type, entityId);
38
38
  try {
39
39
  ctx.body = yield db.get(id);
@@ -11,9 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  const { getBuiltinPermissions } = require("@budibase/backend-core/permissions");
12
12
  const { isBuiltin, getDBRoleID, getExternalRoleID, getBuiltinRoles, } = require("@budibase/backend-core/roles");
13
13
  const { getRoleParams } = require("../../db/utils");
14
+ const CouchDB = require("../../db");
14
15
  const { CURRENTLY_SUPPORTED_LEVELS, getBasePermissions, } = require("../../utilities/security");
15
16
  const { removeFromArray } = require("../../utilities");
16
- const { getAppDB } = require("@budibase/backend-core/context");
17
17
  const PermissionUpdateType = {
18
18
  REMOVE: "remove",
19
19
  ADD: "add",
@@ -30,7 +30,7 @@ function getAllDBRoles(db) {
30
30
  }
31
31
  function updatePermissionOnRole(appId, { roleId, resourceId, level }, updateType) {
32
32
  return __awaiter(this, void 0, void 0, function* () {
33
- const db = getAppDB();
33
+ const db = new CouchDB(appId);
34
34
  const remove = updateType === PermissionUpdateType.REMOVE;
35
35
  const isABuiltin = isBuiltin(roleId);
36
36
  const dbRoleId = getDBRoleID(roleId);
@@ -93,7 +93,7 @@ exports.fetchLevels = function (ctx) {
93
93
  };
94
94
  exports.fetch = function (ctx) {
95
95
  return __awaiter(this, void 0, void 0, function* () {
96
- const db = getAppDB();
96
+ const db = new CouchDB(ctx.appId);
97
97
  const roles = yield getAllDBRoles(db);
98
98
  let permissions = {};
99
99
  // create an object with structure role ID -> resource ID -> level
@@ -121,7 +121,7 @@ exports.fetch = function (ctx) {
121
121
  exports.getResourcePerms = function (ctx) {
122
122
  return __awaiter(this, void 0, void 0, function* () {
123
123
  const resourceId = ctx.params.resourceId;
124
- const db = getAppDB();
124
+ const db = new CouchDB(ctx.appId);
125
125
  const body = yield db.allDocs(getRoleParams(null, {
126
126
  include_docs: true,
127
127
  }));
@@ -8,14 +8,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.RestImporter = void 0;
16
+ const db_1 = __importDefault(require("../../../../db"));
13
17
  const validation_1 = require("../validation");
14
18
  const utils_1 = require("../../../../db/utils");
15
19
  const openapi2_1 = require("./sources/openapi2");
16
20
  const curl_1 = require("./sources/curl");
17
- // @ts-ignore
18
- const context_1 = require("@budibase/backend-core/context");
19
21
  class RestImporter {
20
22
  constructor(data) {
21
23
  this.init = () => __awaiter(this, void 0, void 0, function* () {
@@ -29,7 +31,7 @@ class RestImporter {
29
31
  this.getInfo = () => __awaiter(this, void 0, void 0, function* () {
30
32
  return this.source.getInfo();
31
33
  });
32
- this.importQueries = (datasourceId) => __awaiter(this, void 0, void 0, function* () {
34
+ this.importQueries = (appId, datasourceId) => __awaiter(this, void 0, void 0, function* () {
33
35
  // constuct the queries
34
36
  let queries = yield this.source.getQueries(datasourceId);
35
37
  // validate queries
@@ -49,7 +51,7 @@ class RestImporter {
49
51
  return query;
50
52
  });
51
53
  // persist queries
52
- const db = context_1.getAppDB();
54
+ const db = new db_1.default(appId);
53
55
  const response = yield db.bulkDocs(queries);
54
56
  // create index to seperate queries and errors
55
57
  const queryIndex = queries.reduce((acc, query) => {
@@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ const CouchDB = require("../../../db");
11
12
  const { generateQueryID, getQueryParams, isProdAppID, } = require("../../../db/utils");
12
13
  const { BaseQueryVerbs } = require("../../../constants");
13
14
  const { Thread, ThreadType } = require("../../../threads");
@@ -15,7 +16,6 @@ const { save: saveDatasource } = require("../datasource");
15
16
  const { RestImporter } = require("./import");
16
17
  const { invalidateDynamicVariables } = require("../../../threads/utils");
17
18
  const environment = require("../../../environment");
18
- const { getAppDB } = require("@budibase/backend-core/context");
19
19
  const Runner = new Thread(ThreadType.QUERY, {
20
20
  timeoutMs: environment.QUERY_THREAD_TIMEOUT || 10000,
21
21
  });
@@ -32,7 +32,7 @@ function enrichQueries(input) {
32
32
  }
33
33
  exports.fetch = function (ctx) {
34
34
  return __awaiter(this, void 0, void 0, function* () {
35
- const db = getAppDB();
35
+ const db = new CouchDB(ctx.appId);
36
36
  const body = yield db.allDocs(getQueryParams(null, {
37
37
  include_docs: true,
38
38
  }));
@@ -67,13 +67,13 @@ exports.import = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
67
67
  // use existing datasource
68
68
  datasourceId = body.datasourceId;
69
69
  }
70
- const importResult = yield importer.importQueries(datasourceId);
70
+ const importResult = yield importer.importQueries(ctx.appId, datasourceId);
71
71
  ctx.body = Object.assign(Object.assign({}, importResult), { datasourceId });
72
72
  ctx.status = 200;
73
73
  });
74
74
  exports.save = function (ctx) {
75
75
  return __awaiter(this, void 0, void 0, function* () {
76
- const db = getAppDB();
76
+ const db = new CouchDB(ctx.appId);
77
77
  const query = ctx.request.body;
78
78
  if (!query._id) {
79
79
  query._id = generateQueryID(query.datasourceId);
@@ -86,7 +86,7 @@ exports.save = function (ctx) {
86
86
  };
87
87
  exports.find = function (ctx) {
88
88
  return __awaiter(this, void 0, void 0, function* () {
89
- const db = getAppDB();
89
+ const db = new CouchDB(ctx.appId);
90
90
  const query = enrichQueries(yield db.get(ctx.params.queryId));
91
91
  // remove properties that could be dangerous in real app
92
92
  if (isProdAppID(ctx.appId)) {
@@ -98,7 +98,7 @@ exports.find = function (ctx) {
98
98
  };
99
99
  exports.preview = function (ctx) {
100
100
  return __awaiter(this, void 0, void 0, function* () {
101
- const db = getAppDB();
101
+ const db = new CouchDB(ctx.appId);
102
102
  const datasource = yield db.get(ctx.request.body.datasourceId);
103
103
  // preview may not have a queryId as it hasn't been saved, but if it does
104
104
  // this stops dynamic variables from calling the same query
@@ -127,7 +127,7 @@ exports.preview = function (ctx) {
127
127
  };
128
128
  function execute(ctx, opts = { rowsOnly: false }) {
129
129
  return __awaiter(this, void 0, void 0, function* () {
130
- const db = getAppDB();
130
+ const db = new CouchDB(ctx.appId);
131
131
  const query = yield db.get(ctx.params.queryId);
132
132
  const datasource = yield db.get(query.datasourceId);
133
133
  const enrichedParameters = ctx.request.body.parameters || {};
@@ -173,8 +173,7 @@ exports.executeV2 = function (ctx) {
173
173
  return execute(ctx, { rowsOnly: false });
174
174
  });
175
175
  };
176
- const removeDynamicVariables = (queryId) => __awaiter(void 0, void 0, void 0, function* () {
177
- const db = getAppDB();
176
+ const removeDynamicVariables = (db, queryId) => __awaiter(void 0, void 0, void 0, function* () {
178
177
  const query = yield db.get(queryId);
179
178
  const datasource = yield db.get(query.datasourceId);
180
179
  const dynamicVariables = datasource.config.dynamicVariables;
@@ -189,8 +188,8 @@ const removeDynamicVariables = (queryId) => __awaiter(void 0, void 0, void 0, fu
189
188
  });
190
189
  exports.destroy = function (ctx) {
191
190
  return __awaiter(this, void 0, void 0, function* () {
192
- const db = getAppDB();
193
- yield removeDynamicVariables(ctx.params.queryId);
191
+ const db = new CouchDB(ctx.appId);
192
+ yield removeDynamicVariables(db, ctx.params.queryId);
194
193
  yield db.remove(ctx.params.queryId, ctx.params.revId);
195
194
  ctx.message = `Query deleted.`;
196
195
  ctx.status = 200;
@@ -8,9 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ const CouchDB = require("../../db");
11
12
  const { Role, getRole, isBuiltin, getAllRoles, } = require("@budibase/backend-core/roles");
12
13
  const { generateRoleID, getUserMetadataParams, InternalTables, } = require("../../db/utils");
13
- const { getAppDB } = require("@budibase/backend-core/context");
14
14
  const UpdateRolesOptions = {
15
15
  CREATED: "created",
16
16
  REMOVED: "removed",
@@ -42,17 +42,17 @@ function updateRolesOnUserTable(db, roleId, updateOption) {
42
42
  }
43
43
  exports.fetch = function (ctx) {
44
44
  return __awaiter(this, void 0, void 0, function* () {
45
- ctx.body = yield getAllRoles();
45
+ ctx.body = yield getAllRoles(ctx.appId);
46
46
  });
47
47
  };
48
48
  exports.find = function (ctx) {
49
49
  return __awaiter(this, void 0, void 0, function* () {
50
- ctx.body = yield getRole(ctx.params.roleId);
50
+ ctx.body = yield getRole(ctx.appId, ctx.params.roleId);
51
51
  });
52
52
  };
53
53
  exports.save = function (ctx) {
54
54
  return __awaiter(this, void 0, void 0, function* () {
55
- const db = getAppDB();
55
+ const db = new CouchDB(ctx.appId);
56
56
  let { _id, name, inherits, permissionId } = ctx.request.body;
57
57
  if (!_id) {
58
58
  _id = generateRoleID();
@@ -75,7 +75,7 @@ exports.save = function (ctx) {
75
75
  };
76
76
  exports.destroy = function (ctx) {
77
77
  return __awaiter(this, void 0, void 0, function* () {
78
- const db = getAppDB();
78
+ const db = new CouchDB(ctx.appId);
79
79
  const roleId = ctx.params.roleId;
80
80
  if (isBuiltin(roleId)) {
81
81
  ctx.throw(400, "Cannot delete builtin role.");
@@ -40,12 +40,13 @@ Routing.prototype.addScreenId = function (fullpath, roleId, screenId) {
40
40
  };
41
41
  /**
42
42
  * Gets the full routing structure by querying the routing view and processing the result into the tree.
43
+ * @param {string} appId The application to produce the routing structure for.
43
44
  * @returns {Promise<object>} The routing structure, this is the full structure designed for use in the builder,
44
45
  * if the client routing is required then the updateRoutingStructureForUserRole should be used.
45
46
  */
46
- function getRoutingStructure() {
47
+ function getRoutingStructure(appId) {
47
48
  return __awaiter(this, void 0, void 0, function* () {
48
- const screenRoutes = yield getRoutingInfo();
49
+ const screenRoutes = yield getRoutingInfo(appId);
49
50
  const routing = new Routing();
50
51
  for (let screenRoute of screenRoutes) {
51
52
  let fullpath = screenRoute.routing.route;
@@ -56,12 +57,12 @@ function getRoutingStructure() {
56
57
  });
57
58
  }
58
59
  exports.fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
59
- ctx.body = yield getRoutingStructure();
60
+ ctx.body = yield getRoutingStructure(ctx.appId);
60
61
  });
61
62
  exports.clientFetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
62
- const routing = yield getRoutingStructure();
63
+ const routing = yield getRoutingStructure(ctx.appId);
63
64
  let roleId = ctx.user.role._id;
64
- const roleIds = yield getUserRoleHierarchy(roleId);
65
+ const roleIds = yield getUserRoleHierarchy(ctx.appId, roleId);
65
66
  for (let topLevel of Object.values(routing.routes)) {
66
67
  for (let subpathKey of Object.keys(topLevel.subpaths)) {
67
68
  let found = false;