@budibase/server 2.1.41 → 2.1.43-alpha.0

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 (795) hide show
  1. package/__mocks__/aws-sdk.ts +14 -0
  2. package/__mocks__/node-fetch.ts +5 -1
  3. package/builder/assets/index.0c44dac3.css +6 -0
  4. package/builder/assets/index.17a2178b.js +1021 -0
  5. package/builder/index.html +2 -2
  6. package/coverage/clover.xml +10910 -3861
  7. package/coverage/coverage-final.json +267 -118
  8. package/coverage/lcov-report/index.html +679 -184
  9. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +190 -0
  10. package/coverage/lcov-report/{api/controllers/apikeys.js.html → src/api/controllers/apikeys.ts.html} +30 -30
  11. package/coverage/lcov-report/src/api/controllers/application.ts.html +2038 -0
  12. package/coverage/lcov-report/src/api/controllers/auth.ts.html +301 -0
  13. package/coverage/lcov-report/{api/controllers/automation.js.html → src/api/controllers/automation.ts.html} +99 -99
  14. package/coverage/lcov-report/src/api/controllers/backup.ts.html +148 -0
  15. package/coverage/lcov-report/{api/controllers/cloud.js.html → src/api/controllers/cloud.ts.html} +58 -58
  16. package/coverage/lcov-report/src/api/controllers/component.ts.html +259 -0
  17. package/coverage/lcov-report/{api/controllers/datasource.js.html → src/api/controllers/datasource.ts.html} +287 -107
  18. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +259 -0
  19. package/coverage/lcov-report/{utilities/rowProcessor → src/api/controllers/deploy}/index.html +40 -40
  20. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +730 -0
  21. package/coverage/lcov-report/{api/controllers/dev.js.html → src/api/controllers/dev.ts.html} +69 -87
  22. package/coverage/lcov-report/src/api/controllers/index.html +431 -0
  23. package/coverage/lcov-report/src/api/controllers/integration.ts.html +124 -0
  24. package/coverage/lcov-report/{api/controllers/layout.js.html → src/api/controllers/layout.ts.html} +31 -31
  25. package/coverage/lcov-report/{api/controllers/metadata.js.html → src/api/controllers/metadata.ts.html} +33 -30
  26. package/coverage/lcov-report/{api/controllers/migrations.js.html → src/api/controllers/migrations.ts.html} +20 -17
  27. package/coverage/lcov-report/{api/controllers/permission.js.html → src/api/controllers/permission.ts.html} +88 -79
  28. package/coverage/lcov-report/{api/routes/role.js.html → src/api/controllers/plugin/file.ts.html} +40 -40
  29. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +310 -0
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.html +206 -0
  31. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +484 -0
  32. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +253 -0
  33. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +97 -0
  34. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +121 -0
  35. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +136 -0
  36. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +334 -0
  37. package/coverage/lcov-report/src/api/controllers/public/index.html +191 -0
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +181 -0
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +191 -0
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +124 -0
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +202 -0
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +178 -0
  43. package/coverage/lcov-report/{utilities/routing/index.js.html → src/api/controllers/public/mapping/tables.ts.html} +46 -43
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +181 -0
  45. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +145 -0
  46. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +328 -0
  47. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +253 -0
  48. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +268 -0
  49. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +220 -0
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.html +116 -0
  51. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +373 -0
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +131 -0
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +379 -0
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +157 -0
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +403 -0
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +146 -0
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +586 -0
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +712 -0
  59. package/coverage/lcov-report/src/api/controllers/query/index.html +131 -0
  60. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +976 -0
  61. package/coverage/lcov-report/{api/controllers/query/validation.js.html → src/api/controllers/query/validation.ts.html} +25 -25
  62. package/coverage/lcov-report/{api/controllers/role.js.html → src/api/controllers/role.ts.html} +48 -60
  63. package/coverage/lcov-report/{api/controllers/routing.js.html → src/api/controllers/routing.ts.html} +67 -58
  64. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +2260 -0
  65. package/coverage/lcov-report/{api/controllers/row/external.js.html → src/api/controllers/row/external.ts.html} +162 -111
  66. package/coverage/lcov-report/{api → src/api}/controllers/row/index.html +82 -52
  67. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +541 -0
  68. package/coverage/lcov-report/{api/controllers/row/internal.js.html → src/api/controllers/row/internal.ts.html} +163 -121
  69. package/coverage/lcov-report/{api/controllers/row/internalSearch.js.html → src/api/controllers/row/internalSearch.ts.html} +189 -117
  70. package/coverage/lcov-report/{api/controllers/row/staticFormula.js.html → src/api/controllers/row/staticFormula.ts.html} +73 -58
  71. package/coverage/lcov-report/{api/controllers/row/utils.js.html → src/api/controllers/row/utils.ts.html} +88 -58
  72. package/coverage/lcov-report/src/api/controllers/screen.ts.html +463 -0
  73. package/coverage/lcov-report/{api/controllers/script.js.html → src/api/controllers/script.ts.html} +19 -16
  74. package/coverage/lcov-report/src/api/controllers/static/index.html +116 -0
  75. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +694 -0
  76. package/coverage/lcov-report/{api/controllers/table/bulkFormula.js.html → src/api/controllers/table/bulkFormula.ts.html} +104 -62
  77. package/coverage/lcov-report/{api/controllers/table/external.js.html → src/api/controllers/table/external.ts.html} +204 -111
  78. package/coverage/lcov-report/src/api/controllers/table/index.html +176 -0
  79. package/coverage/lcov-report/{api/controllers/table/index.js.html → src/api/controllers/table/index.ts.html} +58 -49
  80. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +661 -0
  81. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1255 -0
  82. package/coverage/lcov-report/{api/controllers/templates.js.html → src/api/controllers/templates.ts.html} +38 -29
  83. package/coverage/lcov-report/{api/controllers/user.js.html → src/api/controllers/user.ts.html} +93 -99
  84. package/coverage/lcov-report/{api/controllers/view/exporters.js.html → src/api/controllers/view/exporters.ts.html} +22 -16
  85. package/coverage/lcov-report/{api → src/api}/controllers/view/index.html +36 -36
  86. package/coverage/lcov-report/{api/controllers/view/index.js.html → src/api/controllers/view/index.ts.html} +91 -64
  87. package/coverage/lcov-report/{api/controllers/view/utils.js.html → src/api/controllers/view/utils.ts.html} +72 -54
  88. package/coverage/lcov-report/{api/controllers/view/viewBuilder.js.html → src/api/controllers/view/viewBuilder.ts.html} +78 -36
  89. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +379 -0
  90. package/coverage/lcov-report/{api → src/api}/index.html +23 -23
  91. package/coverage/lcov-report/{api/index.js.html → src/api/index.ts.html} +55 -76
  92. package/coverage/lcov-report/src/api/routes/analytics.ts.html +112 -0
  93. package/coverage/lcov-report/{api/routes/integration.js.html → src/api/routes/apikeys.ts.html} +25 -25
  94. package/coverage/lcov-report/{constants/screens.js.html → src/api/routes/application.ts.html} +66 -66
  95. package/coverage/lcov-report/src/api/routes/auth.ts.html +109 -0
  96. package/coverage/lcov-report/{api/routes/automation.js.html → src/api/routes/automation.ts.html} +53 -47
  97. package/coverage/lcov-report/{api/routes/cloud.js.html → src/api/routes/backup.ts.html} +28 -28
  98. package/coverage/lcov-report/{api/routes/deploy.js.html → src/api/routes/cloud.ts.html} +31 -28
  99. package/coverage/lcov-report/{api/routes/component.js.html → src/api/routes/component.ts.html} +24 -24
  100. package/coverage/lcov-report/src/api/routes/datasource.ts.html +265 -0
  101. package/coverage/lcov-report/src/api/routes/deploy.ts.html +148 -0
  102. package/coverage/lcov-report/src/api/routes/dev.ts.html +199 -0
  103. package/coverage/lcov-report/{api → src/api}/routes/index.html +167 -47
  104. package/coverage/lcov-report/src/api/routes/index.ts.html +289 -0
  105. package/coverage/lcov-report/src/api/routes/integration.ts.html +133 -0
  106. package/coverage/lcov-report/{automations/triggerInfo/index.js.html → src/api/routes/layout.ts.html} +29 -26
  107. package/coverage/lcov-report/{api/routes/metadata.js.html → src/api/routes/metadata.ts.html} +31 -31
  108. package/coverage/lcov-report/src/api/routes/migrations.ts.html +127 -0
  109. package/coverage/lcov-report/src/api/routes/permission.ts.html +208 -0
  110. package/coverage/lcov-report/src/api/routes/plugin.ts.html +151 -0
  111. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +541 -0
  112. package/coverage/lcov-report/src/api/routes/public/index.html +191 -0
  113. package/coverage/lcov-report/src/api/routes/public/index.ts.html +493 -0
  114. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +116 -0
  115. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +328 -0
  116. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +313 -0
  117. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +598 -0
  118. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +586 -0
  119. package/coverage/lcov-report/src/api/routes/public/users.ts.html +511 -0
  120. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +238 -0
  121. package/coverage/lcov-report/src/api/routes/public/utils/index.html +116 -0
  122. package/coverage/lcov-report/{api/routes/query.js.html → src/api/routes/query.ts.html} +41 -50
  123. package/coverage/lcov-report/src/api/routes/role.ts.html +157 -0
  124. package/coverage/lcov-report/{api/routes/routing.js.html → src/api/routes/routing.ts.html} +24 -24
  125. package/coverage/lcov-report/src/api/routes/row.ts.html +883 -0
  126. package/coverage/lcov-report/{api/routes/screen.js.html → src/api/routes/screen.ts.html} +43 -28
  127. package/coverage/lcov-report/{api/routes/script.js.html → src/api/routes/script.ts.html} +17 -17
  128. package/coverage/lcov-report/src/api/routes/static.ts.html +280 -0
  129. package/coverage/lcov-report/{api/routes/table.js.html → src/api/routes/table.ts.html} +32 -41
  130. package/coverage/lcov-report/{api/routes/templates.js.html → src/api/routes/templates.ts.html} +25 -25
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +550 -0
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +131 -0
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +367 -0
  134. package/coverage/lcov-report/{api/routes/user.js.html → src/api/routes/user.ts.html} +35 -41
  135. package/coverage/lcov-report/{api → src/api}/routes/utils/index.html +15 -15
  136. package/coverage/lcov-report/{api/routes/utils/validators.js.html → src/api/routes/utils/validators.ts.html} +86 -98
  137. package/coverage/lcov-report/{api/routes/view.js.html → src/api/routes/view.ts.html} +45 -36
  138. package/coverage/lcov-report/src/api/routes/webhook.ts.html +166 -0
  139. package/coverage/lcov-report/src/app.ts.html +406 -0
  140. package/coverage/lcov-report/{automations/actions.js.html → src/automations/actions.ts.html} +69 -60
  141. package/coverage/lcov-report/{automations/automationUtils.js.html → src/automations/automationUtils.ts.html} +36 -33
  142. package/coverage/lcov-report/{automations/bullboard.js.html → src/automations/bullboard.ts.html} +39 -42
  143. package/coverage/lcov-report/{automations → src/automations}/index.html +63 -48
  144. package/coverage/lcov-report/{api/routes/dev.js.html → src/automations/index.ts.html} +46 -46
  145. package/coverage/lcov-report/src/automations/logging/index.html +116 -0
  146. package/coverage/lcov-report/src/automations/logging/index.ts.html +199 -0
  147. package/coverage/lcov-report/{automations/steps/bash.js.html → src/automations/steps/bash.ts.html} +45 -30
  148. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +382 -0
  149. package/coverage/lcov-report/{automations/steps/delay.js.html → src/automations/steps/delay.ts.html} +34 -19
  150. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +349 -0
  151. package/coverage/lcov-report/{automations/steps/discord.js.html → src/automations/steps/discord.ts.html} +43 -28
  152. package/coverage/lcov-report/{automations/steps/executeQuery.js.html → src/automations/steps/executeQuery.ts.html} +45 -30
  153. package/coverage/lcov-report/{automations/steps/executeScript.js.html → src/automations/steps/executeScript.ts.html} +58 -28
  154. package/coverage/lcov-report/{automations/steps/filter.js.html → src/automations/steps/filter.ts.html} +39 -30
  155. package/coverage/lcov-report/src/automations/steps/index.html +371 -0
  156. package/coverage/lcov-report/{automations/steps/integromat.js.html → src/automations/steps/integromat.ts.html} +38 -23
  157. package/coverage/lcov-report/{automations/steps/loop.js.html → src/automations/steps/loop.ts.html} +21 -15
  158. package/coverage/lcov-report/{automations/steps/outgoingWebhook.js.html → src/automations/steps/outgoingWebhook.ts.html} +54 -39
  159. package/coverage/lcov-report/{automations/steps/queryRows.js.html → src/automations/steps/queryRows.ts.html} +102 -66
  160. package/coverage/lcov-report/{automations/steps/sendSmtpEmail.js.html → src/automations/steps/sendSmtpEmail.ts.html} +40 -25
  161. package/coverage/lcov-report/{automations/steps/serverLog.js.html → src/automations/steps/serverLog.ts.html} +40 -22
  162. package/coverage/lcov-report/{automations/steps/slack.js.html → src/automations/steps/slack.ts.html} +38 -23
  163. package/coverage/lcov-report/{automations/steps/updateRow.js.html → src/automations/steps/updateRow.ts.html} +40 -25
  164. package/coverage/lcov-report/{automations/steps/utils.js.html → src/automations/steps/utils.ts.html} +45 -27
  165. package/coverage/lcov-report/{automations/steps/zapier.js.html → src/automations/steps/zapier.ts.html} +41 -23
  166. package/coverage/lcov-report/src/automations/tests/utilities/index.html +116 -0
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +265 -0
  168. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +196 -0
  169. package/coverage/lcov-report/{automations/triggerInfo/cron.js.html → src/automations/triggerInfo/cron.ts.html} +30 -15
  170. package/coverage/lcov-report/{automations → src/automations}/triggerInfo/index.html +31 -31
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +130 -0
  172. package/coverage/lcov-report/{automations/triggerInfo/rowDeleted.js.html → src/automations/triggerInfo/rowDeleted.ts.html} +30 -15
  173. package/coverage/lcov-report/{automations/triggerInfo/rowSaved.js.html → src/automations/triggerInfo/rowSaved.ts.html} +30 -15
  174. package/coverage/lcov-report/{automations/triggerInfo/rowUpdated.js.html → src/automations/triggerInfo/rowUpdated.ts.html} +30 -15
  175. package/coverage/lcov-report/{automations/triggerInfo/webhook.js.html → src/automations/triggerInfo/webhook.ts.html} +30 -15
  176. package/coverage/lcov-report/{automations/triggers.js.html → src/automations/triggers.ts.html} +78 -66
  177. package/coverage/lcov-report/src/automations/utils.ts.html +886 -0
  178. package/coverage/lcov-report/{constants → src/constants}/index.html +26 -26
  179. package/coverage/lcov-report/src/constants/index.ts.html +697 -0
  180. package/coverage/lcov-report/{constants/layouts.js.html → src/constants/layouts.ts.html} +18 -36
  181. package/coverage/lcov-report/src/constants/screens.ts.html +229 -0
  182. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +2059 -0
  183. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +541 -0
  184. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +427 -0
  185. package/coverage/lcov-report/src/db/defaultData/index.html +176 -0
  186. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +403 -0
  187. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +559 -0
  188. package/coverage/lcov-report/src/db/dynamoClient.ts.html +526 -0
  189. package/coverage/lcov-report/{db/inMemoryView.js.html → src/db/inMemoryView.ts.html} +47 -29
  190. package/coverage/lcov-report/{db → src/db}/index.html +48 -33
  191. package/coverage/lcov-report/{api/routes/layout.js.html → src/db/index.ts.html} +28 -28
  192. package/coverage/lcov-report/{db/linkedRows/LinkController.js.html → src/db/linkedRows/LinkController.ts.html} +97 -160
  193. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +265 -0
  194. package/coverage/lcov-report/src/db/linkedRows/index.html +161 -0
  195. package/coverage/lcov-report/{db/linkedRows/index.js.html → src/db/linkedRows/index.ts.html} +93 -78
  196. package/coverage/lcov-report/{db/linkedRows/linkUtils.js.html → src/db/linkedRows/linkUtils.ts.html} +83 -56
  197. package/coverage/lcov-report/{db/newid.js.html → src/db/newid.ts.html} +14 -14
  198. package/coverage/lcov-report/{db/utils.js.html → src/db/utils.ts.html} +163 -211
  199. package/coverage/lcov-report/{automations/triggerInfo/app.js.html → src/definitions/automations.ts.html} +42 -42
  200. package/coverage/lcov-report/{api/routes/datasource.js.html → src/definitions/datasource.ts.html} +61 -64
  201. package/coverage/lcov-report/src/definitions/index.html +131 -0
  202. package/coverage/lcov-report/src/environment.ts.html +457 -0
  203. package/coverage/lcov-report/{events/AutomationEmitter.js.html → src/events/AutomationEmitter.ts.html} +40 -25
  204. package/coverage/lcov-report/{events/index.js.html → src/events/BudibaseEmitter.ts.html} +26 -29
  205. package/coverage/lcov-report/{events → src/events}/index.html +48 -33
  206. package/coverage/lcov-report/{middleware/utils.js.html → src/events/index.ts.html} +18 -24
  207. package/coverage/lcov-report/src/events/utils.ts.html +319 -0
  208. package/coverage/lcov-report/src/index.html +191 -0
  209. package/coverage/lcov-report/src/index.ts.html +133 -0
  210. package/coverage/lcov-report/{utilities/queue/inMemoryQueue.js.html → src/integrations/airtable.ts.html} +213 -135
  211. package/coverage/lcov-report/src/integrations/arangodb.ts.html +415 -0
  212. package/coverage/lcov-report/src/integrations/base/index.html +161 -0
  213. package/coverage/lcov-report/src/integrations/base/query.ts.html +133 -0
  214. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1951 -0
  215. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +691 -0
  216. package/coverage/lcov-report/{api/routes/apikeys.js.html → src/integrations/base/utils.ts.html} +30 -30
  217. package/coverage/lcov-report/src/integrations/couchdb.ts.html +406 -0
  218. package/coverage/lcov-report/{constants/index.js.html → src/integrations/dynamodb.ts.html} +263 -227
  219. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +634 -0
  220. package/coverage/lcov-report/src/integrations/firebase.ts.html +646 -0
  221. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1315 -0
  222. package/coverage/lcov-report/src/integrations/index.html +371 -0
  223. package/coverage/lcov-report/src/integrations/index.ts.html +445 -0
  224. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1006 -0
  225. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1867 -0
  226. package/coverage/lcov-report/src/integrations/mysql.ts.html +964 -0
  227. package/coverage/lcov-report/src/integrations/oracle.ts.html +1474 -0
  228. package/coverage/lcov-report/src/integrations/postgres.ts.html +1069 -0
  229. package/coverage/lcov-report/src/integrations/queries/index.html +116 -0
  230. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +463 -0
  231. package/coverage/lcov-report/src/integrations/redis.ts.html +550 -0
  232. package/coverage/lcov-report/src/integrations/rest.ts.html +1381 -0
  233. package/coverage/lcov-report/src/integrations/s3.ts.html +862 -0
  234. package/coverage/lcov-report/src/integrations/snowflake.ts.html +376 -0
  235. package/coverage/lcov-report/{integrations → src/integrations}/tests/TestConfiguration.js.html +10 -10
  236. package/coverage/lcov-report/{integrations → src/integrations}/tests/index.html +10 -10
  237. package/coverage/lcov-report/src/integrations/utils.ts.html +1018 -0
  238. package/coverage/lcov-report/{middleware/appInfo.js.html → src/middleware/appInfo.ts.html} +33 -30
  239. package/coverage/lcov-report/src/middleware/authorized.ts.html +460 -0
  240. package/coverage/lcov-report/{middleware/builder.js.html → src/middleware/builder.ts.html} +46 -40
  241. package/coverage/lcov-report/{middleware/currentapp.js.html → src/middleware/currentapp.ts.html} +81 -72
  242. package/coverage/lcov-report/{middleware → src/middleware}/index.html +78 -63
  243. package/coverage/lcov-report/{middleware/joi-validator.js.html → src/middleware/joi-validator.ts.html} +25 -22
  244. package/coverage/lcov-report/{middleware/publicApi.js.html → src/middleware/publicApi.ts.html} +27 -27
  245. package/coverage/lcov-report/{middleware/resourceId.js.html → src/middleware/resourceId.ts.html} +60 -45
  246. package/coverage/lcov-report/{api/controllers/integration.js.html → src/middleware/selfhost.ts.html} +22 -28
  247. package/coverage/lcov-report/{api/routes/analytics.js.html → src/middleware/utils.ts.html} +19 -19
  248. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +187 -0
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +163 -0
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +151 -0
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +206 -0
  252. package/coverage/lcov-report/{automations/index.js.html → src/migrations/functions/backfill/app/layouts.ts.html} +56 -56
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +226 -0
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +151 -0
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +151 -0
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +166 -0
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +532 -0
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +283 -0
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +146 -0
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +265 -0
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +232 -0
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +724 -0
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +161 -0
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +106 -0
  265. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +235 -0
  266. package/coverage/lcov-report/src/migrations/functions/index.html +161 -0
  267. package/coverage/lcov-report/{db/index.js.html → src/migrations/functions/syncQuotas.ts.html} +35 -38
  268. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +520 -0
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +161 -0
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +94 -0
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +127 -0
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +115 -0
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +169 -0
  274. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +124 -0
  275. package/coverage/lcov-report/{utilities/queue → src/migrations}/index.html +23 -23
  276. package/coverage/lcov-report/src/migrations/index.ts.html +430 -0
  277. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +205 -0
  278. package/coverage/lcov-report/src/migrations/tests/index.html +131 -0
  279. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +283 -0
  280. package/coverage/lcov-report/src/sdk/app/automations/index.html +131 -0
  281. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +100 -0
  282. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +214 -0
  283. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +91 -0
  284. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +604 -0
  285. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +682 -0
  286. package/coverage/lcov-report/src/sdk/app/backups/index.html +176 -0
  287. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +112 -0
  288. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +292 -0
  289. package/coverage/lcov-report/src/sdk/app/tables/index.html +116 -0
  290. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +265 -0
  291. package/coverage/lcov-report/{utilities/routing → src/sdk}/index.html +10 -10
  292. package/coverage/lcov-report/{api/routes/migrations.js.html → src/sdk/index.ts.html} +24 -21
  293. package/coverage/lcov-report/src/startup.ts.html +499 -0
  294. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +1966 -0
  295. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +127 -0
  296. package/coverage/lcov-report/src/tests/utilities/index.html +161 -0
  297. package/coverage/lcov-report/{middleware/selfhost.js.html → src/tests/utilities/index.ts.html} +33 -30
  298. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +667 -0
  299. package/coverage/lcov-report/src/threads/automation.ts.html +1594 -0
  300. package/coverage/lcov-report/src/threads/index.html +161 -0
  301. package/coverage/lcov-report/src/threads/index.ts.html +418 -0
  302. package/coverage/lcov-report/src/threads/query.ts.html +961 -0
  303. package/coverage/lcov-report/src/threads/utils.ts.html +373 -0
  304. package/coverage/lcov-report/{utilities/budibaseDir.js.html → src/utilities/budibaseDir.ts.html} +14 -14
  305. package/coverage/lcov-report/{utilities/centralPath.js.html → src/utilities/centralPath.ts.html} +16 -16
  306. package/coverage/lcov-report/{utilities/csvParser.js.html → src/utilities/csvParser.ts.html} +107 -59
  307. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +547 -0
  308. package/coverage/lcov-report/{api/controllers/table → src/utilities/fileSystem}/index.html +44 -44
  309. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1129 -0
  310. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +142 -0
  311. package/coverage/lcov-report/{utilities/global.js.html → src/utilities/global.ts.html} +115 -82
  312. package/coverage/lcov-report/{utilities → src/utilities}/index.html +92 -77
  313. package/coverage/lcov-report/{utilities/index.js.html → src/utilities/index.ts.html} +98 -74
  314. package/coverage/lcov-report/{utilities/plugins.js.html → src/utilities/plugins.ts.html} +25 -22
  315. package/coverage/lcov-report/src/utilities/redis.ts.html +343 -0
  316. package/coverage/lcov-report/{api/controllers/query → src/utilities/routing}/index.html +8 -8
  317. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  318. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +146 -0
  319. package/coverage/lcov-report/{utilities/rowProcessor/index.js.html → src/utilities/rowProcessor/index.ts.html} +128 -359
  320. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +373 -0
  321. package/coverage/lcov-report/{utilities/rowProcessor/utils.js.html → src/utilities/rowProcessor/utils.ts.html} +54 -42
  322. package/coverage/lcov-report/{utilities/scriptRunner.js.html → src/utilities/scriptRunner.ts.html} +31 -19
  323. package/coverage/lcov-report/{utilities/security.js.html → src/utilities/security.ts.html} +60 -78
  324. package/coverage/lcov-report/{utilities/statusCodes.js.html → src/utilities/statusCodes.ts.html} +11 -11
  325. package/coverage/lcov-report/{utilities → src/utilities}/usageQuota/index.html +28 -28
  326. package/coverage/lcov-report/{utilities/usageQuota/rows.js.html → src/utilities/usageQuota/rows.ts.html} +36 -48
  327. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → src/utilities/usageQuota/usageQuoteReset.ts.html} +13 -13
  328. package/coverage/lcov-report/{utilities/users.js.html → src/utilities/users.ts.html} +34 -40
  329. package/coverage/lcov-report/{utilities/workerRequests.js.html → src/utilities/workerRequests.ts.html} +127 -112
  330. package/coverage/lcov-report/{events/utils.js.html → src/watch.ts.html} +67 -70
  331. package/coverage/lcov-report/src/websocket.ts.html +163 -0
  332. package/coverage/lcov.info +19754 -7082
  333. package/dist/api/controllers/apikeys.js +12 -9
  334. package/dist/api/controllers/application.js +48 -45
  335. package/dist/api/controllers/automation.js +122 -82
  336. package/dist/api/controllers/cloud.js +84 -71
  337. package/dist/api/controllers/component.js +4 -2
  338. package/dist/api/controllers/datasource.js +151 -94
  339. package/dist/api/controllers/deploy/Deployment.js +10 -6
  340. package/dist/api/controllers/deploy/index.js +13 -16
  341. package/dist/api/controllers/dev.js +96 -81
  342. package/dist/api/controllers/integration.js +11 -8
  343. package/dist/api/controllers/layout.js +18 -15
  344. package/dist/api/controllers/metadata.js +51 -37
  345. package/dist/api/controllers/migrations.js +19 -11
  346. package/dist/api/controllers/permission.js +52 -43
  347. package/dist/api/controllers/plugin/index.js +6 -7
  348. package/dist/api/controllers/plugin/utils.js +2 -1
  349. package/dist/api/controllers/public/applications.js +17 -9
  350. package/dist/api/controllers/public/tables.js +29 -9
  351. package/dist/api/controllers/public/utils.js +2 -2
  352. package/dist/api/controllers/query/import/index.js +1 -2
  353. package/dist/api/controllers/query/index.js +10 -13
  354. package/dist/api/controllers/query/validation.js +41 -33
  355. package/dist/api/controllers/role.js +29 -27
  356. package/dist/api/controllers/routing.js +71 -58
  357. package/dist/api/controllers/row/ExternalRequest.js +538 -542
  358. package/dist/api/controllers/row/external.js +258 -190
  359. package/dist/api/controllers/row/index.js +43 -14
  360. package/dist/api/controllers/row/internal.js +354 -295
  361. package/dist/api/controllers/row/internalSearch.js +95 -80
  362. package/dist/api/controllers/row/staticFormula.js +125 -112
  363. package/dist/api/controllers/row/utils.js +122 -84
  364. package/dist/api/controllers/screen.js +81 -66
  365. package/dist/api/controllers/script.js +13 -6
  366. package/dist/api/controllers/static/index.js +11 -14
  367. package/dist/api/controllers/table/bulkFormula.js +47 -35
  368. package/dist/api/controllers/table/external.js +89 -53
  369. package/dist/api/controllers/table/index.js +64 -31
  370. package/dist/api/controllers/table/internal.js +5 -6
  371. package/dist/api/controllers/table/utils.js +39 -35
  372. package/dist/api/controllers/templates.js +17 -10
  373. package/dist/api/controllers/user.js +82 -70
  374. package/dist/api/controllers/view/exporters.js +8 -4
  375. package/dist/api/controllers/view/index.js +201 -153
  376. package/dist/api/controllers/view/utils.js +151 -121
  377. package/dist/api/controllers/view/viewBuilder.js +4 -16
  378. package/dist/api/controllers/webhook.js +25 -2
  379. package/dist/api/index.js +38 -34
  380. package/dist/api/routes/analytics.js +29 -3
  381. package/dist/api/routes/apikeys.js +33 -7
  382. package/dist/api/routes/application.js +8 -9
  383. package/dist/api/routes/auth.js +1 -2
  384. package/dist/api/routes/automation.js +46 -20
  385. package/dist/api/routes/backup.js +3 -4
  386. package/dist/api/routes/cloud.js +32 -6
  387. package/dist/api/routes/component.js +32 -6
  388. package/dist/api/routes/datasource.js +39 -13
  389. package/dist/api/routes/deploy.js +34 -8
  390. package/dist/api/routes/dev.js +36 -10
  391. package/dist/api/routes/integration.js +33 -7
  392. package/dist/api/routes/layout.js +33 -7
  393. package/dist/api/routes/metadata.js +36 -10
  394. package/dist/api/routes/migrations.js +32 -6
  395. package/dist/api/routes/permission.js +38 -12
  396. package/dist/api/routes/plugin.js +5 -5
  397. package/dist/api/routes/public/index.js +11 -11
  398. package/dist/api/routes/query.js +42 -15
  399. package/dist/api/routes/role.js +36 -10
  400. package/dist/api/routes/routing.js +32 -6
  401. package/dist/api/routes/row.js +12 -11
  402. package/dist/api/routes/screen.js +35 -9
  403. package/dist/api/routes/script.js +32 -6
  404. package/dist/api/routes/static.js +9 -9
  405. package/dist/api/routes/table.js +40 -13
  406. package/dist/api/routes/templates.js +33 -7
  407. package/dist/api/routes/tests/utilities/TestFunctions.js +6 -8
  408. package/dist/api/routes/tests/utilities/index.js +69 -32
  409. package/dist/api/routes/user.js +40 -13
  410. package/dist/api/routes/utils/validators.js +142 -126
  411. package/dist/api/routes/view.js +38 -12
  412. package/dist/api/routes/webhook.js +1 -2
  413. package/dist/app.js +22 -22
  414. package/dist/automations/actions.js +53 -24
  415. package/dist/automations/automationUtils.js +31 -19
  416. package/dist/automations/bullboard.js +59 -29
  417. package/dist/automations/index.js +23 -18
  418. package/dist/automations/steps/bash.js +40 -10
  419. package/dist/automations/steps/createRow.js +2 -1
  420. package/dist/automations/steps/delay.js +9 -5
  421. package/dist/automations/steps/deleteRow.js +2 -1
  422. package/dist/automations/steps/discord.js +14 -7
  423. package/dist/automations/steps/executeQuery.js +34 -7
  424. package/dist/automations/steps/executeScript.js +34 -7
  425. package/dist/automations/steps/filter.js +20 -18
  426. package/dist/automations/steps/integromat.js +14 -7
  427. package/dist/automations/steps/loop.js +4 -1
  428. package/dist/automations/steps/outgoingWebhook.js +45 -14
  429. package/dist/automations/steps/queryRows.js +71 -38
  430. package/dist/automations/steps/sendSmtpEmail.js +33 -6
  431. package/dist/automations/steps/serverLog.js +12 -8
  432. package/dist/automations/steps/slack.js +14 -7
  433. package/dist/automations/steps/updateRow.js +34 -7
  434. package/dist/automations/steps/utils.js +22 -16
  435. package/dist/automations/steps/zapier.js +15 -7
  436. package/dist/automations/tests/utilities/index.js +62 -38
  437. package/dist/automations/triggerInfo/app.js +4 -1
  438. package/dist/automations/triggerInfo/cron.js +4 -1
  439. package/dist/automations/triggerInfo/index.js +31 -6
  440. package/dist/automations/triggerInfo/rowDeleted.js +4 -1
  441. package/dist/automations/triggerInfo/rowSaved.js +4 -1
  442. package/dist/automations/triggerInfo/rowUpdated.js +4 -1
  443. package/dist/automations/triggerInfo/webhook.js +4 -1
  444. package/dist/automations/triggers.js +90 -57
  445. package/dist/automations/utils.js +9 -8
  446. package/dist/constants/index.js +118 -104
  447. package/dist/constants/layouts.js +7 -10
  448. package/dist/constants/screens.js +49 -44
  449. package/dist/db/defaultData/datasource_bb_default.js +573 -0
  450. package/dist/db/defaultData/employeeImport.js +155 -0
  451. package/dist/db/defaultData/expensesImport.js +117 -0
  452. package/dist/db/defaultData/inventoryImport.js +109 -0
  453. package/dist/db/defaultData/jobsImport.js +152 -0
  454. package/dist/db/dynamoClient.js +20 -20
  455. package/dist/db/inMemoryView.js +47 -38
  456. package/dist/db/index.js +7 -4
  457. package/dist/db/linkedRows/LinkController.js +51 -70
  458. package/dist/db/linkedRows/LinkDocument.js +32 -0
  459. package/dist/db/linkedRows/index.js +93 -81
  460. package/dist/db/linkedRows/linkUtils.js +42 -32
  461. package/dist/db/utils.js +146 -119
  462. package/dist/db/views/staticViews.js +91 -74
  463. package/dist/environment.js +9 -6
  464. package/dist/events/AutomationEmitter.js +13 -10
  465. package/dist/events/BudibaseEmitter.js +24 -0
  466. package/dist/events/index.js +5 -23
  467. package/dist/events/utils.js +18 -10
  468. package/dist/integrations/elasticsearch.js +26 -2
  469. package/dist/integrations/googlesheets.js +5 -6
  470. package/dist/integrations/index.js +15 -6
  471. package/dist/integrations/s3.js +157 -1
  472. package/dist/middleware/appInfo.js +14 -9
  473. package/dist/middleware/authorized.js +22 -21
  474. package/dist/middleware/builder.js +41 -40
  475. package/dist/middleware/currentapp.js +39 -37
  476. package/dist/middleware/joi-validator.js +17 -10
  477. package/dist/middleware/publicApi.js +5 -6
  478. package/dist/middleware/resourceId.js +16 -9
  479. package/dist/middleware/selfhost.js +5 -4
  480. package/dist/middleware/utils.js +5 -2
  481. package/dist/migrations/functions/appUrls.js +2 -2
  482. package/dist/migrations/functions/backfill/global.js +1 -1
  483. package/dist/migrations/functions/tableSettings.js +130 -0
  484. package/dist/migrations/functions/usageQuotas/syncApps.js +3 -4
  485. package/dist/migrations/functions/usageQuotas/syncRows.js +3 -4
  486. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  487. package/dist/migrations/index.js +5 -0
  488. package/dist/package.json +11 -45
  489. package/dist/sdk/app/backups/exports.js +1 -2
  490. package/dist/sdk/app/backups/imports.js +2 -3
  491. package/dist/sdk/app/tables/index.js +5 -5
  492. package/dist/startup.js +10 -10
  493. package/dist/tests/utilities/TestConfiguration.js +111 -87
  494. package/dist/tests/utilities/controllers.js +38 -15
  495. package/dist/tests/utilities/structures.js +72 -53
  496. package/dist/threads/automation.js +49 -27
  497. package/dist/threads/query.js +17 -19
  498. package/dist/threads/utils.js +33 -8
  499. package/dist/tsconfig.build.tsbuildinfo +1 -1
  500. package/dist/utilities/budibaseDir.js +4 -2
  501. package/dist/utilities/centralPath.js +14 -7
  502. package/dist/utilities/csvParser.js +27 -21
  503. package/dist/utilities/fileSystem/clientLibrary.js +87 -73
  504. package/dist/utilities/fileSystem/index.js +203 -175
  505. package/dist/utilities/fileSystem/processor.js +8 -3
  506. package/dist/utilities/global.js +87 -66
  507. package/dist/utilities/index.js +102 -75
  508. package/dist/utilities/plugins.js +15 -9
  509. package/dist/utilities/redis.js +100 -65
  510. package/dist/utilities/routing/index.js +27 -23
  511. package/dist/utilities/rowProcessor/index.js +133 -191
  512. package/dist/utilities/rowProcessor/map.js +99 -0
  513. package/dist/utilities/rowProcessor/utils.js +35 -26
  514. package/dist/utilities/scriptRunner.js +8 -5
  515. package/dist/utilities/security.js +39 -35
  516. package/dist/utilities/usageQuota/rows.js +56 -49
  517. package/dist/utilities/users.js +31 -28
  518. package/dist/utilities/workerRequests.js +115 -82
  519. package/dist/watch.js +1 -2
  520. package/jest.config.ts +33 -0
  521. package/package.json +12 -46
  522. package/scripts/exportAppTemplate.js +2 -2
  523. package/scripts/localdomain.js +34 -6
  524. package/src/api/controllers/{apikeys.js → apikeys.ts} +10 -10
  525. package/src/api/controllers/application.ts +56 -42
  526. package/src/api/controllers/auth.ts +4 -3
  527. package/src/api/controllers/{automation.js → automation.ts} +48 -48
  528. package/src/api/controllers/{cloud.js → cloud.ts} +24 -24
  529. package/src/api/controllers/component.ts +2 -1
  530. package/src/api/controllers/{datasource.js → datasource.ts} +109 -49
  531. package/src/api/controllers/deploy/{Deployment.js → Deployment.ts} +13 -10
  532. package/src/api/controllers/deploy/index.ts +13 -25
  533. package/src/api/controllers/{dev.js → dev.ts} +31 -37
  534. package/src/api/controllers/integration.ts +13 -0
  535. package/src/api/controllers/{layout.js → layout.ts} +8 -8
  536. package/src/api/controllers/{metadata.js → metadata.ts} +11 -10
  537. package/src/api/controllers/migrations.ts +14 -0
  538. package/src/api/controllers/{permission.js → permission.ts} +49 -46
  539. package/src/api/controllers/plugin/index.ts +4 -5
  540. package/src/api/controllers/plugin/utils.ts +3 -5
  541. package/src/api/controllers/public/applications.ts +15 -9
  542. package/src/api/controllers/public/rows.ts +1 -1
  543. package/src/api/controllers/public/tables.ts +2 -2
  544. package/src/api/controllers/public/utils.ts +2 -2
  545. package/src/api/controllers/query/import/index.ts +2 -3
  546. package/src/api/controllers/query/index.ts +11 -14
  547. package/src/api/controllers/query/{validation.js → validation.ts} +7 -7
  548. package/src/api/controllers/{role.js → role.ts} +21 -25
  549. package/src/api/controllers/{routing.js → routing.ts} +37 -34
  550. package/src/api/controllers/row/ExternalRequest.ts +602 -624
  551. package/src/api/controllers/row/{external.js → external.ts} +79 -62
  552. package/src/api/controllers/row/index.ts +19 -11
  553. package/src/api/controllers/row/{internal.js → internal.ts} +87 -73
  554. package/src/api/controllers/row/{internalSearch.js → internalSearch.ts} +92 -68
  555. package/src/api/controllers/row/{staticFormula.js → staticFormula.ts} +30 -25
  556. package/src/api/controllers/row/{utils.js → utils.ts} +32 -22
  557. package/src/api/controllers/screen.ts +10 -6
  558. package/src/api/controllers/script.ts +12 -0
  559. package/src/api/controllers/static/index.ts +14 -16
  560. package/src/api/controllers/table/{bulkFormula.js → bulkFormula.ts} +39 -25
  561. package/src/api/controllers/table/{external.js → external.ts} +86 -55
  562. package/src/api/controllers/table/{index.js → index.ts} +21 -18
  563. package/src/api/controllers/table/internal.ts +5 -6
  564. package/src/api/controllers/table/utils.ts +26 -21
  565. package/src/api/controllers/{templates.js → templates.ts} +10 -7
  566. package/src/api/controllers/{user.js → user.ts} +47 -49
  567. package/src/api/controllers/view/{exporters.js → exporters.ts} +5 -3
  568. package/src/api/controllers/view/{index.js → index.ts} +36 -27
  569. package/src/api/controllers/view/{utils.js → utils.ts} +26 -20
  570. package/src/api/controllers/view/{viewBuilder.js → viewBuilder.ts} +25 -11
  571. package/src/api/controllers/webhook.ts +1 -1
  572. package/src/api/{index.js → index.ts} +15 -22
  573. package/src/api/routes/analytics.ts +9 -0
  574. package/src/api/routes/apikeys.ts +12 -0
  575. package/src/api/routes/application.ts +17 -9
  576. package/src/api/routes/auth.ts +2 -2
  577. package/src/api/routes/automation.ts +87 -0
  578. package/src/api/routes/backup.ts +8 -4
  579. package/src/api/routes/cloud.ts +18 -0
  580. package/src/api/routes/component.ts +14 -0
  581. package/src/api/routes/datasource.ts +60 -0
  582. package/src/api/routes/deploy.ts +21 -0
  583. package/src/api/routes/dev.ts +38 -0
  584. package/src/api/routes/integration.ts +16 -0
  585. package/src/api/routes/layout.ts +16 -0
  586. package/src/api/routes/{metadata.js → metadata.ts} +13 -13
  587. package/src/api/routes/migrations.ts +14 -0
  588. package/src/api/routes/permission.ts +41 -0
  589. package/src/api/routes/plugin.ts +14 -6
  590. package/src/api/routes/public/index.ts +11 -14
  591. package/src/api/routes/public/tests/compare.spec.js +1 -1
  592. package/src/api/routes/{query.js → query.ts} +19 -22
  593. package/src/api/routes/role.ts +24 -0
  594. package/src/api/routes/routing.ts +14 -0
  595. package/src/api/routes/row.ts +13 -15
  596. package/src/api/routes/screen.ts +23 -0
  597. package/src/api/routes/script.ts +10 -0
  598. package/src/api/routes/static.ts +7 -10
  599. package/src/api/routes/{table.js → table.ts} +10 -13
  600. package/src/api/routes/templates.ts +16 -0
  601. package/src/api/routes/tests/analytics.spec.js +1 -1
  602. package/src/api/routes/tests/backup.spec.js +9 -1
  603. package/src/api/routes/tests/deployment.spec.ts +1 -1
  604. package/src/api/routes/tests/permissions.spec.js +2 -1
  605. package/src/api/routes/tests/query.spec.js +15 -10
  606. package/src/api/routes/tests/role.spec.js +7 -9
  607. package/src/api/routes/tests/routing.spec.js +2 -1
  608. package/src/api/routes/tests/row.spec.js +3 -4
  609. package/src/api/routes/tests/static.spec.js +2 -2
  610. package/src/api/routes/tests/table.spec.js +40 -36
  611. package/src/api/routes/tests/user.spec.js +2 -1
  612. package/src/api/routes/tests/utilities/TestFunctions.ts +6 -8
  613. package/src/api/routes/tests/utilities/{index.js → index.ts} +12 -12
  614. package/src/api/routes/tests/view.spec.js +3 -3
  615. package/src/api/routes/user.ts +51 -0
  616. package/src/api/routes/utils/{validators.js → validators.ts} +33 -37
  617. package/src/api/routes/view.ts +34 -0
  618. package/src/api/routes/webhook.ts +2 -2
  619. package/src/app.ts +15 -14
  620. package/src/automations/{actions.js → actions.ts} +26 -23
  621. package/src/automations/{automationUtils.js → automationUtils.ts} +13 -12
  622. package/src/automations/bullboard.ts +38 -0
  623. package/src/automations/index.ts +26 -0
  624. package/src/automations/steps/{bash.js → bash.ts} +13 -8
  625. package/src/automations/steps/createRow.ts +8 -3
  626. package/src/automations/steps/{delay.js → delay.ts} +9 -4
  627. package/src/automations/steps/deleteRow.ts +8 -3
  628. package/src/automations/steps/{discord.js → discord.ts} +10 -5
  629. package/src/automations/steps/{executeQuery.js → executeQuery.ts} +12 -7
  630. package/src/automations/steps/{executeScript.js → executeScript.ts} +17 -7
  631. package/src/automations/steps/{filter.js → filter.ts} +12 -9
  632. package/src/automations/steps/{integromat.js → integromat.ts} +10 -5
  633. package/src/automations/steps/{loop.js → loop.ts} +4 -2
  634. package/src/automations/steps/{outgoingWebhook.js → outgoingWebhook.ts} +18 -13
  635. package/src/automations/steps/{queryRows.js → queryRows.ts} +48 -36
  636. package/src/automations/steps/{sendSmtpEmail.js → sendSmtpEmail.ts} +10 -5
  637. package/src/automations/steps/{serverLog.js → serverLog.ts} +9 -3
  638. package/src/automations/steps/{slack.js → slack.ts} +10 -5
  639. package/src/automations/steps/{updateRow.js → updateRow.ts} +12 -7
  640. package/src/automations/steps/{utils.js → utils.ts} +10 -4
  641. package/src/automations/steps/{zapier.js → zapier.ts} +11 -5
  642. package/src/automations/tests/updateRow.spec.js +0 -1
  643. package/src/automations/tests/utilities/index.ts +60 -0
  644. package/src/automations/triggerInfo/{app.js → app.ts} +7 -2
  645. package/src/automations/triggerInfo/{cron.js → cron.ts} +7 -2
  646. package/src/automations/triggerInfo/index.ts +15 -0
  647. package/src/automations/triggerInfo/{rowDeleted.js → rowDeleted.ts} +7 -2
  648. package/src/automations/triggerInfo/{rowSaved.js → rowSaved.ts} +7 -2
  649. package/src/automations/triggerInfo/{rowUpdated.js → rowUpdated.ts} +7 -2
  650. package/src/automations/triggerInfo/{webhook.js → webhook.ts} +7 -2
  651. package/src/automations/{triggers.js → triggers.ts} +30 -26
  652. package/src/automations/utils.ts +9 -12
  653. package/src/constants/index.ts +204 -0
  654. package/src/constants/{layouts.js → layouts.ts} +3 -9
  655. package/src/constants/screens.ts +48 -0
  656. package/src/db/defaultData/datasource_bb_default.ts +658 -0
  657. package/src/db/defaultData/employeeImport.ts +152 -0
  658. package/src/db/defaultData/expensesImport.ts +114 -0
  659. package/src/db/defaultData/inventoryImport.ts +106 -0
  660. package/src/db/defaultData/jobsImport.ts +158 -0
  661. package/src/db/{dynamoClient.js → dynamoClient.ts} +39 -19
  662. package/src/db/{inMemoryView.js → inMemoryView.ts} +15 -9
  663. package/src/db/index.ts +16 -0
  664. package/src/db/linkedRows/{LinkController.js → LinkController.ts} +64 -85
  665. package/src/db/linkedRows/LinkDocument.ts +60 -0
  666. package/src/db/linkedRows/{index.js → index.ts} +43 -38
  667. package/src/db/linkedRows/{linkUtils.js → linkUtils.ts} +33 -24
  668. package/src/db/{newid.js → newid.ts} +1 -1
  669. package/src/db/tests/linkController.spec.js +73 -57
  670. package/src/db/tests/linkTests.spec.js +17 -14
  671. package/src/db/{utils.js → utils.ts} +77 -93
  672. package/src/db/views/{staticViews.js → staticViews.ts} +20 -13
  673. package/src/{environment.js → environment.ts} +11 -7
  674. package/src/events/{AutomationEmitter.js → AutomationEmitter.ts} +12 -7
  675. package/src/events/{index.js → BudibaseEmitter.ts} +7 -8
  676. package/src/events/index.ts +5 -0
  677. package/src/events/utils.ts +78 -0
  678. package/src/integrations/base/sql.ts +1 -1
  679. package/src/integrations/base/sqlTable.ts +1 -1
  680. package/src/integrations/elasticsearch.ts +32 -2
  681. package/src/integrations/googlesheets.ts +5 -7
  682. package/src/integrations/index.ts +45 -41
  683. package/src/integrations/s3.ts +179 -3
  684. package/src/integrations/tests/s3.spec.ts +85 -1
  685. package/src/integrations/utils.ts +6 -2
  686. package/src/middleware/appInfo.ts +20 -0
  687. package/src/middleware/authorized.ts +21 -28
  688. package/src/middleware/{builder.js → builder.ts} +17 -15
  689. package/src/middleware/{currentapp.js → currentapp.ts} +42 -39
  690. package/src/middleware/{joi-validator.js → joi-validator.ts} +9 -8
  691. package/src/middleware/publicApi.ts +21 -0
  692. package/src/middleware/{resourceId.js → resourceId.ts} +16 -11
  693. package/src/middleware/{selfhost.js → selfhost.ts} +4 -2
  694. package/src/middleware/tests/authorized.spec.js +5 -6
  695. package/src/middleware/tests/currentapp.spec.js +118 -63
  696. package/src/middleware/{utils.js → utils.ts} +3 -1
  697. package/src/migrations/functions/appUrls.ts +2 -2
  698. package/src/migrations/functions/backfill/app/tables.ts +2 -5
  699. package/src/migrations/functions/backfill/global.ts +1 -1
  700. package/src/migrations/functions/tableSettings.ts +145 -0
  701. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  702. package/src/migrations/functions/tests/tableSettings.spec.ts +144 -0
  703. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +14 -9
  704. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -4
  705. package/src/migrations/functions/usageQuotas/syncRows.ts +4 -5
  706. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  707. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  708. package/src/migrations/index.ts +9 -0
  709. package/src/migrations/tests/index.spec.ts +1 -1
  710. package/src/sdk/app/backups/exports.ts +5 -3
  711. package/src/sdk/app/backups/imports.ts +7 -14
  712. package/src/sdk/app/backups/statistics.ts +9 -18
  713. package/src/sdk/app/tables/index.ts +7 -8
  714. package/src/startup.ts +5 -5
  715. package/{scripts/jestSetup.js → src/tests/jestSetup.ts} +11 -2
  716. package/src/tests/utilities/{TestConfiguration.js → TestConfiguration.ts} +111 -78
  717. package/src/tests/utilities/controllers.ts +14 -0
  718. package/src/tests/utilities/{index.js → index.ts} +2 -2
  719. package/src/tests/utilities/{structures.js → structures.ts} +41 -36
  720. package/src/threads/automation.ts +18 -19
  721. package/src/threads/query.ts +11 -16
  722. package/src/threads/utils.ts +4 -5
  723. package/src/utilities/budibaseDir.ts +3 -0
  724. package/src/utilities/{centralPath.js → centralPath.ts} +3 -3
  725. package/src/utilities/{csvParser.js → csvParser.ts} +42 -26
  726. package/src/utilities/fileSystem/{clientLibrary.js → clientLibrary.ts} +20 -20
  727. package/src/utilities/fileSystem/{index.js → index.ts} +61 -65
  728. package/src/utilities/fileSystem/{processor.js → processor.ts} +3 -5
  729. package/src/utilities/global.ts +138 -0
  730. package/src/utilities/{index.js → index.ts} +40 -32
  731. package/src/utilities/{plugins.js → plugins.ts} +5 -4
  732. package/src/utilities/{redis.js → redis.ts} +21 -20
  733. package/src/utilities/routing/index.ts +32 -0
  734. package/src/utilities/rowProcessor/{index.js → index.ts} +67 -144
  735. package/src/utilities/rowProcessor/map.ts +96 -0
  736. package/src/utilities/rowProcessor/{utils.js → utils.ts} +19 -15
  737. package/src/utilities/{scriptRunner.js → scriptRunner.ts} +8 -4
  738. package/src/utilities/security.ts +65 -0
  739. package/src/utilities/{statusCodes.js → statusCodes.ts} +1 -1
  740. package/src/utilities/usageQuota/{rows.js → rows.ts} +14 -18
  741. package/src/utilities/usageQuota/{usageQuoteReset.js → usageQuoteReset.ts} +1 -1
  742. package/src/utilities/{users.js → users.ts} +11 -13
  743. package/src/utilities/{workerRequests.js → workerRequests.ts} +43 -38
  744. package/src/watch.ts +2 -3
  745. package/tsconfig.build.json +1 -2
  746. package/tsconfig.json +3 -1
  747. package/builder/assets/index.2467ba90.js +0 -1021
  748. package/builder/assets/index.534f6c29.css +0 -6
  749. package/coverage/lcov-report/api/controllers/index.html +0 -326
  750. package/coverage/lcov-report/api/routes/permission.js.html +0 -184
  751. package/coverage/lcov-report/automations/steps/index.html +0 -341
  752. package/coverage/lcov-report/db/linkedRows/index.html +0 -146
  753. package/dist/integrations/tests/TestConfiguration.js +0 -1
  754. package/dist/utilities/fileSystem/utilities.js +0 -22
  755. package/dist/utilities/queue/inMemoryQueue.js +0 -126
  756. package/src/api/controllers/integration.js +0 -14
  757. package/src/api/controllers/migrations.js +0 -13
  758. package/src/api/controllers/script.js +0 -11
  759. package/src/api/routes/analytics.js +0 -9
  760. package/src/api/routes/apikeys.js +0 -12
  761. package/src/api/routes/automation.js +0 -85
  762. package/src/api/routes/cloud.js +0 -14
  763. package/src/api/routes/component.js +0 -14
  764. package/src/api/routes/datasource.js +0 -51
  765. package/src/api/routes/deploy.js +0 -17
  766. package/src/api/routes/dev.js +0 -26
  767. package/src/api/routes/integration.js +0 -12
  768. package/src/api/routes/layout.js +0 -16
  769. package/src/api/routes/migrations.js +0 -14
  770. package/src/api/routes/permission.js +0 -33
  771. package/src/api/routes/role.js +0 -15
  772. package/src/api/routes/routing.js +0 -14
  773. package/src/api/routes/screen.js +0 -18
  774. package/src/api/routes/script.js +0 -10
  775. package/src/api/routes/templates.js +0 -16
  776. package/src/api/routes/user.js +0 -53
  777. package/src/api/routes/view.js +0 -31
  778. package/src/automations/bullboard.js +0 -39
  779. package/src/automations/index.js +0 -29
  780. package/src/automations/tests/utilities/index.js +0 -51
  781. package/src/automations/triggerInfo/index.js +0 -15
  782. package/src/constants/index.js +0 -208
  783. package/src/constants/screens.js +0 -46
  784. package/src/db/index.js +0 -16
  785. package/src/events/utils.js +0 -38
  786. package/src/middleware/appInfo.js +0 -19
  787. package/src/middleware/publicApi.js +0 -21
  788. package/src/module.d.ts +0 -14
  789. package/src/tests/utilities/controllers.js +0 -16
  790. package/src/utilities/budibaseDir.js +0 -3
  791. package/src/utilities/fileSystem/utilities.js +0 -36
  792. package/src/utilities/global.js +0 -127
  793. package/src/utilities/queue/inMemoryQueue.js +0 -122
  794. package/src/utilities/routing/index.js +0 -25
  795. package/src/utilities/security.js +0 -71
@@ -1,15 +1,20 @@
1
- const newid = require("../../../db/newid")
2
- const { getAppId } = require("@budibase/backend-core/context")
1
+ import newid from "../../../db/newid"
2
+ import { context } from "@budibase/backend-core"
3
3
 
4
4
  /**
5
5
  * This is used to pass around information about the deployment that is occurring
6
6
  */
7
- class Deployment {
7
+ export default class Deployment {
8
+ _id: string
9
+ verification: any
10
+ status?: string
11
+ err?: any
12
+
8
13
  constructor(id = null) {
9
14
  this._id = id || newid()
10
15
  }
11
16
 
12
- setVerification(verification) {
17
+ setVerification(verification: any) {
13
18
  if (!verification) {
14
19
  return
15
20
  }
@@ -20,14 +25,14 @@ class Deployment {
20
25
  return this.verification
21
26
  }
22
27
 
23
- setStatus(status, err = null) {
28
+ setStatus(status: string, err?: any) {
24
29
  this.status = status
25
30
  if (err) {
26
31
  this.err = err
27
32
  }
28
33
  }
29
34
 
30
- fromJSON(json) {
35
+ fromJSON(json: any) {
31
36
  if (json.verification) {
32
37
  this.setVerification(json.verification)
33
38
  }
@@ -37,9 +42,9 @@ class Deployment {
37
42
  }
38
43
 
39
44
  getJSON() {
40
- const obj = {
45
+ const obj: any = {
41
46
  _id: this._id,
42
- appId: getAppId(),
47
+ appId: context.getAppId(),
43
48
  status: this.status,
44
49
  }
45
50
  if (this.err) {
@@ -51,5 +56,3 @@ class Deployment {
51
56
  return obj
52
57
  }
53
58
  }
54
-
55
- module.exports = Deployment
@@ -1,23 +1,11 @@
1
1
  import Deployment from "./Deployment"
2
- import {
3
- getDevelopmentAppID,
4
- getProdAppID,
5
- Replication,
6
- } from "@budibase/backend-core/db"
2
+ import { context, db as dbCore, events, cache } from "@budibase/backend-core"
7
3
  import { DocumentType, getAutomationParams } from "../../../db/utils"
8
4
  import {
9
5
  clearMetadata,
10
6
  disableAllCrons,
11
7
  enableCronTrigger,
12
8
  } from "../../../automations/utils"
13
- import { app as appCache } from "@budibase/backend-core/cache"
14
- import {
15
- getAppDB,
16
- getAppId,
17
- getDevAppDB,
18
- getProdAppDB,
19
- } from "@budibase/backend-core/context"
20
- import { events } from "@budibase/backend-core"
21
9
  import { backups } from "@budibase/pro"
22
10
  import { AppBackupTrigger } from "@budibase/types"
23
11
 
@@ -49,7 +37,7 @@ async function checkAllDeployments(deployments: any) {
49
37
 
50
38
  async function storeDeploymentHistory(deployment: any) {
51
39
  const deploymentJSON = deployment.getJSON()
52
- const db = getAppDB()
40
+ const db = context.getAppDB()
53
41
 
54
42
  let deploymentDoc
55
43
  try {
@@ -77,7 +65,7 @@ async function storeDeploymentHistory(deployment: any) {
77
65
  }
78
66
 
79
67
  async function initDeployedApp(prodAppId: any) {
80
- const db = getProdAppDB()
68
+ const db = context.getProdAppDB()
81
69
  console.log("Reading automation docs")
82
70
  const automations = (
83
71
  await db.allDocs(
@@ -103,9 +91,9 @@ async function initDeployedApp(prodAppId: any) {
103
91
  async function deployApp(deployment: any, userId: string) {
104
92
  let replication
105
93
  try {
106
- const appId = getAppId()
107
- const devAppId = getDevelopmentAppID(appId)
108
- const productionAppId = getProdAppID(appId)
94
+ const appId = context.getAppId()!
95
+ const devAppId = dbCore.getDevelopmentAppID(appId)
96
+ const productionAppId = dbCore.getProdAppID(appId)
109
97
 
110
98
  // don't try this if feature isn't allowed, will error
111
99
  if (await backups.isEnabled()) {
@@ -122,8 +110,8 @@ async function deployApp(deployment: any, userId: string) {
122
110
  source: devAppId,
123
111
  target: productionAppId,
124
112
  }
125
- replication = new Replication(config)
126
- const devDb = getDevAppDB()
113
+ replication = new dbCore.Replication(config)
114
+ const devDb = context.getDevAppDB()
127
115
  console.log("Compacting development DB")
128
116
  await devDb.compact()
129
117
  console.log("Replication object created")
@@ -131,7 +119,7 @@ async function deployApp(deployment: any, userId: string) {
131
119
  console.log("replication complete.. replacing app meta doc")
132
120
  // app metadata is excluded as it is likely to be in conflict
133
121
  // replicate the app metadata document manually
134
- const db = getProdAppDB()
122
+ const db = context.getProdAppDB()
135
123
  const appDoc = await devDb.get(DocumentType.APP_METADATA)
136
124
  try {
137
125
  const prodAppDoc = await db.get(DocumentType.APP_METADATA)
@@ -147,7 +135,7 @@ async function deployApp(deployment: any, userId: string) {
147
135
  // remove automation errors if they exist
148
136
  delete appDoc.automationErrors
149
137
  await db.put(appDoc)
150
- await appCache.invalidateAppMetadata(productionAppId)
138
+ await cache.app.invalidateAppMetadata(productionAppId)
151
139
  console.log("New app doc written successfully.")
152
140
  await initDeployedApp(productionAppId)
153
141
  console.log("Deployed app initialised, setting deployment to successful")
@@ -170,7 +158,7 @@ async function deployApp(deployment: any, userId: string) {
170
158
 
171
159
  export async function fetchDeployments(ctx: any) {
172
160
  try {
173
- const db = getAppDB()
161
+ const db = context.getAppDB()
174
162
  const deploymentDoc = await db.get(DocumentType.DEPLOYMENTS)
175
163
  const { updated, deployments } = await checkAllDeployments(deploymentDoc)
176
164
  if (updated) {
@@ -184,7 +172,7 @@ export async function fetchDeployments(ctx: any) {
184
172
 
185
173
  export async function deploymentProgress(ctx: any) {
186
174
  try {
187
- const db = getAppDB()
175
+ const db = context.getAppDB()
188
176
  const deploymentDoc = await db.get(DocumentType.DEPLOYMENTS)
189
177
  ctx.body = deploymentDoc[ctx.params.deploymentId]
190
178
  } catch (err) {
@@ -197,7 +185,7 @@ export async function deploymentProgress(ctx: any) {
197
185
 
198
186
  const isFirstDeploy = async () => {
199
187
  try {
200
- const db = getProdAppDB()
188
+ const db = context.getProdAppDB()
201
189
  await db.get(DocumentType.APP_METADATA)
202
190
  } catch (e: any) {
203
191
  if (e.status === 404) {
@@ -1,29 +1,23 @@
1
- const fetch = require("node-fetch")
2
- const env = require("../../environment")
3
- const { checkSlashesInUrl } = require("../../utilities")
4
- const { request } = require("../../utilities/workerRequests")
5
- const { clearLock } = require("../../utilities/redis")
6
- const { Replication, getProdAppID } = require("@budibase/backend-core/db")
7
- const { DocumentType } = require("../../db/utils")
8
- const { app: appCache } = require("@budibase/backend-core/cache")
9
- const { getProdAppDB, getAppDB } = require("@budibase/backend-core/context")
10
- const { events } = require("@budibase/backend-core")
1
+ import fetch from "node-fetch"
2
+ import env from "../../environment"
3
+ import { checkSlashesInUrl } from "../../utilities"
4
+ import { request } from "../../utilities/workerRequests"
5
+ import { clearLock as redisClearLock } from "../../utilities/redis"
6
+ import { DocumentType } from "../../db/utils"
7
+ import { context } from "@budibase/backend-core"
8
+ import { events, db as dbCore, cache } from "@budibase/backend-core"
11
9
 
12
- async function redirect(ctx, method, path = "global") {
10
+ async function redirect(ctx: any, method: string, path: string = "global") {
13
11
  const { devPath } = ctx.params
14
12
  const queryString = ctx.originalUrl.split("?")[1] || ""
15
13
  const response = await fetch(
16
14
  checkSlashesInUrl(
17
15
  `${env.WORKER_URL}/api/${path}/${devPath}?${queryString}`
18
16
  ),
19
- request(
20
- ctx,
21
- {
22
- method,
23
- body: ctx.request.body,
24
- },
25
- true
26
- )
17
+ request(ctx, {
18
+ method,
19
+ body: ctx.request.body,
20
+ })
27
21
  )
28
22
  if (response.status !== 200) {
29
23
  const err = await response.text()
@@ -46,28 +40,28 @@ async function redirect(ctx, method, path = "global") {
46
40
  ctx.cookies
47
41
  }
48
42
 
49
- exports.buildRedirectGet = path => {
50
- return async ctx => {
43
+ export function buildRedirectGet(path: string) {
44
+ return async (ctx: any) => {
51
45
  await redirect(ctx, "GET", path)
52
46
  }
53
47
  }
54
48
 
55
- exports.buildRedirectPost = path => {
56
- return async ctx => {
49
+ export function buildRedirectPost(path: string) {
50
+ return async (ctx: any) => {
57
51
  await redirect(ctx, "POST", path)
58
52
  }
59
53
  }
60
54
 
61
- exports.buildRedirectDelete = path => {
62
- return async ctx => {
55
+ export function buildRedirectDelete(path: string) {
56
+ return async (ctx: any) => {
63
57
  await redirect(ctx, "DELETE", path)
64
58
  }
65
59
  }
66
60
 
67
- exports.clearLock = async ctx => {
61
+ export async function clearLock(ctx: any) {
68
62
  const { appId } = ctx.params
69
63
  try {
70
- await clearLock(appId, ctx.user)
64
+ await redisClearLock(appId, ctx.user)
71
65
  } catch (err) {
72
66
  ctx.throw(400, `Unable to remove lock. ${err}`)
73
67
  }
@@ -76,16 +70,16 @@ exports.clearLock = async ctx => {
76
70
  }
77
71
  }
78
72
 
79
- exports.revert = async ctx => {
73
+ export async function revert(ctx: any) {
80
74
  const { appId } = ctx.params
81
- const productionAppId = getProdAppID(appId)
75
+ const productionAppId = dbCore.getProdAppID(appId)
82
76
 
83
77
  // App must have been deployed first
84
78
  try {
85
- const db = getProdAppDB({ skip_setup: true })
86
- const info = await db.info()
87
- if (info.error) {
88
- throw info.error
79
+ const db = context.getProdAppDB({ skip_setup: true })
80
+ const exists = await db.exists()
81
+ if (!exists) {
82
+ throw new Error("App must be deployed to be reverted.")
89
83
  }
90
84
  const deploymentDoc = await db.get(DocumentType.DEPLOYMENTS)
91
85
  if (
@@ -98,7 +92,7 @@ exports.revert = async ctx => {
98
92
  return ctx.throw(400, "App has not yet been deployed")
99
93
  }
100
94
 
101
- const replication = new Replication({
95
+ const replication = new dbCore.Replication({
102
96
  source: productionAppId,
103
97
  target: appId,
104
98
  })
@@ -109,12 +103,12 @@ exports.revert = async ctx => {
109
103
  }
110
104
 
111
105
  // update appID in reverted app to be dev version again
112
- const db = getAppDB()
106
+ const db = context.getAppDB()
113
107
  const appDoc = await db.get(DocumentType.APP_METADATA)
114
108
  appDoc.appId = appId
115
109
  appDoc.instance._id = appId
116
110
  await db.put(appDoc)
117
- await appCache.invalidateAppMetadata(appId)
111
+ await cache.app.invalidateAppMetadata(appId)
118
112
  ctx.body = {
119
113
  message: "Reverted changes successfully.",
120
114
  }
@@ -126,7 +120,7 @@ exports.revert = async ctx => {
126
120
  }
127
121
  }
128
122
 
129
- exports.getBudibaseVersion = async ctx => {
123
+ export async function getBudibaseVersion(ctx: any) {
130
124
  const version = require("../../../package.json").version
131
125
  ctx.body = {
132
126
  version,
@@ -0,0 +1,13 @@
1
+ import { getDefinitions } from "../../integrations"
2
+ import { BBContext } from "@budibase/types"
3
+
4
+ export async function fetch(ctx: BBContext) {
5
+ ctx.status = 200
6
+ ctx.body = await getDefinitions()
7
+ }
8
+
9
+ export async function find(ctx: BBContext) {
10
+ const defs = await getDefinitions()
11
+ ctx.status = 200
12
+ ctx.body = defs[ctx.params.type]
13
+ }
@@ -1,10 +1,10 @@
1
- const { EMPTY_LAYOUT } = require("../../constants/layouts")
2
- const { generateLayoutID, getScreenParams } = require("../../db/utils")
3
- const { getAppDB } = require("@budibase/backend-core/context")
4
- const { events } = require("@budibase/backend-core")
1
+ import { EMPTY_LAYOUT } from "../../constants/layouts"
2
+ import { generateLayoutID, getScreenParams } from "../../db/utils"
3
+ import { events, context } from "@budibase/backend-core"
4
+ import { BBContext } from "@budibase/types"
5
5
 
6
- exports.save = async function (ctx) {
7
- const db = getAppDB()
6
+ export async function save(ctx: BBContext) {
7
+ const db = context.getAppDB()
8
8
  let layout = ctx.request.body
9
9
 
10
10
  if (!layout.props) {
@@ -24,8 +24,8 @@ exports.save = async function (ctx) {
24
24
  ctx.status = 200
25
25
  }
26
26
 
27
- exports.destroy = async function (ctx) {
28
- const db = getAppDB()
27
+ export async function destroy(ctx: BBContext) {
28
+ const db = context.getAppDB()
29
29
  const layoutId = ctx.params.layoutId,
30
30
  layoutRev = ctx.params.layoutRev
31
31
 
@@ -1,15 +1,16 @@
1
- const { MetadataTypes } = require("../../constants")
2
- const { generateMetadataID } = require("../../db/utils")
3
- const { saveEntityMetadata, deleteEntityMetadata } = require("../../utilities")
4
- const { getAppDB } = require("@budibase/backend-core/context")
1
+ import { MetadataTypes } from "../../constants"
2
+ import { generateMetadataID } from "../../db/utils"
3
+ import { saveEntityMetadata, deleteEntityMetadata } from "../../utilities"
4
+ import { context } from "@budibase/backend-core"
5
+ import { BBContext } from "@budibase/types"
5
6
 
6
- exports.getTypes = async ctx => {
7
+ export async function getTypes(ctx: BBContext) {
7
8
  ctx.body = {
8
9
  types: MetadataTypes,
9
10
  }
10
11
  }
11
12
 
12
- exports.saveMetadata = async ctx => {
13
+ export async function saveMetadata(ctx: BBContext) {
13
14
  const { type, entityId } = ctx.params
14
15
  if (type === MetadataTypes.AUTOMATION_TEST_HISTORY) {
15
16
  ctx.throw(400, "Cannot save automation history type")
@@ -17,7 +18,7 @@ exports.saveMetadata = async ctx => {
17
18
  ctx.body = await saveEntityMetadata(type, entityId, ctx.request.body)
18
19
  }
19
20
 
20
- exports.deleteMetadata = async ctx => {
21
+ export async function deleteMetadata(ctx: BBContext) {
21
22
  const { type, entityId } = ctx.params
22
23
  await deleteEntityMetadata(type, entityId)
23
24
  ctx.body = {
@@ -25,13 +26,13 @@ exports.deleteMetadata = async ctx => {
25
26
  }
26
27
  }
27
28
 
28
- exports.getMetadata = async ctx => {
29
+ export async function getMetadata(ctx: BBContext) {
29
30
  const { type, entityId } = ctx.params
30
- const db = getAppDB()
31
+ const db = context.getAppDB()
31
32
  const id = generateMetadataID(type, entityId)
32
33
  try {
33
34
  ctx.body = await db.get(id)
34
- } catch (err) {
35
+ } catch (err: any) {
35
36
  if (err.status === 404) {
36
37
  ctx.body = {}
37
38
  } else {
@@ -0,0 +1,14 @@
1
+ import { migrate as migrationImpl, MIGRATIONS } from "../../migrations"
2
+ import { BBContext } from "@budibase/types"
3
+
4
+ export async function migrate(ctx: BBContext) {
5
+ const options = ctx.request.body
6
+ // don't await as can take a while, just return
7
+ migrationImpl(options)
8
+ ctx.status = 200
9
+ }
10
+
11
+ export async function fetchDefinitions(ctx: BBContext) {
12
+ ctx.body = MIGRATIONS
13
+ ctx.status = 200
14
+ }
@@ -1,18 +1,11 @@
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 {
1
+ import { permissions, roles, context } from "@budibase/backend-core"
2
+ import { getRoleParams } from "../../db/utils"
3
+ import {
11
4
  CURRENTLY_SUPPORTED_LEVELS,
12
5
  getBasePermissions,
13
- } = require("../../utilities/security")
14
- const { removeFromArray } = require("../../utilities")
15
- const { getAppDB } = require("@budibase/backend-core/context")
6
+ } from "../../utilities/security"
7
+ import { removeFromArray } from "../../utilities"
8
+ import { BBContext, Database, Role } from "@budibase/types"
16
9
 
17
10
  const PermissionUpdateType = {
18
11
  REMOVE: "remove",
@@ -22,7 +15,7 @@ const PermissionUpdateType = {
22
15
  const SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
23
16
 
24
17
  // utility function to stop this repetition - permissions always stored under roles
25
- async function getAllDBRoles(db) {
18
+ async function getAllDBRoles(db: Database) {
26
19
  const body = await db.allDocs(
27
20
  getRoleParams(null, {
28
21
  include_docs: true,
@@ -32,21 +25,25 @@ async function getAllDBRoles(db) {
32
25
  }
33
26
 
34
27
  async function updatePermissionOnRole(
35
- appId,
36
- { roleId, resourceId, level },
37
- updateType
28
+ appId: string,
29
+ {
30
+ roleId,
31
+ resourceId,
32
+ level,
33
+ }: { roleId: string; resourceId: string; level: string },
34
+ updateType: string
38
35
  ) {
39
- const db = getAppDB()
36
+ const db = context.getAppDB()
40
37
  const remove = updateType === PermissionUpdateType.REMOVE
41
- const isABuiltin = isBuiltin(roleId)
42
- const dbRoleId = getDBRoleID(roleId)
38
+ const isABuiltin = roles.isBuiltin(roleId)
39
+ const dbRoleId = roles.getDBRoleID(roleId)
43
40
  const dbRoles = await getAllDBRoles(db)
44
41
  const docUpdates = []
45
42
 
46
43
  // the permission is for a built in, make sure it exists
47
44
  if (isABuiltin && !dbRoles.some(role => role._id === dbRoleId)) {
48
- const builtin = getBuiltinRoles()[roleId]
49
- builtin._id = getDBRoleID(builtin._id)
45
+ const builtin = roles.getBuiltinRoles()[roleId]
46
+ builtin._id = roles.getDBRoleID(builtin._id)
50
47
  dbRoles.push(builtin)
51
48
  }
52
49
 
@@ -90,41 +87,44 @@ async function updatePermissionOnRole(
90
87
  }
91
88
 
92
89
  const response = await db.bulkDocs(docUpdates)
93
- return response.map(resp => {
94
- resp._id = getExternalRoleID(resp.id)
90
+ return response.map((resp: any) => {
91
+ resp._id = roles.getExternalRoleID(resp.id)
95
92
  delete resp.id
96
93
  return resp
97
94
  })
98
95
  }
99
96
 
100
- exports.fetchBuiltin = function (ctx) {
101
- ctx.body = Object.values(getBuiltinPermissions())
97
+ export function fetchBuiltin(ctx: BBContext) {
98
+ ctx.body = Object.values(permissions.getBuiltinPermissions())
102
99
  }
103
100
 
104
- exports.fetchLevels = function (ctx) {
101
+ export function fetchLevels(ctx: BBContext) {
105
102
  // for now only provide the read/write perms externally
106
103
  ctx.body = SUPPORTED_LEVELS
107
104
  }
108
105
 
109
- exports.fetch = async function (ctx) {
110
- const db = getAppDB()
111
- const roles = await getAllDBRoles(db)
112
- let permissions = {}
106
+ export async function fetch(ctx: BBContext) {
107
+ const db = context.getAppDB()
108
+ const dbRoles: Role[] = await getAllDBRoles(db)
109
+ let permissions: any = {}
113
110
  // create an object with structure role ID -> resource ID -> level
114
- for (let role of roles) {
111
+ for (let role of dbRoles) {
115
112
  if (!role.permissions) {
116
113
  continue
117
114
  }
118
- const roleId = getExternalRoleID(role._id)
115
+ const roleId = roles.getExternalRoleID(role._id)
116
+ if (!roleId) {
117
+ ctx.throw(400, "Unable to retrieve role")
118
+ }
119
119
  for (let [resource, levelArr] of Object.entries(role.permissions)) {
120
- const levels = Array.isArray(levelArr) ? [levelArr] : levelArr
121
- const perms = {}
122
- levels.forEach(level => (perms[level] = roleId))
120
+ const levels: string[] = Array.isArray(levelArr) ? levelArr : [levelArr]
121
+ const perms: Record<string, string> = {}
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 = {}
127
+ const finalPermissions: Record<string, Record<string, string>> = {}
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,33 +132,36 @@ exports.fetch = async function (ctx) {
132
132
  ctx.body = finalPermissions
133
133
  }
134
134
 
135
- exports.getResourcePerms = async function (ctx) {
135
+ export async function getResourcePerms(ctx: BBContext) {
136
136
  const resourceId = ctx.params.resourceId
137
- const db = getAppDB()
137
+ const db = context.getAppDB()
138
138
  const body = await db.allDocs(
139
139
  getRoleParams(null, {
140
140
  include_docs: true,
141
141
  })
142
142
  )
143
- const roles = body.rows.map(row => row.doc)
144
- let permissions = {}
143
+ const rolesList = body.rows.map(row => row.doc)
144
+ let permissions: Record<string, string> = {}
145
145
  for (let level of SUPPORTED_LEVELS) {
146
146
  // update the various roleIds in the resource permissions
147
- for (let role of roles) {
148
- const rolePerms = checkForRoleResourceArray(role.permissions, resourceId)
147
+ for (let role of rolesList) {
148
+ const rolePerms = roles.checkForRoleResourceArray(
149
+ role.permissions,
150
+ resourceId
151
+ )
149
152
  if (
150
153
  rolePerms &&
151
154
  rolePerms[resourceId] &&
152
155
  rolePerms[resourceId].indexOf(level) !== -1
153
156
  ) {
154
- permissions[level] = getExternalRoleID(role._id)
157
+ permissions[level] = roles.getExternalRoleID(role._id)!
155
158
  }
156
159
  }
157
160
  }
158
161
  ctx.body = Object.assign(getBasePermissions(resourceId), permissions)
159
162
  }
160
163
 
161
- exports.addPermission = async function (ctx) {
164
+ export async function addPermission(ctx: BBContext) {
162
165
  ctx.body = await updatePermissionOnRole(
163
166
  ctx.appId,
164
167
  ctx.params,
@@ -166,7 +169,7 @@ exports.addPermission = async function (ctx) {
166
169
  )
167
170
  }
168
171
 
169
- exports.removePermission = async function (ctx) {
172
+ export async function removePermission(ctx: BBContext) {
170
173
  ctx.body = await updatePermissionOnRole(
171
174
  ctx.appId,
172
175
  ctx.params,
@@ -1,6 +1,5 @@
1
1
  import { npmUpload, urlUpload, githubUpload, fileUpload } from "./uploaders"
2
- import { getGlobalDB } from "@budibase/backend-core/tenancy"
3
- import { validate } from "@budibase/backend-core/plugins"
2
+ import { plugins as pluginCore, tenancy } from "@budibase/backend-core"
4
3
  import { PluginType, FileType, PluginSource } from "@budibase/types"
5
4
  import env from "../../../environment"
6
5
  import { ClientAppSocket } from "../../../websocket"
@@ -8,7 +7,7 @@ import { db as dbCore } from "@budibase/backend-core"
8
7
  import { plugins } from "@budibase/pro"
9
8
 
10
9
  export async function getPlugins(type?: PluginType) {
11
- const db = getGlobalDB()
10
+ const db = tenancy.getGlobalDB()
12
11
  const response = await db.allDocs(
13
12
  dbCore.getPluginParams(null, {
14
13
  include_docs: true,
@@ -76,7 +75,7 @@ export async function create(ctx: any) {
76
75
  break
77
76
  }
78
77
 
79
- validate(metadata?.schema)
78
+ pluginCore.validate(metadata?.schema)
80
79
 
81
80
  // Only allow components in cloud
82
81
  if (!env.SELF_HOSTED && metadata?.schema?.type !== PluginType.COMPONENT) {
@@ -121,7 +120,7 @@ export async function processUploadedPlugin(
121
120
  source?: PluginSource
122
121
  ) {
123
122
  const { metadata, directory } = await fileUpload(plugin)
124
- validate(metadata?.schema)
123
+ pluginCore.validate(metadata?.schema)
125
124
 
126
125
  // Only allow components in cloud
127
126
  if (!env.SELF_HOSTED && metadata?.schema?.type !== PluginType.COMPONENT) {
@@ -1,7 +1,5 @@
1
- import {
2
- createTempFolder,
3
- downloadTarballDirect,
4
- } from "../../../utilities/fileSystem"
1
+ import { createTempFolder } from "../../../utilities/fileSystem"
2
+ import { objectStore } from "@budibase/backend-core"
5
3
 
6
4
  export async function downloadUnzipTarball(
7
5
  url: string,
@@ -10,7 +8,7 @@ export async function downloadUnzipTarball(
10
8
  ) {
11
9
  try {
12
10
  const path = createTempFolder(name)
13
- await downloadTarballDirect(url, path, headers)
11
+ await objectStore.downloadTarballDirect(url, path, headers)
14
12
 
15
13
  return path
16
14
  } catch (e: any) {