@budibase/server 2.1.43-alpha.10 → 2.1.43-alpha.12

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 (349) hide show
  1. package/builder/assets/{index.c8b919df.js → index.84840a7c.js} +298 -299
  2. package/builder/assets/{index.183b181c.css → index.fcf52b47.css} +2 -2
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +2859 -2830
  5. package/coverage/coverage-final.json +258 -257
  6. package/coverage/lcov-report/index.html +49 -34
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +7 -7
  8. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +83 -83
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
  11. package/coverage/lcov-report/src/api/controllers/automation.ts.html +27 -27
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  13. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +12 -12
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  15. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +15 -15
  16. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +81 -81
  19. package/coverage/lcov-report/src/api/controllers/dev.ts.html +18 -18
  20. package/coverage/lcov-report/src/api/controllers/index.html +1 -1
  21. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  22. package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
  23. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  24. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  25. package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
  26. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +3 -3
  27. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +6 -6
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +15 -15
  30. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +6 -6
  31. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  32. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +4 -4
  33. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +4 -4
  34. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +10 -10
  35. package/coverage/lcov-report/src/api/controllers/public/index.html +18 -18
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
  43. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +6 -6
  44. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +10 -10
  45. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +9 -9
  46. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +80 -29
  47. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +6 -6
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +8 -8
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +8 -8
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +8 -8
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +10 -10
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +14 -14
  57. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +21 -21
  59. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  60. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  61. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  62. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +11 -11
  63. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +20 -20
  64. package/coverage/lcov-report/src/api/controllers/row/index.html +1 -1
  65. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +14 -14
  66. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +29 -29
  67. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +9 -9
  68. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +10 -10
  69. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +13 -13
  70. package/coverage/lcov-report/src/api/controllers/screen.ts.html +7 -7
  71. package/coverage/lcov-report/src/api/controllers/script.ts.html +4 -4
  72. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  73. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +24 -24
  74. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  75. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +14 -14
  76. package/coverage/lcov-report/src/api/controllers/table/index.html +1 -1
  77. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +14 -14
  78. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +17 -17
  79. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +27 -27
  80. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  81. package/coverage/lcov-report/src/api/controllers/user.ts.html +15 -15
  82. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +4 -4
  83. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +17 -17
  85. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +13 -13
  86. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +7 -7
  87. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +14 -14
  88. package/coverage/lcov-report/src/api/index.html +1 -1
  89. package/coverage/lcov-report/src/api/index.ts.html +33 -33
  90. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  91. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  92. package/coverage/lcov-report/src/api/routes/application.ts.html +9 -9
  93. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  94. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  95. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  96. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  97. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  98. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  99. package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
  100. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  101. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/index.ts.html +34 -34
  103. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  104. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  105. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  106. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  107. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  108. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  109. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +12 -12
  110. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  112. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +21 -21
  114. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  115. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  116. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  117. package/coverage/lcov-report/src/api/routes/public/tests/index.html +116 -0
  118. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +169 -0
  119. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  120. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  121. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  123. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  124. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  125. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  126. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  127. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  128. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  129. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  130. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +15 -15
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +32 -32
  134. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  135. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  136. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  137. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  138. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  139. package/coverage/lcov-report/src/app.ts.html +32 -32
  140. package/coverage/lcov-report/src/automations/actions.ts.html +25 -25
  141. package/coverage/lcov-report/src/automations/automationUtils.ts.html +8 -8
  142. package/coverage/lcov-report/src/automations/bullboard.ts.html +11 -11
  143. package/coverage/lcov-report/src/automations/index.html +1 -1
  144. package/coverage/lcov-report/src/automations/index.ts.html +13 -13
  145. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  146. package/coverage/lcov-report/src/automations/logging/index.ts.html +6 -6
  147. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  148. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  149. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  150. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  151. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  152. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  153. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  154. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  155. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  156. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  157. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  158. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +14 -14
  159. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +17 -17
  160. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  161. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +4 -4
  162. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  163. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  164. package/coverage/lcov-report/src/automations/steps/utils.ts.html +3 -3
  165. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  166. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  168. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  169. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  170. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  172. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  175. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  176. package/coverage/lcov-report/src/automations/triggers.ts.html +21 -21
  177. package/coverage/lcov-report/src/automations/utils.ts.html +45 -45
  178. package/coverage/lcov-report/src/constants/index.html +1 -1
  179. package/coverage/lcov-report/src/constants/index.ts.html +92 -92
  180. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  181. package/coverage/lcov-report/src/constants/screens.ts.html +4 -4
  182. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +23 -23
  183. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  184. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  185. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  186. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  187. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  188. package/coverage/lcov-report/src/db/dynamoClient.ts.html +16 -16
  189. package/coverage/lcov-report/src/db/inMemoryView.ts.html +5 -5
  190. package/coverage/lcov-report/src/db/index.html +1 -1
  191. package/coverage/lcov-report/src/db/index.ts.html +9 -9
  192. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +8 -8
  193. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  194. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  195. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  196. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +12 -12
  197. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  198. package/coverage/lcov-report/src/db/utils.ts.html +58 -58
  199. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  200. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  201. package/coverage/lcov-report/src/definitions/index.html +1 -1
  202. package/coverage/lcov-report/src/environment.ts.html +19 -19
  203. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  204. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
  205. package/coverage/lcov-report/src/events/index.html +1 -1
  206. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  207. package/coverage/lcov-report/src/events/utils.ts.html +3 -3
  208. package/coverage/lcov-report/src/index.html +1 -1
  209. package/coverage/lcov-report/src/index.ts.html +1 -1
  210. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  211. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  212. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  213. package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
  214. package/coverage/lcov-report/src/integrations/base/sql.ts.html +12 -12
  215. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +7 -7
  216. package/coverage/lcov-report/src/integrations/base/utils.ts.html +3 -3
  217. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  218. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  219. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  220. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  221. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  222. package/coverage/lcov-report/src/integrations/index.html +1 -1
  223. package/coverage/lcov-report/src/integrations/index.ts.html +30 -30
  224. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  225. package/coverage/lcov-report/src/integrations/mongodb.ts.html +5 -5
  226. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  227. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  228. package/coverage/lcov-report/src/integrations/postgres.ts.html +10 -10
  229. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  230. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  231. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  232. package/coverage/lcov-report/src/integrations/rest.ts.html +16 -16
  233. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  234. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  235. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  236. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  237. package/coverage/lcov-report/src/integrations/utils.ts.html +31 -31
  238. package/coverage/lcov-report/src/middleware/appInfo.ts.html +7 -7
  239. package/coverage/lcov-report/src/middleware/authorized.ts.html +30 -30
  240. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  241. package/coverage/lcov-report/src/middleware/currentapp.ts.html +39 -39
  242. package/coverage/lcov-report/src/middleware/index.html +1 -1
  243. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  244. package/coverage/lcov-report/src/middleware/publicApi.ts.html +8 -8
  245. package/coverage/lcov-report/src/middleware/resourceId.ts.html +28 -28
  246. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  247. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  248. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  265. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  266. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  267. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  268. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  274. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  275. package/coverage/lcov-report/src/migrations/index.html +1 -1
  276. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  277. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  278. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  279. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  280. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  281. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  282. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +5 -5
  283. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  284. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  286. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  287. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  288. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  289. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +17 -17
  290. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  291. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  292. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  293. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  294. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  295. package/coverage/lcov-report/src/sdk/index.html +1 -1
  296. package/coverage/lcov-report/src/sdk/index.ts.html +8 -8
  297. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  298. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  299. package/coverage/lcov-report/src/sdk/users/utils.ts.html +8 -8
  300. package/coverage/lcov-report/src/startup.ts.html +41 -41
  301. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +97 -97
  302. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  303. package/coverage/lcov-report/src/tests/utilities/index.html +1 -1
  304. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  305. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +26 -26
  306. package/coverage/lcov-report/src/threads/automation.ts.html +23 -23
  307. package/coverage/lcov-report/src/threads/index.html +1 -1
  308. package/coverage/lcov-report/src/threads/index.ts.html +11 -11
  309. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  310. package/coverage/lcov-report/src/threads/utils.ts.html +15 -15
  311. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  312. package/coverage/lcov-report/src/utilities/centralPath.ts.html +4 -4
  313. package/coverage/lcov-report/src/utilities/csvParser.ts.html +8 -8
  314. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +11 -11
  315. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  316. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +42 -42
  317. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  318. package/coverage/lcov-report/src/utilities/global.ts.html +27 -27
  319. package/coverage/lcov-report/src/utilities/index.html +15 -15
  320. package/coverage/lcov-report/src/utilities/index.ts.html +26 -26
  321. package/coverage/lcov-report/src/utilities/plugins.ts.html +5 -5
  322. package/coverage/lcov-report/src/utilities/redis.ts.html +22 -22
  323. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  324. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  325. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  326. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +17 -17
  327. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  328. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +6 -6
  329. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  330. package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
  331. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  332. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  333. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +5 -5
  334. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  335. package/coverage/lcov-report/src/utilities/users.ts.html +23 -23
  336. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +3 -3
  337. package/coverage/lcov-report/src/watch.ts.html +9 -9
  338. package/coverage/lcov-report/src/websocket.ts.html +6 -6
  339. package/coverage/lcov.info +3335 -3284
  340. package/dist/api/controllers/public/users.js +16 -0
  341. package/dist/api/routes/public/tests/utils.js +33 -0
  342. package/dist/package.json +6 -6
  343. package/dist/tsconfig.build.tsbuildinfo +1 -1
  344. package/package.json +7 -7
  345. package/src/api/controllers/public/users.ts +23 -6
  346. package/src/api/routes/public/tests/compare.spec.js +3 -21
  347. package/src/api/routes/public/tests/users.spec.js +38 -0
  348. package/src/api/routes/public/tests/utils.ts +28 -0
  349. package/src/utilities/workerRequests.ts +2 -2
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.1.43-alpha.10",
4
+ "version": "2.1.43-alpha.12",
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.1.43-alpha.10",
47
- "@budibase/client": "2.1.43-alpha.10",
48
- "@budibase/pro": "2.1.43-alpha.9",
49
- "@budibase/string-templates": "2.1.43-alpha.10",
50
- "@budibase/types": "2.1.43-alpha.10",
46
+ "@budibase/backend-core": "2.1.43-alpha.12",
47
+ "@budibase/client": "2.1.43-alpha.12",
48
+ "@budibase/pro": "2.1.43-alpha.11",
49
+ "@budibase/string-templates": "2.1.43-alpha.12",
50
+ "@budibase/types": "2.1.43-alpha.12",
51
51
  "@bull-board/api": "3.7.0",
52
52
  "@bull-board/koa": "3.9.4",
53
53
  "@elastic/elasticsearch": "7.10.0",
@@ -165,5 +165,5 @@
165
165
  "optionalDependencies": {
166
166
  "oracledb": "5.3.0"
167
167
  },
168
- "gitHead": "6834a7435a1d670a04c1de883205a961a447544d"
168
+ "gitHead": "3a5e1b63a31a23d6c860315ac7ed821a5ff7b61d"
169
169
  }
@@ -5,9 +5,18 @@ import {
5
5
  saveGlobalUser,
6
6
  } from "../../../utilities/workerRequests"
7
7
  import { publicApiUserFix } from "../../../utilities/users"
8
+ import { db as dbCore } from "@budibase/backend-core"
8
9
  import { search as stringSearch } from "./utils"
10
+ import { BBContext, User } from "@budibase/types"
9
11
 
10
- function getUser(ctx: any, userId?: string) {
12
+ function isLoggedInUser(ctx: BBContext, user: User) {
13
+ const loggedInId = ctx.user?._id
14
+ const globalUserId = dbCore.getGlobalIDFromUserMetadataID(loggedInId!)
15
+ // check both just incase
16
+ return globalUserId === user._id || loggedInId === user._id
17
+ }
18
+
19
+ function getUser(ctx: BBContext, userId?: string) {
11
20
  if (userId) {
12
21
  ctx.params = { userId }
13
22
  } else if (!ctx.params?.userId) {
@@ -16,37 +25,45 @@ function getUser(ctx: any, userId?: string) {
16
25
  return readGlobalUser(ctx)
17
26
  }
18
27
 
19
- export async function search(ctx: any, next: any) {
28
+ export async function search(ctx: BBContext, next: any) {
20
29
  const { name } = ctx.request.body
21
30
  const users = await allGlobalUsers(ctx)
22
31
  ctx.body = stringSearch(users, name, "email")
23
32
  await next()
24
33
  }
25
34
 
26
- export async function create(ctx: any, next: any) {
35
+ export async function create(ctx: BBContext, next: any) {
27
36
  const response = await saveGlobalUser(publicApiUserFix(ctx))
28
37
  ctx.body = await getUser(ctx, response._id)
29
38
  await next()
30
39
  }
31
40
 
32
- export async function read(ctx: any, next: any) {
41
+ export async function read(ctx: BBContext, next: any) {
33
42
  ctx.body = await readGlobalUser(ctx)
34
43
  await next()
35
44
  }
36
45
 
37
- export async function update(ctx: any, next: any) {
46
+ export async function update(ctx: BBContext, next: any) {
38
47
  const user = await readGlobalUser(ctx)
39
48
  ctx.request.body = {
40
49
  ...ctx.request.body,
41
50
  _rev: user._rev,
42
51
  }
52
+ // disallow updating your own role - always overwrite with DB roles
53
+ if (isLoggedInUser(ctx, user)) {
54
+ ctx.request.body.roles = user.roles
55
+ }
43
56
  const response = await saveGlobalUser(publicApiUserFix(ctx))
44
57
  ctx.body = await getUser(ctx, response._id)
45
58
  await next()
46
59
  }
47
60
 
48
- export async function destroy(ctx: any, next: any) {
61
+ export async function destroy(ctx: BBContext, next: any) {
49
62
  const user = await getUser(ctx)
63
+ // disallow deleting yourself
64
+ if (isLoggedInUser(ctx, user)) {
65
+ ctx.throw(405, "Cannot delete user using its own API key.")
66
+ }
50
67
  await deleteGlobalUser(ctx)
51
68
  ctx.body = user
52
69
  await next()
@@ -1,41 +1,23 @@
1
1
  const jestOpenAPI = require("jest-openapi").default
2
2
  const generateSchema = require("../../../../../specs/generate")
3
3
  const setup = require("../../tests/utilities")
4
- const { checkSlashesInUrl } = require("../../../../utilities")
4
+ const { generateMakeRequest } = require("./utils")
5
5
 
6
6
  const yamlPath = generateSchema()
7
7
  jestOpenAPI(yamlPath)
8
8
 
9
- let request = setup.getRequest()
10
9
  let config = setup.getConfig()
11
- let apiKey, table, app
10
+ let apiKey, table, app, makeRequest
12
11
 
13
12
  beforeAll(async () => {
14
13
  app = await config.init()
15
14
  table = await config.updateTable()
16
15
  apiKey = await config.generateApiKey()
16
+ makeRequest = generateMakeRequest(apiKey, setup)
17
17
  })
18
18
 
19
19
  afterAll(setup.afterAll)
20
20
 
21
- async function makeRequest(method, endpoint, body, appId = config.getAppId()) {
22
- const extraHeaders = {
23
- "x-budibase-api-key": apiKey,
24
- }
25
- if (appId) {
26
- extraHeaders["x-budibase-app-id"] = appId
27
- }
28
- const req = request
29
- [method](checkSlashesInUrl(`/api/public/v1/${endpoint}`))
30
- .set(config.defaultHeaders(extraHeaders))
31
- if (body) {
32
- req.send(body)
33
- }
34
- const res = await req
35
- expect(res.body).toBeDefined()
36
- return res
37
- }
38
-
39
21
  describe("check the applications endpoints", () => {
40
22
  it("should allow retrieving applications through search", async () => {
41
23
  const res = await makeRequest("post", "/applications/search")
@@ -0,0 +1,38 @@
1
+ const setup = require("../../tests/utilities")
2
+ const { generateMakeRequest } = require("./utils")
3
+
4
+ const workerRequests = require("../../../../utilities/workerRequests")
5
+
6
+ let config = setup.getConfig()
7
+ let apiKey, globalUser, makeRequest
8
+
9
+ beforeAll(async () => {
10
+ await config.init()
11
+ globalUser = await config.globalUser()
12
+ apiKey = await config.generateApiKey(globalUser._id)
13
+ makeRequest = generateMakeRequest(apiKey, setup)
14
+ workerRequests.readGlobalUser.mockReturnValue(globalUser)
15
+ })
16
+
17
+ afterAll(setup.afterAll)
18
+
19
+ describe("check user endpoints", () => {
20
+ it("should not allow a user to update their own roles", async () => {
21
+ const res = await makeRequest("put", `/users/${globalUser._id}`, {
22
+ ...globalUser,
23
+ roles: {
24
+ "app_1": "ADMIN",
25
+ }
26
+ })
27
+ expect(workerRequests.saveGlobalUser.mock.lastCall[0].body.data.roles["app_1"]).toBeUndefined()
28
+ expect(res.status).toBe(200)
29
+ expect(res.body.data.roles["app_1"]).toBeUndefined()
30
+ })
31
+
32
+ it("should not allow a user to delete themselves", async () => {
33
+ const res = await makeRequest("delete", `/users/${globalUser._id}`)
34
+ expect(res.status).toBe(405)
35
+ expect(workerRequests.deleteGlobalUser.mock.lastCall).toBeUndefined()
36
+ })
37
+ })
38
+
@@ -0,0 +1,28 @@
1
+ import { checkSlashesInUrl } from "../../../../utilities"
2
+
3
+ export function generateMakeRequest(apiKey: string, setup: any) {
4
+ const request = setup.getRequest()
5
+ const config = setup.getConfig()
6
+ return async (
7
+ method: string,
8
+ endpoint: string,
9
+ body?: any,
10
+ intAppId: string = config.getAppId()
11
+ ) => {
12
+ const extraHeaders: any = {
13
+ "x-budibase-api-key": apiKey,
14
+ }
15
+ if (intAppId) {
16
+ extraHeaders["x-budibase-app-id"] = intAppId
17
+ }
18
+ const req = request[method](
19
+ checkSlashesInUrl(`/api/public/v1/${endpoint}`)
20
+ ).set(config.defaultHeaders(extraHeaders))
21
+ if (body) {
22
+ req.send(body)
23
+ }
24
+ const res = await req
25
+ expect(res.body).toBeDefined()
26
+ return res
27
+ }
28
+ }
@@ -3,7 +3,7 @@ import env from "../environment"
3
3
  import { checkSlashesInUrl } from "./index"
4
4
  import { db as dbCore, constants, tenancy } from "@budibase/backend-core"
5
5
  import { updateAppRole } from "./global"
6
- import { BBContext, Automation } from "@budibase/types"
6
+ import { BBContext, User } from "@budibase/types"
7
7
 
8
8
  export function request(ctx?: BBContext, request?: any) {
9
9
  if (!request.headers) {
@@ -138,7 +138,7 @@ export async function deleteGlobalUser(ctx: BBContext) {
138
138
  return checkResponse(response, "delete user", { ctx })
139
139
  }
140
140
 
141
- export async function readGlobalUser(ctx: BBContext) {
141
+ export async function readGlobalUser(ctx: BBContext): Promise<User> {
142
142
  const response = await fetch(
143
143
  checkSlashesInUrl(
144
144
  env.WORKER_URL + `/api/global/users/${ctx.params.userId}`