@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
@@ -1,18 +1,17 @@
1
1
  const { checkBuilderEndpoint } = require("./utilities/TestFunctions")
2
+ const { getAppDB } = require("@budibase/backend-core/context")
2
3
  const setup = require("./utilities")
3
4
  const { basicTable } = setup.structures
4
- const { events, context } = require("@budibase/backend-core")
5
+ const { events } = require("@budibase/backend-core")
5
6
 
6
7
  describe("/tables", () => {
7
8
  let request = setup.getRequest()
8
9
  let config = setup.getConfig()
9
- let appId
10
10
 
11
11
  afterAll(setup.afterAll)
12
12
 
13
13
  beforeEach(async () => {
14
- const app = await config.init()
15
- appId = app.appId
14
+ await config.init()
16
15
  })
17
16
 
18
17
  describe("create", () => {
@@ -200,6 +199,38 @@ describe("/tables", () => {
200
199
  })
201
200
  })
202
201
 
202
+ describe("indexing", () => {
203
+ it("should be able to create a table with indexes", async () => {
204
+ const db = getAppDB(config)
205
+ const indexCount = (await db.getIndexes()).total_rows
206
+ const table = basicTable()
207
+ table.indexes = ["name"]
208
+ const res = await request
209
+ .post(`/api/tables`)
210
+ .send(table)
211
+ .set(config.defaultHeaders())
212
+ .expect('Content-Type', /json/)
213
+ .expect(200)
214
+ expect(res.body._id).toBeDefined()
215
+ expect(res.body._rev).toBeDefined()
216
+ expect((await db.getIndexes()).total_rows).toEqual(indexCount + 1)
217
+ // update index to see what happens
218
+ table.indexes = ["name", "description"]
219
+ await request
220
+ .post(`/api/tables`)
221
+ .send({
222
+ ...table,
223
+ _id: res.body._id,
224
+ _rev: res.body._rev,
225
+ })
226
+ .set(config.defaultHeaders())
227
+ .expect('Content-Type', /json/)
228
+ .expect(200)
229
+ // shouldn't have created a new index
230
+ expect((await db.getIndexes()).total_rows).toEqual(indexCount + 1)
231
+ })
232
+ })
233
+
203
234
  describe("validate csv", () => {
204
235
  it("should be able to validate a CSV layout", async () => {
205
236
  const res = await request
@@ -218,40 +249,6 @@ describe("/tables", () => {
218
249
  })
219
250
  })
220
251
 
221
- describe("indexing", () => {
222
- it("should be able to create a table with indexes", async () => {
223
- await context.doInAppContext(appId, async () => {
224
- const db = context.getAppDB()
225
- const indexCount = (await db.getIndexes()).total_rows
226
- const table = basicTable()
227
- table.indexes = ["name"]
228
- const res = await request
229
- .post(`/api/tables`)
230
- .send(table)
231
- .set(config.defaultHeaders())
232
- .expect('Content-Type', /json/)
233
- .expect(200)
234
- expect(res.body._id).toBeDefined()
235
- expect(res.body._rev).toBeDefined()
236
- expect((await db.getIndexes()).total_rows).toEqual(indexCount + 1)
237
- // update index to see what happens
238
- table.indexes = ["name", "description"]
239
- await request
240
- .post(`/api/tables`)
241
- .send({
242
- ...table,
243
- _id: res.body._id,
244
- _rev: res.body._rev,
245
- })
246
- .set(config.defaultHeaders())
247
- .expect('Content-Type', /json/)
248
- .expect(200)
249
- // shouldn't have created a new index
250
- expect((await db.getIndexes()).total_rows).toEqual(indexCount + 1)
251
- })
252
- })
253
- })
254
-
255
252
  describe("destroy", () => {
256
253
  let testTable
257
254
 
@@ -1,7 +1,6 @@
1
- const { roles } = require("@budibase/backend-core")
1
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
2
2
  const { checkPermissionsEndpoint } = require("./utilities/TestFunctions")
3
3
  const setup = require("./utilities")
4
- const { BUILTIN_ROLE_IDS } = roles
5
4
 
6
5
  jest.mock("../../../utilities/workerRequests", () => ({
7
6
  getGlobalUsers: jest.fn(() => {
@@ -1,8 +1,10 @@
1
1
  import * as rowController from "../../../controllers/row"
2
2
  import * as appController from "../../../controllers/application"
3
3
  import { AppStatus } from "../../../../db/utils"
4
- import { roles, tenancy, context } from "@budibase/backend-core"
4
+ import { BUILTIN_ROLE_IDS } from "@budibase/backend-core/roles"
5
+ import { doInTenant } from "@budibase/backend-core/tenancy"
5
6
  import { TENANT_ID } from "../../../../tests/utilities/structures"
7
+ import { getAppDB, doInAppContext } from "@budibase/backend-core/context"
6
8
  import * as env from "../../../../environment"
7
9
 
8
10
  class Request {
@@ -19,7 +21,7 @@ class Request {
19
21
  }
20
22
 
21
23
  function runRequest(appId: any, controlFunc: any, request?: any) {
22
- return context.doInAppContext(appId, async () => {
24
+ return doInAppContext(appId, async () => {
23
25
  return controlFunc(request)
24
26
  })
25
27
  }
@@ -31,7 +33,7 @@ export const getAllTableRows = async (config: any) => {
31
33
  }
32
34
 
33
35
  export const clearAllApps = async (tenantId = TENANT_ID) => {
34
- await tenancy.doInTenant(tenantId, async () => {
36
+ await doInTenant(tenantId, async () => {
35
37
  const req: any = { query: { status: AppStatus.DEV }, user: { tenantId } }
36
38
  await appController.fetch(req)
37
39
  const apps = req.body
@@ -49,7 +51,7 @@ export const clearAllApps = async (tenantId = TENANT_ID) => {
49
51
  export const clearAllAutomations = async (config: any) => {
50
52
  const automations = await config.getAllAutomations()
51
53
  for (let auto of automations) {
52
- await context.doInAppContext(config.appId, async () => {
54
+ await doInAppContext(config.appId, async () => {
53
55
  await config.deleteAutomation(auto)
54
56
  })
55
57
  }
@@ -108,7 +110,7 @@ export const checkPermissionsEndpoint = async ({
108
110
  .expect(200)
109
111
 
110
112
  let failHeader
111
- if (failRole === roles.BUILTIN_ROLE_IDS.PUBLIC) {
113
+ if (failRole === BUILTIN_ROLE_IDS.PUBLIC) {
112
114
  failHeader = config.publicHeaders({ prodApp: true })
113
115
  } else {
114
116
  failHeader = await config.login({
@@ -125,7 +127,7 @@ export const checkPermissionsEndpoint = async ({
125
127
  }
126
128
 
127
129
  export const getDB = () => {
128
- return context.getAppDB()
130
+ return getAppDB()
129
131
  }
130
132
 
131
133
  export const testAutomation = async (config: any, automation: any) => {
@@ -0,0 +1,53 @@
1
+ const Router = require("@koa/router")
2
+ const controller = require("../controllers/user")
3
+ const authorized = require("../../middleware/authorized")
4
+ const {
5
+ PermissionLevels,
6
+ PermissionTypes,
7
+ } = require("@budibase/backend-core/permissions")
8
+
9
+ const router = new Router()
10
+
11
+ router
12
+ .get(
13
+ "/api/users/metadata",
14
+ authorized(PermissionTypes.USER, PermissionLevels.READ),
15
+ controller.fetchMetadata
16
+ )
17
+ .get(
18
+ "/api/users/metadata/:id",
19
+ authorized(PermissionTypes.USER, PermissionLevels.READ),
20
+ controller.findMetadata
21
+ )
22
+ .put(
23
+ "/api/users/metadata",
24
+ authorized(PermissionTypes.USER, PermissionLevels.WRITE),
25
+ controller.updateMetadata
26
+ )
27
+ .post(
28
+ "/api/users/metadata/self",
29
+ authorized(PermissionTypes.USER, PermissionLevels.WRITE),
30
+ controller.updateSelfMetadata
31
+ )
32
+ .delete(
33
+ "/api/users/metadata/:id",
34
+ authorized(PermissionTypes.USER, PermissionLevels.WRITE),
35
+ controller.destroyMetadata
36
+ )
37
+ .post(
38
+ "/api/users/metadata/sync/:id",
39
+ authorized(PermissionTypes.USER, PermissionLevels.WRITE),
40
+ controller.syncUser
41
+ )
42
+ .post(
43
+ "/api/users/flags",
44
+ authorized(PermissionTypes.USER, PermissionLevels.WRITE),
45
+ controller.setFlag
46
+ )
47
+ .get(
48
+ "/api/users/flags",
49
+ authorized(PermissionTypes.USER, PermissionLevels.READ),
50
+ controller.getFlags
51
+ )
52
+
53
+ module.exports = router
@@ -1,16 +1,20 @@
1
- import { auth, permissions } from "@budibase/backend-core"
2
- import { DataSourceOperation } from "../../../constants"
3
- import { WebhookActionType } from "@budibase/types"
4
- import Joi from "joi"
1
+ const { joiValidator } = require("@budibase/backend-core/auth")
2
+ const { DataSourceOperation } = require("../../../constants")
3
+ const {
4
+ BUILTIN_PERMISSION_IDS,
5
+ PermissionLevels,
6
+ } = require("@budibase/backend-core/permissions")
7
+ const { WebhookActionType } = require("@budibase/types")
8
+ const Joi = require("joi")
5
9
 
6
10
  const OPTIONAL_STRING = Joi.string().optional().allow(null).allow("")
7
11
  const OPTIONAL_NUMBER = Joi.number().optional().allow(null)
8
12
  const OPTIONAL_BOOLEAN = Joi.boolean().optional().allow(null)
9
13
  const APP_NAME_REGEX = /^[\w\s]+$/
10
14
 
11
- export function tableValidator() {
15
+ exports.tableValidator = () => {
12
16
  // prettier-ignore
13
- return auth.joiValidator.body(Joi.object({
17
+ return joiValidator.body(Joi.object({
14
18
  _id: OPTIONAL_STRING,
15
19
  _rev: OPTIONAL_STRING,
16
20
  type: OPTIONAL_STRING.valid("table", "internal", "external"),
@@ -22,16 +26,16 @@ export function tableValidator() {
22
26
  }).unknown(true))
23
27
  }
24
28
 
25
- export function nameValidator() {
29
+ exports.nameValidator = () => {
26
30
  // prettier-ignore
27
- return auth.joiValidator.body(Joi.object({
31
+ return joiValidator.body(Joi.object({
28
32
  name: OPTIONAL_STRING,
29
33
  }))
30
34
  }
31
35
 
32
- export function datasourceValidator() {
36
+ exports.datasourceValidator = () => {
33
37
  // prettier-ignore
34
- return auth.joiValidator.body(Joi.object({
38
+ return joiValidator.body(Joi.object({
35
39
  _id: Joi.string(),
36
40
  _rev: Joi.string(),
37
41
  type: OPTIONAL_STRING.allow("datasource_plus"),
@@ -60,9 +64,9 @@ function filterObject() {
60
64
  }).unknown(true)
61
65
  }
62
66
 
63
- export function internalSearchValidator() {
67
+ exports.internalSearchValidator = () => {
64
68
  // prettier-ignore
65
- return auth.joiValidator.body(Joi.object({
69
+ return joiValidator.body(Joi.object({
66
70
  tableId: OPTIONAL_STRING,
67
71
  query: filterObject(),
68
72
  limit: OPTIONAL_NUMBER,
@@ -74,8 +78,8 @@ export function internalSearchValidator() {
74
78
  }))
75
79
  }
76
80
 
77
- export function externalSearchValidator() {
78
- return auth.joiValidator.body(
81
+ exports.externalSearchValidator = () => {
82
+ return joiValidator.body(
79
83
  Joi.object({
80
84
  query: filterObject(),
81
85
  paginate: Joi.boolean().optional(),
@@ -92,9 +96,9 @@ export function externalSearchValidator() {
92
96
  )
93
97
  }
94
98
 
95
- export function datasourceQueryValidator() {
99
+ exports.datasourceQueryValidator = () => {
96
100
  // prettier-ignore
97
- return auth.joiValidator.body(Joi.object({
101
+ return joiValidator.body(Joi.object({
98
102
  endpoint: Joi.object({
99
103
  datasourceId: Joi.string().required(),
100
104
  operation: Joi.string().required().valid(...Object.values(DataSourceOperation)),
@@ -113,9 +117,9 @@ export function datasourceQueryValidator() {
113
117
  }))
114
118
  }
115
119
 
116
- export function webhookValidator() {
120
+ exports.webhookValidator = () => {
117
121
  // prettier-ignore
118
- return auth.joiValidator.body(Joi.object({
122
+ return joiValidator.body(Joi.object({
119
123
  live: Joi.bool(),
120
124
  _id: OPTIONAL_STRING,
121
125
  _rev: OPTIONAL_STRING,
@@ -128,15 +132,15 @@ export function webhookValidator() {
128
132
  }).unknown(true))
129
133
  }
130
134
 
131
- export function roleValidator() {
132
- const permLevelArray = Object.values(permissions.PermissionLevel)
135
+ exports.roleValidator = () => {
136
+ const permLevelArray = Object.values(PermissionLevels)
133
137
  // prettier-ignore
134
- return auth.joiValidator.body(Joi.object({
138
+ return joiValidator.body(Joi.object({
135
139
  _id: OPTIONAL_STRING,
136
140
  _rev: OPTIONAL_STRING,
137
141
  name: Joi.string().required(),
138
142
  // this is the base permission ID (for now a built in)
139
- permissionId: Joi.string().valid(...Object.values(permissions.BuiltinPermissionID)).required(),
143
+ permissionId: Joi.string().valid(...Object.values(BUILTIN_PERMISSION_IDS)).required(),
140
144
  permissions: Joi.object()
141
145
  .pattern(/.*/, [Joi.string().valid(...permLevelArray)])
142
146
  .optional(),
@@ -144,19 +148,19 @@ export function roleValidator() {
144
148
  }).unknown(true))
145
149
  }
146
150
 
147
- export function permissionValidator() {
148
- const permLevelArray = Object.values(permissions.PermissionLevel)
151
+ exports.permissionValidator = () => {
152
+ const permLevelArray = Object.values(PermissionLevels)
149
153
  // prettier-ignore
150
- return auth.joiValidator.params(Joi.object({
154
+ return joiValidator.params(Joi.object({
151
155
  level: Joi.string().valid(...permLevelArray).required(),
152
156
  resourceId: Joi.string(),
153
157
  roleId: Joi.string(),
154
158
  }).unknown(true))
155
159
  }
156
160
 
157
- export function screenValidator() {
161
+ exports.screenValidator = () => {
158
162
  // prettier-ignore
159
- return auth.joiValidator.body(Joi.object({
163
+ return joiValidator.body(Joi.object({
160
164
  name: Joi.string().required(),
161
165
  showNavigation: OPTIONAL_BOOLEAN,
162
166
  width: OPTIONAL_STRING,
@@ -177,7 +181,7 @@ export function screenValidator() {
177
181
  }).unknown(true))
178
182
  }
179
183
 
180
- function generateStepSchema(allowStepTypes: string[]) {
184
+ function generateStepSchema(allowStepTypes) {
181
185
  // prettier-ignore
182
186
  return Joi.object({
183
187
  stepId: Joi.string().required(),
@@ -192,9 +196,9 @@ function generateStepSchema(allowStepTypes: string[]) {
192
196
  }).unknown(true)
193
197
  }
194
198
 
195
- export function automationValidator(existing = false) {
199
+ exports.automationValidator = (existing = false) => {
196
200
  // prettier-ignore
197
- return auth.joiValidator.body(Joi.object({
201
+ return joiValidator.body(Joi.object({
198
202
  _id: existing ? Joi.string().required() : OPTIONAL_STRING,
199
203
  _rev: existing ? Joi.string().required() : OPTIONAL_STRING,
200
204
  name: Joi.string().required(),
@@ -206,9 +210,9 @@ export function automationValidator(existing = false) {
206
210
  }).unknown(true))
207
211
  }
208
212
 
209
- export function applicationValidator(opts = { isCreate: true }) {
213
+ exports.applicationValidator = (opts = { isCreate: true }) => {
210
214
  // prettier-ignore
211
- const base: any = {
215
+ const base = {
212
216
  _id: OPTIONAL_STRING,
213
217
  _rev: OPTIONAL_STRING,
214
218
  url: OPTIONAL_STRING,
@@ -226,7 +230,7 @@ export function applicationValidator(opts = { isCreate: true }) {
226
230
  base.name = appNameValidator.optional()
227
231
  }
228
232
 
229
- return auth.joiValidator.body(
233
+ return joiValidator.body(
230
234
  Joi.object({
231
235
  _id: OPTIONAL_STRING,
232
236
  _rev: OPTIONAL_STRING,
@@ -0,0 +1,31 @@
1
+ const Router = require("@koa/router")
2
+ const viewController = require("../controllers/view")
3
+ const rowController = require("../controllers/row")
4
+ const authorized = require("../../middleware/authorized")
5
+ const { paramResource } = require("../../middleware/resourceId")
6
+ const {
7
+ BUILDER,
8
+ PermissionTypes,
9
+ PermissionLevels,
10
+ } = require("@budibase/backend-core/permissions")
11
+
12
+ const router = new Router()
13
+
14
+ router
15
+ .get("/api/views/export", authorized(BUILDER), viewController.exportView)
16
+ .get(
17
+ "/api/views/:viewName",
18
+ paramResource("viewName"),
19
+ authorized(PermissionTypes.VIEW, PermissionLevels.READ),
20
+ rowController.fetchView
21
+ )
22
+ .get("/api/views", authorized(BUILDER), viewController.fetch)
23
+ .delete(
24
+ "/api/views/:viewName",
25
+ paramResource("viewName"),
26
+ authorized(BUILDER),
27
+ viewController.destroy
28
+ )
29
+ .post("/api/views", authorized(BUILDER), viewController.save)
30
+
31
+ module.exports = router
@@ -5,7 +5,7 @@ import { permissions } from "@budibase/backend-core"
5
5
  import { webhookValidator } from "./utils/validators"
6
6
 
7
7
  const BUILDER = permissions.BUILDER
8
- const router: Router = new Router()
8
+ const router = new Router()
9
9
 
10
10
  router
11
11
  .get("/api/webhooks", authorized(BUILDER), controller.fetch)
@@ -24,4 +24,4 @@ router
24
24
  // this shouldn't have authorisation, right now its always public
25
25
  .post("/api/webhooks/trigger/:instance/:id", controller.trigger)
26
26
 
27
- export = router
27
+ export default router
package/src/app.ts CHANGED
@@ -19,9 +19,10 @@ const http = require("http")
19
19
  const api = require("./api")
20
20
  const automations = require("./automations/index")
21
21
  const Sentry = require("@sentry/node")
22
+ const { logAlert } = require("@budibase/backend-core/logging")
22
23
  const { Thread } = require("./threads")
23
- import * as redis from "./utilities/redis"
24
- import { events, logging } from "@budibase/backend-core"
24
+ import redis from "./utilities/redis"
25
+ import { events } from "@budibase/backend-core"
25
26
  import { initialise as initialiseWebsockets } from "./websocket"
26
27
  import { startup } from "./startup"
27
28
 
@@ -92,7 +93,7 @@ process.on("uncaughtException", err => {
92
93
  return
93
94
  }
94
95
  errCode = -1
95
- logging.logAlert("Uncaught exception.", err)
96
+ logAlert("Uncaught exception.", err)
96
97
  shutdown()
97
98
  })
98
99
 
@@ -1,3 +1,4 @@
1
+ const env = require("../../environment")
1
2
  const setup = require("./utilities")
2
3
 
3
4
  describe("test the update row action", () => {
@@ -1,5 +1,6 @@
1
1
  const TestConfig = require("../../../tests/utilities/TestConfiguration")
2
- const { context } = require("@budibase/backend-core")
2
+ const { TENANT_ID } = require("../../../tests/utilities/structures")
3
+ const { doInTenant } = require("@budibase/backend-core/tenancy")
3
4
  const actions = require("../../actions")
4
5
  const emitter = require("../../../events/index")
5
6
  const env = require("../../../environment")
@@ -32,7 +33,7 @@ exports.runInProd = async fn => {
32
33
  }
33
34
 
34
35
  exports.runStep = async function runStep(stepId, inputs) {
35
- async function run() {
36
+ return doInTenant(TENANT_ID, async () => {
36
37
  let step = await actions.getAction(stepId)
37
38
  expect(step).toBeDefined()
38
39
  return step({
@@ -42,14 +43,7 @@ exports.runStep = async function runStep(stepId, inputs) {
42
43
  apiKey: exports.apiKey,
43
44
  emitter,
44
45
  })
45
- }
46
- if (config?.appId) {
47
- return context.doInContext(config?.appId, async () => {
48
- return run()
49
- })
50
- } else {
51
- return run()
52
- }
46
+ })
53
47
  }
54
48
 
55
49
  exports.apiKey = "test"
@@ -8,7 +8,8 @@ const { automationQueue } = require("./bullboard")
8
8
  const { checkTestFlag } = require("../utilities/redis")
9
9
  const utils = require("./utils")
10
10
  const env = require("../environment")
11
- const { context, db: dbCore } = require("@budibase/backend-core")
11
+ const { doInAppContext, getAppDB } = require("@budibase/backend-core/context")
12
+ const { getAllApps } = require("@budibase/backend-core/db")
12
13
 
13
14
  const TRIGGER_DEFINITIONS = definitions
14
15
  const JOB_OPTS = {
@@ -17,7 +18,7 @@ const JOB_OPTS = {
17
18
  }
18
19
 
19
20
  async function getAllAutomations() {
20
- const db = context.getAppDB()
21
+ const db = getAppDB()
21
22
  let automations = await db.allDocs(
22
23
  getAutomationParams(null, { include_docs: true })
23
24
  )
@@ -29,7 +30,7 @@ async function queueRelevantRowAutomations(event, eventType) {
29
30
  throw `No appId specified for ${eventType} - check event emitters.`
30
31
  }
31
32
 
32
- context.doInAppContext(event.appId, async () => {
33
+ doInAppContext(event.appId, async () => {
33
34
  let automations = await getAllAutomations()
34
35
 
35
36
  // filter down to the correct event type
@@ -121,9 +122,9 @@ exports.rebootTrigger = async () => {
121
122
  }
122
123
  // iterate through all production apps, find the reboot crons
123
124
  // and trigger events for them
124
- const appIds = await dbCore.getAllApps({ dev: false, idsOnly: true })
125
+ const appIds = await getAllApps({ dev: false, idsOnly: true })
125
126
  for (let prodAppId of appIds) {
126
- await context.doInAppContext(prodAppId, async () => {
127
+ await doInAppContext(prodAppId, async () => {
127
128
  let automations = await getAllAutomations()
128
129
  let rebootEvents = []
129
130
  for (let automation of automations) {
@@ -4,9 +4,15 @@ import { automationQueue } from "./bullboard"
4
4
  import newid from "../db/newid"
5
5
  import { updateEntityMetadata } from "../utilities"
6
6
  import { MetadataTypes } from "../constants"
7
- import { db as dbCore, context } from "@budibase/backend-core"
7
+ import { getProdAppID, doWithDB } from "@budibase/backend-core/db"
8
8
  import { getAutomationMetadataParams } from "../db/utils"
9
9
  import { cloneDeep } from "lodash/fp"
10
+ import {
11
+ getAppDB,
12
+ getAppId,
13
+ getProdAppDB,
14
+ } from "@budibase/backend-core/context"
15
+ import { context } from "@budibase/backend-core"
10
16
  import { quotas } from "@budibase/pro"
11
17
  import { Automation, WebhookActionType } from "@budibase/types"
12
18
  import sdk from "../sdk"
@@ -96,7 +102,7 @@ export async function disableCronById(jobId: number | string) {
96
102
  }
97
103
 
98
104
  export async function clearMetadata() {
99
- const db = context.getProdAppDB()
105
+ const db = getProdAppDB()
100
106
  const automationMetadata = (
101
107
  await db.allDocs(
102
108
  getAutomationMetadataParams({
@@ -151,7 +157,7 @@ export async function enableCronTrigger(appId: any, automation: Automation) {
151
157
  // can't use getAppDB here as this is likely to be called from dev app,
152
158
  // but this call could be for dev app or prod app, need to just use what
153
159
  // was passed in
154
- await dbCore.doWithDB(appId, async (db: any) => {
160
+ await doWithDB(appId, async (db: any) => {
155
161
  const response = await db.put(automation)
156
162
  automation._id = response.id
157
163
  automation._rev = response.rev
@@ -169,10 +175,7 @@ export async function enableCronTrigger(appId: any, automation: Automation) {
169
175
  * written to DB (this does not write to DB as it would be wasteful to repeat).
170
176
  */
171
177
  export async function checkForWebhooks({ oldAuto, newAuto }: any) {
172
- const appId = context.getAppId()
173
- if (!appId) {
174
- throw new Error("Unable to check webhooks - no app ID in context.")
175
- }
178
+ const appId = getAppId()
176
179
  const oldTrigger = oldAuto ? oldAuto.definition.trigger : null
177
180
  const newTrigger = newAuto ? newAuto.definition.trigger : null
178
181
  const triggerChanged =
@@ -191,7 +194,7 @@ export async function checkForWebhooks({ oldAuto, newAuto }: any) {
191
194
  oldTrigger.webhookId
192
195
  ) {
193
196
  try {
194
- let db = context.getAppDB()
197
+ let db = getAppDB()
195
198
  // need to get the webhook to get the rev
196
199
  const webhook = await db.get(oldTrigger.webhookId)
197
200
  // might be updating - reset the inputs to remove the URLs
@@ -221,7 +224,7 @@ export async function checkForWebhooks({ oldAuto, newAuto }: any) {
221
224
  // the app ID has to be development for this endpoint
222
225
  // it can only be used when building the app
223
226
  // but the trigger endpoint will always be used in production
224
- const prodAppId = dbCore.getProdAppID(appId)
227
+ const prodAppId = getProdAppID(appId)
225
228
  newTrigger.inputs = {
226
229
  schemaUrl: `api/webhooks/schema/${appId}/${id}`,
227
230
  triggerUrl: `api/webhooks/trigger/${prodAppId}/${id}`,
@@ -1,4 +1,6 @@
1
- const { objectStore, roles, constants } = require("@budibase/backend-core")
1
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
2
+ const { UserStatus } = require("@budibase/backend-core/constants")
3
+ const { objectStore } = require("@budibase/backend-core")
2
4
 
3
5
  const FilterTypes = {
4
6
  STRING: "string",
@@ -137,7 +139,7 @@ exports.USERS_TABLE_SCHEMA = {
137
139
  constraints: {
138
140
  type: exports.FieldTypes.STRING,
139
141
  presence: false,
140
- inclusion: Object.values(roles.BUILTIN_ROLE_IDS),
142
+ inclusion: Object.values(BUILTIN_ROLE_IDS),
141
143
  },
142
144
  },
143
145
  status: {
@@ -147,7 +149,7 @@ exports.USERS_TABLE_SCHEMA = {
147
149
  constraints: {
148
150
  type: exports.FieldTypes.STRING,
149
151
  presence: false,
150
- inclusion: Object.values(constants.UserStatus),
152
+ inclusion: Object.values(UserStatus),
151
153
  },
152
154
  },
153
155
  },
@@ -1,4 +1,4 @@
1
- const { roles } = require("@budibase/backend-core")
1
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
2
2
  const { BASE_LAYOUT_PROP_IDS } = require("./layouts")
3
3
 
4
4
  exports.createHomeScreen = () => ({
@@ -40,7 +40,7 @@ exports.createHomeScreen = () => ({
40
40
  },
41
41
  routing: {
42
42
  route: "/",
43
- roleId: roles.BUILTIN_ROLE_IDS.BASIC,
43
+ roleId: BUILTIN_ROLE_IDS.BASIC,
44
44
  },
45
45
  name: "home-screen",
46
46
  })
@@ -2,8 +2,8 @@ const newid = require("./newid")
2
2
 
3
3
  // bypass the main application db config
4
4
  // use in memory pouchdb directly
5
- const { db: dbCore } = require("@budibase/backend-core")
6
- const Pouch = dbCore.getPouch({ inMemory: true })
5
+ const { getPouch, closeDB } = require("@budibase/backend-core/db")
6
+ const Pouch = getPouch({ inMemory: true })
7
7
 
8
8
  exports.runView = async (view, calculation, group, data) => {
9
9
  // use a different ID each time for the DB, make sure they
@@ -44,6 +44,6 @@ exports.runView = async (view, calculation, group, data) => {
44
44
  return response
45
45
  } finally {
46
46
  await db.destroy()
47
- await dbCore.closePouchDB(db)
47
+ await closeDB(db)
48
48
  }
49
49
  }