@budibase/server 2.1.40-alpha.4 → 2.1.40-alpha.6

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 (343) hide show
  1. package/builder/assets/{index.ddf1f73a.js → index.137fb5a9.js} +243 -243
  2. package/builder/assets/index.66c1c272.css +6 -0
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +2760 -2701
  5. package/coverage/coverage-final.json +251 -250
  6. package/coverage/lcov-report/index.html +40 -40
  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 +103 -103
  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 +8 -8
  15. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +44 -23
  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 +15 -15
  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 +1 -1
  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 +2 -2
  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 +10 -10
  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 +24 -24
  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 +16 -16
  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 +22 -22
  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 +10 -10
  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/users.ts.html +12 -12
  118. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  119. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  121. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  122. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  123. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  124. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  125. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  127. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  128. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  129. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  133. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  135. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  136. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  137. package/coverage/lcov-report/src/app.ts.html +1 -1
  138. package/coverage/lcov-report/src/automations/actions.ts.html +25 -25
  139. package/coverage/lcov-report/src/automations/automationUtils.ts.html +8 -8
  140. package/coverage/lcov-report/src/automations/bullboard.ts.html +11 -11
  141. package/coverage/lcov-report/src/automations/index.html +1 -1
  142. package/coverage/lcov-report/src/automations/index.ts.html +13 -13
  143. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  144. package/coverage/lcov-report/src/automations/logging/index.ts.html +6 -6
  145. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  146. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  147. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  148. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  149. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  150. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  151. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  152. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  153. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  155. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  156. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +14 -14
  157. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +17 -17
  158. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  159. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +4 -4
  160. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  161. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  162. package/coverage/lcov-report/src/automations/steps/utils.ts.html +3 -3
  163. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  164. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  165. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  166. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  167. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  168. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  170. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  171. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  172. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  173. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  174. package/coverage/lcov-report/src/automations/triggers.ts.html +21 -21
  175. package/coverage/lcov-report/src/automations/utils.ts.html +45 -45
  176. package/coverage/lcov-report/src/constants/index.html +1 -1
  177. package/coverage/lcov-report/src/constants/index.ts.html +92 -92
  178. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  179. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  180. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +55 -28
  181. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  182. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  183. package/coverage/lcov-report/src/db/defaultData/index.html +11 -11
  184. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  185. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  186. package/coverage/lcov-report/src/db/dynamoClient.ts.html +16 -16
  187. package/coverage/lcov-report/src/db/inMemoryView.ts.html +5 -5
  188. package/coverage/lcov-report/src/db/index.html +1 -1
  189. package/coverage/lcov-report/src/db/index.ts.html +9 -9
  190. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +8 -8
  191. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  192. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  193. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  194. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +12 -12
  195. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  196. package/coverage/lcov-report/src/db/utils.ts.html +60 -60
  197. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  198. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  199. package/coverage/lcov-report/src/definitions/index.html +1 -1
  200. package/coverage/lcov-report/src/environment.ts.html +19 -19
  201. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  202. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
  203. package/coverage/lcov-report/src/events/index.html +1 -1
  204. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  205. package/coverage/lcov-report/src/events/utils.ts.html +3 -3
  206. package/coverage/lcov-report/src/index.html +1 -1
  207. package/coverage/lcov-report/src/index.ts.html +1 -1
  208. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  209. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  210. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  211. package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
  212. package/coverage/lcov-report/src/integrations/base/sql.ts.html +12 -12
  213. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +7 -7
  214. package/coverage/lcov-report/src/integrations/base/utils.ts.html +3 -3
  215. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  216. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  217. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  218. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  219. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  220. package/coverage/lcov-report/src/integrations/index.html +1 -1
  221. package/coverage/lcov-report/src/integrations/index.ts.html +30 -30
  222. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  223. package/coverage/lcov-report/src/integrations/mongodb.ts.html +5 -5
  224. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  225. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  226. package/coverage/lcov-report/src/integrations/postgres.ts.html +10 -10
  227. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  228. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  229. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  230. package/coverage/lcov-report/src/integrations/rest.ts.html +16 -16
  231. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  232. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  233. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  234. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  235. package/coverage/lcov-report/src/integrations/utils.ts.html +31 -31
  236. package/coverage/lcov-report/src/middleware/appInfo.ts.html +7 -7
  237. package/coverage/lcov-report/src/middleware/authorized.ts.html +9 -9
  238. package/coverage/lcov-report/src/middleware/builder.ts.html +6 -6
  239. package/coverage/lcov-report/src/middleware/currentapp.ts.html +6 -6
  240. package/coverage/lcov-report/src/middleware/index.html +1 -1
  241. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  242. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  243. package/coverage/lcov-report/src/middleware/resourceId.ts.html +22 -22
  244. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  245. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  246. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  247. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  248. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  256. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  257. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  261. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  263. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  264. package/coverage/lcov-report/src/migrations/functions/index.html +23 -8
  265. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  266. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +520 -0
  267. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  272. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  273. package/coverage/lcov-report/src/migrations/index.html +17 -17
  274. package/coverage/lcov-report/src/migrations/index.ts.html +63 -36
  275. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  276. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  277. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  278. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  279. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  280. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  281. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  282. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
  283. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +17 -17
  284. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  286. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  287. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  288. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  289. package/coverage/lcov-report/src/sdk/index.html +1 -1
  290. package/coverage/lcov-report/src/sdk/index.ts.html +7 -7
  291. package/coverage/lcov-report/src/startup.ts.html +33 -33
  292. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +80 -80
  293. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  294. package/coverage/lcov-report/src/tests/utilities/index.html +1 -1
  295. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  296. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +27 -27
  297. package/coverage/lcov-report/src/threads/automation.ts.html +23 -23
  298. package/coverage/lcov-report/src/threads/index.html +1 -1
  299. package/coverage/lcov-report/src/threads/index.ts.html +11 -11
  300. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  301. package/coverage/lcov-report/src/threads/utils.ts.html +15 -15
  302. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  303. package/coverage/lcov-report/src/utilities/centralPath.ts.html +4 -4
  304. package/coverage/lcov-report/src/utilities/csvParser.ts.html +8 -8
  305. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +11 -11
  306. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  307. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +39 -39
  308. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  309. package/coverage/lcov-report/src/utilities/global.ts.html +11 -11
  310. package/coverage/lcov-report/src/utilities/index.html +1 -1
  311. package/coverage/lcov-report/src/utilities/index.ts.html +25 -25
  312. package/coverage/lcov-report/src/utilities/plugins.ts.html +5 -5
  313. package/coverage/lcov-report/src/utilities/redis.ts.html +22 -22
  314. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  315. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  316. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  317. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +17 -17
  318. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  319. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +6 -6
  320. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  321. package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
  322. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
  323. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  324. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +5 -5
  325. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  326. package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
  327. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +17 -17
  328. package/coverage/lcov-report/src/watch.ts.html +9 -9
  329. package/coverage/lcov-report/src/websocket.ts.html +4 -4
  330. package/coverage/lcov.info +3212 -3093
  331. package/dist/api/controllers/datasource.js +7 -2
  332. package/dist/db/defaultData/datasource_bb_default.js +4 -2
  333. package/dist/migrations/functions/tableSettings.js +130 -0
  334. package/dist/migrations/index.js +5 -0
  335. package/dist/package.json +6 -6
  336. package/dist/tsconfig.build.tsbuildinfo +1 -1
  337. package/package.json +7 -7
  338. package/src/api/controllers/datasource.ts +9 -2
  339. package/src/db/defaultData/datasource_bb_default.ts +11 -2
  340. package/src/migrations/functions/tableSettings.ts +145 -0
  341. package/src/migrations/functions/tests/tableSettings.spec.ts +144 -0
  342. package/src/migrations/index.ts +9 -0
  343. package/builder/assets/index.144dddb2.css +0 -6
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.40-alpha.4",
4
+ "version": "2.1.40-alpha.6",
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.40-alpha.4",
47
- "@budibase/client": "2.1.40-alpha.4",
48
- "@budibase/pro": "2.1.40-alpha.3",
49
- "@budibase/string-templates": "2.1.40-alpha.4",
50
- "@budibase/types": "2.1.40-alpha.4",
46
+ "@budibase/backend-core": "2.1.40-alpha.6",
47
+ "@budibase/client": "2.1.40-alpha.6",
48
+ "@budibase/pro": "2.1.40-alpha.5",
49
+ "@budibase/string-templates": "2.1.40-alpha.6",
50
+ "@budibase/types": "2.1.40-alpha.6",
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": "5c318f9d9f9f4b4377c8a6d3345321a50692ac14"
168
+ "gitHead": "bd527a02929f9749d7cfd085cdeaf7a0c3d6d427"
169
169
  }
@@ -152,7 +152,14 @@ export async function update(ctx: BBContext) {
152
152
  let datasource = await db.get(datasourceId)
153
153
  const auth = datasource.config.auth
154
154
  await invalidateVariables(datasource, ctx.request.body)
155
- datasource = { ...datasource, ...ctx.request.body }
155
+
156
+ const isBudibaseSource = datasource.type === dbCore.BUDIBASE_DATASOURCE_TYPE
157
+
158
+ const dataSourceBody = isBudibaseSource
159
+ ? { name: ctx.request.body?.name }
160
+ : ctx.request.body
161
+
162
+ datasource = { ...datasource, ...dataSourceBody }
156
163
  if (auth && !ctx.request.body.auth) {
157
164
  // don't strip auth config from DB
158
165
  datasource.config.auth = auth
@@ -163,7 +170,7 @@ export async function update(ctx: BBContext) {
163
170
  datasource._rev = response.rev
164
171
 
165
172
  // Drain connection pools when configuration is changed
166
- if (datasource.source) {
173
+ if (datasource.source && !isBudibaseSource) {
167
174
  const source = await getIntegration(datasource.source)
168
175
  if (source && source.pool) {
169
176
  await source.pool.end()
@@ -18,7 +18,8 @@ export const DEFAULT_INVENTORY_TABLE_ID = "ta_bb_inventory"
18
18
  export const DEFAULT_EXPENSES_TABLE_ID = "ta_bb_expenses"
19
19
  export const DEFAULT_EMPLOYEE_TABLE_ID = "ta_bb_employee"
20
20
  export const DEFAULT_BB_DATASOURCE_ID = "datasource_internal_bb_default"
21
- export const DEFAULT_BB_DATASOURCE = {
21
+
22
+ const defaultDatasource = {
22
23
  _id: DEFAULT_BB_DATASOURCE_ID,
23
24
  type: dbCore.BUDIBASE_DATASOURCE_TYPE,
24
25
  name: "Sample Data",
@@ -26,6 +27,8 @@ export const DEFAULT_BB_DATASOURCE = {
26
27
  config: {},
27
28
  }
28
29
 
30
+ export const DEFAULT_BB_DATASOURCE = defaultDatasource
31
+
29
32
  function syncLastIds(table: Table, rowCount: number) {
30
33
  Object.keys(table.schema).forEach(key => {
31
34
  const entry = table.schema[key]
@@ -634,8 +637,14 @@ export function buildDefaultDocs() {
634
637
  }
635
638
  )
636
639
 
640
+ const dataSource = {
641
+ ...defaultDatasource,
642
+ updatedAt: new Date().toISOString(),
643
+ createdAt: new Date().toISOString(),
644
+ }
645
+
637
646
  return [
638
- DEFAULT_BB_DATASOURCE,
647
+ dataSource,
639
648
  inventoryData.table,
640
649
  employeeData.table,
641
650
  jobData.table,
@@ -0,0 +1,145 @@
1
+ import { getScreenParams } from "../../db/utils"
2
+ import { Screen } from "@budibase/types"
3
+ import { makePropSafe as safe } from "@budibase/string-templates"
4
+ /**
5
+ * Date:
6
+ * November 2022
7
+ *
8
+ * Description:
9
+ * Update table settings to use actions instead of links. We do not remove the
10
+ * legacy values here as we cannot guarantee that their apps are up-t-date.
11
+ * It is safe to simply save both the new and old structure in the definition.
12
+ *
13
+ * Migration 1:
14
+ * Legacy "linkRows", "linkURL", "linkPeek" and "linkColumn" settings on tables
15
+ * and table blocks are migrated into a "Navigate To" action under the new
16
+ * "onClick" setting.
17
+ *
18
+ * Migration 2:
19
+ * Legacy "titleButtonURL" and "titleButtonPeek" settings on table blocks are
20
+ * migrated into a "Navigate To" action under the new "onClickTitleButton"
21
+ * setting.
22
+ */
23
+ export const run = async (appDb: any) => {
24
+ // Get all app screens
25
+ let screens: Screen[]
26
+ try {
27
+ screens = (
28
+ await appDb.allDocs(
29
+ getScreenParams(null, {
30
+ include_docs: true,
31
+ })
32
+ )
33
+ ).rows.map((row: any) => row.doc)
34
+ } catch (e) {
35
+ // sometimes the metadata document doesn't exist
36
+ // exit early instead of failing the migration
37
+ console.error("Error retrieving app metadata. Skipping", e)
38
+ return
39
+ }
40
+
41
+ // Recursively update any relevant components and mutate the screen docs
42
+ for (let screen of screens) {
43
+ const changed = migrateTableSettings(screen.props)
44
+
45
+ // Save screen if we updated it
46
+ if (changed) {
47
+ await appDb.put(screen)
48
+ console.log(
49
+ `Screen ${screen.routing?.route} contained table settings which were migrated`
50
+ )
51
+ }
52
+ }
53
+ }
54
+
55
+ // Recursively searches and mutates a screen doc to migrate table component
56
+ // and table block settings
57
+ const migrateTableSettings = (component: any) => {
58
+ let changed = false
59
+ if (!component) {
60
+ return changed
61
+ }
62
+
63
+ // Migration 1: migrate table row click settings
64
+ if (
65
+ component._component.endsWith("/table") ||
66
+ component._component.endsWith("/tableblock")
67
+ ) {
68
+ const { linkRows, linkURL, linkPeek, linkColumn, onClick } = component
69
+ if (linkRows && !onClick) {
70
+ const column = linkColumn || "_id"
71
+ const action = convertLinkSettingToAction(linkURL, !!linkPeek, column)
72
+ if (action) {
73
+ changed = true
74
+ component.onClick = action
75
+ if (component._component.endsWith("/tableblock")) {
76
+ component.clickBehaviour = "actions"
77
+ }
78
+ }
79
+ }
80
+ }
81
+
82
+ // Migration 2: migrate table block title button settings
83
+ if (component._component.endsWith("/tableblock")) {
84
+ const {
85
+ showTitleButton,
86
+ titleButtonURL,
87
+ titleButtonPeek,
88
+ onClickTitleButton,
89
+ } = component
90
+ if (showTitleButton && !onClickTitleButton) {
91
+ const action = convertLinkSettingToAction(
92
+ titleButtonURL,
93
+ !!titleButtonPeek
94
+ )
95
+ if (action) {
96
+ changed = true
97
+ component.onClickTitleButton = action
98
+ component.titleButtonClickBehaviour = "actions"
99
+ }
100
+ }
101
+ }
102
+
103
+ // Recurse down the tree as needed
104
+ component._children?.forEach((child: any) => {
105
+ const childChanged = migrateTableSettings(child)
106
+ changed = changed || childChanged
107
+ })
108
+ return changed
109
+ }
110
+
111
+ // Util ti convert the legacy settings into a navigation action structure
112
+ const convertLinkSettingToAction = (
113
+ linkURL: string,
114
+ linkPeek: boolean,
115
+ linkColumn?: string
116
+ ) => {
117
+ // Sanity check we have a URL
118
+ if (!linkURL) {
119
+ return null
120
+ }
121
+
122
+ // Default URL to the old URL setting
123
+ let url = linkURL
124
+
125
+ // If we enriched the old URL with a column, update the url
126
+ if (linkColumn && linkURL.includes("/:")) {
127
+ // Convert old link URL setting, which is a screen URL, into a valid
128
+ // binding using the new clicked row binding
129
+ const split = linkURL.split("/:")
130
+ const col = linkColumn || "_id"
131
+ const binding = `{{ ${safe("eventContext")}.${safe("row")}.${safe(col)} }}`
132
+ url = `${split[0]}/${binding}`
133
+ }
134
+
135
+ // Create action structure
136
+ return [
137
+ {
138
+ "##eventHandlerType": "Navigate To",
139
+ parameters: {
140
+ url,
141
+ peek: linkPeek,
142
+ },
143
+ },
144
+ ]
145
+ }
@@ -0,0 +1,144 @@
1
+ import { App, Screen } from "@budibase/types"
2
+
3
+ import { db as dbCore } from "@budibase/backend-core"
4
+ import TestConfig from "../../../tests/utilities/TestConfiguration"
5
+ import { run as runMigration } from "../tableSettings"
6
+
7
+ describe("run", () => {
8
+ const config = new TestConfig(false)
9
+ let app: App
10
+ let screen: Screen
11
+
12
+ beforeAll(async () => {
13
+ await config.init()
14
+ app = await config.createApp("testApp")
15
+ screen = await config.createScreen()
16
+ })
17
+
18
+ afterAll(config.end)
19
+
20
+ it("migrates table block row on click settings", async () => {
21
+ // Add legacy table block as first child
22
+ screen.props._children = [
23
+ {
24
+ _instanceName: "Table Block",
25
+ _styles: {},
26
+ _component: "@budibase/standard-components/tableblock",
27
+ _id: "foo",
28
+ linkRows: true,
29
+ linkURL: "/rows/:id",
30
+ linkPeek: true,
31
+ linkColumn: "name",
32
+ },
33
+ ]
34
+ await config.createScreen(screen)
35
+
36
+ // Run migration
37
+ screen = await dbCore.doWithDB(app.appId, async (db: any) => {
38
+ await runMigration(db)
39
+ return await db.get(screen._id)
40
+ })
41
+
42
+ // Verify new "onClick" setting
43
+ const onClick = screen.props._children?.[0].onClick
44
+ expect(onClick).toBeDefined()
45
+ expect(onClick.length).toBe(1)
46
+ expect(onClick[0]["##eventHandlerType"]).toBe("Navigate To")
47
+ expect(onClick[0].parameters.url).toBe(
48
+ `/rows/{{ [eventContext].[row].[name] }}`
49
+ )
50
+ expect(onClick[0].parameters.peek).toBeTruthy()
51
+ })
52
+
53
+ it("migrates table row on click settings", async () => {
54
+ // Add legacy table block as first child
55
+ screen.props._children = [
56
+ {
57
+ _instanceName: "Table",
58
+ _styles: {},
59
+ _component: "@budibase/standard-components/table",
60
+ _id: "foo",
61
+ linkRows: true,
62
+ linkURL: "/rows/:id",
63
+ linkPeek: true,
64
+ linkColumn: "name",
65
+ },
66
+ ]
67
+ await config.createScreen(screen)
68
+
69
+ // Run migration
70
+ screen = await dbCore.doWithDB(app.appId, async (db: any) => {
71
+ await runMigration(db)
72
+ return await db.get(screen._id)
73
+ })
74
+
75
+ // Verify new "onClick" setting
76
+ const onClick = screen.props._children?.[0].onClick
77
+ expect(onClick).toBeDefined()
78
+ expect(onClick.length).toBe(1)
79
+ expect(onClick[0]["##eventHandlerType"]).toBe("Navigate To")
80
+ expect(onClick[0].parameters.url).toBe(
81
+ `/rows/{{ [eventContext].[row].[name] }}`
82
+ )
83
+ expect(onClick[0].parameters.peek).toBeTruthy()
84
+ })
85
+
86
+ it("migrates table block title button settings", async () => {
87
+ // Add legacy table block as first child
88
+ screen.props._children = [
89
+ {
90
+ _instanceName: "Table Block",
91
+ _styles: {},
92
+ _component: "@budibase/standard-components/tableblock",
93
+ _id: "foo",
94
+ showTitleButton: true,
95
+ titleButtonURL: "/url",
96
+ titleButtonPeek: true,
97
+ },
98
+ ]
99
+ await config.createScreen(screen)
100
+
101
+ // Run migration
102
+ screen = await dbCore.doWithDB(app.appId, async (db: any) => {
103
+ await runMigration(db)
104
+ return await db.get(screen._id)
105
+ })
106
+
107
+ // Verify new "onClickTitleButton" setting
108
+ const onClick = screen.props._children?.[0].onClickTitleButton
109
+ expect(onClick).toBeDefined()
110
+ expect(onClick.length).toBe(1)
111
+ expect(onClick[0]["##eventHandlerType"]).toBe("Navigate To")
112
+ expect(onClick[0].parameters.url).toBe("/url")
113
+ expect(onClick[0].parameters.peek).toBeTruthy()
114
+ })
115
+
116
+ it("ignores components that have already been migrated", async () => {
117
+ // Add legacy table block as first child
118
+ screen.props._children = [
119
+ {
120
+ _instanceName: "Table Block",
121
+ _styles: {},
122
+ _component: "@budibase/standard-components/tableblock",
123
+ _id: "foo",
124
+ linkRows: true,
125
+ linkURL: "/rows/:id",
126
+ linkPeek: true,
127
+ linkColumn: "name",
128
+ onClick: "foo",
129
+ },
130
+ ]
131
+ const initialDefinition = JSON.stringify(screen.props._children?.[0])
132
+ await config.createScreen(screen)
133
+
134
+ // Run migration
135
+ screen = await dbCore.doWithDB(app.appId, async (db: any) => {
136
+ await runMigration(db)
137
+ return await db.get(screen._id)
138
+ })
139
+
140
+ // Verify new "onClick" setting
141
+ const newDefinition = JSON.stringify(screen.props._children?.[0])
142
+ expect(initialDefinition).toEqual(newDefinition)
143
+ })
144
+ })
@@ -12,6 +12,7 @@ import env from "../environment"
12
12
  import * as userEmailViewCasing from "./functions/userEmailViewCasing"
13
13
  import * as syncQuotas from "./functions/syncQuotas"
14
14
  import * as appUrls from "./functions/appUrls"
15
+ import * as tableSettings from "./functions/tableSettings"
15
16
  import * as backfill from "./functions/backfill"
16
17
  /**
17
18
  * Populate the migration function and additional configuration from
@@ -73,6 +74,14 @@ export const buildMigrations = () => {
73
74
  })
74
75
  break
75
76
  }
77
+ case MigrationName.TABLE_SETTINGS_LINKS_TO_ACTIONS: {
78
+ serverMigrations.push({
79
+ ...definition,
80
+ appOpts: { dev: true },
81
+ fn: tableSettings.run,
82
+ })
83
+ break
84
+ }
76
85
  }
77
86
  }
78
87