@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
@@ -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");
13
12
  const env = require("../../environment");
14
13
  const { checkSlashesInUrl } = require("../../utilities");
15
14
  const { request } = require("../../utilities/workerRequests");
16
15
  const { clearLock } = require("../../utilities/redis");
17
- const { Replication } = require("@budibase/backend-core/db");
16
+ const { Replication, getProdAppID } = require("@budibase/backend-core/db");
18
17
  const { DocumentTypes } = require("../../db/utils");
19
18
  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 = appId.replace("_dev", "");
79
+ const productionAppId = getProdAppID(appId);
80
80
  // App must have been deployed first
81
81
  try {
82
- const db = new CouchDB(productionAppId, { skip_setup: true });
82
+ const db = getProdAppDB({ 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 = new CouchDB(appId);
102
+ const db = getAppDB();
103
103
  const appDoc = yield db.get(DocumentTypes.APP_METADATA);
104
104
  appDoc.appId = appId;
105
105
  appDoc.instance._id = appId;
@@ -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");
13
12
  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 = new CouchDB(ctx.appId);
16
+ const db = getAppDB();
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 = new CouchDB(ctx.appId);
31
+ const db = getAppDB();
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");
13
12
  const { generateMetadataID } = require("../../db/utils");
14
13
  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(ctx.appId, type, entityId, ctx.request.body);
25
+ ctx.body = yield saveEntityMetadata(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(ctx.appId, type, entityId);
29
+ yield deleteEntityMetadata(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 = new CouchDB(ctx.appId);
36
+ const db = getAppDB();
37
37
  const id = generateMetadataID(type, entityId);
38
38
  try {
39
39
  ctx.body = yield db.get(id);
@@ -0,0 +1,21 @@
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 { migrate, MIGRATIONS } = require("../../migrations");
12
+ exports.migrate = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
13
+ const options = ctx.request.body;
14
+ // don't await as can take a while, just return
15
+ migrate(options);
16
+ ctx.status = 200;
17
+ });
18
+ exports.fetchDefinitions = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
19
+ ctx.body = MIGRATIONS;
20
+ ctx.status = 200;
21
+ });
@@ -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");
15
14
  const { CURRENTLY_SUPPORTED_LEVELS, getBasePermissions, } = require("../../utilities/security");
16
15
  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 = new CouchDB(appId);
33
+ const db = getAppDB();
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 = new CouchDB(ctx.appId);
96
+ const db = getAppDB();
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 = new CouchDB(ctx.appId);
124
+ const db = getAppDB();
125
125
  const body = yield db.allDocs(getRoleParams(null, {
126
126
  include_docs: true,
127
127
  }));
@@ -8,16 +8,14 @@ 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
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.RestImporter = void 0;
16
- const db_1 = __importDefault(require("../../../../db"));
17
13
  const validation_1 = require("../validation");
18
14
  const utils_1 = require("../../../../db/utils");
19
15
  const openapi2_1 = require("./sources/openapi2");
20
16
  const curl_1 = require("./sources/curl");
17
+ // @ts-ignore
18
+ const context_1 = require("@budibase/backend-core/context");
21
19
  class RestImporter {
22
20
  constructor(data) {
23
21
  this.init = () => __awaiter(this, void 0, void 0, function* () {
@@ -31,7 +29,7 @@ class RestImporter {
31
29
  this.getInfo = () => __awaiter(this, void 0, void 0, function* () {
32
30
  return this.source.getInfo();
33
31
  });
34
- this.importQueries = (appId, datasourceId) => __awaiter(this, void 0, void 0, function* () {
32
+ this.importQueries = (datasourceId) => __awaiter(this, void 0, void 0, function* () {
35
33
  // constuct the queries
36
34
  let queries = yield this.source.getQueries(datasourceId);
37
35
  // validate queries
@@ -51,7 +49,7 @@ class RestImporter {
51
49
  return query;
52
50
  });
53
51
  // persist queries
54
- const db = new db_1.default(appId);
52
+ const db = context_1.getAppDB();
55
53
  const response = yield db.bulkDocs(queries);
56
54
  // create index to seperate queries and errors
57
55
  const queryIndex = queries.reduce((acc, query) => {
@@ -8,7 +8,6 @@ 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");
12
11
  const { generateQueryID, getQueryParams, isProdAppID, } = require("../../../db/utils");
13
12
  const { BaseQueryVerbs } = require("../../../constants");
14
13
  const { Thread, ThreadType } = require("../../../threads");
@@ -16,6 +15,7 @@ const { save: saveDatasource } = require("../datasource");
16
15
  const { RestImporter } = require("./import");
17
16
  const { invalidateDynamicVariables } = require("../../../threads/utils");
18
17
  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 = new CouchDB(ctx.appId);
35
+ const db = getAppDB();
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(ctx.appId, datasourceId);
70
+ const importResult = yield importer.importQueries(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 = new CouchDB(ctx.appId);
76
+ const db = getAppDB();
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 = new CouchDB(ctx.appId);
89
+ const db = getAppDB();
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 = new CouchDB(ctx.appId);
101
+ const db = getAppDB();
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 = new CouchDB(ctx.appId);
130
+ const db = getAppDB();
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,7 +173,8 @@ exports.executeV2 = function (ctx) {
173
173
  return execute(ctx, { rowsOnly: false });
174
174
  });
175
175
  };
176
- const removeDynamicVariables = (db, queryId) => __awaiter(void 0, void 0, void 0, function* () {
176
+ const removeDynamicVariables = (queryId) => __awaiter(void 0, void 0, void 0, function* () {
177
+ const db = getAppDB();
177
178
  const query = yield db.get(queryId);
178
179
  const datasource = yield db.get(query.datasourceId);
179
180
  const dynamicVariables = datasource.config.dynamicVariables;
@@ -188,8 +189,8 @@ const removeDynamicVariables = (db, queryId) => __awaiter(void 0, void 0, void 0
188
189
  });
189
190
  exports.destroy = function (ctx) {
190
191
  return __awaiter(this, void 0, void 0, function* () {
191
- const db = new CouchDB(ctx.appId);
192
- yield removeDynamicVariables(db, ctx.params.queryId);
192
+ const db = getAppDB();
193
+ yield removeDynamicVariables(ctx.params.queryId);
193
194
  yield db.remove(ctx.params.queryId, ctx.params.revId);
194
195
  ctx.message = `Query deleted.`;
195
196
  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");
12
11
  const { Role, getRole, isBuiltin, getAllRoles, } = require("@budibase/backend-core/roles");
13
12
  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(ctx.appId);
45
+ ctx.body = yield getAllRoles();
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.appId, ctx.params.roleId);
50
+ ctx.body = yield getRole(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 = new CouchDB(ctx.appId);
55
+ const db = getAppDB();
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 = new CouchDB(ctx.appId);
78
+ const db = getAppDB();
79
79
  const roleId = ctx.params.roleId;
80
80
  if (isBuiltin(roleId)) {
81
81
  ctx.throw(400, "Cannot delete builtin role.");
@@ -40,13 +40,12 @@ 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.
44
43
  * @returns {Promise<object>} The routing structure, this is the full structure designed for use in the builder,
45
44
  * if the client routing is required then the updateRoutingStructureForUserRole should be used.
46
45
  */
47
- function getRoutingStructure(appId) {
46
+ function getRoutingStructure() {
48
47
  return __awaiter(this, void 0, void 0, function* () {
49
- const screenRoutes = yield getRoutingInfo(appId);
48
+ const screenRoutes = yield getRoutingInfo();
50
49
  const routing = new Routing();
51
50
  for (let screenRoute of screenRoutes) {
52
51
  let fullpath = screenRoute.routing.route;
@@ -57,12 +56,12 @@ function getRoutingStructure(appId) {
57
56
  });
58
57
  }
59
58
  exports.fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
60
- ctx.body = yield getRoutingStructure(ctx.appId);
59
+ ctx.body = yield getRoutingStructure();
61
60
  });
62
61
  exports.clientFetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
63
- const routing = yield getRoutingStructure(ctx.appId);
62
+ const routing = yield getRoutingStructure();
64
63
  let roleId = ctx.user.role._id;
65
- const roleIds = yield getUserRoleHierarchy(ctx.appId, roleId);
64
+ const roleIds = yield getUserRoleHierarchy(roleId);
66
65
  for (let topLevel of Object.values(routing.routes)) {
67
66
  for (let subpathKey of Object.keys(topLevel.subpaths)) {
68
67
  let found = false;