@budibase/server 2.1.32-alpha.8 → 2.1.32

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 (663) hide show
  1. package/__mocks__/aws-sdk.ts +0 -14
  2. package/__mocks__/node-fetch.ts +1 -5
  3. package/builder/assets/{index.7176fd99.css → index.534f6c29.css} +1 -1
  4. package/builder/assets/{index.3efa93e2.js → index.968304ca.js} +316 -316
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +3681 -10588
  7. package/coverage/coverage-final.json +77 -225
  8. package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +26 -26
  9. package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +75 -75
  10. package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +47 -47
  11. package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +87 -246
  12. package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +71 -53
  13. package/coverage/lcov-report/api/controllers/index.html +326 -0
  14. package/coverage/lcov-report/{src/api → api}/controllers/integration.js.html +10 -10
  15. package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +26 -26
  16. package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +23 -26
  17. package/coverage/lcov-report/{src/api → api}/controllers/migrations.js.html +10 -10
  18. package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +71 -80
  19. package/coverage/lcov-report/{src/utilities/routing → api/controllers/query}/index.html +8 -8
  20. package/coverage/lcov-report/{src/api/controllers/query/validation.ts.html → api/controllers/query/validation.js.html} +17 -17
  21. package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +56 -44
  22. package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +56 -65
  23. package/coverage/lcov-report/{src/api → api}/controllers/row/external.js.html +13 -13
  24. package/coverage/lcov-report/{src/api → api}/controllers/row/index.html +46 -76
  25. package/coverage/lcov-report/{src/api → api}/controllers/row/internal.js.html +29 -26
  26. package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +110 -182
  27. package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +54 -69
  28. package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +43 -64
  29. package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +14 -17
  30. package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +54 -96
  31. package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +100 -196
  32. package/coverage/lcov-report/{src/utilities/fileSystem → api/controllers/table}/index.html +44 -44
  33. package/coverage/lcov-report/{src/api/controllers/table/index.ts.html → api/controllers/table/index.js.html} +35 -35
  34. package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +25 -34
  35. package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +85 -79
  36. package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +14 -20
  37. package/coverage/lcov-report/{src/api → api}/controllers/view/index.html +30 -30
  38. package/coverage/lcov-report/{src/api/controllers/view/index.ts.html → api/controllers/view/index.js.html} +48 -75
  39. package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +43 -61
  40. package/coverage/lcov-report/{src/api → api}/controllers/view/viewBuilder.js.html +10 -10
  41. package/coverage/lcov-report/{src/api → api}/index.html +23 -23
  42. package/coverage/lcov-report/{src/api/index.ts.html → api/index.js.html} +56 -35
  43. package/coverage/lcov-report/{src/api/routes/analytics.ts.html → api/routes/analytics.js.html} +14 -14
  44. package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/routes/apikeys.js.html} +27 -27
  45. package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +42 -48
  46. package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +21 -21
  47. package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +17 -17
  48. package/coverage/lcov-report/{src/api/routes/datasource.ts.html → api/routes/datasource.js.html} +33 -60
  49. package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +22 -25
  50. package/coverage/lcov-report/{src/api/routes/webhook.ts.html → api/routes/dev.js.html} +43 -46
  51. package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
  52. package/coverage/lcov-report/{src/api/routes/apikeys.ts.html → api/routes/integration.js.html} +18 -18
  53. package/coverage/lcov-report/{src/api/routes/layout.ts.html → api/routes/layout.js.html} +18 -18
  54. package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +24 -24
  55. package/coverage/lcov-report/{src/sdk/index.ts.html → api/routes/migrations.js.html} +21 -24
  56. package/coverage/lcov-report/{src/api/routes/view.ts.html → api/routes/permission.js.html} +37 -40
  57. package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +42 -33
  58. package/coverage/lcov-report/api/routes/role.js.html +130 -0
  59. package/coverage/lcov-report/{src/api/routes/routing.ts.html → api/routes/routing.js.html} +17 -17
  60. package/coverage/lcov-report/api/routes/screen.js.html +139 -0
  61. package/coverage/lcov-report/{src/api/routes/script.ts.html → api/routes/script.js.html} +17 -17
  62. package/coverage/lcov-report/{src/api/routes/table.ts.html → api/routes/table.js.html} +33 -24
  63. package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +18 -18
  64. package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +35 -29
  65. package/coverage/lcov-report/{src/api → api}/routes/utils/index.html +15 -15
  66. package/coverage/lcov-report/{src/api/routes/utils/validators.ts.html → api/routes/utils/validators.js.html} +58 -46
  67. package/coverage/lcov-report/{src/definitions/automations.ts.html → api/routes/view.js.html} +41 -44
  68. package/coverage/lcov-report/{src/automations → automations}/actions.js.html +10 -10
  69. package/coverage/lcov-report/{src/automations → automations}/automationUtils.js.html +10 -10
  70. package/coverage/lcov-report/{src/automations → automations}/bullboard.js.html +10 -10
  71. package/coverage/lcov-report/{src/automations → automations}/index.html +24 -39
  72. package/coverage/lcov-report/{src/automations → automations}/index.js.html +10 -10
  73. package/coverage/lcov-report/{src/automations → automations}/steps/bash.js.html +10 -10
  74. package/coverage/lcov-report/{src/automations → automations}/steps/delay.js.html +10 -10
  75. package/coverage/lcov-report/{src/automations → automations}/steps/discord.js.html +10 -10
  76. package/coverage/lcov-report/{src/automations → automations}/steps/executeQuery.js.html +10 -10
  77. package/coverage/lcov-report/{src/automations → automations}/steps/executeScript.js.html +10 -10
  78. package/coverage/lcov-report/{src/automations → automations}/steps/filter.js.html +10 -10
  79. package/coverage/lcov-report/{src/automations → automations}/steps/index.html +26 -56
  80. package/coverage/lcov-report/{src/automations → automations}/steps/integromat.js.html +10 -10
  81. package/coverage/lcov-report/{src/automations → automations}/steps/loop.js.html +10 -10
  82. package/coverage/lcov-report/{src/automations → automations}/steps/outgoingWebhook.js.html +10 -10
  83. package/coverage/lcov-report/{src/automations → automations}/steps/queryRows.js.html +10 -10
  84. package/coverage/lcov-report/{src/automations → automations}/steps/sendSmtpEmail.js.html +10 -10
  85. package/coverage/lcov-report/{src/automations → automations}/steps/serverLog.js.html +10 -10
  86. package/coverage/lcov-report/{src/automations → automations}/steps/slack.js.html +10 -10
  87. package/coverage/lcov-report/{src/automations → automations}/steps/updateRow.js.html +10 -10
  88. package/coverage/lcov-report/{src/automations → automations}/steps/utils.js.html +19 -19
  89. package/coverage/lcov-report/{src/automations → automations}/steps/zapier.js.html +10 -10
  90. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/app.js.html +10 -10
  91. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/cron.js.html +10 -10
  92. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.html +10 -10
  93. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.js.html +10 -10
  94. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowDeleted.js.html +10 -10
  95. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowSaved.js.html +10 -10
  96. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowUpdated.js.html +10 -10
  97. package/coverage/lcov-report/{src/automations → automations}/triggerInfo/webhook.js.html +10 -10
  98. package/coverage/lcov-report/{src/automations → automations}/triggers.js.html +23 -20
  99. package/coverage/lcov-report/{src/constants → constants}/index.html +14 -14
  100. package/coverage/lcov-report/{src/constants → constants}/index.js.html +22 -16
  101. package/coverage/lcov-report/{src/constants → constants}/layouts.js.html +10 -10
  102. package/coverage/lcov-report/{src/constants → constants}/screens.js.html +12 -12
  103. package/coverage/lcov-report/{src/db → db}/inMemoryView.js.html +13 -13
  104. package/coverage/lcov-report/{src/db → db}/index.html +27 -42
  105. package/coverage/lcov-report/{src/db → db}/index.js.html +18 -18
  106. package/coverage/lcov-report/{src/db → db}/linkedRows/LinkController.js.html +160 -22
  107. package/coverage/lcov-report/{src/db → db}/linkedRows/index.html +22 -37
  108. package/coverage/lcov-report/{src/db → db}/linkedRows/index.js.html +12 -12
  109. package/coverage/lcov-report/{src/db → db}/linkedRows/linkUtils.js.html +13 -13
  110. package/coverage/lcov-report/{src/db → db}/newid.js.html +10 -10
  111. package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +153 -105
  112. package/coverage/lcov-report/{src/events → events}/AutomationEmitter.js.html +10 -10
  113. package/coverage/lcov-report/{src/events → events}/index.html +10 -10
  114. package/coverage/lcov-report/{src/events → events}/index.js.html +10 -10
  115. package/coverage/lcov-report/{src/events → events}/utils.js.html +10 -10
  116. package/coverage/lcov-report/index.html +161 -671
  117. package/coverage/lcov-report/{src/integrations → integrations}/tests/TestConfiguration.js.html +10 -10
  118. package/coverage/lcov-report/{src/integrations → integrations}/tests/index.html +10 -10
  119. package/coverage/lcov-report/{src/middleware/appInfo.ts.html → middleware/appInfo.js.html} +28 -31
  120. package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +37 -43
  121. package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +68 -77
  122. package/coverage/lcov-report/{src/middleware → middleware}/index.html +63 -78
  123. package/coverage/lcov-report/{src/middleware/joi-validator.ts.html → middleware/joi-validator.js.html} +22 -25
  124. package/coverage/lcov-report/{src/middleware/publicApi.ts.html → middleware/publicApi.js.html} +24 -24
  125. package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +25 -40
  126. package/coverage/lcov-report/{src/tests/utilities/index.js.html → middleware/selfhost.js.html} +30 -33
  127. package/coverage/lcov-report/{src/middleware/utils.ts.html → middleware/utils.js.html} +13 -19
  128. package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +12 -12
  129. package/coverage/lcov-report/{src/utilities → utilities}/centralPath.js.html +10 -10
  130. package/coverage/lcov-report/{src/utilities → utilities}/csvParser.js.html +10 -10
  131. package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +74 -107
  132. package/coverage/lcov-report/{src/utilities → utilities}/index.html +61 -76
  133. package/coverage/lcov-report/{src/utilities/index.ts.html → utilities/index.js.html} +53 -77
  134. package/coverage/lcov-report/{src/utilities → utilities}/plugins.js.html +10 -10
  135. package/coverage/lcov-report/{src/utilities → utilities}/queue/inMemoryQueue.js.html +10 -10
  136. package/coverage/lcov-report/{src/utilities → utilities}/queue/index.html +10 -10
  137. package/coverage/lcov-report/{src/sdk → utilities/routing}/index.html +10 -10
  138. package/coverage/lcov-report/{src/api/routes/role.ts.html → utilities/routing/index.js.html} +42 -39
  139. package/coverage/lcov-report/{src/migrations → utilities/rowProcessor}/index.html +37 -22
  140. package/coverage/lcov-report/{src/utilities/rowProcessor/index.ts.html → utilities/rowProcessor/index.js.html} +344 -113
  141. package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +38 -50
  142. package/coverage/lcov-report/{src/utilities → utilities}/scriptRunner.js.html +10 -10
  143. package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +74 -56
  144. package/coverage/lcov-report/{src/utilities → utilities}/statusCodes.js.html +10 -10
  145. package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/index.html +27 -27
  146. package/coverage/lcov-report/{src/utilities/usageQuota/rows.ts.html → utilities/usageQuota/rows.js.html} +46 -34
  147. package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/usageQuoteReset.js.html +10 -10
  148. package/coverage/lcov-report/{src/utilities/users.ts.html → utilities/users.js.html} +35 -29
  149. package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +61 -76
  150. package/coverage/lcov.info +6772 -19273
  151. package/dist/api/controllers/apikeys.js +9 -12
  152. package/dist/api/controllers/application.js +45 -48
  153. package/dist/api/controllers/automation.js +84 -104
  154. package/dist/api/controllers/cloud.js +71 -84
  155. package/dist/api/controllers/component.js +2 -4
  156. package/dist/api/controllers/datasource.js +92 -144
  157. package/dist/api/controllers/deploy/Deployment.js +6 -10
  158. package/dist/api/controllers/deploy/index.js +16 -13
  159. package/dist/api/controllers/dev.js +81 -96
  160. package/dist/api/controllers/layout.js +15 -18
  161. package/dist/api/controllers/metadata.js +37 -51
  162. package/dist/api/controllers/permission.js +43 -52
  163. package/dist/api/controllers/plugin/index.js +7 -6
  164. package/dist/api/controllers/public/applications.js +9 -17
  165. package/dist/api/controllers/public/tables.js +9 -29
  166. package/dist/api/controllers/query/import/index.js +2 -1
  167. package/dist/api/controllers/query/index.js +13 -10
  168. package/dist/api/controllers/query/validation.js +33 -41
  169. package/dist/api/controllers/role.js +27 -29
  170. package/dist/api/controllers/routing.js +58 -71
  171. package/dist/api/controllers/row/ExternalRequest.js +8 -12
  172. package/dist/api/controllers/row/external.js +3 -3
  173. package/dist/api/controllers/row/index.js +7 -16
  174. package/dist/api/controllers/row/internal.js +12 -11
  175. package/dist/api/controllers/row/internalSearch.js +80 -95
  176. package/dist/api/controllers/row/staticFormula.js +75 -85
  177. package/dist/api/controllers/row/utils.js +84 -118
  178. package/dist/api/controllers/screen.js +66 -81
  179. package/dist/api/controllers/script.js +6 -13
  180. package/dist/api/controllers/static/index.js +11 -9
  181. package/dist/api/controllers/table/bulkFormula.js +35 -47
  182. package/dist/api/controllers/table/external.js +57 -67
  183. package/dist/api/controllers/table/index.js +33 -66
  184. package/dist/api/controllers/table/internal.js +6 -5
  185. package/dist/api/controllers/table/utils.js +35 -39
  186. package/dist/api/controllers/templates.js +10 -17
  187. package/dist/api/controllers/user.js +70 -82
  188. package/dist/api/controllers/view/exporters.js +4 -8
  189. package/dist/api/controllers/view/index.js +153 -201
  190. package/dist/api/controllers/view/utils.js +121 -151
  191. package/dist/api/index.js +34 -38
  192. package/dist/api/routes/analytics.js +3 -29
  193. package/dist/api/routes/apikeys.js +7 -33
  194. package/dist/api/routes/application.js +9 -8
  195. package/dist/api/routes/auth.js +2 -1
  196. package/dist/api/routes/automation.js +20 -46
  197. package/dist/api/routes/backup.js +4 -3
  198. package/dist/api/routes/cloud.js +6 -32
  199. package/dist/api/routes/component.js +6 -32
  200. package/dist/api/routes/datasource.js +13 -39
  201. package/dist/api/routes/deploy.js +8 -34
  202. package/dist/api/routes/dev.js +10 -36
  203. package/dist/api/routes/integration.js +7 -10
  204. package/dist/api/routes/layout.js +7 -33
  205. package/dist/api/routes/metadata.js +10 -36
  206. package/dist/api/routes/migrations.js +6 -32
  207. package/dist/api/routes/permission.js +12 -38
  208. package/dist/api/routes/plugin.js +5 -5
  209. package/dist/api/routes/public/index.js +9 -9
  210. package/dist/api/routes/query.js +15 -42
  211. package/dist/api/routes/role.js +10 -36
  212. package/dist/api/routes/routing.js +6 -32
  213. package/dist/api/routes/row.js +11 -12
  214. package/dist/api/routes/screen.js +9 -35
  215. package/dist/api/routes/script.js +6 -32
  216. package/dist/api/routes/static.js +9 -9
  217. package/dist/api/routes/table.js +13 -40
  218. package/dist/api/routes/templates.js +7 -33
  219. package/dist/api/routes/tests/utilities/TestFunctions.js +8 -6
  220. package/dist/api/routes/user.js +13 -40
  221. package/dist/api/routes/utils/validators.js +126 -142
  222. package/dist/api/routes/view.js +12 -38
  223. package/dist/api/routes/webhook.js +2 -1
  224. package/dist/app.js +4 -3
  225. package/dist/automations/tests/utilities/index.js +12 -21
  226. package/dist/automations/triggers.js +6 -5
  227. package/dist/automations/utils.js +8 -9
  228. package/dist/constants/index.js +5 -3
  229. package/dist/constants/screens.js +2 -2
  230. package/dist/db/inMemoryView.js +3 -3
  231. package/dist/db/linkedRows/LinkController.js +31 -4
  232. package/dist/db/linkedRows/index.js +2 -2
  233. package/dist/db/linkedRows/linkUtils.js +3 -3
  234. package/dist/db/utils.js +119 -146
  235. package/dist/db/views/staticViews.js +4 -4
  236. package/dist/integrations/elasticsearch.js +2 -26
  237. package/dist/integrations/googlesheets.js +6 -4
  238. package/dist/integrations/index.js +6 -15
  239. package/dist/integrations/s3.js +1 -157
  240. package/dist/middleware/appInfo.js +9 -14
  241. package/dist/middleware/authorized.js +21 -22
  242. package/dist/middleware/builder.js +40 -41
  243. package/dist/middleware/currentapp.js +37 -39
  244. package/dist/middleware/joi-validator.js +10 -17
  245. package/dist/middleware/publicApi.js +6 -5
  246. package/dist/middleware/resourceId.js +9 -16
  247. package/dist/middleware/selfhost.js +4 -5
  248. package/dist/middleware/utils.js +2 -5
  249. package/dist/migrations/functions/appUrls.js +2 -2
  250. package/dist/migrations/functions/backfill/global.js +1 -1
  251. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
  252. package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
  253. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  254. package/dist/package.json +44 -10
  255. package/dist/sdk/app/backups/exports.js +2 -1
  256. package/dist/sdk/app/backups/imports.js +3 -2
  257. package/dist/sdk/app/tables/index.js +5 -5
  258. package/dist/startup.js +4 -4
  259. package/dist/tests/utilities/TestConfiguration.js +36 -30
  260. package/dist/tests/utilities/structures.js +4 -3
  261. package/dist/threads/automation.js +16 -15
  262. package/dist/threads/query.js +19 -17
  263. package/dist/threads/utils.js +9 -11
  264. package/dist/tsconfig.build.tsbuildinfo +1 -1
  265. package/dist/utilities/budibaseDir.js +2 -4
  266. package/dist/utilities/fileSystem/clientLibrary.js +12 -12
  267. package/dist/utilities/fileSystem/index.js +3 -3
  268. package/dist/utilities/fileSystem/utilities.js +22 -0
  269. package/dist/utilities/global.js +66 -87
  270. package/dist/utilities/index.js +75 -102
  271. package/dist/utilities/redis.js +65 -100
  272. package/dist/utilities/routing/index.js +23 -27
  273. package/dist/utilities/rowProcessor/index.js +191 -124
  274. package/dist/utilities/rowProcessor/utils.js +26 -35
  275. package/dist/utilities/security.js +35 -39
  276. package/dist/utilities/usageQuota/rows.js +49 -56
  277. package/dist/utilities/users.js +28 -31
  278. package/dist/utilities/workerRequests.js +82 -115
  279. package/dist/watch.js +2 -1
  280. package/package.json +45 -11
  281. package/scripts/exportAppTemplate.js +2 -2
  282. package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
  283. package/scripts/localdomain.js +6 -34
  284. package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
  285. package/src/api/controllers/application.ts +42 -56
  286. package/src/api/controllers/auth.ts +3 -4
  287. package/src/api/controllers/{automation.ts → automation.js} +48 -48
  288. package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
  289. package/src/api/controllers/component.ts +1 -2
  290. package/src/api/controllers/{datasource.ts → datasource.js} +47 -100
  291. package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
  292. package/src/api/controllers/deploy/index.ts +25 -13
  293. package/src/api/controllers/{dev.ts → dev.js} +37 -31
  294. package/src/api/controllers/{layout.ts → layout.js} +8 -8
  295. package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
  296. package/src/api/controllers/{permission.ts → permission.js} +46 -49
  297. package/src/api/controllers/plugin/index.ts +5 -4
  298. package/src/api/controllers/public/applications.ts +9 -15
  299. package/src/api/controllers/public/tables.ts +2 -2
  300. package/src/api/controllers/query/import/index.ts +3 -2
  301. package/src/api/controllers/query/index.ts +14 -11
  302. package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
  303. package/src/api/controllers/{role.ts → role.js} +25 -21
  304. package/src/api/controllers/{routing.ts → routing.js} +34 -37
  305. package/src/api/controllers/row/ExternalRequest.ts +11 -9
  306. package/src/api/controllers/row/external.js +3 -3
  307. package/src/api/controllers/row/index.ts +9 -17
  308. package/src/api/controllers/row/internal.js +12 -11
  309. package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
  310. package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +23 -28
  311. package/src/api/controllers/row/{utils.ts → utils.js} +18 -25
  312. package/src/api/controllers/screen.ts +6 -10
  313. package/src/api/controllers/script.js +11 -0
  314. package/src/api/controllers/static/index.ts +13 -9
  315. package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
  316. package/src/api/controllers/table/{external.ts → external.js} +54 -86
  317. package/src/api/controllers/table/{index.ts → index.js} +17 -17
  318. package/src/api/controllers/table/internal.ts +6 -5
  319. package/src/api/controllers/table/utils.ts +21 -26
  320. package/src/api/controllers/{templates.ts → templates.js} +7 -10
  321. package/src/api/controllers/{user.ts → user.js} +49 -47
  322. package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
  323. package/src/api/controllers/view/{index.ts → index.js} +27 -36
  324. package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
  325. package/src/api/{index.ts → index.js} +22 -15
  326. package/src/api/routes/analytics.js +9 -0
  327. package/src/api/routes/apikeys.js +12 -0
  328. package/src/api/routes/application.ts +9 -17
  329. package/src/api/routes/auth.ts +2 -2
  330. package/src/api/routes/automation.js +85 -0
  331. package/src/api/routes/backup.ts +4 -8
  332. package/src/api/routes/cloud.js +14 -0
  333. package/src/api/routes/component.js +14 -0
  334. package/src/api/routes/datasource.js +51 -0
  335. package/src/api/routes/deploy.js +17 -0
  336. package/src/api/routes/dev.js +26 -0
  337. package/src/api/routes/integration.js +12 -0
  338. package/src/api/routes/layout.js +16 -0
  339. package/src/api/routes/{metadata.ts → metadata.js} +13 -13
  340. package/src/api/routes/migrations.js +14 -0
  341. package/src/api/routes/permission.js +33 -0
  342. package/src/api/routes/plugin.ts +6 -14
  343. package/src/api/routes/public/index.ts +10 -10
  344. package/src/api/routes/public/tests/compare.spec.js +1 -1
  345. package/src/api/routes/{query.ts → query.js} +22 -19
  346. package/src/api/routes/role.js +15 -0
  347. package/src/api/routes/routing.js +14 -0
  348. package/src/api/routes/row.ts +15 -13
  349. package/src/api/routes/screen.js +18 -0
  350. package/src/api/routes/script.js +10 -0
  351. package/src/api/routes/static.ts +10 -7
  352. package/src/api/routes/{table.ts → table.js} +13 -10
  353. package/src/api/routes/templates.js +16 -0
  354. package/src/api/routes/tests/analytics.spec.js +1 -1
  355. package/src/api/routes/tests/backup.spec.js +1 -9
  356. package/src/api/routes/tests/permissions.spec.js +1 -2
  357. package/src/api/routes/tests/query.spec.js +10 -15
  358. package/src/api/routes/tests/role.spec.js +9 -7
  359. package/src/api/routes/tests/routing.spec.js +1 -2
  360. package/src/api/routes/tests/row.spec.js +4 -3
  361. package/src/api/routes/tests/static.spec.js +2 -2
  362. package/src/api/routes/tests/table.spec.js +35 -38
  363. package/src/api/routes/tests/user.spec.js +1 -2
  364. package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
  365. package/src/api/routes/user.js +53 -0
  366. package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
  367. package/src/api/routes/view.js +31 -0
  368. package/src/api/routes/webhook.ts +2 -2
  369. package/src/app.ts +4 -3
  370. package/src/automations/tests/updateRow.spec.js +1 -0
  371. package/src/automations/tests/utilities/index.js +4 -10
  372. package/src/automations/triggers.js +6 -5
  373. package/src/automations/utils.ts +12 -9
  374. package/src/constants/index.js +5 -3
  375. package/src/constants/screens.js +2 -2
  376. package/src/db/inMemoryView.js +3 -3
  377. package/src/db/linkedRows/LinkController.js +50 -4
  378. package/src/db/linkedRows/index.js +2 -2
  379. package/src/db/linkedRows/linkUtils.js +3 -3
  380. package/src/db/tests/linkController.spec.js +57 -73
  381. package/src/db/tests/linkTests.spec.js +14 -17
  382. package/src/db/{utils.ts → utils.js} +93 -77
  383. package/src/db/views/staticViews.js +4 -4
  384. package/src/integrations/base/sql.ts +1 -1
  385. package/src/integrations/base/sqlTable.ts +1 -1
  386. package/src/integrations/elasticsearch.ts +2 -32
  387. package/src/integrations/googlesheets.ts +7 -4
  388. package/src/integrations/index.ts +41 -45
  389. package/src/integrations/s3.ts +3 -179
  390. package/src/integrations/tests/s3.spec.ts +1 -85
  391. package/src/middleware/appInfo.js +19 -0
  392. package/src/middleware/authorized.ts +28 -21
  393. package/src/middleware/{builder.ts → builder.js} +15 -17
  394. package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
  395. package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
  396. package/src/middleware/publicApi.js +21 -0
  397. package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
  398. package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
  399. package/src/middleware/tests/authorized.spec.js +6 -5
  400. package/src/middleware/tests/currentapp.spec.js +63 -118
  401. package/src/middleware/{utils.ts → utils.js} +1 -3
  402. package/src/migrations/functions/appUrls.ts +2 -2
  403. package/src/migrations/functions/backfill/app/tables.ts +5 -2
  404. package/src/migrations/functions/backfill/global.ts +1 -1
  405. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  406. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
  407. package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
  408. package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
  409. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  410. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  411. package/src/module.d.ts +14 -0
  412. package/src/sdk/app/backups/exports.ts +3 -5
  413. package/src/sdk/app/backups/imports.ts +14 -7
  414. package/src/sdk/app/backups/statistics.ts +18 -9
  415. package/src/sdk/app/tables/index.ts +8 -7
  416. package/src/startup.ts +2 -2
  417. package/src/tests/utilities/TestConfiguration.js +36 -42
  418. package/src/tests/utilities/structures.js +4 -3
  419. package/src/threads/automation.ts +16 -15
  420. package/src/threads/query.ts +16 -11
  421. package/src/threads/utils.ts +5 -4
  422. package/src/utilities/budibaseDir.js +3 -0
  423. package/src/utilities/fileSystem/clientLibrary.js +12 -12
  424. package/src/utilities/fileSystem/index.js +8 -8
  425. package/src/utilities/fileSystem/utilities.js +36 -0
  426. package/src/utilities/global.js +127 -0
  427. package/src/utilities/{index.ts → index.js} +32 -40
  428. package/src/utilities/{redis.ts → redis.js} +20 -21
  429. package/src/utilities/routing/index.js +25 -0
  430. package/src/utilities/rowProcessor/{index.ts → index.js} +142 -65
  431. package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
  432. package/src/utilities/security.js +71 -0
  433. package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
  434. package/src/utilities/{users.ts → users.js} +13 -11
  435. package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
  436. package/src/watch.ts +3 -2
  437. package/tsconfig.json +1 -3
  438. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  439. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
  440. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  441. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  442. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  443. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
  444. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  445. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
  446. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  447. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  448. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  449. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  450. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
  451. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  452. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  453. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  454. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -142
  455. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
  456. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  457. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  458. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  459. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  460. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  461. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  462. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
  463. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  464. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  465. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  466. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  467. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
  468. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  469. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  470. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  471. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  472. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  473. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  474. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  475. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  476. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  477. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  478. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  479. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
  480. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2320
  481. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  482. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  483. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  484. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -688
  485. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  486. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
  487. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
  488. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
  489. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
  490. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  491. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
  492. package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
  493. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
  494. package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
  495. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  496. package/coverage/lcov-report/src/api/routes/permission.ts.html +0 -208
  497. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  498. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
  499. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  500. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -502
  501. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  502. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
  503. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  504. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  505. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  506. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  507. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  508. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  509. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  510. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  511. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  512. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  513. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  514. package/coverage/lcov-report/src/api/routes/tests/utilities/index.js.html +0 -367
  515. package/coverage/lcov-report/src/app.ts.html +0 -400
  516. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  517. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  518. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -367
  519. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -334
  520. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  521. package/coverage/lcov-report/src/automations/tests/utilities/index.js.html +0 -256
  522. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  523. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.js.html +0 -2023
  524. package/coverage/lcov-report/src/db/defaultData/employeeImport.js.html +0 -541
  525. package/coverage/lcov-report/src/db/defaultData/expensesImport.js.html +0 -427
  526. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  527. package/coverage/lcov-report/src/db/defaultData/inventoryImport.js.html +0 -403
  528. package/coverage/lcov-report/src/db/defaultData/jobsImport.js.html +0 -559
  529. package/coverage/lcov-report/src/db/dynamoClient.js.html +0 -466
  530. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.js.html +0 -226
  531. package/coverage/lcov-report/src/definitions/datasource.ts.html +0 -235
  532. package/coverage/lcov-report/src/definitions/index.html +0 -131
  533. package/coverage/lcov-report/src/environment.js.html +0 -445
  534. package/coverage/lcov-report/src/index.html +0 -191
  535. package/coverage/lcov-report/src/index.ts.html +0 -133
  536. package/coverage/lcov-report/src/integrations/airtable.ts.html +0 -529
  537. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  538. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  539. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
  540. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
  541. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  542. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  543. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
  544. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
  545. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
  546. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  547. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1312
  548. package/coverage/lcov-report/src/integrations/index.html +0 -371
  549. package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
  550. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1006
  551. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
  552. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -952
  553. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1474
  554. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1069
  555. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  556. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
  557. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  558. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
  559. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  560. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  561. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1006
  562. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
  563. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
  564. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  565. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  566. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  567. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  568. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  569. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  570. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  571. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  572. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  573. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
  574. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  575. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  576. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  577. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  578. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  579. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  580. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  581. package/coverage/lcov-report/src/migrations/functions/index.html +0 -146
  582. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  583. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  584. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  585. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  586. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  587. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  588. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  589. package/coverage/lcov-report/src/migrations/index.ts.html +0 -403
  590. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  591. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  592. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  593. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  594. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  595. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  596. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  597. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  598. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
  599. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  600. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  601. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  602. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  603. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
  604. package/coverage/lcov-report/src/startup.ts.html +0 -499
  605. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.js.html +0 -1885
  606. package/coverage/lcov-report/src/tests/utilities/controllers.js.html +0 -133
  607. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  608. package/coverage/lcov-report/src/tests/utilities/structures.js.html +0 -649
  609. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
  610. package/coverage/lcov-report/src/threads/index.html +0 -161
  611. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  612. package/coverage/lcov-report/src/threads/query.ts.html +0 -961
  613. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  614. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.js.html +0 -547
  615. package/coverage/lcov-report/src/utilities/fileSystem/index.js.html +0 -1141
  616. package/coverage/lcov-report/src/utilities/fileSystem/processor.js.html +0 -148
  617. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  618. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  619. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  620. package/coverage/lcov-report/src/utilities/rowProcessor/map.js.html +0 -370
  621. package/coverage/lcov-report/src/watch.ts.html +0 -196
  622. package/coverage/lcov-report/src/websocket.ts.html +0 -163
  623. package/dist/db/defaultData/datasource_bb_default.js +0 -565
  624. package/dist/db/defaultData/employeeImport.js +0 -153
  625. package/dist/db/defaultData/expensesImport.js +0 -115
  626. package/dist/db/defaultData/inventoryImport.js +0 -107
  627. package/dist/db/defaultData/jobsImport.js +0 -150
  628. package/dist/db/linkedRows/LinkDocument.js +0 -32
  629. package/dist/utilities/rowProcessor/map.js +0 -96
  630. package/jest.config.ts +0 -33
  631. package/src/api/controllers/script.ts +0 -12
  632. package/src/api/routes/analytics.ts +0 -9
  633. package/src/api/routes/apikeys.ts +0 -12
  634. package/src/api/routes/automation.ts +0 -87
  635. package/src/api/routes/cloud.ts +0 -18
  636. package/src/api/routes/component.ts +0 -14
  637. package/src/api/routes/datasource.ts +0 -60
  638. package/src/api/routes/deploy.ts +0 -21
  639. package/src/api/routes/dev.ts +0 -38
  640. package/src/api/routes/integration.ts +0 -16
  641. package/src/api/routes/layout.ts +0 -16
  642. package/src/api/routes/migrations.ts +0 -14
  643. package/src/api/routes/permission.ts +0 -41
  644. package/src/api/routes/role.ts +0 -24
  645. package/src/api/routes/routing.ts +0 -14
  646. package/src/api/routes/screen.ts +0 -23
  647. package/src/api/routes/script.ts +0 -10
  648. package/src/api/routes/templates.ts +0 -16
  649. package/src/api/routes/user.ts +0 -51
  650. package/src/api/routes/view.ts +0 -34
  651. package/src/db/defaultData/datasource_bb_default.js +0 -646
  652. package/src/db/defaultData/employeeImport.js +0 -152
  653. package/src/db/defaultData/expensesImport.js +0 -114
  654. package/src/db/defaultData/inventoryImport.js +0 -106
  655. package/src/db/defaultData/jobsImport.js +0 -158
  656. package/src/db/linkedRows/LinkDocument.js +0 -47
  657. package/src/middleware/appInfo.ts +0 -20
  658. package/src/middleware/publicApi.ts +0 -21
  659. package/src/utilities/budibaseDir.ts +0 -3
  660. package/src/utilities/global.ts +0 -138
  661. package/src/utilities/routing/index.ts +0 -32
  662. package/src/utilities/rowProcessor/map.js +0 -95
  663. package/src/utilities/security.ts +0 -65
@@ -12,7 +12,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getIntegration = exports.getDefinitions = void 0;
16
15
  const postgres_1 = __importDefault(require("./postgres"));
17
16
  const dynamodb_1 = __importDefault(require("./dynamodb"));
18
17
  const mongodb_1 = __importDefault(require("./mongodb"));
@@ -76,8 +75,8 @@ if (process.arch &&
76
75
  DEFINITIONS[types_1.SourceName.ORACLE] = oracle_1.default.schema;
77
76
  INTEGRATIONS[types_1.SourceName.ORACLE] = oracle_1.default.integration;
78
77
  }
79
- function getDefinitions() {
80
- return __awaiter(this, void 0, void 0, function* () {
78
+ module.exports = {
79
+ getDefinitions: () => __awaiter(void 0, void 0, void 0, function* () {
81
80
  const pluginSchemas = {};
82
81
  if (environment.SELF_HOSTED) {
83
82
  const plugins = yield (0, plugin_1.getPlugins)(types_1.PluginType.DATASOURCE);
@@ -91,12 +90,9 @@ function getDefinitions() {
91
90
  }
92
91
  }
93
92
  return Object.assign(Object.assign({}, cloneDeep(DEFINITIONS)), pluginSchemas);
94
- });
95
- }
96
- exports.getDefinitions = getDefinitions;
97
- function getIntegration(integration) {
98
- var _a;
99
- return __awaiter(this, void 0, void 0, function* () {
93
+ }),
94
+ getIntegration: (integration) => __awaiter(void 0, void 0, void 0, function* () {
95
+ var _a;
100
96
  if (INTEGRATIONS[integration]) {
101
97
  return INTEGRATIONS[integration];
102
98
  }
@@ -116,10 +112,5 @@ function getIntegration(integration) {
116
112
  }
117
113
  }
118
114
  throw new Error("No datasource implementation found.");
119
- });
120
- }
121
- exports.getIntegration = getIntegration;
122
- exports.default = {
123
- getDefinitions,
124
- getIntegration,
115
+ }),
125
116
  };
@@ -11,7 +11,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const types_1 = require("@budibase/types");
13
13
  const AWS = require("aws-sdk");
14
- const csv = require("csvtojson");
15
14
  const SCHEMA = {
16
15
  docs: "https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html",
17
16
  description: "Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.",
@@ -42,106 +41,16 @@ const SCHEMA = {
42
41
  },
43
42
  },
44
43
  query: {
45
- create: {
46
- type: types_1.QueryType.FIELDS,
47
- fields: {
48
- bucket: {
49
- display: "New Bucket",
50
- type: types_1.DatasourceFieldType.STRING,
51
- required: true,
52
- },
53
- location: {
54
- required: true,
55
- default: "us-east-1",
56
- type: types_1.DatasourceFieldType.STRING,
57
- },
58
- grantFullControl: {
59
- display: "Grant full control",
60
- type: types_1.DatasourceFieldType.STRING,
61
- },
62
- grantRead: {
63
- display: "Grant read",
64
- type: types_1.DatasourceFieldType.STRING,
65
- },
66
- grantReadAcp: {
67
- display: "Grant read ACP",
68
- type: types_1.DatasourceFieldType.STRING,
69
- },
70
- grantWrite: {
71
- display: "Grant write",
72
- type: types_1.DatasourceFieldType.STRING,
73
- },
74
- grantWriteAcp: {
75
- display: "Grant write ACP",
76
- type: types_1.DatasourceFieldType.STRING,
77
- },
78
- },
79
- },
80
44
  read: {
81
45
  type: types_1.QueryType.FIELDS,
82
46
  fields: {
83
47
  bucket: {
84
- type: types_1.DatasourceFieldType.STRING,
85
- required: true,
86
- },
87
- delimiter: {
88
- type: types_1.DatasourceFieldType.STRING,
89
- },
90
- marker: {
91
- type: types_1.DatasourceFieldType.STRING,
92
- },
93
- maxKeys: {
94
- type: types_1.DatasourceFieldType.NUMBER,
95
- display: "Max Keys",
96
- },
97
- prefix: {
98
- type: types_1.DatasourceFieldType.STRING,
99
- },
100
- },
101
- },
102
- readCsv: {
103
- displayName: "Read CSV",
104
- type: types_1.QueryType.FIELDS,
105
- fields: {
106
- bucket: {
107
- type: types_1.DatasourceFieldType.STRING,
108
- required: true,
109
- },
110
- key: {
111
- type: types_1.DatasourceFieldType.STRING,
112
- required: true,
113
- },
114
- },
115
- },
116
- delete: {
117
- type: types_1.QueryType.FIELDS,
118
- fields: {
119
- bucket: {
120
- type: types_1.DatasourceFieldType.STRING,
121
- required: true,
122
- },
123
- delete: {
124
- type: types_1.DatasourceFieldType.JSON,
48
+ type: "string",
125
49
  required: true,
126
50
  },
127
51
  },
128
52
  },
129
53
  },
130
- extra: {
131
- acl: {
132
- required: false,
133
- displayName: "ACL",
134
- type: types_1.DatasourceFieldType.LIST,
135
- data: {
136
- create: [
137
- "private",
138
- "public-read",
139
- "public-read-write",
140
- "authenticated-read",
141
- ],
142
- },
143
- },
144
- },
145
54
  };
146
55
  class S3Integration {
147
56
  constructor(config) {
@@ -154,81 +63,16 @@ class S3Integration {
154
63
  }
155
64
  this.client = new AWS.S3(this.config);
156
65
  }
157
- create(query) {
158
- var _a;
159
- return __awaiter(this, void 0, void 0, function* () {
160
- let params = {
161
- Bucket: query.bucket,
162
- ACL: (_a = query.extra) === null || _a === void 0 ? void 0 : _a.acl,
163
- GrantFullControl: query.grantFullControl,
164
- GrantRead: query.grantRead,
165
- GrantReadACP: query.grantReadAcp,
166
- GrantWrite: query.grantWrite,
167
- GrantWriteACP: query.grantWriteAcp,
168
- };
169
- if (query.location) {
170
- params["CreateBucketConfiguration"] = {
171
- LocationConstraint: query.location,
172
- };
173
- }
174
- return yield this.client.createBucket(params).promise();
175
- });
176
- }
177
66
  read(query) {
178
67
  return __awaiter(this, void 0, void 0, function* () {
179
68
  const response = yield this.client
180
69
  .listObjects({
181
70
  Bucket: query.bucket,
182
- Delimiter: query.delimiter,
183
- Marker: query.marker,
184
- MaxKeys: query.maxKeys,
185
- Prefix: query.prefix,
186
71
  })
187
72
  .promise();
188
73
  return response.Contents;
189
74
  });
190
75
  }
191
- readCsv(query) {
192
- return __awaiter(this, void 0, void 0, function* () {
193
- const stream = this.client
194
- .getObject({
195
- Bucket: query.bucket,
196
- Key: query.key,
197
- })
198
- .createReadStream();
199
- let csvError = false;
200
- return new Promise((resolve, reject) => {
201
- stream.on("error", (err) => {
202
- reject(err);
203
- });
204
- const response = csv()
205
- .fromStream(stream)
206
- .on("error", () => {
207
- csvError = true;
208
- });
209
- stream.on("finish", () => {
210
- resolve(response);
211
- });
212
- }).catch(err => {
213
- if (csvError) {
214
- throw new Error("Could not read CSV");
215
- }
216
- else {
217
- throw err;
218
- }
219
- });
220
- });
221
- }
222
- delete(query) {
223
- return __awaiter(this, void 0, void 0, function* () {
224
- return yield this.client
225
- .deleteObjects({
226
- Bucket: query.bucket,
227
- Delete: JSON.parse(query.delete),
228
- })
229
- .promise();
230
- });
231
- }
232
76
  }
233
77
  exports.default = {
234
78
  schema: SCHEMA,
@@ -1,22 +1,17 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.middleware = exports.AppType = void 0;
4
- const utils_1 = require("../db/utils");
5
- var AppType;
6
- (function (AppType) {
7
- AppType["DEV"] = "dev";
8
- AppType["PROD"] = "prod";
9
- })(AppType = exports.AppType || (exports.AppType = {}));
10
- function middleware({ appType } = {}) {
11
- return (ctx, next) => {
2
+ const { isDevAppID, isProdAppID } = require("../db/utils");
3
+ exports.AppType = {
4
+ DEV: "dev",
5
+ PROD: "prod",
6
+ };
7
+ exports.middleware =
8
+ ({ appType } = {}) => (ctx, next) => {
12
9
  const appId = ctx.appId;
13
- if (appType === AppType.DEV && appId && !(0, utils_1.isDevAppID)(appId)) {
10
+ if (appType === exports.AppType.DEV && appId && !isDevAppID(appId)) {
14
11
  ctx.throw(400, "Only apps in development support this endpoint");
15
12
  }
16
- if (appType === AppType.PROD && appId && !(0, utils_1.isProdAppID)(appId)) {
13
+ if (appType === exports.AppType.PROD && appId && !isProdAppID(appId)) {
17
14
  ctx.throw(400, "Only apps in production support this endpoint");
18
15
  }
19
16
  return next();
20
17
  };
21
- }
22
- exports.middleware = middleware;
@@ -8,16 +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
- };
14
- const backend_core_1 = require("@budibase/backend-core");
15
- const builder_1 = __importDefault(require("./builder"));
16
- const utils_1 = require("./utils");
11
+ const roles_1 = require("@budibase/backend-core/roles");
12
+ const { PermissionTypes, PermissionLevels, doesHaveBasePermission, } = require("@budibase/backend-core/permissions");
13
+ const builderMiddleware = require("./builder");
14
+ const { isWebhookEndpoint } = require("./utils");
15
+ const { buildCsrfMiddleware } = require("@budibase/backend-core/auth");
16
+ const { getAppId } = require("@budibase/backend-core/context");
17
17
  function hasResource(ctx) {
18
18
  return ctx.resourceId != null;
19
19
  }
20
- const csrf = backend_core_1.auth.buildCsrfMiddleware();
20
+ const csrf = buildCsrfMiddleware();
21
21
  /**
22
22
  * Apply authorization to the requested resource:
23
23
  * - If this is a builder resource the user must be a builder.
@@ -27,7 +27,7 @@ const csrf = backend_core_1.auth.buildCsrfMiddleware();
27
27
  const checkAuthorized = (ctx, resourceRoles, permType, permLevel) => __awaiter(void 0, void 0, void 0, function* () {
28
28
  // check if this is a builder api and the user is not a builder
29
29
  const isBuilder = ctx.user && ctx.user.builder && ctx.user.builder.global;
30
- const isBuilderApi = permType === backend_core_1.permissions.PermissionType.BUILDER;
30
+ const isBuilderApi = permType === PermissionTypes.BUILDER;
31
31
  if (isBuilderApi && !isBuilder) {
32
32
  return ctx.throw(403, "Not Authorized");
33
33
  }
@@ -38,8 +38,8 @@ const checkAuthorized = (ctx, resourceRoles, permType, permLevel) => __awaiter(v
38
38
  });
39
39
  const checkAuthorizedResource = (ctx, resourceRoles, permType, permLevel) => __awaiter(void 0, void 0, void 0, function* () {
40
40
  // get the user's roles
41
- const roleId = ctx.roleId || backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
42
- const userRoles = (yield backend_core_1.roles.getUserRoleHierarchy(roleId, {
41
+ const roleId = ctx.roleId || roles_1.BUILTIN_ROLE_IDS.PUBLIC;
42
+ const userRoles = (yield (0, roles_1.getUserRoleHierarchy)(roleId, {
43
43
  idOnly: false,
44
44
  }));
45
45
  const permError = "User does not have permission";
@@ -52,14 +52,14 @@ const checkAuthorizedResource = (ctx, resourceRoles, permType, permLevel) => __a
52
52
  }
53
53
  // fallback to the base permissions when no resource roles are found
54
54
  }
55
- else if (!backend_core_1.permissions.doesHaveBasePermission(permType, permLevel, userRoles)) {
55
+ else if (!doesHaveBasePermission(permType, permLevel, userRoles)) {
56
56
  ctx.throw(403, permError);
57
57
  }
58
58
  });
59
59
  module.exports = (permType, permLevel = null, opts = { schema: false }) => (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
60
60
  // webhooks don't need authentication, each webhook unique
61
61
  // also internal requests (between services) don't need authorized
62
- if ((0, utils_1.isWebhookEndpoint)(ctx) || ctx.internal) {
62
+ if (isWebhookEndpoint(ctx) || ctx.internal) {
63
63
  return next();
64
64
  }
65
65
  if (!ctx.user) {
@@ -67,24 +67,23 @@ module.exports = (permType, permLevel = null, opts = { schema: false }) => (ctx,
67
67
  }
68
68
  // check general builder stuff, this middleware is a good way
69
69
  // to find API endpoints which are builder focused
70
- yield (0, builder_1.default)(ctx, permType);
70
+ yield builderMiddleware(ctx, permType);
71
71
  // get the resource roles
72
72
  let resourceRoles = [];
73
73
  let otherLevelRoles = [];
74
- const otherLevel = permLevel === backend_core_1.permissions.PermissionLevel.READ
75
- ? backend_core_1.permissions.PermissionLevel.WRITE
76
- : backend_core_1.permissions.PermissionLevel.READ;
77
- const appId = backend_core_1.context.getAppId();
74
+ const otherLevel = permLevel === PermissionLevels.READ
75
+ ? PermissionLevels.WRITE
76
+ : PermissionLevels.READ;
77
+ const appId = getAppId();
78
78
  if (appId && hasResource(ctx)) {
79
- resourceRoles = yield backend_core_1.roles.getRequiredResourceRole(permLevel, ctx);
79
+ resourceRoles = yield (0, roles_1.getRequiredResourceRole)(permLevel, ctx);
80
80
  if (opts && opts.schema) {
81
- otherLevelRoles = yield backend_core_1.roles.getRequiredResourceRole(otherLevel, ctx);
81
+ otherLevelRoles = yield (0, roles_1.getRequiredResourceRole)(otherLevel, ctx);
82
82
  }
83
83
  }
84
84
  // if the resource is public, proceed
85
- if (resourceRoles.includes(backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC) ||
86
- (otherLevelRoles &&
87
- otherLevelRoles.includes(backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC))) {
85
+ if (resourceRoles.includes(roles_1.BUILTIN_ROLE_IDS.PUBLIC) ||
86
+ (otherLevelRoles && otherLevelRoles.includes(roles_1.BUILTIN_ROLE_IDS.PUBLIC))) {
88
87
  return next();
89
88
  }
90
89
  // check authenticated
@@ -8,9 +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 utils_1 = require("../db/utils");
12
- const redis_1 = require("../utilities/redis");
13
- const backend_core_1 = require("@budibase/backend-core");
11
+ const { APP_DEV_PREFIX } = require("../db/utils");
12
+ const { doesUserHaveLock, updateLock, checkDebounce, setDebounce, } = require("../utilities/redis");
13
+ const { doWithDB } = require("@budibase/backend-core/db");
14
+ const { DocumentType, getGlobalIDFromUserMetadataID } = require("../db/utils");
15
+ const { PermissionTypes } = require("@budibase/backend-core/permissions");
16
+ const { app: appCache } = require("@budibase/backend-core/cache");
14
17
  const DEBOUNCE_TIME_SEC = 30;
15
18
  /************************************************** *
16
19
  * This middleware has been broken out of the *
@@ -21,22 +24,21 @@ const DEBOUNCE_TIME_SEC = 30;
21
24
  * through the authorized middleware *
22
25
  ****************************************************/
23
26
  function checkDevAppLocks(ctx) {
24
- var _a, _b;
25
27
  return __awaiter(this, void 0, void 0, function* () {
26
28
  const appId = ctx.appId;
27
29
  // if any public usage, don't proceed
28
- if (!((_a = ctx.user) === null || _a === void 0 ? void 0 : _a._id) && !((_b = ctx.user) === null || _b === void 0 ? void 0 : _b.userId)) {
30
+ if (!ctx.user._id && !ctx.user.userId) {
29
31
  return;
30
32
  }
31
33
  // not a development app, don't need to do anything
32
- if (!appId || !appId.startsWith(utils_1.APP_DEV_PREFIX)) {
34
+ if (!appId || !appId.startsWith(APP_DEV_PREFIX)) {
33
35
  return;
34
36
  }
35
- if (!(yield (0, redis_1.doesUserHaveLock)(appId, ctx.user))) {
37
+ if (!(yield doesUserHaveLock(appId, ctx.user))) {
36
38
  ctx.throw(400, "User does not hold app lock.");
37
39
  }
38
40
  // they do have lock, update it
39
- yield (0, redis_1.updateLock)(appId, ctx.user);
41
+ yield updateLock(appId, ctx.user);
40
42
  });
41
43
  }
42
44
  function updateAppUpdatedAt(ctx) {
@@ -44,45 +46,42 @@ function updateAppUpdatedAt(ctx) {
44
46
  const appId = ctx.appId;
45
47
  // if debouncing skip this update
46
48
  // get methods also aren't updating
47
- if (ctx.method === "GET" || (yield (0, redis_1.checkDebounce)(appId))) {
49
+ if (ctx.method === "GET" || (yield checkDebounce(appId))) {
48
50
  return;
49
51
  }
50
- yield backend_core_1.db.doWithDB(appId, (db) => __awaiter(this, void 0, void 0, function* () {
51
- var _a;
52
- const metadata = yield db.get(utils_1.DocumentType.APP_METADATA);
52
+ yield doWithDB(appId, (db) => __awaiter(this, void 0, void 0, function* () {
53
+ const metadata = yield db.get(DocumentType.APP_METADATA);
53
54
  metadata.updatedAt = new Date().toISOString();
54
- metadata.updatedBy = (0, utils_1.getGlobalIDFromUserMetadataID)((_a = ctx.user) === null || _a === void 0 ? void 0 : _a.userId);
55
+ metadata.updatedBy = getGlobalIDFromUserMetadataID(ctx.user.userId);
55
56
  const response = yield db.put(metadata);
56
57
  metadata._rev = response.rev;
57
- yield backend_core_1.cache.app.invalidateAppMetadata(appId, metadata);
58
+ yield appCache.invalidateAppMetadata(appId, metadata);
58
59
  // set a new debounce record with a short TTL
59
- yield (0, redis_1.setDebounce)(appId, DEBOUNCE_TIME_SEC);
60
+ yield setDebounce(appId, DEBOUNCE_TIME_SEC);
60
61
  }));
61
62
  });
62
63
  }
63
- module.exports = function builder(ctx, permType) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- const appId = ctx.appId;
66
- // this only functions within an app context
67
- if (!appId) {
68
- return;
69
- }
70
- const isBuilderApi = permType === backend_core_1.permissions.PermissionType.BUILDER;
71
- const referer = ctx.headers["referer"];
72
- const overviewPath = "/builder/portal/overview/";
73
- const overviewContext = !referer ? false : referer.includes(overviewPath);
74
- if (overviewContext) {
75
- return;
76
- }
77
- const hasAppId = !referer ? false : referer.includes(appId);
78
- const editingApp = referer ? hasAppId : false;
79
- // check this is a builder call and editing
80
- if (!isBuilderApi || !editingApp) {
81
- return;
82
- }
83
- // check locks
84
- yield checkDevAppLocks(ctx);
85
- // set updated at time on app
86
- yield updateAppUpdatedAt(ctx);
87
- });
88
- };
64
+ module.exports = (ctx, permType) => __awaiter(void 0, void 0, void 0, function* () {
65
+ const appId = ctx.appId;
66
+ // this only functions within an app context
67
+ if (!appId) {
68
+ return;
69
+ }
70
+ const isBuilderApi = permType === PermissionTypes.BUILDER;
71
+ const referer = ctx.headers["referer"];
72
+ const overviewPath = "/builder/portal/overview/";
73
+ const overviewContext = !referer ? false : referer.includes(overviewPath);
74
+ if (overviewContext) {
75
+ return;
76
+ }
77
+ const hasAppId = !referer ? false : referer.includes(appId);
78
+ const editingApp = referer ? hasAppId : false;
79
+ // check this is a builder call and editing
80
+ if (!isBuilderApi || !editingApp) {
81
+ return;
82
+ }
83
+ // check locks
84
+ yield checkDevAppLocks(ctx);
85
+ // set updated at time on app
86
+ yield updateAppUpdatedAt(ctx);
87
+ });
@@ -8,24 +8,27 @@ 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
- const backend_core_1 = require("@budibase/backend-core");
15
- const utils_1 = require("../db/utils");
16
- const global_1 = require("../utilities/global");
17
- const environment_1 = __importDefault(require("../environment"));
18
- const utils_2 = require("./utils");
11
+ const { getAppIdFromCtx, setCookie, getCookie, clearCookie, } = require("@budibase/backend-core/utils");
12
+ const { Cookies, Headers } = require("@budibase/backend-core/constants");
13
+ const { getRole } = require("@budibase/backend-core/roles");
14
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
15
+ const { generateUserMetadataID, isDevAppID } = require("../db/utils");
16
+ const { dbExists } = require("@budibase/backend-core/db");
17
+ const { isUserInAppTenant } = require("@budibase/backend-core/tenancy");
18
+ const { getCachedSelf } = require("../utilities/global");
19
+ const env = require("../environment");
20
+ const { isWebhookEndpoint } = require("./utils");
21
+ const { doInAppContext } = require("@budibase/backend-core/context");
19
22
  module.exports = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
20
23
  // try to get the appID from the request
21
- let requestAppId = yield backend_core_1.utils.getAppIdFromCtx(ctx);
24
+ let requestAppId = yield getAppIdFromCtx(ctx);
22
25
  // get app cookie if it exists
23
- let appCookie;
26
+ let appCookie = null;
24
27
  try {
25
- appCookie = backend_core_1.utils.getCookie(ctx, backend_core_1.constants.Cookie.CurrentApp);
28
+ appCookie = getCookie(ctx, Cookies.CurrentApp);
26
29
  }
27
30
  catch (err) {
28
- backend_core_1.utils.clearCookie(ctx, backend_core_1.constants.Cookie.CurrentApp);
31
+ clearCookie(ctx, Cookies.CurrentApp);
29
32
  }
30
33
  if (!appCookie && !requestAppId) {
31
34
  return next();
@@ -33,49 +36,46 @@ module.exports = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
33
36
  // check the app exists referenced in cookie
34
37
  if (appCookie) {
35
38
  const appId = appCookie.appId;
36
- const exists = yield backend_core_1.db.dbExists(appId);
39
+ const exists = yield dbExists(appId);
37
40
  if (!exists) {
38
- backend_core_1.utils.clearCookie(ctx, backend_core_1.constants.Cookie.CurrentApp);
41
+ clearCookie(ctx, Cookies.CurrentApp);
39
42
  return next();
40
43
  }
41
44
  // if the request app ID wasn't set, update it with the cookie
42
45
  requestAppId = requestAppId || appId;
43
46
  }
44
47
  // deny access to application preview
45
- if (!environment_1.default.isTest()) {
46
- if ((0, utils_1.isDevAppID)(requestAppId) &&
47
- !(0, utils_2.isWebhookEndpoint)(ctx) &&
48
+ if (!env.isTest()) {
49
+ if (isDevAppID(requestAppId) &&
50
+ !isWebhookEndpoint(ctx) &&
48
51
  (!ctx.user || !ctx.user.builder || !ctx.user.builder.global)) {
49
- backend_core_1.utils.clearCookie(ctx, backend_core_1.constants.Cookie.CurrentApp);
52
+ clearCookie(ctx, Cookies.CurrentApp);
50
53
  return ctx.redirect("/");
51
54
  }
52
55
  }
53
- let appId, roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
56
+ let appId, roleId = BUILTIN_ROLE_IDS.PUBLIC;
54
57
  if (!ctx.user) {
55
58
  // not logged in, try to set a cookie for public apps
56
59
  appId = requestAppId;
57
60
  }
58
61
  else if (requestAppId != null) {
59
62
  // Different App ID means cookie needs reset, or if the same public user has logged in
60
- const globalUser = yield (0, global_1.getCachedSelf)(ctx, requestAppId);
63
+ const globalUser = yield getCachedSelf(ctx, requestAppId);
61
64
  appId = requestAppId;
62
65
  // retrieving global user gets the right role
63
66
  roleId = globalUser.roleId || roleId;
64
67
  // Allow builders to specify their role via a header
65
68
  const isBuilder = globalUser && globalUser.builder && globalUser.builder.global;
66
- const isDevApp = appId && (0, utils_1.isDevAppID)(appId);
67
- const roleHeader = ctx.request &&
68
- ctx.request.headers[backend_core_1.constants.Header.PREVIEW_ROLE];
69
+ const isDevApp = appId && isDevAppID(appId);
70
+ const roleHeader = ctx.request && ctx.request.headers[Headers.PREVIEW_ROLE];
69
71
  if (isBuilder && isDevApp && roleHeader) {
70
72
  // Ensure the role is valid by ensuring a definition exists
71
73
  try {
72
- if (roleHeader) {
73
- yield backend_core_1.roles.getRole(roleHeader);
74
- roleId = roleHeader;
75
- // Delete admin and builder flags so that the specified role is honoured
76
- delete ctx.user.builder;
77
- delete ctx.user.admin;
78
- }
74
+ yield getRole(roleHeader);
75
+ roleId = roleHeader;
76
+ // Delete admin and builder flags so that the specified role is honoured
77
+ delete ctx.user.builder;
78
+ delete ctx.user.admin;
79
79
  }
80
80
  catch (error) {
81
81
  // Swallow error and do nothing
@@ -86,40 +86,38 @@ module.exports = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
86
86
  if (!appId) {
87
87
  return next();
88
88
  }
89
- return backend_core_1.context.doInAppContext(appId, () => __awaiter(void 0, void 0, void 0, function* () {
89
+ return doInAppContext(appId, () => __awaiter(void 0, void 0, void 0, function* () {
90
90
  let skipCookie = false;
91
91
  // if the user not in the right tenant then make sure they have no permissions
92
92
  // need to judge this only based on the request app ID,
93
- if (environment_1.default.MULTI_TENANCY &&
93
+ if (env.MULTI_TENANCY &&
94
94
  ctx.user &&
95
95
  requestAppId &&
96
- !backend_core_1.tenancy.isUserInAppTenant(requestAppId, ctx.user)) {
96
+ !isUserInAppTenant(requestAppId, ctx.user)) {
97
97
  // don't error, simply remove the users rights (they are a public user)
98
98
  delete ctx.user.builder;
99
99
  delete ctx.user.admin;
100
100
  delete ctx.user.roles;
101
101
  ctx.isAuthenticated = false;
102
- roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
102
+ roleId = BUILTIN_ROLE_IDS.PUBLIC;
103
103
  skipCookie = true;
104
104
  }
105
105
  ctx.appId = appId;
106
106
  if (roleId) {
107
107
  ctx.roleId = roleId;
108
108
  const globalId = ctx.user ? ctx.user._id : undefined;
109
- const userId = ctx.user
110
- ? (0, utils_1.generateUserMetadataID)(ctx.user._id)
111
- : undefined;
109
+ const userId = ctx.user ? generateUserMetadataID(ctx.user._id) : null;
112
110
  ctx.user = Object.assign(Object.assign({}, ctx.user), {
113
111
  // override userID with metadata one
114
112
  _id: userId, userId,
115
113
  globalId,
116
- roleId, role: yield backend_core_1.roles.getRole(roleId) });
114
+ roleId, role: yield getRole(roleId) });
117
115
  }
118
116
  if ((requestAppId !== appId ||
119
117
  appCookie == null ||
120
118
  appCookie.appId !== requestAppId) &&
121
119
  !skipCookie) {
122
- backend_core_1.utils.setCookie(ctx, { appId }, backend_core_1.constants.Cookie.CurrentApp);
120
+ setCookie(ctx, { appId }, Cookies.CurrentApp);
123
121
  }
124
122
  return next();
125
123
  }));