@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,11 +1,18 @@
1
- import { permissions, roles, context } from "@budibase/backend-core"
2
- import { getRoleParams } from "../../db/utils"
3
- import {
1
+ const { getBuiltinPermissions } = require("@budibase/backend-core/permissions")
2
+ const {
3
+ isBuiltin,
4
+ getDBRoleID,
5
+ getExternalRoleID,
6
+ getBuiltinRoles,
7
+ checkForRoleResourceArray,
8
+ } = require("@budibase/backend-core/roles")
9
+ const { getRoleParams } = require("../../db/utils")
10
+ const {
4
11
  CURRENTLY_SUPPORTED_LEVELS,
5
12
  getBasePermissions,
6
- } from "../../utilities/security"
7
- import { removeFromArray } from "../../utilities"
8
- import { BBContext, Database, Role } from "@budibase/types"
13
+ } = require("../../utilities/security")
14
+ const { removeFromArray } = require("../../utilities")
15
+ const { getAppDB } = require("@budibase/backend-core/context")
9
16
 
10
17
  const PermissionUpdateType = {
11
18
  REMOVE: "remove",
@@ -15,7 +22,7 @@ const PermissionUpdateType = {
15
22
  const SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
16
23
 
17
24
  // utility function to stop this repetition - permissions always stored under roles
18
- async function getAllDBRoles(db: Database) {
25
+ async function getAllDBRoles(db) {
19
26
  const body = await db.allDocs(
20
27
  getRoleParams(null, {
21
28
  include_docs: true,
@@ -25,25 +32,21 @@ async function getAllDBRoles(db: Database) {
25
32
  }
26
33
 
27
34
  async function updatePermissionOnRole(
28
- appId: string,
29
- {
30
- roleId,
31
- resourceId,
32
- level,
33
- }: { roleId: string; resourceId: string; level: string },
34
- updateType: string
35
+ appId,
36
+ { roleId, resourceId, level },
37
+ updateType
35
38
  ) {
36
- const db = context.getAppDB()
39
+ const db = getAppDB()
37
40
  const remove = updateType === PermissionUpdateType.REMOVE
38
- const isABuiltin = roles.isBuiltin(roleId)
39
- const dbRoleId = roles.getDBRoleID(roleId)
41
+ const isABuiltin = isBuiltin(roleId)
42
+ const dbRoleId = getDBRoleID(roleId)
40
43
  const dbRoles = await getAllDBRoles(db)
41
44
  const docUpdates = []
42
45
 
43
46
  // the permission is for a built in, make sure it exists
44
47
  if (isABuiltin && !dbRoles.some(role => role._id === dbRoleId)) {
45
- const builtin = roles.getBuiltinRoles()[roleId]
46
- builtin._id = roles.getDBRoleID(builtin._id)
48
+ const builtin = getBuiltinRoles()[roleId]
49
+ builtin._id = getDBRoleID(builtin._id)
47
50
  dbRoles.push(builtin)
48
51
  }
49
52
 
@@ -87,44 +90,41 @@ async function updatePermissionOnRole(
87
90
  }
88
91
 
89
92
  const response = await db.bulkDocs(docUpdates)
90
- return response.map((resp: any) => {
91
- resp._id = roles.getExternalRoleID(resp.id)
93
+ return response.map(resp => {
94
+ resp._id = getExternalRoleID(resp.id)
92
95
  delete resp.id
93
96
  return resp
94
97
  })
95
98
  }
96
99
 
97
- export function fetchBuiltin(ctx: BBContext) {
98
- ctx.body = Object.values(permissions.getBuiltinPermissions())
100
+ exports.fetchBuiltin = function (ctx) {
101
+ ctx.body = Object.values(getBuiltinPermissions())
99
102
  }
100
103
 
101
- export function fetchLevels(ctx: BBContext) {
104
+ exports.fetchLevels = function (ctx) {
102
105
  // for now only provide the read/write perms externally
103
106
  ctx.body = SUPPORTED_LEVELS
104
107
  }
105
108
 
106
- export async function fetch(ctx: BBContext) {
107
- const db = context.getAppDB()
108
- const dbRoles: Role[] = await getAllDBRoles(db)
109
- let permissions: any = {}
109
+ exports.fetch = async function (ctx) {
110
+ const db = getAppDB()
111
+ const roles = await getAllDBRoles(db)
112
+ let permissions = {}
110
113
  // create an object with structure role ID -> resource ID -> level
111
- for (let role of dbRoles) {
114
+ for (let role of roles) {
112
115
  if (!role.permissions) {
113
116
  continue
114
117
  }
115
- const roleId = roles.getExternalRoleID(role._id)
116
- if (!roleId) {
117
- ctx.throw(400, "Unable to retrieve role")
118
- }
118
+ const roleId = getExternalRoleID(role._id)
119
119
  for (let [resource, levelArr] of Object.entries(role.permissions)) {
120
- const levels: string[] = Array.isArray(levelArr) ? levelArr : [levelArr]
121
- const perms: Record<string, string> = {}
122
- levels.forEach(level => (perms[level] = roleId!))
120
+ const levels = Array.isArray(levelArr) ? [levelArr] : levelArr
121
+ const perms = {}
122
+ levels.forEach(level => (perms[level] = roleId))
123
123
  permissions[resource] = perms
124
124
  }
125
125
  }
126
126
  // apply the base permissions
127
- const finalPermissions: Record<string, Record<string, string>> = {}
127
+ const finalPermissions = {}
128
128
  for (let [resource, permission] of Object.entries(permissions)) {
129
129
  const basePerms = getBasePermissions(resource)
130
130
  finalPermissions[resource] = Object.assign(basePerms, permission)
@@ -132,36 +132,33 @@ export async function fetch(ctx: BBContext) {
132
132
  ctx.body = finalPermissions
133
133
  }
134
134
 
135
- export async function getResourcePerms(ctx: BBContext) {
135
+ exports.getResourcePerms = async function (ctx) {
136
136
  const resourceId = ctx.params.resourceId
137
- const db = context.getAppDB()
137
+ const db = getAppDB()
138
138
  const body = await db.allDocs(
139
139
  getRoleParams(null, {
140
140
  include_docs: true,
141
141
  })
142
142
  )
143
- const rolesList = body.rows.map(row => row.doc)
144
- let permissions: Record<string, string> = {}
143
+ const roles = body.rows.map(row => row.doc)
144
+ let permissions = {}
145
145
  for (let level of SUPPORTED_LEVELS) {
146
146
  // update the various roleIds in the resource permissions
147
- for (let role of rolesList) {
148
- const rolePerms = roles.checkForRoleResourceArray(
149
- role.permissions,
150
- resourceId
151
- )
147
+ for (let role of roles) {
148
+ const rolePerms = checkForRoleResourceArray(role.permissions, resourceId)
152
149
  if (
153
150
  rolePerms &&
154
151
  rolePerms[resourceId] &&
155
152
  rolePerms[resourceId].indexOf(level) !== -1
156
153
  ) {
157
- permissions[level] = roles.getExternalRoleID(role._id)!
154
+ permissions[level] = getExternalRoleID(role._id)
158
155
  }
159
156
  }
160
157
  }
161
158
  ctx.body = Object.assign(getBasePermissions(resourceId), permissions)
162
159
  }
163
160
 
164
- export async function addPermission(ctx: BBContext) {
161
+ exports.addPermission = async function (ctx) {
165
162
  ctx.body = await updatePermissionOnRole(
166
163
  ctx.appId,
167
164
  ctx.params,
@@ -169,7 +166,7 @@ export async function addPermission(ctx: BBContext) {
169
166
  )
170
167
  }
171
168
 
172
- export async function removePermission(ctx: BBContext) {
169
+ exports.removePermission = async function (ctx) {
173
170
  ctx.body = await updatePermissionOnRole(
174
171
  ctx.appId,
175
172
  ctx.params,
@@ -1,5 +1,6 @@
1
1
  import { npmUpload, urlUpload, githubUpload, fileUpload } from "./uploaders"
2
- import { plugins as pluginCore, tenancy } from "@budibase/backend-core"
2
+ import { getGlobalDB } from "@budibase/backend-core/tenancy"
3
+ import { validate } from "@budibase/backend-core/plugins"
3
4
  import { PluginType, FileType, PluginSource } from "@budibase/types"
4
5
  import env from "../../../environment"
5
6
  import { ClientAppSocket } from "../../../websocket"
@@ -7,7 +8,7 @@ import { db as dbCore } from "@budibase/backend-core"
7
8
  import { plugins } from "@budibase/pro"
8
9
 
9
10
  export async function getPlugins(type?: PluginType) {
10
- const db = tenancy.getGlobalDB()
11
+ const db = getGlobalDB()
11
12
  const response = await db.allDocs(
12
13
  dbCore.getPluginParams(null, {
13
14
  include_docs: true,
@@ -75,7 +76,7 @@ export async function create(ctx: any) {
75
76
  break
76
77
  }
77
78
 
78
- pluginCore.validate(metadata?.schema)
79
+ validate(metadata?.schema)
79
80
 
80
81
  // Only allow components in cloud
81
82
  if (!env.SELF_HOSTED && metadata?.schema?.type !== PluginType.COMPONENT) {
@@ -120,7 +121,7 @@ export async function processUploadedPlugin(
120
121
  source?: PluginSource
121
122
  ) {
122
123
  const { metadata, directory } = await fileUpload(plugin)
123
- pluginCore.validate(metadata?.schema)
124
+ validate(metadata?.schema)
124
125
 
125
126
  // Only allow components in cloud
126
127
  if (!env.SELF_HOSTED && metadata?.schema?.type !== PluginType.COMPONENT) {
@@ -1,4 +1,5 @@
1
- import { db as dbCore, context } from "@budibase/backend-core"
1
+ const { getAllApps } = require("@budibase/backend-core/db")
2
+ const { doInAppContext } = require("@budibase/backend-core/context")
2
3
  import { search as stringSearch, addRev } from "./utils"
3
4
  import * as controller from "../application"
4
5
  import { Application } from "../../../definitions/common"
@@ -14,22 +15,15 @@ function fixAppID(app: Application, params: any) {
14
15
  }
15
16
 
16
17
  async function setResponseApp(ctx: any) {
17
- const appId = ctx.body?.appId
18
- if (appId && (!ctx.params || !ctx.params.appId)) {
19
- ctx.params = { appId }
20
- }
21
- if (appId) {
22
- await context.doInContext(appId, () => {
23
- return controller.fetchAppPackage(ctx)
24
- })
25
- } else {
26
- return controller.fetchAppPackage(ctx)
18
+ if (ctx.body && ctx.body.appId && (!ctx.params || !ctx.params.appId)) {
19
+ ctx.params = { appId: ctx.body.appId }
27
20
  }
21
+ await controller.fetchAppPackage(ctx)
28
22
  }
29
23
 
30
24
  export async function search(ctx: any, next: any) {
31
25
  const { name } = ctx.request.body
32
- const apps = await dbCore.getAllApps({ all: true })
26
+ const apps = await getAllApps({ all: true })
33
27
  ctx.body = stringSearch(apps, name)
34
28
  await next()
35
29
  }
@@ -47,7 +41,7 @@ export async function create(ctx: any, next: any) {
47
41
  }
48
42
 
49
43
  export async function read(ctx: any, next: any) {
50
- await context.doInAppContext(ctx.params.appId, async () => {
44
+ await doInAppContext(ctx.params.appId, async () => {
51
45
  await setResponseApp(ctx)
52
46
  await next()
53
47
  })
@@ -55,7 +49,7 @@ export async function read(ctx: any, next: any) {
55
49
 
56
50
  export async function update(ctx: any, next: any) {
57
51
  ctx.request.body = await addRev(fixAppID(ctx.request.body, ctx.params))
58
- await context.doInAppContext(ctx.params.appId, async () => {
52
+ await doInAppContext(ctx.params.appId, async () => {
59
53
  await controller.update(ctx)
60
54
  await setResponseApp(ctx)
61
55
  await next()
@@ -63,7 +57,7 @@ export async function update(ctx: any, next: any) {
63
57
  }
64
58
 
65
59
  export async function destroy(ctx: any, next: any) {
66
- await context.doInAppContext(ctx.params.appId, async () => {
60
+ await doInAppContext(ctx.params.appId, async () => {
67
61
  // get the app before deleting it
68
62
  await setResponseApp(ctx)
69
63
  const body = ctx.body
@@ -1,6 +1,6 @@
1
1
  import { search as stringSearch, addRev } from "./utils"
2
- import * as controller from "../table"
3
- import { Table } from "@budibase/types"
2
+ import { default as controller } from "../table"
3
+ import { Table } from "../../../definitions/common"
4
4
 
5
5
  function fixTable(table: Table, params: any) {
6
6
  if (!params || !table) {
@@ -5,7 +5,8 @@ import { OpenAPI2 } from "./sources/openapi2"
5
5
  import { OpenAPI3 } from "./sources/openapi3"
6
6
  import { Curl } from "./sources/curl"
7
7
  // @ts-ignore
8
- import { events, context } from "@budibase/backend-core"
8
+ import { getAppDB } from "@budibase/backend-core/context"
9
+ import { events } from "@budibase/backend-core"
9
10
  import { Datasource, Query } from "@budibase/types"
10
11
 
11
12
  interface ImportResult {
@@ -58,7 +59,7 @@ export class RestImporter {
58
59
  })
59
60
 
60
61
  // persist queries
61
- const db = context.getAppDB()
62
+ const db = getAppDB()
62
63
  const response = await db.bulkDocs(queries)
63
64
 
64
65
  // create index to seperate queries and errors
@@ -5,8 +5,11 @@ import { save as saveDatasource } from "../datasource"
5
5
  import { RestImporter } from "./import"
6
6
  import { invalidateDynamicVariables } from "../../../threads/utils"
7
7
  import { QUERY_THREAD_TIMEOUT } from "../../../environment"
8
+ import { getAppDB } from "@budibase/backend-core/context"
8
9
  import { quotas } from "@budibase/pro"
9
- import { events, context, utils, constants } from "@budibase/backend-core"
10
+ import { events } from "@budibase/backend-core"
11
+ import { getCookie } from "@budibase/backend-core/utils"
12
+ import { Cookies, Configs } from "@budibase/backend-core/constants"
10
13
 
11
14
  const Runner = new Thread(ThreadType.QUERY, {
12
15
  timeoutMs: QUERY_THREAD_TIMEOUT || 10000,
@@ -25,7 +28,7 @@ function enrichQueries(input: any) {
25
28
  }
26
29
 
27
30
  export async function fetch(ctx: any) {
28
- const db = context.getAppDB()
31
+ const db = getAppDB()
29
32
 
30
33
  const body = await db.allDocs(
31
34
  getQueryParams(null, {
@@ -78,7 +81,7 @@ const _import = async (ctx: any) => {
78
81
  export { _import as import }
79
82
 
80
83
  export async function save(ctx: any) {
81
- const db = context.getAppDB()
84
+ const db = getAppDB()
82
85
  const query = ctx.request.body
83
86
 
84
87
  const datasource = await db.get(query.datasourceId)
@@ -100,7 +103,7 @@ export async function save(ctx: any) {
100
103
  }
101
104
 
102
105
  export async function find(ctx: any) {
103
- const db = context.getAppDB()
106
+ const db = getAppDB()
104
107
  const query = enrichQueries(await db.get(ctx.params.queryId))
105
108
  // remove properties that could be dangerous in real app
106
109
  if (isProdAppID(ctx.appId)) {
@@ -112,13 +115,13 @@ export async function find(ctx: any) {
112
115
 
113
116
  //Required to discern between OIDC OAuth config entries
114
117
  function getOAuthConfigCookieId(ctx: any) {
115
- if (ctx.user.providerType === constants.Config.OIDC) {
116
- return utils.getCookie(ctx, constants.Cookie.OIDC_CONFIG)
118
+ if (ctx.user.providerType === Configs.OIDC) {
119
+ return getCookie(ctx, Cookies.OIDC_CONFIG)
117
120
  }
118
121
  }
119
122
 
120
123
  function getAuthConfig(ctx: any) {
121
- const authCookie = utils.getCookie(ctx, constants.Cookie.Auth)
124
+ const authCookie = getCookie(ctx, Cookies.Auth)
122
125
  let authConfigCtx: any = {}
123
126
  authConfigCtx["configId"] = getOAuthConfigCookieId(ctx)
124
127
  authConfigCtx["sessionId"] = authCookie ? authCookie.sessionId : null
@@ -126,7 +129,7 @@ function getAuthConfig(ctx: any) {
126
129
  }
127
130
 
128
131
  export async function preview(ctx: any) {
129
- const db = context.getAppDB()
132
+ const db = getAppDB()
130
133
 
131
134
  const datasource = await db.get(ctx.request.body.datasourceId)
132
135
  const query = ctx.request.body
@@ -198,7 +201,7 @@ async function execute(
198
201
  ctx: any,
199
202
  opts: any = { rowsOnly: false, isAutomation: false }
200
203
  ) {
201
- const db = context.getAppDB()
204
+ const db = getAppDB()
202
205
 
203
206
  const query = await db.get(ctx.params.queryId)
204
207
  const datasource = await db.get(query.datasourceId)
@@ -264,7 +267,7 @@ export async function executeV2(
264
267
  }
265
268
 
266
269
  const removeDynamicVariables = async (queryId: any) => {
267
- const db = context.getAppDB()
270
+ const db = getAppDB()
268
271
  const query = await db.get(queryId)
269
272
  const datasource = await db.get(query.datasourceId)
270
273
  const dynamicVariables = datasource.config.dynamicVariables
@@ -285,7 +288,7 @@ const removeDynamicVariables = async (queryId: any) => {
285
288
  }
286
289
 
287
290
  export async function destroy(ctx: any) {
288
- const db = context.getAppDB()
291
+ const db = getAppDB()
289
292
  const queryId = ctx.params.queryId
290
293
  await removeDynamicVariables(queryId)
291
294
  const query = await db.get(queryId)
@@ -1,9 +1,9 @@
1
- import { auth } from "@budibase/backend-core"
2
- import Joi from "joi"
1
+ const { joiValidator } = require("@budibase/backend-core/auth")
2
+ const Joi = require("joi")
3
3
 
4
4
  const OPTIONAL_STRING = Joi.string().optional().allow(null).allow("")
5
5
 
6
- export function queryValidation() {
6
+ exports.queryValidation = () => {
7
7
  return Joi.object({
8
8
  _id: Joi.string(),
9
9
  _rev: Joi.string(),
@@ -25,14 +25,14 @@ export function queryValidation() {
25
25
  }).unknown(true)
26
26
  }
27
27
 
28
- export function generateQueryValidation() {
28
+ exports.generateQueryValidation = () => {
29
29
  // prettier-ignore
30
- return auth.joiValidator.body(queryValidation())
30
+ return joiValidator.body(exports.queryValidation())
31
31
  }
32
32
 
33
- export function generateQueryPreviewValidation() {
33
+ exports.generateQueryPreviewValidation = () => {
34
34
  // prettier-ignore
35
- return auth.joiValidator.body(Joi.object({
35
+ return joiValidator.body(Joi.object({
36
36
  _id: OPTIONAL_STRING,
37
37
  _rev: OPTIONAL_STRING,
38
38
  readable: Joi.boolean().optional(),
@@ -1,21 +1,23 @@
1
- import { roles, context, events } from "@budibase/backend-core"
2
- import {
1
+ const {
2
+ Role,
3
+ getRole,
4
+ isBuiltin,
5
+ getAllRoles,
6
+ } = require("@budibase/backend-core/roles")
7
+ const {
3
8
  generateRoleID,
4
9
  getUserMetadataParams,
5
10
  InternalTables,
6
- } from "../../db/utils"
7
- import { BBContext, Database } from "@budibase/types"
11
+ } = require("../../db/utils")
12
+ const { getAppDB } = require("@budibase/backend-core/context")
13
+ const { events } = require("@budibase/backend-core")
8
14
 
9
15
  const UpdateRolesOptions = {
10
16
  CREATED: "created",
11
17
  REMOVED: "removed",
12
18
  }
13
19
 
14
- async function updateRolesOnUserTable(
15
- db: Database,
16
- roleId: string,
17
- updateOption: string
18
- ) {
20
+ async function updateRolesOnUserTable(db, roleId, updateOption) {
19
21
  const table = await db.get(InternalTables.USER_METADATA)
20
22
  const schema = table.schema
21
23
  const remove = updateOption === UpdateRolesOptions.REMOVED
@@ -38,25 +40,27 @@ async function updateRolesOnUserTable(
38
40
  }
39
41
  }
40
42
 
41
- export async function fetch(ctx: BBContext) {
42
- ctx.body = await roles.getAllRoles()
43
+ exports.fetch = async function (ctx) {
44
+ ctx.body = await getAllRoles()
43
45
  }
44
46
 
45
- export async function find(ctx: BBContext) {
46
- ctx.body = await roles.getRole(ctx.params.roleId)
47
+ exports.find = async function (ctx) {
48
+ ctx.body = await getRole(ctx.params.roleId)
47
49
  }
48
50
 
49
- export async function save(ctx: BBContext) {
50
- const db = context.getAppDB()
51
+ exports.save = async function (ctx) {
52
+ const db = getAppDB()
51
53
  let { _id, name, inherits, permissionId } = ctx.request.body
52
54
  let isCreate = false
53
55
  if (!_id) {
54
56
  _id = generateRoleID()
55
57
  isCreate = true
56
- } else if (roles.isBuiltin(_id)) {
58
+ } else if (isBuiltin(_id)) {
57
59
  ctx.throw(400, "Cannot update builtin roles.")
58
60
  }
59
- const role = new roles.Role(_id, name, permissionId).addInheritance(inherits)
61
+ const role = new Role(_id, name)
62
+ .addPermission(permissionId)
63
+ .addInheritance(inherits)
60
64
  if (ctx.request.body._rev) {
61
65
  role._rev = ctx.request.body._rev
62
66
  }
@@ -72,17 +76,17 @@ export async function save(ctx: BBContext) {
72
76
  ctx.message = `Role '${role.name}' created successfully.`
73
77
  }
74
78
 
75
- export async function destroy(ctx: BBContext) {
76
- const db = context.getAppDB()
79
+ exports.destroy = async function (ctx) {
80
+ const db = getAppDB()
77
81
  const roleId = ctx.params.roleId
78
82
  const role = await db.get(roleId)
79
- if (roles.isBuiltin(roleId)) {
83
+ if (isBuiltin(roleId)) {
80
84
  ctx.throw(400, "Cannot delete builtin role.")
81
85
  }
82
86
  // first check no users actively attached to role
83
87
  const users = (
84
88
  await db.allDocs(
85
- getUserMetadataParams(undefined, {
89
+ getUserMetadataParams(null, {
86
90
  include_docs: true,
87
91
  })
88
92
  )
@@ -1,41 +1,40 @@
1
- import { getRoutingInfo } from "../../utilities/routing"
2
- import { roles } from "@budibase/backend-core"
3
- import { BBContext } from "@budibase/types"
1
+ const { getRoutingInfo } = require("../../utilities/routing")
2
+ const {
3
+ getUserRoleHierarchy,
4
+ BUILTIN_ROLE_IDS,
5
+ } = require("@budibase/backend-core/roles")
4
6
 
5
7
  const URL_SEPARATOR = "/"
6
8
 
7
- class Routing {
8
- json: any
9
- constructor() {
10
- this.json = {}
11
- }
9
+ function Routing() {
10
+ this.json = {}
11
+ }
12
12
 
13
- getTopLevel(fullpath: string) {
14
- if (fullpath.charAt(0) !== URL_SEPARATOR) {
15
- fullpath = URL_SEPARATOR + fullpath
16
- }
17
- // replace the first value with the home route
18
- return URL_SEPARATOR + fullpath.split(URL_SEPARATOR)[1]
13
+ Routing.prototype.getTopLevel = function (fullpath) {
14
+ if (fullpath.charAt(0) !== URL_SEPARATOR) {
15
+ fullpath = URL_SEPARATOR + fullpath
19
16
  }
17
+ // replace the first value with the home route
18
+ return URL_SEPARATOR + fullpath.split(URL_SEPARATOR)[1]
19
+ }
20
20
 
21
- getScreensProp(fullpath: string) {
22
- const topLevel = this.getTopLevel(fullpath)
23
- if (!this.json[topLevel]) {
24
- this.json[topLevel] = {
25
- subpaths: {},
26
- }
21
+ Routing.prototype.getScreensProp = function (fullpath) {
22
+ const topLevel = this.getTopLevel(fullpath)
23
+ if (!this.json[topLevel]) {
24
+ this.json[topLevel] = {
25
+ subpaths: {},
27
26
  }
28
- if (!this.json[topLevel].subpaths[fullpath]) {
29
- this.json[topLevel].subpaths[fullpath] = {
30
- screens: {},
31
- }
27
+ }
28
+ if (!this.json[topLevel].subpaths[fullpath]) {
29
+ this.json[topLevel].subpaths[fullpath] = {
30
+ screens: {},
32
31
  }
33
- return this.json[topLevel].subpaths[fullpath].screens
34
32
  }
33
+ return this.json[topLevel].subpaths[fullpath].screens
34
+ }
35
35
 
36
- addScreenId(fullpath: string, roleId: string, screenId: string) {
37
- this.getScreensProp(fullpath)[roleId] = screenId
38
- }
36
+ Routing.prototype.addScreenId = function (fullpath, roleId, screenId) {
37
+ this.getScreensProp(fullpath)[roleId] = screenId
39
38
  }
40
39
 
41
40
  /**
@@ -56,28 +55,26 @@ async function getRoutingStructure() {
56
55
  return { routes: routing.json }
57
56
  }
58
57
 
59
- export async function fetch(ctx: BBContext) {
58
+ exports.fetch = async ctx => {
60
59
  ctx.body = await getRoutingStructure()
61
60
  }
62
61
 
63
- export async function clientFetch(ctx: BBContext) {
62
+ exports.clientFetch = async ctx => {
64
63
  const routing = await getRoutingStructure()
65
- let roleId = ctx.user?.role?._id
66
- const roleIds = (await roles.getUserRoleHierarchy(roleId, {
67
- idOnly: true,
68
- })) as string[]
69
- for (let topLevel of Object.values(routing.routes) as any) {
64
+ let roleId = ctx.user.role._id
65
+ const roleIds = await getUserRoleHierarchy(roleId)
66
+ for (let topLevel of Object.values(routing.routes)) {
70
67
  for (let subpathKey of Object.keys(topLevel.subpaths)) {
71
68
  let found = false
72
69
  const subpath = topLevel.subpaths[subpathKey]
73
70
  const roleOptions = Object.keys(subpath.screens)
74
71
  if (roleOptions.length === 1 && !roleOptions[0]) {
75
72
  subpath.screenId = subpath.screens[roleOptions[0]]
76
- subpath.roleId = roles.BUILTIN_ROLE_IDS.BASIC
73
+ subpath.roleId = BUILTIN_ROLE_IDS.BASIC
77
74
  found = true
78
75
  } else {
79
76
  for (let roleId of roleIds) {
80
- if (roleId && roleOptions.indexOf(roleId) !== -1) {
77
+ if (roleOptions.indexOf(roleId) !== -1) {
81
78
  subpath.screenId = subpath.screens[roleId]
82
79
  subpath.roleId = roleId
83
80
  found = true
@@ -27,8 +27,12 @@ import { breakExternalTableId, isSQL } from "../../../integrations/utils"
27
27
  import { processObjectSync } from "@budibase/string-templates"
28
28
  // @ts-ignore
29
29
  import { cloneDeep } from "lodash/fp"
30
- import { processFormulas, processDates } from "../../../utilities/rowProcessor"
31
- import { context } from "@budibase/backend-core"
30
+ import {
31
+ processFormulas,
32
+ processDates,
33
+ } from "../../../utilities/rowProcessor/utils"
34
+ // @ts-ignore
35
+ import { getAppDB } from "@budibase/backend-core/context"
32
36
 
33
37
  interface ManyRelationship {
34
38
  tableId?: string
@@ -278,11 +282,9 @@ module External {
278
282
  const linkTablePrimary = linkTable.primary[0]
279
283
  // one to many
280
284
  if (isOneSide(field)) {
281
- let id = row[key][0]
282
- if (typeof row[key] === "string") {
283
- id = decodeURIComponent(row[key]).match(/\[(.*?)\]/)?.[1]
284
- }
285
- newRow[field.foreignKey || linkTablePrimary] = breakRowIdField(id)[0]
285
+ newRow[field.foreignKey || linkTablePrimary] = breakRowIdField(
286
+ row[key][0]
287
+ )[0]
286
288
  }
287
289
  // many to many
288
290
  else if (field.through) {
@@ -440,7 +442,7 @@ module External {
440
442
  // Process some additional data types
441
443
  let finalRowArray = Object.values(finalRows)
442
444
  finalRowArray = processDates(table, finalRowArray)
443
- finalRowArray = processFormulas(table, finalRowArray) as Row[]
445
+ finalRowArray = processFormulas(table, finalRowArray)
444
446
 
445
447
  return finalRowArray.map((row: Row) =>
446
448
  this.squashRelationshipColumns(table, row, relationships)
@@ -669,7 +671,7 @@ module External {
669
671
  throw "Unable to run without a table name"
670
672
  }
671
673
  if (!this.datasource) {
672
- const db = context.getAppDB()
674
+ const db = getAppDB()
673
675
  this.datasource = await db.get(datasourceId)
674
676
  if (!this.datasource || !this.datasource.entities) {
675
677
  throw "No tables found, fetch tables before query."