@budibase/server 2.2.26 → 2.2.27-alpha.1

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 (779) hide show
  1. package/Dockerfile +1 -1
  2. package/__mocks__/aws-sdk.ts +20 -1
  3. package/__mocks__/node-fetch.ts +80 -0
  4. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  5. package/builder/assets/bg.29e85dd5.png +0 -0
  6. package/builder/assets/bulgaria.bd68393d.png +0 -0
  7. package/builder/assets/covanta.72c46c1e.png +0 -0
  8. package/builder/assets/index.3dd03883.css +6 -0
  9. package/builder/assets/index.77ae0e4d.js +1802 -0
  10. package/builder/assets/schnellecke.cf1837a8.png +0 -0
  11. package/builder/index.html +3 -3
  12. package/coverage/clover.xml +12565 -8055
  13. package/coverage/coverage-final.json +365 -276
  14. package/coverage/lcov-report/index.html +721 -466
  15. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +9 -9
  16. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +6 -6
  17. package/coverage/lcov-report/src/api/controllers/application.ts.html +364 -268
  18. package/coverage/lcov-report/src/api/controllers/auth.ts.html +12 -12
  19. package/coverage/lcov-report/src/api/controllers/automation.ts.html +61 -61
  20. package/coverage/lcov-report/src/api/controllers/backup.ts.html +8 -8
  21. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +89 -77
  22. package/coverage/lcov-report/src/api/controllers/component.ts.html +12 -12
  23. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +122 -98
  24. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +21 -18
  25. package/coverage/lcov-report/src/api/controllers/deploy/index.html +21 -21
  26. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +142 -196
  27. package/coverage/lcov-report/src/api/controllers/dev.ts.html +33 -33
  28. package/coverage/lcov-report/src/api/controllers/index.html +125 -125
  29. package/coverage/lcov-report/src/api/controllers/integration.ts.html +5 -5
  30. package/coverage/lcov-report/src/api/controllers/layout.ts.html +18 -18
  31. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +11 -11
  32. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +6 -6
  33. package/coverage/lcov-report/src/api/controllers/permission.ts.html +35 -35
  34. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +20 -20
  35. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +62 -62
  36. package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
  37. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +150 -135
  38. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +56 -56
  39. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
  40. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
  41. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
  42. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +75 -24
  43. package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +7 -7
  45. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
  46. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +9 -9
  47. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +8 -8
  48. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +4 -4
  49. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +4 -4
  50. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
  51. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +15 -15
  52. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +21 -21
  53. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +21 -21
  54. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +27 -27
  55. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +8 -8
  56. package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
  57. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +11 -11
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +14 -14
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +8 -8
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +12 -12
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
  63. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +16 -16
  64. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +20 -20
  65. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +391 -0
  66. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +116 -0
  67. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +116 -0
  68. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +796 -0
  69. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +116 -0
  70. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +805 -0
  71. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +116 -0
  72. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +568 -0
  73. package/coverage/lcov-report/src/api/controllers/query/index.html +20 -20
  74. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +131 -107
  75. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +11 -11
  76. package/coverage/lcov-report/src/api/controllers/role.ts.html +9 -9
  77. package/coverage/lcov-report/src/api/controllers/routing.ts.html +10 -10
  78. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +56 -41
  79. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +87 -57
  80. package/coverage/lcov-report/src/api/controllers/row/index.html +66 -66
  81. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +26 -26
  82. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +171 -96
  83. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +146 -146
  84. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +30 -21
  85. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +143 -26
  86. package/coverage/lcov-report/src/api/controllers/screen.ts.html +31 -31
  87. package/coverage/lcov-report/src/api/controllers/script.ts.html +19 -19
  88. package/coverage/lcov-report/src/api/controllers/static/index.html +18 -18
  89. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +56 -71
  90. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +61 -61
  91. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +56 -50
  92. package/coverage/lcov-report/src/api/controllers/table/index.html +51 -51
  93. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +157 -70
  94. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +68 -71
  95. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +109 -112
  96. package/coverage/lcov-report/src/api/controllers/templates.ts.html +21 -21
  97. package/coverage/lcov-report/src/api/controllers/user.ts.html +161 -137
  98. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +64 -19
  99. package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
  100. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +97 -133
  101. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +116 -0
  102. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +277 -0
  103. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +31 -31
  104. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +37 -37
  105. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +78 -72
  106. package/coverage/lcov-report/src/api/index.html +15 -15
  107. package/coverage/lcov-report/src/api/index.ts.html +40 -40
  108. package/coverage/lcov-report/src/api/routes/analytics.ts.html +10 -10
  109. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +11 -11
  110. package/coverage/lcov-report/src/api/routes/application.ts.html +46 -13
  111. package/coverage/lcov-report/src/api/routes/auth.ts.html +9 -9
  112. package/coverage/lcov-report/src/api/routes/automation.ts.html +14 -14
  113. package/coverage/lcov-report/src/api/routes/backup.ts.html +11 -11
  114. package/coverage/lcov-report/src/api/routes/cloud.ts.html +11 -11
  115. package/coverage/lcov-report/src/api/routes/component.ts.html +11 -11
  116. package/coverage/lcov-report/src/api/routes/datasource.ts.html +12 -12
  117. package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -14
  118. package/coverage/lcov-report/src/api/routes/dev.ts.html +17 -17
  119. package/coverage/lcov-report/src/api/routes/index.html +68 -68
  120. package/coverage/lcov-report/src/api/routes/index.ts.html +49 -40
  121. package/coverage/lcov-report/src/api/routes/integration.ts.html +11 -11
  122. package/coverage/lcov-report/src/api/routes/layout.ts.html +11 -11
  123. package/coverage/lcov-report/src/api/routes/metadata.ts.html +12 -12
  124. package/coverage/lcov-report/src/api/routes/migrations.ts.html +10 -10
  125. package/coverage/lcov-report/src/api/routes/permission.ts.html +12 -12
  126. package/coverage/lcov-report/src/api/routes/plugin.ts.html +10 -10
  127. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +147 -15
  128. package/coverage/lcov-report/src/api/routes/public/index.html +27 -27
  129. package/coverage/lcov-report/src/api/routes/public/index.ts.html +60 -60
  130. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
  131. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +28 -16
  132. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +11 -11
  133. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +14 -14
  134. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +14 -14
  135. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +583 -0
  136. package/coverage/lcov-report/src/api/routes/public/tests/index.html +41 -11
  137. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +199 -0
  138. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
  139. package/coverage/lcov-report/src/api/routes/public/users.ts.html +14 -14
  140. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +21 -21
  141. package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
  142. package/coverage/lcov-report/src/api/routes/query.ts.html +14 -14
  143. package/coverage/lcov-report/src/api/routes/role.ts.html +12 -12
  144. package/coverage/lcov-report/src/api/routes/routing.ts.html +11 -11
  145. package/coverage/lcov-report/src/api/routes/row.ts.html +14 -14
  146. package/coverage/lcov-report/src/api/routes/screen.ts.html +12 -12
  147. package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
  148. package/coverage/lcov-report/src/api/routes/static.ts.html +18 -18
  149. package/coverage/lcov-report/src/api/routes/table.ts.html +29 -98
  150. package/coverage/lcov-report/src/api/routes/templates.ts.html +11 -11
  151. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +271 -0
  152. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +259 -0
  153. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +1066 -0
  154. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +154 -0
  155. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +1123 -0
  156. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +223 -0
  157. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +262 -0
  158. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +178 -0
  159. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +799 -0
  160. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +202 -0
  161. package/coverage/lcov-report/src/api/routes/tests/index.html +521 -0
  162. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +238 -0
  163. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +670 -0
  164. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +259 -0
  165. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +280 -0
  166. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +358 -0
  167. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +484 -0
  168. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +622 -0
  169. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +1696 -0
  170. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +478 -0
  171. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +430 -0
  172. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +1804 -0
  173. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +391 -0
  174. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +541 -0
  175. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +991 -0
  176. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +154 -0
  177. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +688 -0
  178. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +116 -47
  179. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +27 -27
  180. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +42 -36
  181. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +1342 -0
  182. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +484 -0
  183. package/coverage/lcov-report/src/api/routes/user.ts.html +12 -12
  184. package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
  185. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +44 -44
  186. package/coverage/lcov-report/src/api/routes/view.ts.html +13 -13
  187. package/coverage/lcov-report/src/api/routes/webhook.ts.html +13 -13
  188. package/coverage/lcov-report/src/app.ts.html +57 -48
  189. package/coverage/lcov-report/src/automations/actions.ts.html +31 -31
  190. package/coverage/lcov-report/src/automations/automationUtils.ts.html +127 -55
  191. package/coverage/lcov-report/src/automations/bullboard.ts.html +19 -19
  192. package/coverage/lcov-report/src/automations/index.html +58 -58
  193. package/coverage/lcov-report/src/automations/index.ts.html +23 -23
  194. package/coverage/lcov-report/src/automations/logging/index.html +3 -3
  195. package/coverage/lcov-report/src/automations/logging/index.ts.html +15 -15
  196. package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
  197. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +9 -9
  198. package/coverage/lcov-report/src/automations/steps/delay.ts.html +7 -7
  199. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +9 -9
  200. package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
  201. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
  202. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
  203. package/coverage/lcov-report/src/automations/steps/filter.ts.html +12 -12
  204. package/coverage/lcov-report/src/automations/steps/index.html +129 -129
  205. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +10 -10
  206. package/coverage/lcov-report/src/automations/steps/loop.ts.html +5 -5
  207. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +19 -19
  208. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +43 -43
  209. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
  210. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +19 -19
  211. package/coverage/lcov-report/src/automations/steps/slack.ts.html +10 -10
  212. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +12 -12
  213. package/coverage/lcov-report/src/automations/steps/utils.ts.html +18 -18
  214. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
  215. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +337 -0
  216. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +187 -0
  217. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +223 -0
  218. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +133 -0
  219. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +250 -0
  220. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +166 -0
  221. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +229 -0
  222. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +229 -0
  223. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +232 -0
  224. package/coverage/lcov-report/src/automations/tests/index.html +341 -0
  225. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +220 -0
  226. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +202 -0
  227. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +436 -0
  228. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +298 -0
  229. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +151 -0
  230. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +217 -0
  231. package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
  232. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +32 -32
  233. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +166 -0
  234. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +6 -6
  235. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +6 -6
  236. package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
  237. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +10 -10
  238. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +6 -6
  239. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +6 -6
  240. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +6 -6
  241. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +6 -6
  242. package/coverage/lcov-report/src/automations/triggers.ts.html +61 -46
  243. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +280 -0
  244. package/coverage/lcov-report/src/automations/unitTests/index.html +116 -0
  245. package/coverage/lcov-report/src/automations/utils.ts.html +84 -84
  246. package/coverage/lcov-report/src/constants/index.html +19 -19
  247. package/coverage/lcov-report/src/constants/index.ts.html +103 -103
  248. package/coverage/lcov-report/src/constants/layouts.ts.html +9 -9
  249. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  250. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -45
  251. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +8 -8
  252. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +8 -8
  253. package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
  254. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +8 -8
  255. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +8 -8
  256. package/coverage/lcov-report/src/db/dynamoClient.ts.html +26 -26
  257. package/coverage/lcov-report/src/db/inMemoryView.ts.html +13 -13
  258. package/coverage/lcov-report/src/db/index.html +43 -43
  259. package/coverage/lcov-report/src/db/index.ts.html +20 -20
  260. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +38 -38
  261. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +7 -7
  262. package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
  263. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +40 -40
  264. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +27 -27
  265. package/coverage/lcov-report/src/db/newid.ts.html +5 -5
  266. package/coverage/lcov-report/src/db/tests/index.html +131 -0
  267. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +793 -0
  268. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +277 -0
  269. package/coverage/lcov-report/src/db/utils.ts.html +92 -92
  270. package/coverage/lcov-report/src/definitions/automations.ts.html +9 -6
  271. package/coverage/lcov-report/src/definitions/index.html +5 -20
  272. package/coverage/lcov-report/src/environment.ts.html +49 -37
  273. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +14 -14
  274. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +8 -8
  275. package/coverage/lcov-report/src/events/index.html +20 -20
  276. package/coverage/lcov-report/src/events/index.ts.html +7 -7
  277. package/coverage/lcov-report/src/events/utils.ts.html +11 -11
  278. package/coverage/lcov-report/src/index.html +48 -48
  279. package/coverage/lcov-report/src/index.ts.html +8 -8
  280. package/coverage/lcov-report/src/integrations/airtable.ts.html +10 -10
  281. package/coverage/lcov-report/src/integrations/arangodb.ts.html +9 -9
  282. package/coverage/lcov-report/src/integrations/base/index.html +29 -29
  283. package/coverage/lcov-report/src/integrations/base/query.ts.html +15 -9
  284. package/coverage/lcov-report/src/integrations/base/sql.ts.html +38 -38
  285. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +23 -23
  286. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  287. package/coverage/lcov-report/src/integrations/couchdb.ts.html +109 -31
  288. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +17 -17
  289. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +27 -15
  290. package/coverage/lcov-report/src/integrations/firebase.ts.html +12 -12
  291. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +42 -42
  292. package/coverage/lcov-report/src/integrations/index.html +130 -130
  293. package/coverage/lcov-report/src/integrations/index.ts.html +50 -62
  294. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +31 -31
  295. package/coverage/lcov-report/src/integrations/mongodb.ts.html +421 -289
  296. package/coverage/lcov-report/src/integrations/mysql.ts.html +28 -28
  297. package/coverage/lcov-report/src/integrations/oracle.ts.html +31 -31
  298. package/coverage/lcov-report/src/integrations/postgres.ts.html +54 -54
  299. package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
  300. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +24 -159
  301. package/coverage/lcov-report/src/integrations/redis.ts.html +8 -8
  302. package/coverage/lcov-report/src/integrations/rest.ts.html +43 -52
  303. package/coverage/lcov-report/src/integrations/s3.ts.html +17 -17
  304. package/coverage/lcov-report/src/integrations/snowflake.ts.html +15 -15
  305. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  306. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +310 -0
  307. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +199 -0
  308. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +349 -0
  309. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +550 -0
  310. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +331 -0
  311. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +376 -0
  312. package/coverage/lcov-report/src/integrations/tests/index.html +230 -5
  313. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +253 -0
  314. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +1087 -0
  315. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +484 -0
  316. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +373 -0
  317. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +328 -0
  318. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +337 -0
  319. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +1870 -0
  320. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +421 -0
  321. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +1753 -0
  322. package/coverage/lcov-report/src/integrations/utils.ts.html +54 -54
  323. package/coverage/lcov-report/src/middleware/appInfo.ts.html +11 -11
  324. package/coverage/lcov-report/src/middleware/authorized.ts.html +49 -37
  325. package/coverage/lcov-report/src/middleware/builder.ts.html +26 -26
  326. package/coverage/lcov-report/src/middleware/currentapp.ts.html +60 -57
  327. package/coverage/lcov-report/src/middleware/index.html +44 -44
  328. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
  329. package/coverage/lcov-report/src/middleware/publicApi.ts.html +9 -9
  330. package/coverage/lcov-report/src/middleware/resourceId.ts.html +23 -23
  331. package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
  332. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +574 -0
  333. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +814 -0
  334. package/coverage/lcov-report/src/middleware/tests/index.html +161 -0
  335. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +397 -0
  336. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +214 -0
  337. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  338. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +6 -6
  339. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +7 -7
  340. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +7 -7
  341. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
  342. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +8 -8
  343. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +13 -13
  344. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +7 -7
  345. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +7 -7
  346. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +8 -8
  347. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +21 -21
  348. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +17 -14
  349. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
  350. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +9 -9
  351. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +13 -13
  352. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +23 -23
  353. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
  354. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +7 -7
  355. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +14 -14
  356. package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
  357. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +8 -8
  358. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +11 -11
  359. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +163 -0
  360. package/coverage/lcov-report/src/migrations/functions/tests/index.html +161 -0
  361. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +163 -0
  362. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +517 -0
  363. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +190 -0
  364. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
  365. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +3 -3
  366. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +6 -6
  367. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +8 -8
  368. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -7
  369. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +131 -0
  370. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +190 -0
  371. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +244 -0
  372. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
  373. package/coverage/lcov-report/src/migrations/index.html +15 -15
  374. package/coverage/lcov-report/src/migrations/index.ts.html +43 -43
  375. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
  376. package/coverage/lcov-report/src/migrations/tests/index.html +26 -11
  377. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +535 -0
  378. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
  379. package/coverage/lcov-report/src/sdk/app/applications/index.html +20 -20
  380. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +6 -6
  381. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
  382. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +15 -15
  383. package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
  384. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +5 -5
  385. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +14 -14
  386. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +5 -5
  387. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +30 -30
  388. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +45 -57
  389. package/coverage/lcov-report/src/sdk/app/backups/index.html +42 -42
  390. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +7 -7
  391. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
  392. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
  393. package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
  394. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
  395. package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
  396. package/coverage/lcov-report/src/{utilities/statusCodes.ts.html → sdk/app/queries/index.ts.html} +22 -28
  397. package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
  398. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +8 -8
  399. package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
  400. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +6 -6
  401. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  402. package/coverage/lcov-report/src/sdk/app/tables/index.html +15 -15
  403. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +30 -21
  404. package/coverage/lcov-report/src/sdk/index.html +7 -7
  405. package/coverage/lcov-report/src/sdk/index.ts.html +24 -12
  406. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +313 -0
  407. package/coverage/lcov-report/src/sdk/tests/index.html +116 -0
  408. package/coverage/lcov-report/src/sdk/users/index.html +10 -10
  409. package/coverage/lcov-report/src/sdk/users/index.ts.html +5 -5
  410. package/coverage/lcov-report/src/sdk/users/utils.ts.html +35 -35
  411. package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
  412. package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
  413. package/coverage/lcov-report/src/startup.ts.html +48 -63
  414. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +421 -187
  415. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +20 -20
  416. package/coverage/lcov-report/src/tests/utilities/index.html +35 -35
  417. package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
  418. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +236 -47
  419. package/coverage/lcov-report/src/threads/automation.ts.html +212 -251
  420. package/coverage/lcov-report/src/threads/index.html +46 -46
  421. package/coverage/lcov-report/src/threads/index.ts.html +39 -39
  422. package/coverage/lcov-report/src/threads/query.ts.html +140 -101
  423. package/coverage/lcov-report/src/threads/utils.ts.html +29 -29
  424. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
  425. package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
  426. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
  427. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +20 -20
  428. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
  429. package/coverage/lcov-report/src/utilities/fileSystem/index.html +88 -28
  430. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
  431. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
  432. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
  433. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
  434. package/coverage/lcov-report/src/utilities/global.ts.html +60 -60
  435. package/coverage/lcov-report/src/utilities/index.html +102 -117
  436. package/coverage/lcov-report/src/utilities/index.ts.html +47 -179
  437. package/coverage/lcov-report/src/utilities/redis.ts.html +38 -38
  438. package/coverage/lcov-report/src/utilities/{plugins.ts.html → retry.ts.html} +31 -43
  439. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  440. package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
  441. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +34 -34
  442. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +72 -45
  443. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +9 -9
  444. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +116 -0
  445. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +256 -0
  446. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +52 -52
  447. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
  448. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +33 -33
  449. package/coverage/lcov-report/src/utilities/security.ts.html +30 -30
  450. package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
  451. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +37 -37
  452. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
  453. package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
  454. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +92 -65
  455. package/coverage/lcov-report/src/watch.ts.html +20 -20
  456. package/coverage/lcov-report/src/websocket.ts.html +15 -15
  457. package/coverage/lcov.info +24966 -17056
  458. package/dist/api/controllers/application.js +120 -109
  459. package/dist/api/controllers/cloud.js +6 -2
  460. package/dist/api/controllers/datasource.js +24 -15
  461. package/dist/api/controllers/deploy/index.js +43 -60
  462. package/dist/api/controllers/plugin/index.js +6 -6
  463. package/dist/api/controllers/public/applications.js +22 -1
  464. package/dist/api/controllers/query/index.js +23 -13
  465. package/dist/api/controllers/row/ExternalRequest.js +12 -4
  466. package/dist/api/controllers/row/external.js +20 -13
  467. package/dist/api/controllers/row/internal.js +52 -27
  468. package/dist/api/controllers/row/staticFormula.js +1 -1
  469. package/dist/api/controllers/row/utils.js +35 -3
  470. package/dist/api/controllers/static/index.js +47 -47
  471. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  472. package/dist/api/controllers/table/external.js +16 -35
  473. package/dist/api/controllers/table/index.js +44 -15
  474. package/dist/api/controllers/table/internal.js +6 -7
  475. package/dist/api/controllers/table/utils.js +9 -9
  476. package/dist/api/controllers/user.js +14 -6
  477. package/dist/api/controllers/view/exporters.js +22 -6
  478. package/dist/api/controllers/view/index.js +23 -58
  479. package/dist/api/controllers/view/viewBuilder.js +15 -2
  480. package/dist/api/controllers/webhook.js +45 -43
  481. package/dist/api/routes/analytics.js +2 -1
  482. package/dist/api/routes/apikeys.js +2 -1
  483. package/dist/api/routes/application.js +5 -1
  484. package/dist/api/routes/auth.js +2 -1
  485. package/dist/api/routes/automation.js +2 -1
  486. package/dist/api/routes/backup.js +2 -1
  487. package/dist/api/routes/cloud.js +2 -1
  488. package/dist/api/routes/component.js +2 -1
  489. package/dist/api/routes/datasource.js +2 -1
  490. package/dist/api/routes/deploy.js +3 -3
  491. package/dist/api/routes/dev.js +2 -1
  492. package/dist/api/routes/index.js +2 -0
  493. package/dist/api/routes/integration.js +2 -1
  494. package/dist/api/routes/layout.js +2 -1
  495. package/dist/api/routes/metadata.js +2 -1
  496. package/dist/api/routes/migrations.js +2 -1
  497. package/dist/api/routes/permission.js +2 -1
  498. package/dist/api/routes/public/applications.js +37 -0
  499. package/dist/api/routes/public/middleware/mapper.js +3 -0
  500. package/dist/api/routes/query.js +2 -1
  501. package/dist/api/routes/role.js +2 -1
  502. package/dist/api/routes/routing.js +2 -1
  503. package/dist/api/routes/row.js +2 -2
  504. package/dist/api/routes/screen.js +2 -1
  505. package/dist/api/routes/script.js +2 -1
  506. package/dist/api/routes/static.js +6 -5
  507. package/dist/api/routes/table.js +8 -38
  508. package/dist/api/routes/templates.js +2 -1
  509. package/dist/api/routes/user.js +2 -1
  510. package/dist/api/routes/utils/validators.js +1 -1
  511. package/dist/api/routes/view.js +2 -1
  512. package/dist/api/routes/webhook.js +2 -1
  513. package/dist/app.js +10 -8
  514. package/dist/automations/automationUtils.js +26 -1
  515. package/dist/automations/logging/index.js +5 -25
  516. package/dist/automations/triggers.js +1 -0
  517. package/dist/db/index.js +5 -2
  518. package/dist/db/linkedRows/LinkController.js +2 -1
  519. package/dist/db/linkedRows/LinkDocument.js +2 -1
  520. package/dist/db/newid.js +4 -2
  521. package/dist/definitions/datasource.js +0 -6
  522. package/dist/environment.js +7 -2
  523. package/dist/events/AutomationEmitter.js +2 -1
  524. package/dist/events/BudibaseEmitter.js +2 -1
  525. package/dist/events/index.js +2 -1
  526. package/dist/index.js +2 -2
  527. package/dist/integrations/base/query.js +7 -2
  528. package/dist/integrations/base/sqlTable.js +14 -14
  529. package/dist/integrations/couchdb.js +34 -8
  530. package/dist/integrations/dynamodb.js +8 -5
  531. package/dist/integrations/elasticsearch.js +7 -3
  532. package/dist/integrations/googlesheets.js +1 -1
  533. package/dist/integrations/index.js +6 -7
  534. package/dist/integrations/mongodb.js +311 -271
  535. package/dist/integrations/mysql.js +2 -2
  536. package/dist/integrations/queries/sql.js +73 -100
  537. package/dist/integrations/rest.js +16 -18
  538. package/dist/middleware/authorized.js +2 -1
  539. package/dist/middleware/builder.js +4 -2
  540. package/dist/middleware/currentapp.js +6 -3
  541. package/dist/middleware/publicApi.js +4 -2
  542. package/dist/middleware/selfhost.js +4 -1
  543. package/dist/migrations/functions/backfill/global/configs.js +4 -4
  544. package/dist/package.json +14 -8
  545. package/dist/sdk/app/backups/imports.js +2 -6
  546. package/dist/sdk/app/datasources/datasources.js +147 -0
  547. package/dist/sdk/app/datasources/index.js +27 -0
  548. package/dist/sdk/app/queries/index.js +27 -0
  549. package/dist/sdk/app/queries/queries.js +60 -0
  550. package/dist/sdk/app/tables/index.js +6 -2
  551. package/dist/sdk/index.js +4 -0
  552. package/dist/sdk/utils/index.js +29 -0
  553. package/dist/startup.js +17 -17
  554. package/dist/threads/automation.js +22 -35
  555. package/dist/threads/index.js +4 -4
  556. package/dist/threads/query.js +27 -13
  557. package/dist/tsconfig.build.tsbuildinfo +1 -1
  558. package/dist/utilities/fileSystem/app.js +97 -0
  559. package/dist/utilities/fileSystem/clientLibrary.js +3 -3
  560. package/dist/utilities/fileSystem/filesystem.js +184 -0
  561. package/dist/utilities/fileSystem/index.js +18 -342
  562. package/dist/utilities/fileSystem/plugin.js +66 -0
  563. package/dist/utilities/fileSystem/template.js +47 -0
  564. package/dist/utilities/index.js +1 -44
  565. package/dist/utilities/retry.js +30 -0
  566. package/dist/utilities/rowProcessor/index.js +12 -4
  567. package/dist/utilities/schema.js +108 -0
  568. package/dist/utilities/scriptRunner.js +2 -1
  569. package/dist/utilities/statusCodes.js +2 -1
  570. package/dist/utilities/workerRequests.js +2 -0
  571. package/dist/watch.js +2 -25
  572. package/jest-testcontainers-config.js +8 -0
  573. package/jest.config.ts +33 -13
  574. package/package.json +15 -9
  575. package/scripts/dev/manage.js +3 -2
  576. package/specs/openapi.json +84 -0
  577. package/specs/openapi.yaml +53 -0
  578. package/specs/resources/application.js +19 -0
  579. package/src/api/controllers/application.ts +142 -110
  580. package/src/api/controllers/auth.ts +2 -2
  581. package/src/api/controllers/cloud.ts +10 -6
  582. package/src/api/controllers/datasource.ts +33 -25
  583. package/src/api/controllers/deploy/Deployment.ts +1 -0
  584. package/src/api/controllers/deploy/index.ts +40 -58
  585. package/src/api/controllers/plugin/index.ts +14 -9
  586. package/src/api/controllers/public/applications.ts +17 -0
  587. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  588. package/src/api/controllers/query/index.ts +49 -41
  589. package/src/api/controllers/row/ExternalRequest.ts +8 -3
  590. package/src/api/controllers/row/external.ts +24 -14
  591. package/src/api/controllers/row/internal.ts +66 -41
  592. package/src/api/controllers/row/staticFormula.ts +5 -2
  593. package/src/api/controllers/row/utils.ts +42 -3
  594. package/src/api/controllers/static/index.ts +22 -27
  595. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  596. package/src/api/controllers/table/external.ts +18 -16
  597. package/src/api/controllers/table/index.ts +46 -17
  598. package/src/api/controllers/table/internal.ts +6 -7
  599. package/src/api/controllers/table/utils.ts +12 -13
  600. package/src/api/controllers/user.ts +21 -13
  601. package/src/api/controllers/view/exporters.ts +20 -5
  602. package/src/api/controllers/view/index.ts +30 -42
  603. package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
  604. package/src/api/controllers/view/viewBuilder.ts +1 -1
  605. package/src/api/controllers/webhook.ts +48 -46
  606. package/src/api/routes/analytics.ts +1 -1
  607. package/src/api/routes/apikeys.ts +1 -1
  608. package/src/api/routes/application.ts +12 -1
  609. package/src/api/routes/auth.ts +1 -1
  610. package/src/api/routes/automation.ts +1 -1
  611. package/src/api/routes/backup.ts +1 -1
  612. package/src/api/routes/cloud.ts +1 -1
  613. package/src/api/routes/component.ts +1 -1
  614. package/src/api/routes/datasource.ts +1 -1
  615. package/src/api/routes/deploy.ts +1 -2
  616. package/src/api/routes/dev.ts +1 -1
  617. package/src/api/routes/index.ts +6 -3
  618. package/src/api/routes/integration.ts +1 -1
  619. package/src/api/routes/layout.ts +1 -1
  620. package/src/api/routes/metadata.ts +1 -1
  621. package/src/api/routes/migrations.ts +1 -1
  622. package/src/api/routes/permission.ts +1 -1
  623. package/src/api/routes/public/applications.ts +44 -0
  624. package/src/api/routes/public/middleware/mapper.ts +4 -0
  625. package/src/api/routes/query.ts +1 -1
  626. package/src/api/routes/role.ts +1 -1
  627. package/src/api/routes/routing.ts +1 -1
  628. package/src/api/routes/row.ts +1 -1
  629. package/src/api/routes/screen.ts +1 -1
  630. package/src/api/routes/script.ts +1 -1
  631. package/src/api/routes/static.ts +2 -2
  632. package/src/api/routes/table.ts +16 -39
  633. package/src/api/routes/templates.ts +1 -1
  634. package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +1 -1
  635. package/src/api/routes/tests/analytics.spec.js +4 -1
  636. package/src/api/routes/tests/apikeys.spec.js +1 -1
  637. package/src/api/routes/tests/{application.spec.js → application.spec.ts} +112 -22
  638. package/src/api/routes/tests/auth.spec.js +2 -2
  639. package/src/api/routes/tests/automation.spec.js +5 -1
  640. package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -15
  641. package/src/api/routes/tests/cloud.seq.spec.ts +59 -0
  642. package/src/api/routes/tests/component.spec.js +1 -1
  643. package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
  644. package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
  645. package/src/api/routes/tests/data/export-test.tar.gz +0 -0
  646. package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +76 -17
  647. package/src/api/routes/tests/dev.spec.js +1 -1
  648. package/src/api/routes/tests/integration.spec.js +1 -1
  649. package/src/api/routes/tests/layout.spec.js +1 -1
  650. package/src/api/routes/tests/metadata.spec.js +1 -1
  651. package/src/api/routes/tests/misc.spec.js +5 -11
  652. package/src/api/routes/tests/permissions.spec.js +5 -2
  653. package/src/api/routes/tests/plugin.spec.ts +179 -0
  654. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +21 -1
  655. package/src/api/routes/tests/role.spec.js +6 -1
  656. package/src/api/routes/tests/routing.spec.js +2 -3
  657. package/src/api/routes/tests/row.spec.js +15 -5
  658. package/src/api/routes/tests/screen.spec.js +1 -1
  659. package/src/api/routes/tests/static.spec.js +4 -18
  660. package/src/api/routes/tests/table.spec.js +17 -33
  661. package/src/api/routes/tests/templates.spec.js +1 -1
  662. package/src/api/routes/tests/user.spec.js +108 -0
  663. package/src/api/routes/tests/utilities/TestFunctions.ts +26 -3
  664. package/src/api/routes/tests/utilities/index.ts +7 -5
  665. package/src/api/routes/tests/view.spec.js +4 -1
  666. package/src/api/routes/tests/webhook.spec.js +12 -3
  667. package/src/api/routes/user.ts +1 -1
  668. package/src/api/routes/utils/validators.ts +1 -1
  669. package/src/api/routes/view.ts +1 -1
  670. package/src/api/routes/webhook.ts +1 -1
  671. package/src/app.ts +7 -4
  672. package/src/automations/automationUtils.ts +24 -0
  673. package/src/automations/logging/index.ts +1 -1
  674. package/src/automations/tests/automation.spec.js +4 -4
  675. package/src/automations/tests/bash.spec.js +34 -0
  676. package/src/automations/tests/discord.spec.js +27 -0
  677. package/src/automations/tests/executeQuery.spec.js +48 -0
  678. package/src/automations/tests/executeScript.spec.js +48 -0
  679. package/src/automations/tests/loop.spec.ts +45 -0
  680. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  681. package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
  682. package/src/automations/tests/serverLog.spec.js +22 -0
  683. package/src/automations/tests/updateRow.spec.js +1 -1
  684. package/src/automations/tests/utilities/index.ts +2 -2
  685. package/src/automations/tests/zapier.spec.js +27 -0
  686. package/src/automations/triggers.ts +6 -1
  687. package/src/automations/unitTests/automationUtils.spec.ts +65 -0
  688. package/src/db/index.ts +1 -1
  689. package/src/db/linkedRows/LinkController.ts +1 -1
  690. package/src/db/linkedRows/LinkDocument.ts +1 -1
  691. package/src/db/newid.ts +1 -1
  692. package/src/db/tests/linkController.spec.js +5 -2
  693. package/src/db/tests/linkTests.spec.js +1 -1
  694. package/src/definitions/automations.ts +1 -0
  695. package/src/definitions/datasource.ts +0 -41
  696. package/src/definitions/openapi.ts +10 -0
  697. package/src/environment.ts +6 -2
  698. package/src/events/AutomationEmitter.ts +1 -1
  699. package/src/events/BudibaseEmitter.ts +1 -1
  700. package/src/events/index.ts +1 -1
  701. package/src/index.ts +1 -1
  702. package/src/integrations/base/query.ts +3 -1
  703. package/src/integrations/base/sqlTable.ts +1 -1
  704. package/src/integrations/couchdb.ts +40 -14
  705. package/src/integrations/dynamodb.ts +3 -3
  706. package/src/integrations/elasticsearch.ts +8 -4
  707. package/src/integrations/googlesheets.ts +1 -1
  708. package/src/integrations/index.ts +5 -9
  709. package/src/integrations/mongodb.ts +315 -271
  710. package/src/integrations/mysql.ts +1 -1
  711. package/src/integrations/queries/sql.ts +5 -50
  712. package/src/integrations/rest.ts +16 -19
  713. package/src/integrations/tests/couchdb.spec.ts +33 -21
  714. package/src/integrations/tests/rest.spec.ts +19 -15
  715. package/src/middleware/authorized.ts +5 -1
  716. package/src/middleware/builder.ts +1 -1
  717. package/src/middleware/currentapp.ts +4 -3
  718. package/src/middleware/publicApi.ts +1 -1
  719. package/src/middleware/selfhost.ts +1 -1
  720. package/src/middleware/tests/authorized.spec.js +1 -1
  721. package/src/middleware/tests/currentapp.spec.js +1 -1
  722. package/src/middleware/tests/selfhost.spec.js +1 -1
  723. package/src/migrations/functions/backfill/global/configs.ts +5 -4
  724. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  725. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  726. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  727. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
  728. package/src/migrations/tests/index.spec.ts +3 -2
  729. package/src/sdk/app/backups/imports.ts +2 -6
  730. package/src/sdk/app/datasources/datasources.ts +136 -0
  731. package/src/sdk/app/datasources/index.ts +5 -0
  732. package/src/sdk/app/queries/index.ts +5 -0
  733. package/src/sdk/app/queries/queries.ts +50 -0
  734. package/src/sdk/app/tables/index.ts +6 -3
  735. package/src/sdk/index.ts +4 -0
  736. package/src/sdk/tests/attachments.spec.ts +1 -4
  737. package/src/sdk/utils/index.ts +16 -0
  738. package/src/startup.ts +3 -8
  739. package/src/tests/jestEnv.ts +9 -0
  740. package/src/tests/jestSetup.ts +8 -20
  741. package/src/tests/utilities/TestConfiguration.ts +127 -49
  742. package/src/tests/utilities/structures.ts +65 -2
  743. package/src/threads/automation.ts +22 -35
  744. package/src/threads/definitions.ts +3 -0
  745. package/src/threads/index.ts +1 -1
  746. package/src/threads/query.ts +28 -15
  747. package/src/utilities/fileSystem/app.ts +86 -0
  748. package/src/utilities/fileSystem/clientLibrary.ts +1 -1
  749. package/src/utilities/fileSystem/filesystem.ts +172 -0
  750. package/src/utilities/fileSystem/index.ts +5 -348
  751. package/src/utilities/fileSystem/plugin.ts +64 -0
  752. package/src/utilities/fileSystem/template.ts +36 -0
  753. package/src/utilities/index.ts +1 -45
  754. package/src/utilities/retry.ts +18 -0
  755. package/src/utilities/rowProcessor/index.ts +17 -8
  756. package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
  757. package/src/utilities/schema.ts +141 -0
  758. package/src/utilities/scriptRunner.ts +1 -1
  759. package/src/utilities/statusCodes.ts +1 -1
  760. package/src/utilities/workerRequests.ts +10 -1
  761. package/src/watch.ts +1 -1
  762. package/tsconfig.build.json +2 -0
  763. package/tsconfig.json +2 -1
  764. package/builder/assets/index.96b9ffed.css +0 -6
  765. package/builder/assets/index.fae8f9eb.js +0 -1024
  766. package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
  767. package/dist/api/routes/tests/utilities/index.js +0 -131
  768. package/dist/automations/tests/utilities/index.js +0 -81
  769. package/dist/tests/utilities/TestConfiguration.js +0 -562
  770. package/dist/tests/utilities/controllers.js +0 -40
  771. package/dist/tests/utilities/structures.js +0 -168
  772. package/dist/utilities/csvParser.js +0 -152
  773. package/dist/utilities/plugins.js +0 -26
  774. package/src/api/routes/tests/deployment.spec.ts +0 -25
  775. package/src/automations/unitTests/automationUtils.spec.js +0 -17
  776. package/src/utilities/csvParser.ts +0 -161
  777. package/src/utilities/plugins.ts +0 -22
  778. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  779. package/src/utilities/tests/csvParser.spec.js +0 -112
@@ -23,23 +23,23 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">59.74% </span>
26
+ <span class="strong">60% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>46/77</span>
28
+ <span class='fraction'>45/75</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">55.55% </span>
33
+ <span class="strong">41.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>20/36</span>
35
+ <span class='fraction'>5/12</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">76.47% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>10/15</span>
42
+ <span class='fraction'>13/17</span>
43
43
  </div>
44
44
 
45
45
 
@@ -236,22 +236,22 @@
236
236
  <a name='L171'></a><a href='#L171'>171</a>
237
237
  <a name='L172'></a><a href='#L172'>172</a>
238
238
  <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">50x</span>
240
- <span class="cline-any cline-yes">50x</span>
241
- <span class="cline-any cline-yes">50x</span>
242
- <span class="cline-any cline-yes">50x</span>
243
- <span class="cline-any cline-yes">50x</span>
239
+ <a name='L174'></a><a href='#L174'>174</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">59x</span>
240
+ <span class="cline-any cline-yes">59x</span>
241
+ <span class="cline-any cline-yes">59x</span>
242
+ <span class="cline-any cline-yes">59x</span>
244
243
  <span class="cline-any cline-neutral">&nbsp;</span>
245
244
  <span class="cline-any cline-neutral">&nbsp;</span>
246
245
  <span class="cline-any cline-neutral">&nbsp;</span>
247
246
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-yes">50x</span>
249
- <span class="cline-any cline-yes">50x</span>
250
- <span class="cline-any cline-yes">50x</span>
251
- <span class="cline-any cline-yes">50x</span>
252
- <span class="cline-any cline-yes">50x</span>
253
- <span class="cline-any cline-yes">50x</span>
254
- <span class="cline-any cline-yes">50x</span>
247
+ <span class="cline-any cline-yes">59x</span>
248
+ <span class="cline-any cline-yes">59x</span>
249
+ <span class="cline-any cline-yes">59x</span>
250
+ <span class="cline-any cline-yes">59x</span>
251
+ <span class="cline-any cline-yes">59x</span>
252
+ <span class="cline-any cline-yes">59x</span>
253
+ <span class="cline-any cline-yes">59x</span>
254
+ <span class="cline-any cline-yes">59x</span>
255
255
  <span class="cline-any cline-neutral">&nbsp;</span>
256
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
257
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -282,7 +282,7 @@
282
282
  <span class="cline-any cline-neutral">&nbsp;</span>
283
283
  <span class="cline-any cline-neutral">&nbsp;</span>
284
284
  <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-yes">50x</span>
285
+ <span class="cline-any cline-yes">59x</span>
286
286
  <span class="cline-any cline-yes">1x</span>
287
287
  <span class="cline-any cline-neutral">&nbsp;</span>
288
288
  <span class="cline-any cline-yes">1x</span>
@@ -319,7 +319,7 @@
319
319
  <span class="cline-any cline-neutral">&nbsp;</span>
320
320
  <span class="cline-any cline-neutral">&nbsp;</span>
321
321
  <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">50x</span>
322
+ <span class="cline-any cline-yes">59x</span>
323
323
  <span class="cline-any cline-yes">1x</span>
324
324
  <span class="cline-any cline-yes">1x</span>
325
325
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -371,7 +371,7 @@
371
371
  <span class="cline-any cline-neutral">&nbsp;</span>
372
372
  <span class="cline-any cline-neutral">&nbsp;</span>
373
373
  <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-yes">50x</span>
374
+ <span class="cline-any cline-yes">59x</span>
375
375
  <span class="cline-any cline-neutral">&nbsp;</span>
376
376
  <span class="cline-any cline-neutral">&nbsp;</span>
377
377
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -405,7 +405,7 @@
405
405
  <span class="cline-any cline-neutral">&nbsp;</span>
406
406
  <span class="cline-any cline-neutral">&nbsp;</span>
407
407
  <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-yes">50x</span>
408
+ <span class="cline-any cline-yes">59x</span>
409
409
  <span class="cline-any cline-yes">1x</span>
410
410
  <span class="cline-any cline-yes">1x</span>
411
411
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -458,10 +458,10 @@ function tarFilesToTmp(tmpDir: string, files: string[]) {
458
458
  export async function exportDB(dbName: string, opts: ExportOpts = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
459
459
  return dbCore.doWithDB(dbName, async (db: any) =&gt; {
460
460
  // Write the dump to file if required
461
- if (opts<span class="branch-0 cbranch-no" title="branch not covered" >?.e</span>xportPath) {
462
- const path = opts<span class="branch-0 cbranch-no" title="branch not covered" >?.e</span>xportPath
461
+ if (opts?.exportPath) {
462
+ const path = opts?.exportPath
463
463
  const writeStream = fs.createWriteStream(path)
464
- await db.dump(writeStream, { filter: opts<span class="branch-0 cbranch-no" title="branch not covered" >?.f</span>ilter })
464
+ await db.dump(writeStream, { filter: opts?.filter })
465
465
  return path
466
466
  } else <span class="missing-if-branch" title="else path not taken" >E</span>{
467
467
  // Stringify the dump in memory if required
@@ -520,11 +520,11 @@ export async function exportApp(appId: string, config?: ExportOpts) {
520
520
  const dbPath = join(tmpPath, DB_EXPORT_FILE)
521
521
  await exportDB(appId, {
522
522
  ...config,
523
- filter: defineFilter(config<span class="branch-0 cbranch-no" title="branch not covered" >?.e</span>xcludeRows),
523
+ filter: defineFilter(config?.excludeRows),
524
524
  exportPath: dbPath,
525
525
  })
526
526
  // if tar requested, return where the tarball is
527
- if (config<span class="branch-0 cbranch-no" title="branch not covered" >?.t</span>ar) {
527
+ if (config?.tar) {
528
528
  // now the tmpPath contains both the DB export and attachments, tar this
529
529
  const tarPath = tarFilesToTmp(tmpPath, fs.readdirSync(tmpPath))
530
530
  // cleanup the tmp export files as tarball returned
@@ -552,7 +552,7 @@ export async function <span class="fstat-no" title="function not covered" >expor
552
552
  <span class="cstat-no" title="statement not covered" > fs.mkdirSync(tmpPath)</span>
553
553
  let exportPromises: Promise&lt;void&gt;[] = <span class="cstat-no" title="statement not covered" >[]</span>
554
554
  // export each app to a directory, then move it into the complete export
555
- const exportAndMove = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async (a</span>ppId: string, appName: string) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span></span>
555
+ const exportAndMove = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async (a</span>ppId: string, appName: string) =&gt; {</span>
556
556
  const path = <span class="cstat-no" title="statement not covered" >await exportApp(appId)</span>
557
557
  <span class="cstat-no" title="statement not covered" > await fs.promises.rename(path, join(tmpPath, appName))</span>
558
558
  }
@@ -565,7 +565,7 @@ export async function <span class="fstat-no" title="function not covered" >expor
565
565
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (globalDbContents) {</span>
566
566
  <span class="cstat-no" title="statement not covered" > fs.writeFileSync(join(tmpPath, GLOBAL_DB_EXPORT_FILE), globalDbContents)</span>
567
567
  }
568
- const appNames = <span class="cstat-no" title="statement not covered" >appMetadata.map(<span class="fstat-no" title="function not covered" >metadata </span>=&gt; <span class="cstat-no" title="statement not covered" >metadata.name)</span></span>
568
+ const appNames = <span class="cstat-no" title="statement not covered" >appMetadata.map(<span class="fstat-no" title="function not covered" >metadata =&gt; <span class="cstat-no" title="statement not covered" >m</span>etadata.name)</span></span>
569
569
  const tarPath = <span class="cstat-no" title="statement not covered" >tarFilesToTmp(tmpPath, [...appNames, GLOBAL_DB_EXPORT_FILE])</span>
570
570
  // clear up the tmp path now tarball generated
571
571
  <span class="cstat-no" title="statement not covered" > fs.rmSync(tmpPath, { recursive: true, force: true })</span>
@@ -589,7 +589,7 @@ export async function streamExportApp(appId: string, excludeRows: boolean) {
589
589
  <div class='footer quiet pad2 space-top1 center small'>
590
590
  Code coverage generated by
591
591
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
592
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
592
+ at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
593
593
  </div>
594
594
  <script src="../../../../prettify.js"></script>
595
595
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">59.55% </span>
26
+ <span class="strong">66.66% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>53/89</span>
28
+ <span class='fraction'>58/87</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">52.5% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>21/40</span>
35
+ <span class='fraction'>12/24</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">58.33% </span>
40
+ <span class="strong">94.11% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/12</span>
42
+ <span class='fraction'>16/17</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">60.22% </span>
47
+ <span class="strong">66.27% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>53/88</span>
49
+ <span class='fraction'>57/86</span>
50
50
  </div>
51
51
 
52
52
 
@@ -248,27 +248,23 @@
248
248
  <a name='L183'></a><a href='#L183'>183</a>
249
249
  <a name='L184'></a><a href='#L184'>184</a>
250
250
  <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">50x</span>
251
+ <a name='L186'></a><a href='#L186'>186</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">59x</span>
256
252
  <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-yes">50x</span>
258
- <span class="cline-any cline-yes">50x</span>
259
- <span class="cline-any cline-yes">50x</span>
260
- <span class="cline-any cline-yes">50x</span>
261
- <span class="cline-any cline-yes">50x</span>
262
- <span class="cline-any cline-yes">50x</span>
263
- <span class="cline-any cline-yes">50x</span>
264
- <span class="cline-any cline-yes">50x</span>
265
- <span class="cline-any cline-yes">50x</span>
253
+ <span class="cline-any cline-yes">59x</span>
254
+ <span class="cline-any cline-yes">59x</span>
255
+ <span class="cline-any cline-yes">59x</span>
256
+ <span class="cline-any cline-yes">59x</span>
257
+ <span class="cline-any cline-yes">59x</span>
258
+ <span class="cline-any cline-yes">59x</span>
259
+ <span class="cline-any cline-yes">59x</span>
260
+ <span class="cline-any cline-yes">59x</span>
266
261
  <span class="cline-any cline-neutral">&nbsp;</span>
267
262
  <span class="cline-any cline-neutral">&nbsp;</span>
268
263
  <span class="cline-any cline-neutral">&nbsp;</span>
269
264
  <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-yes">50x</span>
271
- <span class="cline-any cline-yes">50x</span>
265
+ <span class="cline-any cline-yes">59x</span>
266
+ <span class="cline-any cline-yes">59x</span>
267
+ <span class="cline-any cline-yes">59x</span>
272
268
  <span class="cline-any cline-neutral">&nbsp;</span>
273
269
  <span class="cline-any cline-neutral">&nbsp;</span>
274
270
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -285,10 +281,6 @@
285
281
  <span class="cline-any cline-yes">30x</span>
286
282
  <span class="cline-any cline-neutral">&nbsp;</span>
287
283
  <span class="cline-any cline-yes">30x</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-yes">30x</span>
290
- <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-yes">30x</span>
292
284
  <span class="cline-any cline-yes">30x</span>
293
285
  <span class="cline-any cline-yes">30x</span>
294
286
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -297,7 +289,7 @@
297
289
  <span class="cline-any cline-neutral">&nbsp;</span>
298
290
  <span class="cline-any cline-neutral">&nbsp;</span>
299
291
  <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-yes">50x</span>
292
+ <span class="cline-any cline-yes">59x</span>
301
293
  <span class="cline-any cline-neutral">&nbsp;</span>
302
294
  <span class="cline-any cline-yes">3x</span>
303
295
  <span class="cline-any cline-yes">3x</span>
@@ -369,27 +361,27 @@
369
361
  <span class="cline-any cline-neutral">&nbsp;</span>
370
362
  <span class="cline-any cline-neutral">&nbsp;</span>
371
363
  <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-yes">50x</span>
373
- <span class="cline-any cline-no">&nbsp;</span>
374
- <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-yes">59x</span>
365
+ <span class="cline-any cline-yes">1x</span>
366
+ <span class="cline-any cline-yes">1x</span>
375
367
  <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-yes">1x</span>
377
369
  <span class="cline-any cline-neutral">&nbsp;</span>
378
370
  <span class="cline-any cline-neutral">&nbsp;</span>
379
371
  <span class="cline-any cline-neutral">&nbsp;</span>
380
372
  <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-yes">1x</span>
382
374
  <span class="cline-any cline-neutral">&nbsp;</span>
383
375
  <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-yes">50x</span>
385
- <span class="cline-any cline-no">&nbsp;</span>
376
+ <span class="cline-any cline-yes">59x</span>
377
+ <span class="cline-any cline-yes">1x</span>
386
378
  <span class="cline-any cline-neutral">&nbsp;</span>
387
379
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-yes">50x</span>
389
- <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-yes">59x</span>
381
+ <span class="cline-any cline-yes">3x</span>
390
382
  <span class="cline-any cline-neutral">&nbsp;</span>
391
383
  <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-yes">50x</span>
384
+ <span class="cline-any cline-yes">59x</span>
393
385
  <span class="cline-any cline-neutral">&nbsp;</span>
394
386
  <span class="cline-any cline-neutral">&nbsp;</span>
395
387
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -469,11 +461,7 @@ type TemplateType = {
469
461
  &nbsp;
470
462
  function rewriteAttachmentUrl(appId: string, attachment: RowAttachment) {
471
463
  // URL looks like: /prod-budi-app-assets/appId/attachments/file.csv
472
- const urlParts = attachment.url.split("/")
473
- // drop the first empty element
474
- urlParts.shift()
475
- // get the prefix
476
- const prefix = urlParts.shift()
464
+ const urlParts = attachment.key.split("/")
477
465
  // remove the app ID
478
466
  urlParts.shift()
479
467
  // add new app ID
@@ -482,7 +470,7 @@ function rewriteAttachmentUrl(appId: string, attachment: RowAttachment) {
482
470
  return {
483
471
  ...attachment,
484
472
  key,
485
- url: `/${prefix}/${key}`,
473
+ url: "", // calculated on retrieval using key
486
474
  }
487
475
  }
488
476
  &nbsp;
@@ -519,7 +507,7 @@ async function updateAutomations(prodAppId: string, db: Database) {
519
507
  include_docs: true,
520
508
  })
521
509
  )
522
- ).rows.map(<span class="fstat-no" title="function not covered" >row </span>=&gt; <span class="cstat-no" title="statement not covered" >row.doc)</span> as Automation[]
510
+ ).rows.map(<span class="fstat-no" title="function not covered" >row =&gt; <span class="cstat-no" title="statement not covered" >r</span>ow.doc)</span> as Automation[]
523
511
  const devAppId = dbCore.getDevAppID(prodAppId)
524
512
  let toSave: Automation[] = []
525
513
  for (let automation of automations) {
@@ -558,24 +546,24 @@ async function getTemplateStream(template: TemplateType) {
558
546
  }
559
547
  }
560
548
  &nbsp;
561
- export function <span class="fstat-no" title="function not covered" >untarFile(</span>file: { path: string }) {
562
- const tmpPath = <span class="cstat-no" title="statement not covered" >join(budibaseTempDir(), uuid())</span>
563
- <span class="cstat-no" title="statement not covered" > fs.mkdirSync(tmpPath)</span>
549
+ export function untarFile(file: { path: string }) {
550
+ const tmpPath = join(budibaseTempDir(), uuid())
551
+ fs.mkdirSync(tmpPath)
564
552
  // extract the tarball
565
- <span class="cstat-no" title="statement not covered" > tar.extract({</span>
553
+ tar.extract({
566
554
  sync: true,
567
555
  cwd: tmpPath,
568
556
  file: file.path,
569
557
  })
570
- <span class="cstat-no" title="statement not covered" > return tmpPath</span>
558
+ return tmpPath
571
559
  }
572
560
  &nbsp;
573
- export function <span class="fstat-no" title="function not covered" >getGlobalDBFile(</span>tmpPath: string) {
574
- <span class="cstat-no" title="statement not covered" > return fs.readFileSync(join(tmpPath, GLOBAL_DB_EXPORT_FILE), "utf8")</span>
561
+ export function getGlobalDBFile(tmpPath: string) {
562
+ return fs.readFileSync(join(tmpPath, GLOBAL_DB_EXPORT_FILE), "utf8")
575
563
  }
576
564
  &nbsp;
577
- export function <span class="fstat-no" title="function not covered" >getListOfAppsInMulti(</span>tmpPath: string) {
578
- <span class="cstat-no" title="statement not covered" > return fs.readdirSync(tmpPath).filter(<span class="fstat-no" title="function not covered" >dir </span>=&gt; <span class="cstat-no" title="statement not covered" >dir !== GLOBAL_DB_EXPORT_FILE)</span></span>
565
+ export function getListOfAppsInMulti(tmpPath: string) {
566
+ return fs.readdirSync(tmpPath).filter(dir =&gt; dir !== GLOBAL_DB_EXPORT_FILE)
579
567
  }
580
568
  &nbsp;
581
569
  export async function importApp(
@@ -585,7 +573,7 @@ export async function importApp(
585
573
  ) {
586
574
  let prodAppId = dbCore.getProdAppID(appId)
587
575
  let dbStream: any
588
- const isTar = template.file &amp;&amp; template<span class="branch-0 cbranch-no" title="branch not covered" >?.f</span>ile<span class="branch-0 cbranch-no" title="branch not covered" >?.t</span>ype<span class="branch-0 cbranch-no" title="branch not covered" >?.e</span>ndsWith("gzip")
576
+ const isTar = template.file &amp;&amp; template?.file?.type?.endsWith("gzip")
589
577
  const isDirectory =
590
578
  template.file &amp;&amp; fs.lstatSync(template.file.path).isDirectory()
591
579
  <span class="missing-if-branch" title="if path not taken" >I</span>if (template.file &amp;&amp; (isTar || isDirectory)) {
@@ -637,7 +625,7 @@ export async function importApp(
637
625
  <div class='footer quiet pad2 space-top1 center small'>
638
626
  Code coverage generated by
639
627
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
640
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
628
+ at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
641
629
  </div>
642
630
  <script src="../../../../prettify.js"></script>
643
631
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">54.14% </span>
26
+ <span class="strong">70.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>111/205</span>
28
+ <span class='fraction'>141/200</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">52.56% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>41/78</span>
35
+ <span class='fraction'>19/38</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">41.46% </span>
40
+ <span class="strong">90.19% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>17/41</span>
42
+ <span class='fraction'>46/51</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">54.54% </span>
47
+ <span class="strong">69.94% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>108/198</span>
49
+ <span class='fraction'>135/193</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,43 +84,43 @@
84
84
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="2" class="abs high">2/2</td>
87
+ <td data-value="4" class="abs high">4/4</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
89
  <td data-value="0" class="abs high">0/0</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
- <td data-value="0" class="abs high">0/0</td>
91
+ <td data-value="2" class="abs high">2/2</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
93
  <td data-value="2" class="abs high">2/2</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file medium" data-value="exports.ts"><a href="exports.ts.html">exports.ts</a></td>
98
- <td data-value="59.74" class="pic medium">
99
- <div class="chart"><div class="cover-fill" style="width: 59%"></div><div class="cover-empty" style="width: 41%"></div></div>
98
+ <td data-value="60" class="pic medium">
99
+ <div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
100
100
  </td>
101
- <td data-value="59.74" class="pct medium">59.74%</td>
102
- <td data-value="77" class="abs medium">46/77</td>
103
- <td data-value="55.55" class="pct medium">55.55%</td>
104
- <td data-value="36" class="abs medium">20/36</td>
105
- <td data-value="66.66" class="pct medium">66.66%</td>
106
- <td data-value="15" class="abs medium">10/15</td>
101
+ <td data-value="60" class="pct medium">60%</td>
102
+ <td data-value="75" class="abs medium">45/75</td>
103
+ <td data-value="41.66" class="pct low">41.66%</td>
104
+ <td data-value="12" class="abs low">5/12</td>
105
+ <td data-value="76.47" class="pct medium">76.47%</td>
106
+ <td data-value="17" class="abs medium">13/17</td>
107
107
  <td data-value="59.72" class="pct medium">59.72%</td>
108
108
  <td data-value="72" class="abs medium">43/72</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
112
  <td class="file medium" data-value="imports.ts"><a href="imports.ts.html">imports.ts</a></td>
113
- <td data-value="59.55" class="pic medium">
114
- <div class="chart"><div class="cover-fill" style="width: 59%"></div><div class="cover-empty" style="width: 41%"></div></div>
113
+ <td data-value="66.66" class="pic medium">
114
+ <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
115
115
  </td>
116
- <td data-value="59.55" class="pct medium">59.55%</td>
117
- <td data-value="89" class="abs medium">53/89</td>
118
- <td data-value="52.5" class="pct medium">52.5%</td>
119
- <td data-value="40" class="abs medium">21/40</td>
120
- <td data-value="58.33" class="pct medium">58.33%</td>
121
- <td data-value="12" class="abs medium">7/12</td>
122
- <td data-value="60.22" class="pct medium">60.22%</td>
123
- <td data-value="88" class="abs medium">53/88</td>
116
+ <td data-value="66.66" class="pct medium">66.66%</td>
117
+ <td data-value="87" class="abs medium">58/87</td>
118
+ <td data-value="50" class="pct medium">50%</td>
119
+ <td data-value="24" class="abs medium">12/24</td>
120
+ <td data-value="94.11" class="pct high">94.11%</td>
121
+ <td data-value="17" class="abs high">16/17</td>
122
+ <td data-value="66.27" class="pct medium">66.27%</td>
123
+ <td data-value="86" class="abs medium">57/86</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
@@ -129,28 +129,28 @@
129
129
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
130
130
  </td>
131
131
  <td data-value="100" class="pct high">100%</td>
132
- <td data-value="4" class="abs high">4/4</td>
132
+ <td data-value="5" class="abs high">5/5</td>
133
133
  <td data-value="100" class="pct high">100%</td>
134
134
  <td data-value="0" class="abs high">0/0</td>
135
135
  <td data-value="100" class="pct high">100%</td>
136
- <td data-value="0" class="abs high">0/0</td>
136
+ <td data-value="1" class="abs high">1/1</td>
137
137
  <td data-value="100" class="pct high">100%</td>
138
138
  <td data-value="4" class="abs high">4/4</td>
139
139
  </tr>
140
140
 
141
141
  <tr>
142
- <td class="file low" data-value="statistics.ts"><a href="statistics.ts.html">statistics.ts</a></td>
143
- <td data-value="18.18" class="pic low">
144
- <div class="chart"><div class="cover-fill" style="width: 18%"></div><div class="cover-empty" style="width: 82%"></div></div>
142
+ <td class="file high" data-value="statistics.ts"><a href="statistics.ts.html">statistics.ts</a></td>
143
+ <td data-value="100" class="pic high">
144
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
145
145
  </td>
146
- <td data-value="18.18" class="pct low">18.18%</td>
147
- <td data-value="33" class="abs low">6/33</td>
148
- <td data-value="0" class="pct low">0%</td>
149
- <td data-value="2" class="abs low">0/2</td>
150
- <td data-value="0" class="pct low">0%</td>
151
- <td data-value="14" class="abs low">0/14</td>
152
- <td data-value="18.75" class="pct low">18.75%</td>
153
- <td data-value="32" class="abs low">6/32</td>
146
+ <td data-value="100" class="pct high">100%</td>
147
+ <td data-value="29" class="abs high">29/29</td>
148
+ <td data-value="100" class="pct high">100%</td>
149
+ <td data-value="2" class="abs high">2/2</td>
150
+ <td data-value="100" class="pct high">100%</td>
151
+ <td data-value="14" class="abs high">14/14</td>
152
+ <td data-value="100" class="pct high">100%</td>
153
+ <td data-value="29" class="abs high">29/29</td>
154
154
  </tr>
155
155
 
156
156
  </tbody>
@@ -161,7 +161,7 @@
161
161
  <div class='footer quiet pad2 space-top1 center small'>
162
162
  Code coverage generated by
163
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
164
+ at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
165
165
  </div>
166
166
  <script src="../../../../prettify.js"></script>
167
167
  <script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>4/4</span>
28
+ <span class='fraction'>5/5</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,7 +39,7 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>1/1</span>
43
43
  </div>
44
44
 
45
45
 
@@ -72,11 +72,11 @@
72
72
  <a name='L7'></a><a href='#L7'>7</a>
73
73
  <a name='L8'></a><a href='#L8'>8</a>
74
74
  <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">50x</span>
76
- <span class="cline-any cline-yes">50x</span>
77
- <span class="cline-any cline-yes">50x</span>
75
+ <a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">59x</span>
76
+ <span class="cline-any cline-yes">59x</span>
77
+ <span class="cline-any cline-yes">59x</span>
78
78
  <span class="cline-any cline-neutral">&nbsp;</span>
79
- <span class="cline-any cline-yes">50x</span>
79
+ <span class="cline-any cline-yes">59x</span>
80
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
81
  <span class="cline-any cline-neutral">&nbsp;</span>
82
82
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -97,7 +97,7 @@ export default {
97
97
  <div class='footer quiet pad2 space-top1 center small'>
98
98
  Code coverage generated by
99
99
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
100
- at Thu Feb 02 2023 11:56:48 GMT+0000 (Coordinated Universal Time)
100
+ at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
101
101
  </div>
102
102
  <script src="../../../../prettify.js"></script>
103
103
  <script>