@budibase/server 2.2.12-alpha.2 → 2.2.12-alpha.20

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 (471) hide show
  1. package/builder/assets/{index.940455a2.js → index.35af2c9c.js} +296 -296
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +1627 -1752
  4. package/coverage/coverage-final.json +278 -279
  5. package/coverage/lcov-report/index.html +389 -389
  6. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +4 -4
  7. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +2 -2
  8. package/coverage/lcov-report/src/api/controllers/application.ts.html +81 -81
  9. package/coverage/lcov-report/src/api/controllers/auth.ts.html +2 -2
  10. package/coverage/lcov-report/src/api/controllers/automation.ts.html +17 -17
  11. package/coverage/lcov-report/src/api/controllers/backup.ts.html +3 -3
  12. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +5 -5
  13. package/coverage/lcov-report/src/api/controllers/component.ts.html +8 -8
  14. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +23 -23
  15. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +16 -16
  16. package/coverage/lcov-report/src/api/controllers/deploy/index.html +7 -7
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +73 -73
  18. package/coverage/lcov-report/src/api/controllers/dev.ts.html +15 -15
  19. package/coverage/lcov-report/src/api/controllers/index.html +98 -98
  20. package/coverage/lcov-report/src/api/controllers/integration.ts.html +2 -2
  21. package/coverage/lcov-report/src/api/controllers/layout.ts.html +5 -5
  22. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +3 -3
  23. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +3 -3
  24. package/coverage/lcov-report/src/api/controllers/permission.ts.html +4 -4
  25. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +4 -4
  26. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +17 -17
  27. package/coverage/lcov-report/src/api/controllers/plugin/index.html +31 -31
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +21 -21
  29. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +7 -7
  30. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  31. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +2 -2
  32. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +2 -2
  33. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +27 -27
  34. package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
  35. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +6 -6
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +3 -3
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +7 -7
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +3 -3
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +3 -3
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +3 -3
  42. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +13 -13
  43. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +18 -18
  44. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +19 -19
  45. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +24 -24
  46. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +5 -5
  47. package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +5 -5
  49. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +13 -13
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +6 -6
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +8 -8
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +8 -8
  56. package/coverage/lcov-report/src/api/controllers/query/index.html +15 -15
  57. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +20 -20
  58. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +5 -5
  59. package/coverage/lcov-report/src/api/controllers/role.ts.html +4 -4
  60. package/coverage/lcov-report/src/api/controllers/routing.ts.html +5 -5
  61. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +30 -30
  62. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +38 -38
  63. package/coverage/lcov-report/src/api/controllers/row/index.html +53 -53
  64. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +12 -12
  65. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +19 -19
  66. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +28 -28
  67. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +14 -14
  68. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +7 -7
  69. package/coverage/lcov-report/src/api/controllers/screen.ts.html +8 -8
  70. package/coverage/lcov-report/src/api/controllers/script.ts.html +10 -10
  71. package/coverage/lcov-report/src/api/controllers/static/index.html +15 -15
  72. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +17 -17
  73. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  74. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +22 -22
  75. package/coverage/lcov-report/src/api/controllers/table/index.html +37 -37
  76. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +9 -9
  77. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +15 -18
  78. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +34 -34
  79. package/coverage/lcov-report/src/api/controllers/templates.ts.html +15 -15
  80. package/coverage/lcov-report/src/api/controllers/user.ts.html +101 -77
  81. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +5 -5
  82. package/coverage/lcov-report/src/api/controllers/view/index.html +25 -25
  83. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +15 -15
  84. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +19 -19
  85. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +3 -3
  86. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +4 -4
  87. package/coverage/lcov-report/src/api/index.html +15 -15
  88. package/coverage/lcov-report/src/api/index.ts.html +14 -14
  89. package/coverage/lcov-report/src/api/routes/analytics.ts.html +4 -4
  90. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +4 -4
  91. package/coverage/lcov-report/src/api/routes/application.ts.html +4 -4
  92. package/coverage/lcov-report/src/api/routes/auth.ts.html +4 -4
  93. package/coverage/lcov-report/src/api/routes/automation.ts.html +5 -5
  94. package/coverage/lcov-report/src/api/routes/backup.ts.html +4 -4
  95. package/coverage/lcov-report/src/api/routes/cloud.ts.html +4 -4
  96. package/coverage/lcov-report/src/api/routes/component.ts.html +4 -4
  97. package/coverage/lcov-report/src/api/routes/datasource.ts.html +5 -5
  98. package/coverage/lcov-report/src/api/routes/deploy.ts.html +4 -4
  99. package/coverage/lcov-report/src/api/routes/dev.ts.html +5 -5
  100. package/coverage/lcov-report/src/api/routes/index.html +66 -66
  101. package/coverage/lcov-report/src/api/routes/index.ts.html +5 -5
  102. package/coverage/lcov-report/src/api/routes/integration.ts.html +4 -4
  103. package/coverage/lcov-report/src/api/routes/layout.ts.html +4 -4
  104. package/coverage/lcov-report/src/api/routes/metadata.ts.html +5 -5
  105. package/coverage/lcov-report/src/api/routes/migrations.ts.html +4 -4
  106. package/coverage/lcov-report/src/api/routes/permission.ts.html +4 -4
  107. package/coverage/lcov-report/src/api/routes/plugin.ts.html +3 -3
  108. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +3 -3
  109. package/coverage/lcov-report/src/api/routes/public/index.html +24 -24
  110. package/coverage/lcov-report/src/api/routes/public/index.ts.html +10 -10
  111. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +5 -5
  112. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +10 -10
  113. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +3 -3
  114. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +3 -3
  115. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +3 -3
  116. package/coverage/lcov-report/src/api/routes/public/tests/index.html +7 -7
  117. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
  118. package/coverage/lcov-report/src/api/routes/public/users.ts.html +3 -3
  119. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +4 -4
  120. package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
  121. package/coverage/lcov-report/src/api/routes/query.ts.html +5 -5
  122. package/coverage/lcov-report/src/api/routes/role.ts.html +4 -4
  123. package/coverage/lcov-report/src/api/routes/routing.ts.html +4 -4
  124. package/coverage/lcov-report/src/api/routes/row.ts.html +3 -3
  125. package/coverage/lcov-report/src/api/routes/screen.ts.html +4 -4
  126. package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
  127. package/coverage/lcov-report/src/api/routes/static.ts.html +6 -6
  128. package/coverage/lcov-report/src/api/routes/table.ts.html +4 -4
  129. package/coverage/lcov-report/src/api/routes/templates.ts.html +4 -4
  130. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +13 -13
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +23 -23
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +14 -14
  133. package/coverage/lcov-report/src/api/routes/user.ts.html +4 -4
  134. package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
  135. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +7 -7
  136. package/coverage/lcov-report/src/api/routes/view.ts.html +4 -4
  137. package/coverage/lcov-report/src/api/routes/webhook.ts.html +4 -4
  138. package/coverage/lcov-report/src/app.ts.html +22 -16
  139. package/coverage/lcov-report/src/automations/actions.ts.html +9 -9
  140. package/coverage/lcov-report/src/automations/automationUtils.ts.html +15 -15
  141. package/coverage/lcov-report/src/automations/bullboard.ts.html +12 -12
  142. package/coverage/lcov-report/src/automations/index.html +52 -52
  143. package/coverage/lcov-report/src/automations/index.ts.html +16 -16
  144. package/coverage/lcov-report/src/automations/logging/index.html +3 -3
  145. package/coverage/lcov-report/src/automations/logging/index.ts.html +5 -5
  146. package/coverage/lcov-report/src/automations/steps/bash.ts.html +5 -5
  147. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +4 -4
  148. package/coverage/lcov-report/src/automations/steps/delay.ts.html +4 -4
  149. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +4 -4
  150. package/coverage/lcov-report/src/automations/steps/discord.ts.html +5 -5
  151. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +4 -4
  152. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +4 -4
  153. package/coverage/lcov-report/src/automations/steps/filter.ts.html +8 -8
  154. package/coverage/lcov-report/src/automations/steps/index.html +71 -71
  155. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  156. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  157. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +12 -12
  158. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +12 -12
  159. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +5 -5
  160. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +5 -5
  161. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  162. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +4 -4
  163. package/coverage/lcov-report/src/automations/steps/utils.ts.html +4 -4
  164. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +4 -4
  165. package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
  166. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +14 -14
  167. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +5 -5
  168. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +5 -5
  169. package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
  170. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +4 -4
  171. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +5 -5
  172. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +5 -5
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +5 -5
  174. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +5 -5
  175. package/coverage/lcov-report/src/automations/triggers.ts.html +11 -11
  176. package/coverage/lcov-report/src/automations/utils.ts.html +37 -37
  177. package/coverage/lcov-report/src/constants/index.html +19 -19
  178. package/coverage/lcov-report/src/constants/index.ts.html +80 -80
  179. package/coverage/lcov-report/src/constants/layouts.ts.html +6 -6
  180. package/coverage/lcov-report/src/constants/screens.ts.html +2 -2
  181. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +25 -25
  182. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +7 -7
  183. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +7 -7
  184. package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
  185. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +7 -7
  186. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +7 -7
  187. package/coverage/lcov-report/src/db/dynamoClient.ts.html +12 -12
  188. package/coverage/lcov-report/src/db/inMemoryView.ts.html +10 -10
  189. package/coverage/lcov-report/src/db/index.html +32 -32
  190. package/coverage/lcov-report/src/db/index.ts.html +3 -3
  191. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +22 -22
  192. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  193. package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
  194. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +18 -18
  195. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +15 -15
  196. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  197. package/coverage/lcov-report/src/db/utils.ts.html +59 -59
  198. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  199. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  200. package/coverage/lcov-report/src/definitions/index.html +4 -4
  201. package/coverage/lcov-report/src/environment.ts.html +11 -11
  202. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +7 -7
  203. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +4 -4
  204. package/coverage/lcov-report/src/events/index.html +20 -20
  205. package/coverage/lcov-report/src/events/index.ts.html +5 -5
  206. package/coverage/lcov-report/src/events/utils.ts.html +11 -11
  207. package/coverage/lcov-report/src/index.html +36 -36
  208. package/coverage/lcov-report/src/index.ts.html +6 -6
  209. package/coverage/lcov-report/src/integrations/airtable.ts.html +8 -8
  210. package/coverage/lcov-report/src/integrations/arangodb.ts.html +7 -7
  211. package/coverage/lcov-report/src/integrations/base/index.html +20 -20
  212. package/coverage/lcov-report/src/integrations/base/query.ts.html +2 -2
  213. package/coverage/lcov-report/src/integrations/base/sql.ts.html +28 -28
  214. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +15 -15
  215. package/coverage/lcov-report/src/integrations/base/utils.ts.html +2 -2
  216. package/coverage/lcov-report/src/integrations/couchdb.ts.html +8 -8
  217. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +12 -12
  218. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +7 -7
  219. package/coverage/lcov-report/src/integrations/firebase.ts.html +10 -10
  220. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +33 -33
  221. package/coverage/lcov-report/src/integrations/index.html +123 -123
  222. package/coverage/lcov-report/src/integrations/index.ts.html +13 -13
  223. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +26 -26
  224. package/coverage/lcov-report/src/integrations/mongodb.ts.html +15 -15
  225. package/coverage/lcov-report/src/integrations/mysql.ts.html +20 -20
  226. package/coverage/lcov-report/src/integrations/oracle.ts.html +21 -21
  227. package/coverage/lcov-report/src/integrations/postgres.ts.html +15 -15
  228. package/coverage/lcov-report/src/integrations/queries/index.html +5 -5
  229. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +6 -6
  230. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  231. package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
  232. package/coverage/lcov-report/src/integrations/s3.ts.html +14 -14
  233. package/coverage/lcov-report/src/integrations/snowflake.ts.html +12 -12
  234. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  235. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  236. package/coverage/lcov-report/src/integrations/utils.ts.html +34 -34
  237. package/coverage/lcov-report/src/middleware/appInfo.ts.html +8 -8
  238. package/coverage/lcov-report/src/middleware/authorized.ts.html +43 -31
  239. package/coverage/lcov-report/src/middleware/builder.ts.html +22 -22
  240. package/coverage/lcov-report/src/middleware/currentapp.ts.html +46 -43
  241. package/coverage/lcov-report/src/middleware/index.html +40 -40
  242. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
  243. package/coverage/lcov-report/src/middleware/publicApi.ts.html +7 -7
  244. package/coverage/lcov-report/src/middleware/resourceId.ts.html +6 -6
  245. package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
  246. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  247. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  248. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +3 -3
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +3 -3
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +4 -4
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +3 -3
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +3 -3
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +5 -5
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +3 -3
  257. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +3 -3
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +8 -8
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +11 -11
  262. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +3 -3
  264. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +7 -7
  265. package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
  266. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +4 -4
  267. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +7 -7
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +2 -2
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +5 -5
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +2 -2
  273. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  274. package/coverage/lcov-report/src/migrations/index.html +15 -15
  275. package/coverage/lcov-report/src/migrations/index.ts.html +13 -13
  276. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
  277. package/coverage/lcov-report/src/migrations/tests/index.html +6 -6
  278. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
  279. package/coverage/lcov-report/src/sdk/app/applications/index.html +11 -11
  280. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +3 -3
  281. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +20 -20
  282. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +13 -13
  283. package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
  284. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  285. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  286. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  287. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +15 -15
  288. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +8 -8
  289. package/coverage/lcov-report/src/sdk/app/backups/index.html +27 -27
  290. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +3 -3
  291. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  292. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +3 -3
  293. package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
  294. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +3 -3
  295. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
  296. package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
  297. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +7 -7
  298. package/coverage/lcov-report/src/sdk/index.html +5 -5
  299. package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
  300. package/coverage/lcov-report/src/sdk/users/index.html +6 -6
  301. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  302. package/coverage/lcov-report/src/sdk/users/utils.ts.html +22 -22
  303. package/coverage/lcov-report/src/startup.ts.html +10 -25
  304. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +76 -76
  305. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +11 -11
  306. package/coverage/lcov-report/src/tests/utilities/index.html +26 -26
  307. package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
  308. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
  309. package/coverage/lcov-report/src/threads/automation.ts.html +20 -20
  310. package/coverage/lcov-report/src/threads/index.html +39 -39
  311. package/coverage/lcov-report/src/threads/index.ts.html +17 -17
  312. package/coverage/lcov-report/src/threads/query.ts.html +12 -12
  313. package/coverage/lcov-report/src/threads/utils.ts.html +19 -19
  314. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +4 -4
  315. package/coverage/lcov-report/src/utilities/centralPath.ts.html +5 -5
  316. package/coverage/lcov-report/src/utilities/csvParser.ts.html +19 -19
  317. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +9 -9
  318. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +12 -12
  319. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +11 -11
  320. package/coverage/lcov-report/src/utilities/fileSystem/index.html +40 -40
  321. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  322. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +6 -6
  323. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
  324. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +5 -5
  325. package/coverage/lcov-report/src/utilities/global.ts.html +56 -56
  326. package/coverage/lcov-report/src/utilities/index.html +69 -84
  327. package/coverage/lcov-report/src/utilities/index.ts.html +25 -25
  328. package/coverage/lcov-report/src/utilities/redis.ts.html +25 -25
  329. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  330. package/coverage/lcov-report/src/utilities/routing/index.ts.html +2 -2
  331. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +32 -32
  332. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +20 -20
  333. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +8 -8
  334. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +15 -15
  335. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +4 -4
  336. package/coverage/lcov-report/src/utilities/security.ts.html +10 -10
  337. package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
  338. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +5 -5
  339. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
  340. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  341. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +57 -30
  342. package/coverage/lcov-report/src/watch.ts.html +13 -13
  343. package/coverage/lcov-report/src/websocket.ts.html +3 -3
  344. package/coverage/lcov.info +7002 -6691
  345. package/dist/api/controllers/query/index.js +5 -2
  346. package/dist/api/controllers/static/index.js +7 -4
  347. package/dist/api/controllers/table/internal.js +2 -3
  348. package/dist/api/controllers/user.js +14 -6
  349. package/dist/api/controllers/view/viewBuilder.js +15 -2
  350. package/dist/api/routes/analytics.js +2 -1
  351. package/dist/api/routes/apikeys.js +2 -1
  352. package/dist/api/routes/application.js +2 -1
  353. package/dist/api/routes/auth.js +2 -1
  354. package/dist/api/routes/automation.js +2 -1
  355. package/dist/api/routes/backup.js +2 -1
  356. package/dist/api/routes/cloud.js +2 -1
  357. package/dist/api/routes/component.js +2 -1
  358. package/dist/api/routes/datasource.js +2 -1
  359. package/dist/api/routes/deploy.js +2 -1
  360. package/dist/api/routes/dev.js +2 -1
  361. package/dist/api/routes/integration.js +2 -1
  362. package/dist/api/routes/layout.js +2 -1
  363. package/dist/api/routes/metadata.js +2 -1
  364. package/dist/api/routes/migrations.js +2 -1
  365. package/dist/api/routes/permission.js +2 -1
  366. package/dist/api/routes/query.js +2 -1
  367. package/dist/api/routes/role.js +2 -1
  368. package/dist/api/routes/routing.js +2 -1
  369. package/dist/api/routes/screen.js +2 -1
  370. package/dist/api/routes/script.js +2 -1
  371. package/dist/api/routes/static.js +6 -5
  372. package/dist/api/routes/table.js +2 -1
  373. package/dist/api/routes/templates.js +2 -1
  374. package/dist/api/routes/user.js +2 -1
  375. package/dist/api/routes/view.js +2 -1
  376. package/dist/api/routes/webhook.js +2 -1
  377. package/dist/app.js +9 -7
  378. package/dist/automations/logging/index.js +5 -25
  379. package/dist/db/index.js +5 -2
  380. package/dist/db/linkedRows/LinkController.js +2 -1
  381. package/dist/db/linkedRows/LinkDocument.js +2 -1
  382. package/dist/db/newid.js +4 -2
  383. package/dist/environment.js +2 -1
  384. package/dist/events/AutomationEmitter.js +2 -1
  385. package/dist/events/BudibaseEmitter.js +2 -1
  386. package/dist/events/index.js +2 -1
  387. package/dist/integrations/index.js +5 -5
  388. package/dist/middleware/authorized.js +2 -1
  389. package/dist/middleware/builder.js +4 -2
  390. package/dist/middleware/currentapp.js +6 -3
  391. package/dist/middleware/publicApi.js +4 -2
  392. package/dist/middleware/selfhost.js +4 -1
  393. package/dist/package.json +8 -6
  394. package/dist/startup.js +17 -17
  395. package/dist/threads/index.js +4 -4
  396. package/dist/tsconfig.build.tsbuildinfo +1 -1
  397. package/dist/utilities/fileSystem/filesystem.js +3 -3
  398. package/dist/utilities/scriptRunner.js +2 -1
  399. package/dist/utilities/statusCodes.js +2 -1
  400. package/dist/utilities/workerRequests.js +2 -0
  401. package/dist/watch.js +2 -25
  402. package/jest.config.ts +5 -2
  403. package/package.json +9 -7
  404. package/src/api/controllers/query/index.ts +2 -2
  405. package/src/api/controllers/static/index.ts +1 -1
  406. package/src/api/controllers/table/internal.ts +2 -3
  407. package/src/api/controllers/user.ts +21 -13
  408. package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
  409. package/src/api/controllers/view/viewBuilder.ts +1 -1
  410. package/src/api/routes/analytics.ts +1 -1
  411. package/src/api/routes/apikeys.ts +1 -1
  412. package/src/api/routes/application.ts +1 -1
  413. package/src/api/routes/auth.ts +1 -1
  414. package/src/api/routes/automation.ts +1 -1
  415. package/src/api/routes/backup.ts +1 -1
  416. package/src/api/routes/cloud.ts +1 -1
  417. package/src/api/routes/component.ts +1 -1
  418. package/src/api/routes/datasource.ts +1 -1
  419. package/src/api/routes/deploy.ts +1 -1
  420. package/src/api/routes/dev.ts +1 -1
  421. package/src/api/routes/integration.ts +1 -1
  422. package/src/api/routes/layout.ts +1 -1
  423. package/src/api/routes/metadata.ts +1 -1
  424. package/src/api/routes/migrations.ts +1 -1
  425. package/src/api/routes/permission.ts +1 -1
  426. package/src/api/routes/query.ts +1 -1
  427. package/src/api/routes/role.ts +1 -1
  428. package/src/api/routes/routing.ts +1 -1
  429. package/src/api/routes/screen.ts +1 -1
  430. package/src/api/routes/script.ts +1 -1
  431. package/src/api/routes/static.ts +2 -2
  432. package/src/api/routes/table.ts +1 -1
  433. package/src/api/routes/templates.ts +1 -1
  434. package/src/api/routes/tests/plugin.spec.ts +10 -10
  435. package/src/api/routes/tests/user.spec.js +20 -1
  436. package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
  437. package/src/api/routes/user.ts +1 -1
  438. package/src/api/routes/view.ts +1 -1
  439. package/src/api/routes/webhook.ts +1 -1
  440. package/src/app.ts +5 -3
  441. package/src/automations/logging/index.ts +1 -1
  442. package/src/db/index.ts +1 -1
  443. package/src/db/linkedRows/LinkController.ts +1 -1
  444. package/src/db/linkedRows/LinkDocument.ts +1 -1
  445. package/src/db/newid.ts +1 -1
  446. package/src/db/tests/linkController.spec.js +1 -1
  447. package/src/environment.ts +1 -1
  448. package/src/events/AutomationEmitter.ts +1 -1
  449. package/src/events/BudibaseEmitter.ts +1 -1
  450. package/src/events/index.ts +1 -1
  451. package/src/integrations/index.ts +4 -4
  452. package/src/integrations/tests/rest.spec.ts +15 -13
  453. package/src/middleware/authorized.ts +5 -1
  454. package/src/middleware/builder.ts +1 -1
  455. package/src/middleware/currentapp.ts +4 -3
  456. package/src/middleware/publicApi.ts +1 -1
  457. package/src/middleware/selfhost.ts +1 -1
  458. package/src/middleware/tests/authorized.spec.js +1 -1
  459. package/src/middleware/tests/currentapp.spec.js +1 -1
  460. package/src/middleware/tests/selfhost.spec.js +1 -1
  461. package/src/startup.ts +3 -8
  462. package/src/tests/jestEnv.ts +13 -0
  463. package/src/tests/jestSetup.ts +0 -14
  464. package/src/tests/utilities/TestConfiguration.ts +1 -1
  465. package/src/threads/index.ts +1 -1
  466. package/src/utilities/fileSystem/filesystem.ts +1 -1
  467. package/src/utilities/scriptRunner.ts +1 -1
  468. package/src/utilities/statusCodes.ts +1 -1
  469. package/src/utilities/workerRequests.ts +10 -1
  470. package/src/watch.ts +1 -1
  471. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +0 -106
@@ -17,7 +17,7 @@ const { budibaseTempDir } = require("../budibaseDir");
17
17
  const fs = require("fs");
18
18
  const { join } = require("path");
19
19
  const uuid = require("uuid/v4");
20
- const env = require("../../environment");
20
+ const environment_1 = __importDefault(require("../../environment"));
21
21
  const tar_1 = __importDefault(require("tar"));
22
22
  exports.TOP_LEVEL_PATH = join(__dirname, "..", "..", "..");
23
23
  /**
@@ -38,7 +38,7 @@ const init = () => {
38
38
  }
39
39
  }
40
40
  const clientLibPath = join(budibaseTempDir(), "budibase-client.js");
41
- if (env.isTest() && !fs.existsSync(clientLibPath)) {
41
+ if (environment_1.default.isTest() && !fs.existsSync(clientLibPath)) {
42
42
  fs.copyFileSync(require.resolve("@budibase/client"), clientLibPath);
43
43
  }
44
44
  };
@@ -48,7 +48,7 @@ exports.init = init;
48
48
  * everything required to function is ready.
49
49
  */
50
50
  const checkDevelopmentEnvironment = () => {
51
- if (!env.isDev() || env.isTest()) {
51
+ if (!environment_1.default.isDev() || environment_1.default.isTest()) {
52
52
  return;
53
53
  }
54
54
  if (!fs.existsSync(budibaseTempDir())) {
@@ -2,6 +2,7 @@
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
5
6
  const node_fetch_1 = __importDefault(require("node-fetch"));
6
7
  const vm2_1 = require("vm2");
7
8
  const JS_TIMEOUT_MS = 1000;
@@ -22,4 +23,4 @@ class ScriptRunner {
22
23
  return this.results.out;
23
24
  }
24
25
  }
25
- module.exports = ScriptRunner;
26
+ exports.default = ScriptRunner;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
- module.exports = {
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
3
4
  OK: 200,
4
5
  UNAUTHORIZED: 401,
5
6
  FORBIDDEN: 403,
@@ -41,6 +41,8 @@ function request(ctx, request) {
41
41
  if (ctx && ctx.headers) {
42
42
  request.headers = ctx.headers;
43
43
  }
44
+ // add x-budibase-correlation-id header
45
+ backend_core_1.logging.correlation.setHeader(request.headers);
44
46
  return request;
45
47
  }
46
48
  exports.request = request;
package/dist/watch.js CHANGED
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -37,13 +14,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
14
  Object.defineProperty(exports, "__esModule", { value: true });
38
15
  exports.watch = void 0;
39
16
  const path_1 = __importDefault(require("path"));
40
- const env = __importStar(require("./environment"));
17
+ const environment_1 = __importDefault(require("./environment"));
41
18
  const chokidar_1 = __importDefault(require("chokidar"));
42
19
  const fs_1 = __importDefault(require("fs"));
43
20
  const backend_core_1 = require("@budibase/backend-core");
44
21
  const plugin_1 = require("./api/controllers/plugin");
45
22
  function watch() {
46
- const watchPath = path_1.default.join(env.PLUGINS_DIR, "./**/*.tar.gz");
23
+ const watchPath = path_1.default.join(environment_1.default.PLUGINS_DIR, "./**/*.tar.gz");
47
24
  chokidar_1.default
48
25
  .watch(watchPath, {
49
26
  ignored: "**/node_modules",
package/jest.config.ts CHANGED
@@ -2,15 +2,18 @@ import { Config } from "@jest/types"
2
2
  import * as fs from "fs"
3
3
 
4
4
  const config: Config.InitialOptions = {
5
- preset: "ts-jest",
6
5
  testEnvironment: "node",
7
- setupFiles: ["./src/tests/jestSetup.ts"],
6
+ setupFiles: ["./src/tests/jestEnv.ts"],
7
+ setupFilesAfterEnv: ["./src/tests/jestSetup.ts"],
8
8
  collectCoverageFrom: [
9
9
  "src/**/*.{js,ts}",
10
10
  // The use of coverage with couchdb view functions breaks tests
11
11
  "!src/db/views/staticViews.*",
12
12
  ],
13
13
  coverageReporters: ["lcov", "json", "clover"],
14
+ transform: {
15
+ "^.+\\.ts?$": "@swc/jest",
16
+ },
14
17
  }
15
18
 
16
19
  if (!process.env.CI) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.2.12-alpha.2",
4
+ "version": "2.2.12-alpha.20",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -43,11 +43,11 @@
43
43
  "license": "GPL-3.0",
44
44
  "dependencies": {
45
45
  "@apidevtools/swagger-parser": "10.0.3",
46
- "@budibase/backend-core": "2.2.12-alpha.2",
47
- "@budibase/client": "2.2.12-alpha.2",
48
- "@budibase/pro": "2.2.12-alpha.1",
49
- "@budibase/string-templates": "2.2.12-alpha.2",
50
- "@budibase/types": "2.2.12-alpha.2",
46
+ "@budibase/backend-core": "2.2.12-alpha.20",
47
+ "@budibase/client": "2.2.12-alpha.20",
48
+ "@budibase/pro": "2.2.12-alpha.19",
49
+ "@budibase/string-templates": "2.2.12-alpha.20",
50
+ "@budibase/types": "2.2.12-alpha.20",
51
51
  "@bull-board/api": "3.7.0",
52
52
  "@bull-board/koa": "3.9.4",
53
53
  "@elastic/elasticsearch": "7.10.0",
@@ -123,6 +123,8 @@
123
123
  "@babel/preset-env": "7.16.11",
124
124
  "@budibase/standard-components": "^0.9.139",
125
125
  "@jest/test-sequencer": "24.9.0",
126
+ "@swc/core": "^1.3.25",
127
+ "@swc/jest": "^0.2.24",
126
128
  "@types/apidoc": "0.50.0",
127
129
  "@types/bson": "4.2.0",
128
130
  "@types/global-agent": "2.1.1",
@@ -167,5 +169,5 @@
167
169
  "optionalDependencies": {
168
170
  "oracledb": "5.3.0"
169
171
  },
170
- "gitHead": "f33fe0fc19b1a8566d7c1262bb329fbecdaa9586"
172
+ "gitHead": "bf18dd279d7241ab5945639cf3ded4ffb9e4fa07"
171
173
  }
@@ -4,12 +4,12 @@ import { Thread, ThreadType } from "../../../threads"
4
4
  import { save as saveDatasource } from "../datasource"
5
5
  import { RestImporter } from "./import"
6
6
  import { invalidateDynamicVariables } from "../../../threads/utils"
7
- import { QUERY_THREAD_TIMEOUT } from "../../../environment"
7
+ import env from "../../../environment"
8
8
  import { quotas } from "@budibase/pro"
9
9
  import { events, context, utils, constants } from "@budibase/backend-core"
10
10
 
11
11
  const Runner = new Thread(ThreadType.QUERY, {
12
- timeoutMs: QUERY_THREAD_TIMEOUT || 10000,
12
+ timeoutMs: env.QUERY_THREAD_TIMEOUT || 10000,
13
13
  })
14
14
 
15
15
  // simple function to append "readable" to all read queries
@@ -10,7 +10,7 @@ const {
10
10
  NODE_MODULES_PATH,
11
11
  TOP_LEVEL_PATH,
12
12
  } = require("../../../utilities/fileSystem")
13
- const env = require("../../../environment")
13
+ import env from "../../../environment"
14
14
  const { DocumentType } = require("../../../db/utils")
15
15
  const { context, objectStore, utils } = require("@budibase/backend-core")
16
16
  const AWS = require("aws-sdk")
@@ -3,7 +3,7 @@ import { getRowParams, generateTableID } from "../../../db/utils"
3
3
  import { FieldTypes } from "../../../constants"
4
4
  import { TableSaveFunctions, hasTypeChanged, handleDataImport } from "./utils"
5
5
  import { context } from "@budibase/backend-core"
6
- import { isTest } from "../../../environment"
6
+ import env from "../../../environment"
7
7
  import {
8
8
  cleanupAttachments,
9
9
  fixAutoColumnSubType,
@@ -13,7 +13,6 @@ import { Table } from "@budibase/types"
13
13
  import { quotas } from "@budibase/pro"
14
14
  import { isEqual } from "lodash"
15
15
  import { cloneDeep } from "lodash/fp"
16
- import env from "../../../environment"
17
16
  import sdk from "../../../sdk"
18
17
 
19
18
  function checkAutoColumns(table: Table, oldTable: Table) {
@@ -164,7 +163,7 @@ export async function destroy(ctx: any) {
164
163
  await db.remove(tableToDelete._id, tableToDelete._rev)
165
164
 
166
165
  // remove table search index
167
- if (!isTest() || env.COUCH_DB_URL) {
166
+ if (!env.isTest() || env.COUCH_DB_URL) {
168
167
  const currentIndexes = await db.getIndexes()
169
168
  const existingIndex = currentIndexes.indexes.find(
170
169
  (existing: any) => existing.name === `search:${ctx.params.tableId}`
@@ -4,19 +4,21 @@ import { getGlobalUsers, getRawGlobalUser } from "../../utilities/global"
4
4
  import { getFullUser } from "../../utilities/users"
5
5
  import {
6
6
  context,
7
- constants,
8
7
  roles as rolesCore,
9
8
  db as dbCore,
10
9
  } from "@budibase/backend-core"
11
- import { BBContext, User } from "@budibase/types"
10
+ import { BBContext, Ctx, SyncUserRequest, User } from "@budibase/types"
12
11
  import sdk from "../../sdk"
13
12
 
14
- export async function syncUser(ctx: BBContext) {
13
+ export async function syncUser(ctx: Ctx<SyncUserRequest>) {
15
14
  let deleting = false,
16
15
  user: User | any
17
16
  const userId = ctx.params.id
17
+
18
+ const previousUser = ctx.request.body?.previousUser
19
+
18
20
  try {
19
- user = await getRawGlobalUser(userId)
21
+ user = (await getRawGlobalUser(userId)) as User
20
22
  } catch (err: any) {
21
23
  if (err && err.status === 404) {
22
24
  user = {}
@@ -25,6 +27,11 @@ export async function syncUser(ctx: BBContext) {
25
27
  throw err
26
28
  }
27
29
  }
30
+
31
+ let previousApps = previousUser
32
+ ? Object.keys(previousUser.roles).map(appId => appId)
33
+ : []
34
+
28
35
  const roles = deleting ? {} : user.roles
29
36
  // remove props which aren't useful to metadata
30
37
  delete user.password
@@ -40,8 +47,9 @@ export async function syncUser(ctx: BBContext) {
40
47
  .filter(entry => entry[1] !== rolesCore.BUILTIN_ROLE_IDS.PUBLIC)
41
48
  .map(([appId]) => appId)
42
49
  }
43
- for (let prodAppId of prodAppIds) {
50
+ for (let prodAppId of new Set([...prodAppIds, ...previousApps])) {
44
51
  const roleId = roles[prodAppId]
52
+ const deleteFromApp = !roleId
45
53
  const devAppId = dbCore.getDevelopmentAppID(prodAppId)
46
54
  for (let appId of [prodAppId, devAppId]) {
47
55
  if (!(await dbCore.dbExists(appId))) {
@@ -54,24 +62,24 @@ export async function syncUser(ctx: BBContext) {
54
62
  try {
55
63
  metadata = await db.get(metadataId)
56
64
  } catch (err) {
57
- if (deleting) {
65
+ if (deleteFromApp) {
58
66
  return
59
67
  }
60
68
  metadata = {
61
69
  tableId: InternalTables.USER_METADATA,
62
70
  }
63
71
  }
72
+
73
+ if (deleteFromApp) {
74
+ await db.remove(metadata)
75
+ return
76
+ }
77
+
64
78
  // assign the roleId for the metadata doc
65
79
  if (roleId) {
66
80
  metadata.roleId = roleId
67
81
  }
68
- let combined = !deleting
69
- ? sdk.users.combineMetadataAndUser(user, metadata)
70
- : {
71
- ...metadata,
72
- status: constants.UserStatus.INACTIVE,
73
- metadata: rolesCore.BUILTIN_ROLE_IDS.PUBLIC,
74
- }
82
+ let combined = sdk.users.combineMetadataAndUser(user, metadata)
75
83
  // if its null then there was no updates required
76
84
  if (combined) {
77
85
  await db.put(combined)
@@ -1,4 +1,4 @@
1
- const viewTemplate = require("../viewBuilder");
1
+ const viewTemplate = require("../viewBuilder").default;
2
2
 
3
3
  describe("viewBuilder", () => {
4
4
 
@@ -136,7 +136,7 @@ function parseEmitExpression(field: string, groupBy: string) {
136
136
  * filters: Array of filter objects containing predicates that are parsed into a JS expression
137
137
  * calculation: an optional calculation to be performed over the view data.
138
138
  */
139
- export = function ({
139
+ export default function ({
140
140
  field,
141
141
  tableId,
142
142
  groupBy,
@@ -6,4 +6,4 @@ const router: Router = new Router()
6
6
  router.get("/api/bbtel", controller.isEnabled)
7
7
  router.post("/api/bbtel/ping", controller.ping)
8
8
 
9
- export = router
9
+ export default router
@@ -9,4 +9,4 @@ router
9
9
  .get("/api/keys", authorized(permissions.BUILDER), controller.fetch)
10
10
  .put("/api/keys/:key", authorized(permissions.BUILDER), controller.update)
11
11
 
12
- export = router
12
+ export default router
@@ -54,4 +54,4 @@ router
54
54
  controller.destroy
55
55
  )
56
56
 
57
- export = router
57
+ export default router
@@ -5,4 +5,4 @@ const router: Router = new Router()
5
5
 
6
6
  router.get("/api/self", controller.fetchSelf)
7
7
 
8
- export = router
8
+ export default router
@@ -84,4 +84,4 @@ router
84
84
  controller.test
85
85
  )
86
86
 
87
- export = router
87
+ export default router
@@ -11,4 +11,4 @@ router.get(
11
11
  controller.exportAppDump
12
12
  )
13
13
 
14
- export = router
14
+ export default router
@@ -15,4 +15,4 @@ router
15
15
  .post("/api/cloud/import", controller.importApps)
16
16
  .get("/api/cloud/import/complete", controller.hasBeenImported)
17
17
 
18
- export = router
18
+ export default router
@@ -11,4 +11,4 @@ router.get(
11
11
  controller.fetchAppComponentDefinitions
12
12
  )
13
13
 
14
- export = router
14
+ export default router
@@ -57,4 +57,4 @@ router
57
57
  datasourceController.destroy
58
58
  )
59
59
 
60
- export = router
60
+ export default router
@@ -17,4 +17,4 @@ router
17
17
  controller.deploymentProgress
18
18
  )
19
19
 
20
- export = router
20
+ export default router
@@ -35,4 +35,4 @@ router
35
35
  controller.revert
36
36
  )
37
37
 
38
- export = router
38
+ export default router
@@ -13,4 +13,4 @@ router
13
13
  controller.find
14
14
  )
15
15
 
16
- export = router
16
+ export default router
@@ -13,4 +13,4 @@ router
13
13
  controller.destroy
14
14
  )
15
15
 
16
- export = router
16
+ export default router
@@ -35,4 +35,4 @@ router
35
35
  controller.getMetadata
36
36
  )
37
37
 
38
- export = router
38
+ export default router
@@ -11,4 +11,4 @@ router
11
11
  auth.internalApi,
12
12
  migrationsController.fetchDefinitions
13
13
  )
14
- export = router
14
+ export default router
@@ -38,4 +38,4 @@ router
38
38
  controller.removePermission
39
39
  )
40
40
 
41
- export = router
41
+ export default router
@@ -58,4 +58,4 @@ router
58
58
  queryController.executeV2 as any
59
59
  )
60
60
 
61
- export = router
61
+ export default router
@@ -21,4 +21,4 @@ router
21
21
  controller.destroy
22
22
  )
23
23
 
24
- export = router
24
+ export default router
@@ -11,4 +11,4 @@ router
11
11
  // gets the full structure, not just the correct screen ID for user role
12
12
  .get("/api/routing", authorized(permissions.BUILDER), controller.fetch)
13
13
 
14
- export = router
14
+ export default router
@@ -20,4 +20,4 @@ router
20
20
  controller.destroy
21
21
  )
22
22
 
23
- export = router
23
+ export default router
@@ -7,4 +7,4 @@ const router: Router = new Router()
7
7
 
8
8
  router.post("/api/script", authorized(permissions.BUILDER), controller.save)
9
9
 
10
- export = router
10
+ export default router
@@ -3,7 +3,7 @@ import * as controller from "../controllers/static"
3
3
  import { budibaseTempDir } from "../../utilities/budibaseDir"
4
4
  import authorized from "../../middleware/authorized"
5
5
  import { permissions } from "@budibase/backend-core"
6
- import * as env from "../../environment"
6
+ import env from "../../environment"
7
7
  import { paramResource } from "../../middleware/resourceId"
8
8
  const { BUILDER, PermissionType, PermissionLevel } = permissions
9
9
 
@@ -62,4 +62,4 @@ router
62
62
  controller.getSignedUploadURL
63
63
  )
64
64
 
65
- export = router
65
+ export default router
@@ -190,4 +190,4 @@ router
190
190
  tableController.bulkImport
191
191
  )
192
192
 
193
- export = router
193
+ export default router
@@ -13,4 +13,4 @@ router
13
13
  controller.downloadTemplate
14
14
  )
15
15
 
16
- export = router
16
+ export default router
@@ -1,8 +1,3 @@
1
- let mockObjectStore = jest.fn().mockImplementation(() => {
2
- return [{ name: "test.js" }]
3
- })
4
-
5
- let deleteFolder = jest.fn().mockImplementation()
6
1
  jest.mock("@budibase/backend-core", () => {
7
2
  const core = jest.requireActual("@budibase/backend-core")
8
3
  return {
@@ -10,15 +5,20 @@ jest.mock("@budibase/backend-core", () => {
10
5
  objectStore: {
11
6
  ...core.objectStore,
12
7
  upload: jest.fn(),
13
- uploadDirectory: mockObjectStore,
14
- deleteFolder: deleteFolder,
8
+ uploadDirectory: jest.fn().mockImplementation(() => {
9
+ return [{ name: "test.js" }]
10
+ }),
11
+ deleteFolder: jest.fn().mockImplementation(),
15
12
  },
16
13
  }
17
14
  })
18
15
 
19
- import { events } from "@budibase/backend-core"
16
+ import { events, objectStore } from "@budibase/backend-core"
20
17
  import * as setup from "./utilities"
21
18
 
19
+ const mockUploadDirectory = objectStore.uploadDirectory as jest.Mock
20
+ const mockDeleteFolder = objectStore.deleteFolder as jest.Mock
21
+
22
22
  describe("/plugins", () => {
23
23
  let request = setup.getRequest()
24
24
  let config = setup.getConfig()
@@ -57,7 +57,7 @@ describe("/plugins", () => {
57
57
  })
58
58
 
59
59
  it("should not be able to create a plugin if there is an error", async () => {
60
- mockObjectStore.mockImplementationOnce(() => {
60
+ mockUploadDirectory.mockImplementationOnce(() => {
61
61
  throw new Error()
62
62
  })
63
63
  let res = await createPlugin(400)
@@ -92,7 +92,7 @@ describe("/plugins", () => {
92
92
  expect(events.plugin.deleted).toHaveBeenCalledTimes(1)
93
93
  })
94
94
  it("should handle an error deleting a plugin", async () => {
95
- deleteFolder.mockImplementationOnce(() => {
95
+ mockDeleteFolder.mockImplementationOnce(() => {
96
96
  throw new Error()
97
97
  })
98
98
 
@@ -171,9 +171,28 @@ describe("/users", () => {
171
171
  .expect("Content-Type", /json/)
172
172
  expect(res.body.message).toEqual('User synced.')
173
173
  })
174
- })
175
174
 
176
175
 
176
+ it("should sync the user when a previous user is specified", async () => {
177
+ const app1 = await config.createApp('App 1')
178
+ const app2 = await config.createApp('App 2')
177
179
 
180
+ let user = await config.createUser(
181
+ undefined,
182
+ undefined,
183
+ undefined,
184
+ undefined,
185
+ false,
186
+ true,
187
+ { [app1.appId]: 'ADMIN' })
188
+ let res = await request
189
+ .post(`/api/users/metadata/sync/${user._id}`)
190
+ .set(config.defaultHeaders())
191
+ .send({ previousUser: { ...user, roles: { ...user.roles, [app2.appId]: 'BASIC' } } })
192
+ .expect(200)
193
+ .expect("Content-Type", /json/)
178
194
 
195
+ expect(res.body.message).toEqual('User synced.')
196
+ })
197
+ })
179
198
  })
@@ -3,7 +3,7 @@ import * as appController from "../../../controllers/application"
3
3
  import { AppStatus } from "../../../../db/utils"
4
4
  import { roles, tenancy, context } from "@budibase/backend-core"
5
5
  import { TENANT_ID } from "../../../../tests/utilities/structures"
6
- import * as env from "../../../../environment"
6
+ import env from "../../../../environment"
7
7
 
8
8
  class Request {
9
9
  appId: any
@@ -48,4 +48,4 @@ router
48
48
  controller.getFlags
49
49
  )
50
50
 
51
- export = router
51
+ export default router
@@ -31,4 +31,4 @@ router
31
31
  )
32
32
  .post("/api/views", authorized(permissions.BUILDER), viewController.save)
33
33
 
34
- export = router
34
+ export default router
@@ -24,4 +24,4 @@ router
24
24
  // this shouldn't have authorisation, right now its always public
25
25
  .post("/api/webhooks/trigger/:instance/:id", controller.trigger)
26
26
 
27
- export = router
27
+ export default router
package/src/app.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  // need to load environment first
2
- import * as env from "./environment"
2
+ import env from "./environment"
3
3
 
4
4
  // enable APM if configured
5
5
  if (process.env.ELASTIC_APM_ENABLED) {
@@ -19,7 +19,7 @@ import * as api from "./api"
19
19
  import * as automations from "./automations"
20
20
  import { Thread } from "./threads"
21
21
  import * as redis from "./utilities/redis"
22
- import { events, logging } from "@budibase/backend-core"
22
+ import { events, logging, middleware } from "@budibase/backend-core"
23
23
  import { initialise as initialiseWebsockets } from "./websocket"
24
24
  import { startup } from "./startup"
25
25
  const Sentry = require("@sentry/node")
@@ -40,6 +40,8 @@ app.use(
40
40
  })
41
41
  )
42
42
 
43
+ app.use(middleware.logging)
44
+
43
45
  if (env.isProd()) {
44
46
  env._set("NODE_ENV", "production")
45
47
  Sentry.init()
@@ -77,7 +79,7 @@ server.on("close", async () => {
77
79
  }
78
80
  })
79
81
 
80
- export = server.listen(env.PORT || 0, async () => {
82
+ export default server.listen(env.PORT || 0, async () => {
81
83
  await startup(app, server)
82
84
  })
83
85