@budibase/server 2.1.32-alpha.7 → 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.e0fdcf54.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
@@ -14,9 +14,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.deployApp = exports.deploymentProgress = exports.fetchDeployments = void 0;
16
16
  const Deployment_1 = __importDefault(require("./Deployment"));
17
- const backend_core_1 = require("@budibase/backend-core");
17
+ const db_1 = require("@budibase/backend-core/db");
18
18
  const utils_1 = require("../../../db/utils");
19
19
  const utils_2 = require("../../../automations/utils");
20
+ const cache_1 = require("@budibase/backend-core/cache");
21
+ const context_1 = require("@budibase/backend-core/context");
22
+ const backend_core_1 = require("@budibase/backend-core");
20
23
  const pro_1 = require("@budibase/pro");
21
24
  const types_1 = require("@budibase/types");
22
25
  // the max time we can wait for an invalidation to complete before considering it failed
@@ -46,7 +49,7 @@ function checkAllDeployments(deployments) {
46
49
  function storeDeploymentHistory(deployment) {
47
50
  return __awaiter(this, void 0, void 0, function* () {
48
51
  const deploymentJSON = deployment.getJSON();
49
- const db = backend_core_1.context.getAppDB();
52
+ const db = (0, context_1.getAppDB)();
50
53
  let deploymentDoc;
51
54
  try {
52
55
  // theres only one deployment doc per app database
@@ -67,7 +70,7 @@ function storeDeploymentHistory(deployment) {
67
70
  }
68
71
  function initDeployedApp(prodAppId) {
69
72
  return __awaiter(this, void 0, void 0, function* () {
70
- const db = backend_core_1.context.getProdAppDB();
73
+ const db = (0, context_1.getProdAppDB)();
71
74
  console.log("Reading automation docs");
72
75
  const automations = (yield db.allDocs((0, utils_1.getAutomationParams)(null, {
73
76
  include_docs: true,
@@ -90,9 +93,9 @@ function deployApp(deployment, userId) {
90
93
  return __awaiter(this, void 0, void 0, function* () {
91
94
  let replication;
92
95
  try {
93
- const appId = backend_core_1.context.getAppId();
94
- const devAppId = backend_core_1.db.getDevelopmentAppID(appId);
95
- const productionAppId = backend_core_1.db.getProdAppID(appId);
96
+ const appId = (0, context_1.getAppId)();
97
+ const devAppId = (0, db_1.getDevelopmentAppID)(appId);
98
+ const productionAppId = (0, db_1.getProdAppID)(appId);
96
99
  // don't try this if feature isn't allowed, will error
97
100
  if (yield pro_1.backups.isEnabled()) {
98
101
  // trigger backup initially
@@ -104,8 +107,8 @@ function deployApp(deployment, userId) {
104
107
  source: devAppId,
105
108
  target: productionAppId,
106
109
  };
107
- replication = new backend_core_1.db.Replication(config);
108
- const devDb = backend_core_1.context.getDevAppDB();
110
+ replication = new db_1.Replication(config);
111
+ const devDb = (0, context_1.getDevAppDB)();
109
112
  console.log("Compacting development DB");
110
113
  yield devDb.compact();
111
114
  console.log("Replication object created");
@@ -113,7 +116,7 @@ function deployApp(deployment, userId) {
113
116
  console.log("replication complete.. replacing app meta doc");
114
117
  // app metadata is excluded as it is likely to be in conflict
115
118
  // replicate the app metadata document manually
116
- const db = backend_core_1.context.getProdAppDB();
119
+ const db = (0, context_1.getProdAppDB)();
117
120
  const appDoc = yield devDb.get(utils_1.DocumentType.APP_METADATA);
118
121
  try {
119
122
  const prodAppDoc = yield db.get(utils_1.DocumentType.APP_METADATA);
@@ -129,7 +132,7 @@ function deployApp(deployment, userId) {
129
132
  // remove automation errors if they exist
130
133
  delete appDoc.automationErrors;
131
134
  yield db.put(appDoc);
132
- yield backend_core_1.cache.app.invalidateAppMetadata(productionAppId);
135
+ yield cache_1.app.invalidateAppMetadata(productionAppId);
133
136
  console.log("New app doc written successfully.");
134
137
  yield initDeployedApp(productionAppId);
135
138
  console.log("Deployed app initialised, setting deployment to successful");
@@ -152,7 +155,7 @@ function deployApp(deployment, userId) {
152
155
  function fetchDeployments(ctx) {
153
156
  return __awaiter(this, void 0, void 0, function* () {
154
157
  try {
155
- const db = backend_core_1.context.getAppDB();
158
+ const db = (0, context_1.getAppDB)();
156
159
  const deploymentDoc = yield db.get(utils_1.DocumentType.DEPLOYMENTS);
157
160
  const { updated, deployments } = yield checkAllDeployments(deploymentDoc);
158
161
  if (updated) {
@@ -169,7 +172,7 @@ exports.fetchDeployments = fetchDeployments;
169
172
  function deploymentProgress(ctx) {
170
173
  return __awaiter(this, void 0, void 0, function* () {
171
174
  try {
172
- const db = backend_core_1.context.getAppDB();
175
+ const db = (0, context_1.getAppDB)();
173
176
  const deploymentDoc = yield db.get(utils_1.DocumentType.DEPLOYMENTS);
174
177
  ctx.body = deploymentDoc[ctx.params.deploymentId];
175
178
  }
@@ -181,7 +184,7 @@ function deploymentProgress(ctx) {
181
184
  exports.deploymentProgress = deploymentProgress;
182
185
  const isFirstDeploy = () => __awaiter(void 0, void 0, void 0, function* () {
183
186
  try {
184
- const db = backend_core_1.context.getProdAppDB();
187
+ const db = (0, context_1.getProdAppDB)();
185
188
  yield db.get(utils_1.DocumentType.APP_METADATA);
186
189
  }
187
190
  catch (e) {
@@ -8,27 +8,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getBudibaseVersion = exports.revert = exports.clearLock = exports.buildRedirectDelete = exports.buildRedirectPost = exports.buildRedirectGet = void 0;
16
- const node_fetch_1 = __importDefault(require("node-fetch"));
17
- const environment_1 = __importDefault(require("../../environment"));
18
- const utilities_1 = require("../../utilities");
19
- const workerRequests_1 = require("../../utilities/workerRequests");
20
- const redis_1 = require("../../utilities/redis");
21
- const utils_1 = require("../../db/utils");
22
- const backend_core_1 = require("@budibase/backend-core");
23
- const backend_core_2 = require("@budibase/backend-core");
11
+ const fetch = require("node-fetch");
12
+ const env = require("../../environment");
13
+ const { checkSlashesInUrl } = require("../../utilities");
14
+ const { request } = require("../../utilities/workerRequests");
15
+ const { clearLock } = require("../../utilities/redis");
16
+ const { Replication, getProdAppID } = require("@budibase/backend-core/db");
17
+ const { DocumentType } = require("../../db/utils");
18
+ const { app: appCache } = require("@budibase/backend-core/cache");
19
+ const { getProdAppDB, getAppDB } = require("@budibase/backend-core/context");
20
+ const { events } = require("@budibase/backend-core");
24
21
  function redirect(ctx, method, path = "global") {
25
22
  return __awaiter(this, void 0, void 0, function* () {
26
23
  const { devPath } = ctx.params;
27
24
  const queryString = ctx.originalUrl.split("?")[1] || "";
28
- const response = yield (0, node_fetch_1.default)((0, utilities_1.checkSlashesInUrl)(`${environment_1.default.WORKER_URL}/api/${path}/${devPath}?${queryString}`), (0, workerRequests_1.request)(ctx, {
25
+ const response = yield fetch(checkSlashesInUrl(`${env.WORKER_URL}/api/${path}/${devPath}?${queryString}`), request(ctx, {
29
26
  method,
30
27
  body: ctx.request.body,
31
- }));
28
+ }, true));
32
29
  if (response.status !== 200) {
33
30
  const err = yield response.text();
34
31
  ctx.throw(400, err);
@@ -51,96 +48,84 @@ function redirect(ctx, method, path = "global") {
51
48
  ctx.cookies;
52
49
  });
53
50
  }
54
- function buildRedirectGet(path) {
55
- return (ctx) => __awaiter(this, void 0, void 0, function* () {
51
+ exports.buildRedirectGet = path => {
52
+ return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
56
53
  yield redirect(ctx, "GET", path);
57
54
  });
58
- }
59
- exports.buildRedirectGet = buildRedirectGet;
60
- function buildRedirectPost(path) {
61
- return (ctx) => __awaiter(this, void 0, void 0, function* () {
55
+ };
56
+ exports.buildRedirectPost = path => {
57
+ return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
62
58
  yield redirect(ctx, "POST", path);
63
59
  });
64
- }
65
- exports.buildRedirectPost = buildRedirectPost;
66
- function buildRedirectDelete(path) {
67
- return (ctx) => __awaiter(this, void 0, void 0, function* () {
60
+ };
61
+ exports.buildRedirectDelete = path => {
62
+ return (ctx) => __awaiter(void 0, void 0, void 0, function* () {
68
63
  yield redirect(ctx, "DELETE", path);
69
64
  });
70
- }
71
- exports.buildRedirectDelete = buildRedirectDelete;
72
- function clearLock(ctx) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- const { appId } = ctx.params;
75
- try {
76
- yield (0, redis_1.clearLock)(appId, ctx.user);
65
+ };
66
+ exports.clearLock = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
67
+ const { appId } = ctx.params;
68
+ try {
69
+ yield clearLock(appId, ctx.user);
70
+ }
71
+ catch (err) {
72
+ ctx.throw(400, `Unable to remove lock. ${err}`);
73
+ }
74
+ ctx.body = {
75
+ message: "Lock released successfully.",
76
+ };
77
+ });
78
+ exports.revert = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
79
+ const { appId } = ctx.params;
80
+ const productionAppId = getProdAppID(appId);
81
+ // App must have been deployed first
82
+ try {
83
+ const db = getProdAppDB({ skip_setup: true });
84
+ const info = yield db.info();
85
+ if (info.error) {
86
+ throw info.error;
77
87
  }
78
- catch (err) {
79
- ctx.throw(400, `Unable to remove lock. ${err}`);
88
+ const deploymentDoc = yield db.get(DocumentType.DEPLOYMENTS);
89
+ if (!deploymentDoc.history ||
90
+ Object.keys(deploymentDoc.history).length === 0) {
91
+ throw new Error("No deployments for app");
80
92
  }
81
- ctx.body = {
82
- message: "Lock released successfully.",
83
- };
93
+ }
94
+ catch (err) {
95
+ return ctx.throw(400, "App has not yet been deployed");
96
+ }
97
+ const replication = new Replication({
98
+ source: productionAppId,
99
+ target: appId,
84
100
  });
85
- }
86
- exports.clearLock = clearLock;
87
- function revert(ctx) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- const { appId } = ctx.params;
90
- const productionAppId = backend_core_2.db.getProdAppID(appId);
91
- // App must have been deployed first
92
- try {
93
- const db = backend_core_1.context.getProdAppDB({ skip_setup: true });
94
- const exists = yield db.exists();
95
- if (!exists) {
96
- throw new Error("App must be deployed to be reverted.");
97
- }
98
- const deploymentDoc = yield db.get(utils_1.DocumentType.DEPLOYMENTS);
99
- if (!deploymentDoc.history ||
100
- Object.keys(deploymentDoc.history).length === 0) {
101
- throw new Error("No deployments for app");
102
- }
103
- }
104
- catch (err) {
105
- return ctx.throw(400, "App has not yet been deployed");
106
- }
107
- const replication = new backend_core_2.db.Replication({
108
- source: productionAppId,
109
- target: appId,
110
- });
111
- try {
112
- if (environment_1.default.COUCH_DB_URL) {
113
- // in-memory db stalls on rollback
114
- yield replication.rollback();
115
- }
116
- // update appID in reverted app to be dev version again
117
- const db = backend_core_1.context.getAppDB();
118
- const appDoc = yield db.get(utils_1.DocumentType.APP_METADATA);
119
- appDoc.appId = appId;
120
- appDoc.instance._id = appId;
121
- yield db.put(appDoc);
122
- yield backend_core_2.cache.app.invalidateAppMetadata(appId);
123
- ctx.body = {
124
- message: "Reverted changes successfully.",
125
- };
126
- yield backend_core_2.events.app.reverted(appDoc);
127
- }
128
- catch (err) {
129
- ctx.throw(400, `Unable to revert. ${err}`);
101
+ try {
102
+ if (env.COUCH_DB_URL) {
103
+ // in-memory db stalls on rollback
104
+ yield replication.rollback();
130
105
  }
131
- finally {
132
- yield replication.close();
133
- }
134
- });
135
- }
136
- exports.revert = revert;
137
- function getBudibaseVersion(ctx) {
138
- return __awaiter(this, void 0, void 0, function* () {
139
- const version = require("../../../package.json").version;
106
+ // update appID in reverted app to be dev version again
107
+ const db = getAppDB();
108
+ const appDoc = yield db.get(DocumentType.APP_METADATA);
109
+ appDoc.appId = appId;
110
+ appDoc.instance._id = appId;
111
+ yield db.put(appDoc);
112
+ yield appCache.invalidateAppMetadata(appId);
140
113
  ctx.body = {
141
- version,
114
+ message: "Reverted changes successfully.",
142
115
  };
143
- yield backend_core_2.events.installation.versionChecked(version);
144
- });
145
- }
146
- exports.getBudibaseVersion = getBudibaseVersion;
116
+ yield events.app.reverted(appDoc);
117
+ }
118
+ catch (err) {
119
+ ctx.throw(400, `Unable to revert. ${err}`);
120
+ }
121
+ finally {
122
+ yield replication.close();
123
+ }
124
+ });
125
+ exports.getBudibaseVersion = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
126
+ const version = require("../../../package.json").version;
127
+ ctx.body = {
128
+ version,
129
+ };
130
+ yield events.installation.versionChecked(version);
131
+ });
@@ -8,42 +8,39 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.destroy = exports.save = void 0;
13
- const layouts_1 = require("../../constants/layouts");
14
- const utils_1 = require("../../db/utils");
15
- const backend_core_1 = require("@budibase/backend-core");
16
- function save(ctx) {
11
+ const { EMPTY_LAYOUT } = require("../../constants/layouts");
12
+ const { generateLayoutID, getScreenParams } = require("../../db/utils");
13
+ const { getAppDB } = require("@budibase/backend-core/context");
14
+ const { events } = require("@budibase/backend-core");
15
+ exports.save = function (ctx) {
17
16
  return __awaiter(this, void 0, void 0, function* () {
18
- const db = backend_core_1.context.getAppDB();
17
+ const db = getAppDB();
19
18
  let layout = ctx.request.body;
20
19
  if (!layout.props) {
21
- layout = Object.assign(Object.assign({}, layouts_1.EMPTY_LAYOUT), layout);
20
+ layout = Object.assign(Object.assign({}, EMPTY_LAYOUT), layout);
22
21
  layout.props._instanceName = layout.name;
23
22
  }
24
- layout._id = layout._id || (0, utils_1.generateLayoutID)();
23
+ layout._id = layout._id || generateLayoutID();
25
24
  const response = yield db.put(layout);
26
- yield backend_core_1.events.layout.created(layout);
25
+ yield events.layout.created(layout);
27
26
  layout._rev = response.rev;
28
27
  ctx.body = layout;
29
28
  ctx.status = 200;
30
29
  });
31
- }
32
- exports.save = save;
33
- function destroy(ctx) {
30
+ };
31
+ exports.destroy = function (ctx) {
34
32
  return __awaiter(this, void 0, void 0, function* () {
35
- const db = backend_core_1.context.getAppDB();
33
+ const db = getAppDB();
36
34
  const layoutId = ctx.params.layoutId, layoutRev = ctx.params.layoutRev;
37
- const layoutsUsedByScreens = (yield db.allDocs((0, utils_1.getScreenParams)(null, {
35
+ const layoutsUsedByScreens = (yield db.allDocs(getScreenParams(null, {
38
36
  include_docs: true,
39
37
  }))).rows.map(element => element.doc.layoutId);
40
38
  if (layoutsUsedByScreens.includes(layoutId)) {
41
39
  ctx.throw(400, "Cannot delete a layout that's being used by a screen");
42
40
  }
43
41
  yield db.remove(layoutId, layoutRev);
44
- yield backend_core_1.events.layout.deleted(layoutId);
42
+ yield events.layout.deleted(layoutId);
45
43
  ctx.body = { message: "Layout deleted successfully" };
46
44
  ctx.status = 200;
47
45
  });
48
- }
49
- exports.destroy = destroy;
46
+ };
@@ -8,56 +8,42 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getMetadata = exports.deleteMetadata = exports.saveMetadata = exports.getTypes = void 0;
13
- const constants_1 = require("../../constants");
14
- const utils_1 = require("../../db/utils");
15
- const utilities_1 = require("../../utilities");
16
- const backend_core_1 = require("@budibase/backend-core");
17
- function getTypes(ctx) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- ctx.body = {
20
- types: constants_1.MetadataTypes,
21
- };
22
- });
23
- }
24
- exports.getTypes = getTypes;
25
- function saveMetadata(ctx) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const { type, entityId } = ctx.params;
28
- if (type === constants_1.MetadataTypes.AUTOMATION_TEST_HISTORY) {
29
- ctx.throw(400, "Cannot save automation history type");
11
+ const { MetadataTypes } = require("../../constants");
12
+ const { generateMetadataID } = require("../../db/utils");
13
+ const { saveEntityMetadata, deleteEntityMetadata } = require("../../utilities");
14
+ const { getAppDB } = require("@budibase/backend-core/context");
15
+ exports.getTypes = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
16
+ ctx.body = {
17
+ types: MetadataTypes,
18
+ };
19
+ });
20
+ exports.saveMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
21
+ const { type, entityId } = ctx.params;
22
+ if (type === MetadataTypes.AUTOMATION_TEST_HISTORY) {
23
+ ctx.throw(400, "Cannot save automation history type");
24
+ }
25
+ ctx.body = yield saveEntityMetadata(type, entityId, ctx.request.body);
26
+ });
27
+ exports.deleteMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
28
+ const { type, entityId } = ctx.params;
29
+ yield deleteEntityMetadata(type, entityId);
30
+ ctx.body = {
31
+ message: "Metadata deleted successfully",
32
+ };
33
+ });
34
+ exports.getMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
35
+ const { type, entityId } = ctx.params;
36
+ const db = getAppDB();
37
+ const id = generateMetadataID(type, entityId);
38
+ try {
39
+ ctx.body = yield db.get(id);
40
+ }
41
+ catch (err) {
42
+ if (err.status === 404) {
43
+ ctx.body = {};
30
44
  }
31
- ctx.body = yield (0, utilities_1.saveEntityMetadata)(type, entityId, ctx.request.body);
32
- });
33
- }
34
- exports.saveMetadata = saveMetadata;
35
- function deleteMetadata(ctx) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const { type, entityId } = ctx.params;
38
- yield (0, utilities_1.deleteEntityMetadata)(type, entityId);
39
- ctx.body = {
40
- message: "Metadata deleted successfully",
41
- };
42
- });
43
- }
44
- exports.deleteMetadata = deleteMetadata;
45
- function getMetadata(ctx) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- const { type, entityId } = ctx.params;
48
- const db = backend_core_1.context.getAppDB();
49
- const id = (0, utils_1.generateMetadataID)(type, entityId);
50
- try {
51
- ctx.body = yield db.get(id);
45
+ else {
46
+ ctx.throw(err.status, err);
52
47
  }
53
- catch (err) {
54
- if (err.status === 404) {
55
- ctx.body = {};
56
- }
57
- else {
58
- ctx.throw(err.status, err);
59
- }
60
- }
61
- });
62
- }
63
- exports.getMetadata = getMetadata;
48
+ }
49
+ });
@@ -8,38 +8,38 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.removePermission = exports.addPermission = exports.getResourcePerms = exports.fetch = exports.fetchLevels = exports.fetchBuiltin = void 0;
13
- const backend_core_1 = require("@budibase/backend-core");
14
- const utils_1 = require("../../db/utils");
15
- const security_1 = require("../../utilities/security");
16
- const utilities_1 = require("../../utilities");
11
+ const { getBuiltinPermissions } = require("@budibase/backend-core/permissions");
12
+ const { isBuiltin, getDBRoleID, getExternalRoleID, getBuiltinRoles, checkForRoleResourceArray, } = require("@budibase/backend-core/roles");
13
+ const { getRoleParams } = require("../../db/utils");
14
+ const { CURRENTLY_SUPPORTED_LEVELS, getBasePermissions, } = require("../../utilities/security");
15
+ const { removeFromArray } = require("../../utilities");
16
+ const { getAppDB } = require("@budibase/backend-core/context");
17
17
  const PermissionUpdateType = {
18
18
  REMOVE: "remove",
19
19
  ADD: "add",
20
20
  };
21
- const SUPPORTED_LEVELS = security_1.CURRENTLY_SUPPORTED_LEVELS;
21
+ const SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS;
22
22
  // utility function to stop this repetition - permissions always stored under roles
23
23
  function getAllDBRoles(db) {
24
24
  return __awaiter(this, void 0, void 0, function* () {
25
- const body = yield db.allDocs((0, utils_1.getRoleParams)(null, {
25
+ const body = yield db.allDocs(getRoleParams(null, {
26
26
  include_docs: true,
27
27
  }));
28
28
  return body.rows.map(row => row.doc);
29
29
  });
30
30
  }
31
- function updatePermissionOnRole(appId, { roleId, resourceId, level, }, updateType) {
31
+ function updatePermissionOnRole(appId, { roleId, resourceId, level }, updateType) {
32
32
  return __awaiter(this, void 0, void 0, function* () {
33
- const db = backend_core_1.context.getAppDB();
33
+ const db = getAppDB();
34
34
  const remove = updateType === PermissionUpdateType.REMOVE;
35
- const isABuiltin = backend_core_1.roles.isBuiltin(roleId);
36
- const dbRoleId = backend_core_1.roles.getDBRoleID(roleId);
35
+ const isABuiltin = isBuiltin(roleId);
36
+ const dbRoleId = getDBRoleID(roleId);
37
37
  const dbRoles = yield getAllDBRoles(db);
38
38
  const docUpdates = [];
39
39
  // the permission is for a built in, make sure it exists
40
40
  if (isABuiltin && !dbRoles.some(role => role._id === dbRoleId)) {
41
- const builtin = backend_core_1.roles.getBuiltinRoles()[roleId];
42
- builtin._id = backend_core_1.roles.getDBRoleID(builtin._id);
41
+ const builtin = getBuiltinRoles()[roleId];
42
+ builtin._id = getDBRoleID(builtin._id);
43
43
  dbRoles.push(builtin);
44
44
  }
45
45
  // now try to find any roles which need updated, e.g. removing the
@@ -61,7 +61,7 @@ function updatePermissionOnRole(appId, { roleId, resourceId, level, }, updateTyp
61
61
  // the general UI for this, rather than needing to show everywhere it is used)
62
62
  if ((role._id !== dbRoleId || remove) &&
63
63
  rolePermissions[resourceId].indexOf(level) !== -1) {
64
- (0, utilities_1.removeFromArray)(rolePermissions[resourceId], level);
64
+ removeFromArray(rolePermissions[resourceId], level);
65
65
  updated = true;
66
66
  }
67
67
  // handle the adding, we're on the correct role, at it to this
@@ -77,38 +77,33 @@ function updatePermissionOnRole(appId, { roleId, resourceId, level, }, updateTyp
77
77
  }
78
78
  }
79
79
  const response = yield db.bulkDocs(docUpdates);
80
- return response.map((resp) => {
81
- resp._id = backend_core_1.roles.getExternalRoleID(resp.id);
80
+ return response.map(resp => {
81
+ resp._id = getExternalRoleID(resp.id);
82
82
  delete resp.id;
83
83
  return resp;
84
84
  });
85
85
  });
86
86
  }
87
- function fetchBuiltin(ctx) {
88
- ctx.body = Object.values(backend_core_1.permissions.getBuiltinPermissions());
89
- }
90
- exports.fetchBuiltin = fetchBuiltin;
91
- function fetchLevels(ctx) {
87
+ exports.fetchBuiltin = function (ctx) {
88
+ ctx.body = Object.values(getBuiltinPermissions());
89
+ };
90
+ exports.fetchLevels = function (ctx) {
92
91
  // for now only provide the read/write perms externally
93
92
  ctx.body = SUPPORTED_LEVELS;
94
- }
95
- exports.fetchLevels = fetchLevels;
96
- function fetch(ctx) {
93
+ };
94
+ exports.fetch = function (ctx) {
97
95
  return __awaiter(this, void 0, void 0, function* () {
98
- const db = backend_core_1.context.getAppDB();
99
- const dbRoles = yield getAllDBRoles(db);
96
+ const db = getAppDB();
97
+ const roles = yield getAllDBRoles(db);
100
98
  let permissions = {};
101
99
  // create an object with structure role ID -> resource ID -> level
102
- for (let role of dbRoles) {
100
+ for (let role of roles) {
103
101
  if (!role.permissions) {
104
102
  continue;
105
103
  }
106
- const roleId = backend_core_1.roles.getExternalRoleID(role._id);
107
- if (!roleId) {
108
- ctx.throw(400, "Unable to retrieve role");
109
- }
104
+ const roleId = getExternalRoleID(role._id);
110
105
  for (let [resource, levelArr] of Object.entries(role.permissions)) {
111
- const levels = Array.isArray(levelArr) ? levelArr : [levelArr];
106
+ const levels = Array.isArray(levelArr) ? [levelArr] : levelArr;
112
107
  const perms = {};
113
108
  levels.forEach(level => (perms[level] = roleId));
114
109
  permissions[resource] = perms;
@@ -117,46 +112,42 @@ function fetch(ctx) {
117
112
  // apply the base permissions
118
113
  const finalPermissions = {};
119
114
  for (let [resource, permission] of Object.entries(permissions)) {
120
- const basePerms = (0, security_1.getBasePermissions)(resource);
115
+ const basePerms = getBasePermissions(resource);
121
116
  finalPermissions[resource] = Object.assign(basePerms, permission);
122
117
  }
123
118
  ctx.body = finalPermissions;
124
119
  });
125
- }
126
- exports.fetch = fetch;
127
- function getResourcePerms(ctx) {
120
+ };
121
+ exports.getResourcePerms = function (ctx) {
128
122
  return __awaiter(this, void 0, void 0, function* () {
129
123
  const resourceId = ctx.params.resourceId;
130
- const db = backend_core_1.context.getAppDB();
131
- const body = yield db.allDocs((0, utils_1.getRoleParams)(null, {
124
+ const db = getAppDB();
125
+ const body = yield db.allDocs(getRoleParams(null, {
132
126
  include_docs: true,
133
127
  }));
134
- const rolesList = body.rows.map(row => row.doc);
128
+ const roles = body.rows.map(row => row.doc);
135
129
  let permissions = {};
136
130
  for (let level of SUPPORTED_LEVELS) {
137
131
  // update the various roleIds in the resource permissions
138
- for (let role of rolesList) {
139
- const rolePerms = backend_core_1.roles.checkForRoleResourceArray(role.permissions, resourceId);
132
+ for (let role of roles) {
133
+ const rolePerms = checkForRoleResourceArray(role.permissions, resourceId);
140
134
  if (rolePerms &&
141
135
  rolePerms[resourceId] &&
142
136
  rolePerms[resourceId].indexOf(level) !== -1) {
143
- permissions[level] = backend_core_1.roles.getExternalRoleID(role._id);
137
+ permissions[level] = getExternalRoleID(role._id);
144
138
  }
145
139
  }
146
140
  }
147
- ctx.body = Object.assign((0, security_1.getBasePermissions)(resourceId), permissions);
141
+ ctx.body = Object.assign(getBasePermissions(resourceId), permissions);
148
142
  });
149
- }
150
- exports.getResourcePerms = getResourcePerms;
151
- function addPermission(ctx) {
143
+ };
144
+ exports.addPermission = function (ctx) {
152
145
  return __awaiter(this, void 0, void 0, function* () {
153
146
  ctx.body = yield updatePermissionOnRole(ctx.appId, ctx.params, PermissionUpdateType.ADD);
154
147
  });
155
- }
156
- exports.addPermission = addPermission;
157
- function removePermission(ctx) {
148
+ };
149
+ exports.removePermission = function (ctx) {
158
150
  return __awaiter(this, void 0, void 0, function* () {
159
151
  ctx.body = yield updatePermissionOnRole(ctx.appId, ctx.params, PermissionUpdateType.REMOVE);
160
152
  });
161
- }
162
- exports.removePermission = removePermission;
153
+ };