@budibase/server 2.3.18-alpha.8 → 2.3.18

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 (477) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/index.4488f38d.css +6 -0
  3. package/builder/assets/{index.da67cdc2.js → index.527a5fcb.js} +415 -422
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +11774 -0
  6. package/coverage/coverage-final.json +284 -0
  7. package/coverage/lcov-report/base.css +224 -0
  8. package/coverage/lcov-report/block-navigation.js +87 -0
  9. package/coverage/lcov-report/favicon.png +0 -0
  10. package/coverage/lcov-report/index.html +1031 -0
  11. package/coverage/lcov-report/prettify.css +1 -0
  12. package/coverage/lcov-report/prettify.js +2 -0
  13. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  14. package/coverage/lcov-report/sorter.js +196 -0
  15. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +190 -0
  16. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +247 -0
  17. package/coverage/lcov-report/src/api/controllers/application.ts.html +1987 -0
  18. package/coverage/lcov-report/src/api/controllers/auth.ts.html +301 -0
  19. package/coverage/lcov-report/src/api/controllers/automation.ts.html +940 -0
  20. package/coverage/lcov-report/src/api/controllers/backup.ts.html +148 -0
  21. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +442 -0
  22. package/coverage/lcov-report/src/api/controllers/component.ts.html +259 -0
  23. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +1135 -0
  24. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +262 -0
  25. package/coverage/lcov-report/src/api/controllers/deploy/index.html +131 -0
  26. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +694 -0
  27. package/coverage/lcov-report/src/api/controllers/dev.ts.html +472 -0
  28. package/coverage/lcov-report/src/api/controllers/index.html +431 -0
  29. package/coverage/lcov-report/src/api/controllers/integration.ts.html +124 -0
  30. package/coverage/lcov-report/src/api/controllers/layout.ts.html +226 -0
  31. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +211 -0
  32. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +127 -0
  33. package/coverage/lcov-report/src/api/controllers/permission.ts.html +619 -0
  34. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +130 -0
  35. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +310 -0
  36. package/coverage/lcov-report/src/api/controllers/plugin/index.html +206 -0
  37. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +499 -0
  38. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +253 -0
  39. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +97 -0
  40. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +121 -0
  41. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +136 -0
  42. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +385 -0
  43. package/coverage/lcov-report/src/api/controllers/public/index.html +191 -0
  44. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +181 -0
  45. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +191 -0
  46. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +124 -0
  47. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +202 -0
  48. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +178 -0
  49. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +163 -0
  50. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +181 -0
  51. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +145 -0
  52. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +328 -0
  53. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +253 -0
  54. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +325 -0
  55. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +220 -0
  56. package/coverage/lcov-report/src/api/controllers/query/import/index.html +116 -0
  57. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +373 -0
  58. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +131 -0
  59. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +379 -0
  60. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +157 -0
  61. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +403 -0
  62. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +146 -0
  63. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +586 -0
  64. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +712 -0
  65. package/coverage/lcov-report/src/api/controllers/query/index.html +131 -0
  66. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +1000 -0
  67. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +235 -0
  68. package/coverage/lcov-report/src/api/controllers/role.ts.html +397 -0
  69. package/coverage/lcov-report/src/api/controllers/routing.ts.html +370 -0
  70. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +2305 -0
  71. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +931 -0
  72. package/coverage/lcov-report/src/api/controllers/row/index.html +206 -0
  73. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +541 -0
  74. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +1609 -0
  75. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1678 -0
  76. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +595 -0
  77. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +556 -0
  78. package/coverage/lcov-report/src/api/controllers/screen.ts.html +463 -0
  79. package/coverage/lcov-report/src/api/controllers/script.ts.html +121 -0
  80. package/coverage/lcov-report/src/api/controllers/static/index.html +116 -0
  81. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +679 -0
  82. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +649 -0
  83. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +1153 -0
  84. package/coverage/lcov-report/src/api/controllers/table/index.html +176 -0
  85. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +514 -0
  86. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +658 -0
  87. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1273 -0
  88. package/coverage/lcov-report/src/api/controllers/templates.ts.html +214 -0
  89. package/coverage/lcov-report/src/api/controllers/user.ts.html +634 -0
  90. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +214 -0
  91. package/coverage/lcov-report/src/api/controllers/view/index.html +161 -0
  92. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +661 -0
  93. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +580 -0
  94. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +694 -0
  95. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +385 -0
  96. package/coverage/lcov-report/src/api/index.html +116 -0
  97. package/coverage/lcov-report/src/api/index.ts.html +352 -0
  98. package/coverage/lcov-report/src/api/routes/analytics.ts.html +112 -0
  99. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +121 -0
  100. package/coverage/lcov-report/src/api/routes/application.ts.html +256 -0
  101. package/coverage/lcov-report/src/api/routes/auth.ts.html +109 -0
  102. package/coverage/lcov-report/src/api/routes/automation.ts.html +346 -0
  103. package/coverage/lcov-report/src/api/routes/backup.ts.html +127 -0
  104. package/coverage/lcov-report/src/api/routes/cloud.ts.html +139 -0
  105. package/coverage/lcov-report/src/api/routes/component.ts.html +127 -0
  106. package/coverage/lcov-report/src/api/routes/datasource.ts.html +265 -0
  107. package/coverage/lcov-report/src/api/routes/deploy.ts.html +145 -0
  108. package/coverage/lcov-report/src/api/routes/dev.ts.html +199 -0
  109. package/coverage/lcov-report/src/api/routes/index.html +551 -0
  110. package/coverage/lcov-report/src/api/routes/index.ts.html +298 -0
  111. package/coverage/lcov-report/src/api/routes/integration.ts.html +133 -0
  112. package/coverage/lcov-report/src/api/routes/layout.ts.html +133 -0
  113. package/coverage/lcov-report/src/api/routes/metadata.ts.html +199 -0
  114. package/coverage/lcov-report/src/api/routes/migrations.ts.html +127 -0
  115. package/coverage/lcov-report/src/api/routes/permission.ts.html +208 -0
  116. package/coverage/lcov-report/src/api/routes/plugin.ts.html +151 -0
  117. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +673 -0
  118. package/coverage/lcov-report/src/api/routes/public/index.html +191 -0
  119. package/coverage/lcov-report/src/api/routes/public/index.ts.html +493 -0
  120. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +116 -0
  121. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +340 -0
  122. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +313 -0
  123. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +598 -0
  124. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +586 -0
  125. package/coverage/lcov-report/src/api/routes/public/tests/index.html +116 -0
  126. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +169 -0
  127. package/coverage/lcov-report/src/api/routes/public/users.ts.html +511 -0
  128. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +238 -0
  129. package/coverage/lcov-report/src/api/routes/public/utils/index.html +116 -0
  130. package/coverage/lcov-report/src/api/routes/query.ts.html +268 -0
  131. package/coverage/lcov-report/src/api/routes/role.ts.html +157 -0
  132. package/coverage/lcov-report/src/api/routes/routing.ts.html +127 -0
  133. package/coverage/lcov-report/src/api/routes/row.ts.html +883 -0
  134. package/coverage/lcov-report/src/api/routes/screen.ts.html +154 -0
  135. package/coverage/lcov-report/src/api/routes/script.ts.html +115 -0
  136. package/coverage/lcov-report/src/api/routes/static.ts.html +280 -0
  137. package/coverage/lcov-report/src/api/routes/table.ts.html +595 -0
  138. package/coverage/lcov-report/src/api/routes/templates.ts.html +133 -0
  139. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +550 -0
  140. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +131 -0
  141. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +367 -0
  142. package/coverage/lcov-report/src/api/routes/user.ts.html +238 -0
  143. package/coverage/lcov-report/src/api/routes/utils/index.html +116 -0
  144. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +805 -0
  145. package/coverage/lcov-report/src/api/routes/view.ts.html +187 -0
  146. package/coverage/lcov-report/src/api/routes/webhook.ts.html +166 -0
  147. package/coverage/lcov-report/src/app.ts.html +424 -0
  148. package/coverage/lcov-report/src/automations/actions.ts.html +316 -0
  149. package/coverage/lcov-report/src/automations/automationUtils.ts.html +562 -0
  150. package/coverage/lcov-report/src/automations/bullboard.ts.html +199 -0
  151. package/coverage/lcov-report/src/automations/index.html +191 -0
  152. package/coverage/lcov-report/src/automations/index.ts.html +163 -0
  153. package/coverage/lcov-report/src/automations/logging/index.html +116 -0
  154. package/coverage/lcov-report/src/automations/logging/index.ts.html +199 -0
  155. package/coverage/lcov-report/src/automations/steps/bash.ts.html +319 -0
  156. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +382 -0
  157. package/coverage/lcov-report/src/automations/steps/delay.ts.html +217 -0
  158. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +349 -0
  159. package/coverage/lcov-report/src/automations/steps/discord.ts.html +397 -0
  160. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +370 -0
  161. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +325 -0
  162. package/coverage/lcov-report/src/automations/steps/filter.ts.html +394 -0
  163. package/coverage/lcov-report/src/automations/steps/index.html +371 -0
  164. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +409 -0
  165. package/coverage/lcov-report/src/automations/steps/loop.ts.html +241 -0
  166. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +499 -0
  167. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +664 -0
  168. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +355 -0
  169. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +256 -0
  170. package/coverage/lcov-report/src/automations/steps/slack.ts.html +340 -0
  171. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +439 -0
  172. package/coverage/lcov-report/src/automations/steps/utils.ts.html +223 -0
  173. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +403 -0
  174. package/coverage/lcov-report/src/automations/tests/utilities/index.html +116 -0
  175. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +265 -0
  176. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +196 -0
  177. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +193 -0
  178. package/coverage/lcov-report/src/automations/triggerInfo/index.html +206 -0
  179. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +130 -0
  180. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +196 -0
  181. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +220 -0
  182. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +220 -0
  183. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +208 -0
  184. package/coverage/lcov-report/src/automations/triggers.ts.html +553 -0
  185. package/coverage/lcov-report/src/automations/utils.ts.html +886 -0
  186. package/coverage/lcov-report/src/constants/index.html +146 -0
  187. package/coverage/lcov-report/src/constants/index.ts.html +697 -0
  188. package/coverage/lcov-report/src/constants/layouts.ts.html +526 -0
  189. package/coverage/lcov-report/src/constants/screens.ts.html +229 -0
  190. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +2059 -0
  191. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +541 -0
  192. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +427 -0
  193. package/coverage/lcov-report/src/db/defaultData/index.html +176 -0
  194. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +403 -0
  195. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +559 -0
  196. package/coverage/lcov-report/src/db/dynamoClient.ts.html +526 -0
  197. package/coverage/lcov-report/src/db/inMemoryView.ts.html +250 -0
  198. package/coverage/lcov-report/src/db/index.html +176 -0
  199. package/coverage/lcov-report/src/db/index.ts.html +133 -0
  200. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +1417 -0
  201. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +265 -0
  202. package/coverage/lcov-report/src/db/linkedRows/index.html +161 -0
  203. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +736 -0
  204. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +460 -0
  205. package/coverage/lcov-report/src/db/newid.ts.html +100 -0
  206. package/coverage/lcov-report/src/db/utils.ts.html +913 -0
  207. package/coverage/lcov-report/src/definitions/automations.ts.html +184 -0
  208. package/coverage/lcov-report/src/definitions/index.html +116 -0
  209. package/coverage/lcov-report/src/environment.ts.html +472 -0
  210. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +259 -0
  211. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +172 -0
  212. package/coverage/lcov-report/src/events/index.html +161 -0
  213. package/coverage/lcov-report/src/events/index.ts.html +100 -0
  214. package/coverage/lcov-report/src/events/utils.ts.html +319 -0
  215. package/coverage/lcov-report/src/index.html +191 -0
  216. package/coverage/lcov-report/src/index.ts.html +133 -0
  217. package/coverage/lcov-report/src/integrations/airtable.ts.html +529 -0
  218. package/coverage/lcov-report/src/integrations/arangodb.ts.html +415 -0
  219. package/coverage/lcov-report/src/integrations/base/index.html +161 -0
  220. package/coverage/lcov-report/src/integrations/base/query.ts.html +139 -0
  221. package/coverage/lcov-report/src/integrations/base/sql.ts.html +2017 -0
  222. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +691 -0
  223. package/coverage/lcov-report/src/integrations/base/utils.ts.html +121 -0
  224. package/coverage/lcov-report/src/integrations/couchdb.ts.html +484 -0
  225. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +745 -0
  226. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +646 -0
  227. package/coverage/lcov-report/src/integrations/firebase.ts.html +646 -0
  228. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1315 -0
  229. package/coverage/lcov-report/src/integrations/index.html +371 -0
  230. package/coverage/lcov-report/src/integrations/index.ts.html +460 -0
  231. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1012 -0
  232. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1999 -0
  233. package/coverage/lcov-report/src/integrations/mysql.ts.html +979 -0
  234. package/coverage/lcov-report/src/integrations/oracle.ts.html +1387 -0
  235. package/coverage/lcov-report/src/integrations/postgres.ts.html +1087 -0
  236. package/coverage/lcov-report/src/integrations/queries/index.html +116 -0
  237. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +328 -0
  238. package/coverage/lcov-report/src/integrations/redis.ts.html +550 -0
  239. package/coverage/lcov-report/src/integrations/rest.ts.html +1372 -0
  240. package/coverage/lcov-report/src/integrations/s3.ts.html +862 -0
  241. package/coverage/lcov-report/src/integrations/snowflake.ts.html +376 -0
  242. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +85 -0
  243. package/coverage/lcov-report/src/integrations/tests/index.html +116 -0
  244. package/coverage/lcov-report/src/integrations/utils.ts.html +1036 -0
  245. package/coverage/lcov-report/src/middleware/appInfo.ts.html +145 -0
  246. package/coverage/lcov-report/src/middleware/authorized.ts.html +472 -0
  247. package/coverage/lcov-report/src/middleware/builder.ts.html +361 -0
  248. package/coverage/lcov-report/src/middleware/currentapp.ts.html +508 -0
  249. package/coverage/lcov-report/src/middleware/index.html +236 -0
  250. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +205 -0
  251. package/coverage/lcov-report/src/middleware/publicApi.ts.html +148 -0
  252. package/coverage/lcov-report/src/middleware/resourceId.ts.html +283 -0
  253. package/coverage/lcov-report/src/middleware/selfhost.ts.html +121 -0
  254. package/coverage/lcov-report/src/middleware/utils.ts.html +112 -0
  255. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +166 -0
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +163 -0
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +151 -0
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +206 -0
  259. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +172 -0
  260. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +226 -0
  261. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +151 -0
  262. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +151 -0
  263. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +166 -0
  264. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +532 -0
  265. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +286 -0
  266. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +146 -0
  267. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +265 -0
  268. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +232 -0
  269. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +724 -0
  270. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +161 -0
  271. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +106 -0
  272. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +235 -0
  273. package/coverage/lcov-report/src/migrations/functions/index.html +161 -0
  274. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +130 -0
  275. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +520 -0
  276. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +161 -0
  277. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +94 -0
  278. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +127 -0
  279. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +115 -0
  280. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +169 -0
  281. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +124 -0
  282. package/coverage/lcov-report/src/migrations/index.html +116 -0
  283. package/coverage/lcov-report/src/migrations/index.ts.html +430 -0
  284. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +205 -0
  285. package/coverage/lcov-report/src/migrations/tests/index.html +131 -0
  286. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +283 -0
  287. package/coverage/lcov-report/src/sdk/app/applications/index.html +146 -0
  288. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +106 -0
  289. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +268 -0
  290. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +136 -0
  291. package/coverage/lcov-report/src/sdk/app/automations/index.html +131 -0
  292. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +100 -0
  293. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +214 -0
  294. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +91 -0
  295. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +604 -0
  296. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +640 -0
  297. package/coverage/lcov-report/src/sdk/app/backups/index.html +176 -0
  298. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +112 -0
  299. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +292 -0
  300. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +562 -0
  301. package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
  302. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
  303. package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
  304. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +100 -0
  305. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +235 -0
  306. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +265 -0
  307. package/coverage/lcov-report/src/sdk/app/rows/index.html +146 -0
  308. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +106 -0
  309. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +139 -0
  310. package/coverage/lcov-report/src/sdk/app/tables/index.html +116 -0
  311. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +274 -0
  312. package/coverage/lcov-report/src/sdk/index.html +116 -0
  313. package/coverage/lcov-report/src/sdk/index.ts.html +151 -0
  314. package/coverage/lcov-report/src/sdk/users/index.html +131 -0
  315. package/coverage/lcov-report/src/sdk/users/index.ts.html +100 -0
  316. package/coverage/lcov-report/src/sdk/users/utils.ts.html +277 -0
  317. package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
  318. package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
  319. package/coverage/lcov-report/src/startup.ts.html +484 -0
  320. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +2032 -0
  321. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +127 -0
  322. package/coverage/lcov-report/src/tests/utilities/index.html +161 -0
  323. package/coverage/lcov-report/src/tests/utilities/index.ts.html +118 -0
  324. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +856 -0
  325. package/coverage/lcov-report/src/threads/automation.ts.html +1555 -0
  326. package/coverage/lcov-report/src/threads/index.html +161 -0
  327. package/coverage/lcov-report/src/threads/index.ts.html +418 -0
  328. package/coverage/lcov-report/src/threads/query.ts.html +1000 -0
  329. package/coverage/lcov-report/src/threads/utils.ts.html +373 -0
  330. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +94 -0
  331. package/coverage/lcov-report/src/utilities/centralPath.ts.html +151 -0
  332. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
  333. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +547 -0
  334. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
  335. package/coverage/lcov-report/src/utilities/fileSystem/index.html +206 -0
  336. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +100 -0
  337. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
  338. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +142 -0
  339. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
  340. package/coverage/lcov-report/src/utilities/global.ts.html +499 -0
  341. package/coverage/lcov-report/src/utilities/index.html +251 -0
  342. package/coverage/lcov-report/src/utilities/index.ts.html +487 -0
  343. package/coverage/lcov-report/src/utilities/redis.ts.html +343 -0
  344. package/coverage/lcov-report/src/utilities/routing/index.html +116 -0
  345. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  346. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +146 -0
  347. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +922 -0
  348. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +373 -0
  349. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +373 -0
  350. package/coverage/lcov-report/src/utilities/schema.ts.html +508 -0
  351. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +169 -0
  352. package/coverage/lcov-report/src/utilities/security.ts.html +280 -0
  353. package/coverage/lcov-report/src/utilities/usageQuota/index.html +131 -0
  354. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +325 -0
  355. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +139 -0
  356. package/coverage/lcov-report/src/utilities/users.ts.html +232 -0
  357. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +646 -0
  358. package/coverage/lcov-report/src/watch.ts.html +196 -0
  359. package/coverage/lcov-report/src/websocket.ts.html +163 -0
  360. package/coverage/lcov.info +21777 -0
  361. package/dist/api/controllers/automation.js +2 -11
  362. package/dist/api/controllers/query/index.js +0 -2
  363. package/dist/api/controllers/row/ExternalRequest.js +2 -4
  364. package/dist/api/controllers/row/external.js +1 -12
  365. package/dist/api/controllers/table/external.js +8 -8
  366. package/dist/api/index.js +21 -1
  367. package/dist/api/routes/automation.js +1 -1
  368. package/dist/api/routes/public/tests/utils.js +33 -0
  369. package/dist/app.js +1 -7
  370. package/dist/constants/index.js +24 -4
  371. package/dist/db/defaultData/datasource_bb_default.js +5 -6
  372. package/dist/db/linkedRows/LinkController.js +8 -9
  373. package/dist/integrations/base/sql.js +3 -10
  374. package/dist/middleware/authorized.js +3 -5
  375. package/dist/middleware/builder.js +3 -6
  376. package/dist/package.json +8 -12
  377. package/dist/sdk/app/backups/exports.js +2 -8
  378. package/dist/sdk/app/datasources/datasources.js +0 -3
  379. package/dist/tsconfig.build.tsbuildinfo +1 -1
  380. package/dist/utilities/redis.js +0 -2
  381. package/jest.config.ts +22 -34
  382. package/package.json +9 -13
  383. package/specs/openapi.json +6 -6
  384. package/specs/openapi.yaml +3 -3
  385. package/specs/resources/query.js +1 -1
  386. package/specs/resources/table.js +1 -1
  387. package/src/api/controllers/automation.ts +2 -13
  388. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  389. package/src/api/controllers/query/index.ts +0 -2
  390. package/src/api/controllers/row/ExternalRequest.ts +2 -6
  391. package/src/api/controllers/row/external.ts +1 -13
  392. package/src/api/controllers/table/external.ts +2 -3
  393. package/src/api/index.ts +22 -3
  394. package/src/api/routes/automation.ts +1 -1
  395. package/src/api/routes/public/applications.ts +1 -0
  396. package/src/api/routes/public/tests/compare.spec.js +1 -1
  397. package/src/api/routes/public/tests/users.spec.js +1 -1
  398. package/src/api/routes/public/tests/utils.ts +8 -25
  399. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  400. package/src/api/routes/tests/analytics.spec.js +1 -4
  401. package/src/api/routes/tests/apikeys.spec.js +1 -1
  402. package/src/api/routes/tests/application.spec.ts +6 -20
  403. package/src/api/routes/tests/auth.spec.js +2 -2
  404. package/src/api/routes/tests/automation.spec.js +2 -6
  405. package/src/api/routes/tests/backup.spec.ts +14 -4
  406. package/src/api/routes/tests/{cloud.seq.spec.ts → cloud.spec.ts} +15 -11
  407. package/src/api/routes/tests/component.spec.js +1 -1
  408. package/src/api/routes/tests/datasource.spec.ts +3 -20
  409. package/src/api/routes/tests/dev.spec.js +1 -1
  410. package/src/api/routes/tests/integration.spec.js +1 -1
  411. package/src/api/routes/tests/layout.spec.js +1 -1
  412. package/src/api/routes/tests/metadata.spec.js +1 -1
  413. package/src/api/routes/tests/misc.spec.js +1 -1
  414. package/src/api/routes/tests/permissions.spec.js +1 -4
  415. package/src/api/routes/tests/{query.seq.spec.js → query.spec.js} +1 -22
  416. package/src/api/routes/tests/role.spec.js +1 -6
  417. package/src/api/routes/tests/routing.spec.js +1 -1
  418. package/src/api/routes/tests/row.spec.js +3 -11
  419. package/src/api/routes/tests/screen.spec.js +1 -1
  420. package/src/api/routes/tests/static.spec.js +13 -2
  421. package/src/api/routes/tests/table.spec.js +1 -1
  422. package/src/api/routes/tests/templates.spec.js +1 -1
  423. package/src/api/routes/tests/user.spec.js +12 -11
  424. package/src/api/routes/tests/utilities/TestFunctions.ts +2 -25
  425. package/src/api/routes/tests/utilities/index.ts +3 -5
  426. package/src/api/routes/tests/view.spec.js +1 -4
  427. package/src/api/routes/tests/webhook.spec.js +2 -11
  428. package/src/app.ts +1 -10
  429. package/src/automations/tests/automation.spec.js +4 -4
  430. package/src/automations/tests/bash.spec.js +1 -1
  431. package/src/automations/tests/discord.spec.js +1 -1
  432. package/src/automations/tests/executeQuery.spec.js +3 -2
  433. package/src/automations/tests/executeScript.spec.js +1 -1
  434. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  435. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  436. package/src/automations/tests/serverLog.spec.js +1 -1
  437. package/src/automations/tests/updateRow.spec.js +1 -1
  438. package/src/automations/tests/zapier.spec.js +1 -1
  439. package/src/constants/index.ts +23 -1
  440. package/src/db/defaultData/datasource_bb_default.ts +10 -6
  441. package/src/db/linkedRows/LinkController.ts +1 -2
  442. package/src/db/tests/linkController.spec.js +1 -4
  443. package/src/db/tests/linkTests.spec.js +1 -1
  444. package/src/integrations/base/sql.ts +5 -15
  445. package/src/integrations/oracle.ts +1 -1
  446. package/src/integrations/tests/couchdb.spec.ts +2 -0
  447. package/src/middleware/authorized.ts +4 -6
  448. package/src/middleware/builder.ts +3 -8
  449. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  450. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  451. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  452. package/src/migrations/tests/index.spec.ts +20 -13
  453. package/src/sdk/app/backups/exports.ts +2 -8
  454. package/src/sdk/app/datasources/datasources.ts +0 -3
  455. package/src/tests/jestEnv.ts +11 -8
  456. package/src/tests/jestSetup.ts +7 -9
  457. package/src/tests/utilities/TestConfiguration.ts +92 -166
  458. package/src/tests/utilities/structures.ts +2 -16
  459. package/src/utilities/redis.ts +0 -2
  460. package/tsconfig.build.json +0 -1
  461. package/builder/assets/blankScreenPreview.72634dd1.png +0 -0
  462. package/builder/assets/index.22724f34.css +0 -6
  463. package/builder/assets/listScreenPreview.599c0aae.png +0 -0
  464. package/dist/ddApm.js +0 -11
  465. package/dist/elasticApm.js +0 -14
  466. package/dist/utilities/retry.js +0 -30
  467. package/jest-testcontainers-config.js +0 -8
  468. package/scripts/load/create-many-apps.js +0 -24
  469. package/scripts/load/create-many-rows.js +0 -30
  470. package/scripts/load/utils.js +0 -66
  471. package/scripts/test.sh +0 -12
  472. package/src/api/routes/tests/environmentVariables.spec.ts +0 -144
  473. package/src/ddApm.ts +0 -7
  474. package/src/elasticApm.ts +0 -10
  475. package/src/integration-test/postgres.spec.ts +0 -762
  476. package/src/tests/logging.ts +0 -34
  477. package/src/utilities/retry.ts +0 -18
@@ -36,8 +36,6 @@ function shutdown() {
36
36
  yield debounceClient.finish();
37
37
  if (flagClient)
38
38
  yield flagClient.finish();
39
- // shutdown core clients
40
- yield backend_core_1.redis.clients.shutdown();
41
39
  console.log("Redis shutdown");
42
40
  });
43
41
  }
package/jest.config.ts CHANGED
@@ -1,48 +1,36 @@
1
1
  import { Config } from "@jest/types"
2
-
3
2
  import * as fs from "fs"
4
- const preset = require("ts-jest/jest-preset")
5
3
 
6
- const baseConfig: Config.InitialProjectOptions = {
7
- ...preset,
8
- preset: "@trendyol/jest-testcontainers",
4
+ const config: Config.InitialOptions = {
5
+ testEnvironment: "node",
9
6
  setupFiles: ["./src/tests/jestEnv.ts"],
10
7
  setupFilesAfterEnv: ["./src/tests/jestSetup.ts"],
11
- transform: {
12
- "^.+\\.ts?$": "@swc/jest",
13
- },
14
- moduleNameMapper: {
15
- "@budibase/backend-core/(.*)": "<rootDir>/../backend-core/$1",
16
- "@budibase/backend-core": "<rootDir>/../backend-core/src",
17
- "@budibase/types": "<rootDir>/../types/src",
18
- },
19
- }
20
-
21
- // add pro sources if they exist
22
- if (fs.existsSync("../../../budibase-pro")) {
23
- baseConfig.moduleNameMapper["@budibase/pro"] =
24
- "<rootDir>/../../../budibase-pro/packages/pro/src"
25
- }
26
-
27
- const config: Config.InitialOptions = {
28
- projects: [
29
- {
30
- ...baseConfig,
31
- displayName: "sequential test",
32
- testMatch: ["<rootDir>/**/*.seq.spec.[jt]s"],
33
- runner: "jest-serial-runner",
34
- },
35
- {
36
- ...baseConfig,
37
- testMatch: ["<rootDir>/**/!(*.seq).spec.[jt]s"],
38
- },
39
- ],
40
8
  collectCoverageFrom: [
41
9
  "src/**/*.{js,ts}",
42
10
  // The use of coverage with couchdb view functions breaks tests
43
11
  "!src/db/views/staticViews.*",
44
12
  ],
45
13
  coverageReporters: ["lcov", "json", "clover"],
14
+ transform: {
15
+ "^.+\\.ts?$": "@swc/jest",
16
+ },
17
+ }
18
+
19
+ if (!process.env.CI) {
20
+ // use sources when not in CI
21
+ config.moduleNameMapper = {
22
+ "@budibase/backend-core/(.*)": "<rootDir>/../backend-core/$1",
23
+ "@budibase/backend-core": "<rootDir>/../backend-core/src",
24
+ "@budibase/types": "<rootDir>/../types/src",
25
+ "^axios.*$": "<rootDir>/node_modules/axios/lib/axios.js",
26
+ }
27
+ // add pro sources if they exist
28
+ if (fs.existsSync("../../../budibase-pro")) {
29
+ config.moduleNameMapper["@budibase/pro"] =
30
+ "<rootDir>/../../../budibase-pro/packages/pro/src"
31
+ }
32
+ } else {
33
+ console.log("Running tests with compiled dependency sources")
46
34
  }
47
35
 
48
36
  export default config
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.3.18-alpha.8",
4
+ "version": "2.3.18",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -14,7 +14,7 @@
14
14
  "build:dev": "yarn prebuild && tsc --build --watch --preserveWatchOutput",
15
15
  "debug": "yarn build && node --expose-gc --inspect=9222 dist/index.js",
16
16
  "postbuild": "copyfiles -u 1 src/**/*.svelte dist/ && copyfiles -u 1 src/**/*.hbs dist/ && copyfiles -u 1 src/**/*.json dist/",
17
- "test": "bash scripts/test.sh",
17
+ "test": "jest --coverage --maxWorkers=2",
18
18
  "test:watch": "jest --watch",
19
19
  "predocker": "copyfiles -f ../client/dist/budibase-client.js ../client/manifest.json client",
20
20
  "build:docker": "yarn run predocker && docker build . -t app-service --label version=$BUDIBASE_RELEASE_VERSION",
@@ -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.3.18-alpha.8",
47
- "@budibase/client": "2.3.18-alpha.8",
48
- "@budibase/pro": "2.3.18-alpha.7",
49
- "@budibase/string-templates": "2.3.18-alpha.8",
50
- "@budibase/types": "2.3.18-alpha.8",
46
+ "@budibase/backend-core": "^2.3.18",
47
+ "@budibase/client": "^2.3.18",
48
+ "@budibase/pro": "2.3.17",
49
+ "@budibase/string-templates": "^2.3.18",
50
+ "@budibase/types": "^2.3.18",
51
51
  "@bull-board/api": "3.7.0",
52
52
  "@bull-board/koa": "3.9.4",
53
53
  "@elastic/elasticsearch": "7.10.0",
@@ -64,7 +64,6 @@
64
64
  "chokidar": "3.5.3",
65
65
  "csvtojson": "2.0.10",
66
66
  "curlconverter": "3.21.0",
67
- "dd-trace": "3.13.2",
68
67
  "dotenv": "8.2.0",
69
68
  "download": "8.0.0",
70
69
  "elastic-apm-node": "3.38.0",
@@ -126,7 +125,6 @@
126
125
  "@jest/test-sequencer": "24.9.0",
127
126
  "@swc/core": "^1.3.25",
128
127
  "@swc/jest": "^0.2.24",
129
- "@trendyol/jest-testcontainers": "^2.1.1",
130
128
  "@types/apidoc": "0.50.0",
131
129
  "@types/bson": "4.2.0",
132
130
  "@types/global-agent": "2.1.1",
@@ -142,7 +140,6 @@
142
140
  "@types/pouchdb": "6.4.0",
143
141
  "@types/redis": "4.0.11",
144
142
  "@types/server-destroy": "1.0.1",
145
- "@types/supertest": "2.0.12",
146
143
  "@types/tar": "6.1.3",
147
144
  "@typescript-eslint/parser": "5.45.0",
148
145
  "apidoc": "0.50.4",
@@ -154,14 +151,13 @@
154
151
  "is-wsl": "2.2.0",
155
152
  "jest": "28.1.1",
156
153
  "jest-openapi": "0.14.2",
157
- "jest-serial-runner": "^1.2.1",
158
154
  "nodemon": "2.0.15",
159
155
  "openapi-types": "9.3.1",
160
156
  "openapi-typescript": "5.2.0",
161
157
  "path-to-regexp": "6.2.0",
162
158
  "prettier": "2.5.1",
163
159
  "rimraf": "3.0.2",
164
- "supertest": "6.2.2",
160
+ "supertest": "4.0.2",
165
161
  "swagger-jsdoc": "6.1.0",
166
162
  "timekeeper": "2.2.0",
167
163
  "ts-jest": "28.0.4",
@@ -173,5 +169,5 @@
173
169
  "optionalDependencies": {
174
170
  "oracledb": "5.3.0"
175
171
  },
176
- "gitHead": "76d67319b05f0babeb4c26c40dafef7849233cf2"
172
+ "gitHead": "7a59ee813fc92b82f415225421ff10e5f53a6b81"
177
173
  }
@@ -817,6 +817,7 @@
817
817
  "type": "string",
818
818
  "enum": [
819
819
  "string",
820
+ "barcodeqr",
820
821
  "longform",
821
822
  "options",
822
823
  "number",
@@ -828,8 +829,7 @@
828
829
  "formula",
829
830
  "auto",
830
831
  "json",
831
- "internal",
832
- "barcodeqr"
832
+ "internal"
833
833
  ],
834
834
  "description": "Defines the type of the column, most explain themselves, a link column is a relationship."
835
835
  },
@@ -1021,6 +1021,7 @@
1021
1021
  "type": "string",
1022
1022
  "enum": [
1023
1023
  "string",
1024
+ "barcodeqr",
1024
1025
  "longform",
1025
1026
  "options",
1026
1027
  "number",
@@ -1032,8 +1033,7 @@
1032
1033
  "formula",
1033
1034
  "auto",
1034
1035
  "json",
1035
- "internal",
1036
- "barcodeqr"
1036
+ "internal"
1037
1037
  ],
1038
1038
  "description": "Defines the type of the column, most explain themselves, a link column is a relationship."
1039
1039
  },
@@ -1236,6 +1236,7 @@
1236
1236
  "type": "string",
1237
1237
  "enum": [
1238
1238
  "string",
1239
+ "barcodeqr",
1239
1240
  "longform",
1240
1241
  "options",
1241
1242
  "number",
@@ -1247,8 +1248,7 @@
1247
1248
  "formula",
1248
1249
  "auto",
1249
1250
  "json",
1250
- "internal",
1251
- "barcodeqr"
1251
+ "internal"
1252
1252
  ],
1253
1253
  "description": "Defines the type of the column, most explain themselves, a link column is a relationship."
1254
1254
  },
@@ -603,6 +603,7 @@ components:
603
603
  type: string
604
604
  enum:
605
605
  - string
606
+ - barcodeqr
606
607
  - longform
607
608
  - options
608
609
  - number
@@ -615,7 +616,6 @@ components:
615
616
  - auto
616
617
  - json
617
618
  - internal
618
- - barcodeqr
619
619
  description: Defines the type of the column, most explain themselves, a link
620
620
  column is a relationship.
621
621
  constraints:
@@ -766,6 +766,7 @@ components:
766
766
  type: string
767
767
  enum:
768
768
  - string
769
+ - barcodeqr
769
770
  - longform
770
771
  - options
771
772
  - number
@@ -778,7 +779,6 @@ components:
778
779
  - auto
779
780
  - json
780
781
  - internal
781
- - barcodeqr
782
782
  description: Defines the type of the column, most explain themselves, a link
783
783
  column is a relationship.
784
784
  constraints:
@@ -936,6 +936,7 @@ components:
936
936
  type: string
937
937
  enum:
938
938
  - string
939
+ - barcodeqr
939
940
  - longform
940
941
  - options
941
942
  - number
@@ -948,7 +949,6 @@ components:
948
949
  - auto
949
950
  - json
950
951
  - internal
951
- - barcodeqr
952
952
  description: Defines the type of the column, most explain themselves, a link
953
953
  column is a relationship.
954
954
  constraints:
@@ -1,6 +1,6 @@
1
1
  const Resource = require("./utils/Resource")
2
2
  const { object } = require("./utils")
3
- const { BaseQueryVerbs } = require("../../src/constants")
3
+ const { BaseQueryVerbs } = require("../../dist/constants")
4
4
 
5
5
  const query = {
6
6
  _id: "query_datasource_plus_4d8be0c506b9465daf4bf84d890fdab6_454854487c574d45bc4029b1e153219e",
@@ -2,7 +2,7 @@ const {
2
2
  FieldTypes,
3
3
  RelationshipTypes,
4
4
  FormulaTypes,
5
- } = require("../../src/constants")
5
+ } = require("../../dist/constants")
6
6
  const { object } = require("./utils")
7
7
  const Resource = require("./utils/Resource")
8
8
 
@@ -65,14 +65,10 @@ export async function create(ctx: BBContext) {
65
65
 
66
66
  // call through to update if already exists
67
67
  if (automation._id && automation._rev) {
68
- await update(ctx)
69
- return
68
+ return update(ctx)
70
69
  }
71
70
 
72
- // Respect existing IDs if recreating a deleted automation
73
- if (!automation._id) {
74
- automation._id = generateAutomationID()
75
- }
71
+ automation._id = generateAutomationID()
76
72
 
77
73
  automation.type = "automation"
78
74
  automation = cleanAutomationInputs(automation)
@@ -130,13 +126,6 @@ export async function update(ctx: BBContext) {
130
126
  const db = context.getAppDB()
131
127
  let automation = ctx.request.body
132
128
  automation.appId = ctx.appId
133
-
134
- // Call through to create if it doesn't exist
135
- if (!automation._id || !automation._rev) {
136
- await create(ctx)
137
- return
138
- }
139
-
140
129
  const oldAutomation = await db.get(automation._id)
141
130
  automation = cleanAutomationInputs(automation)
142
131
  automation = await checkForWebhooks({
@@ -41,7 +41,7 @@ const datasets = {
41
41
  describe("Rest Importer", () => {
42
42
  const config = new TestConfig(false)
43
43
 
44
- beforeAll(async () => {
44
+ beforeEach(async () => {
45
45
  await config.init()
46
46
  })
47
47
 
@@ -186,8 +186,6 @@ export async function preview(ctx: any) {
186
186
  schemaFields[key] = fieldType
187
187
  }
188
188
  }
189
- // remove configuration before sending event
190
- delete datasource.config
191
189
  await events.query.previewed(datasource, query)
192
190
  ctx.body = {
193
191
  rows,
@@ -10,7 +10,6 @@ import {
10
10
  FieldSchema,
11
11
  Row,
12
12
  Table,
13
- RelationshipTypes,
14
13
  } from "@budibase/types"
15
14
  import {
16
15
  breakRowIdField,
@@ -19,7 +18,7 @@ import {
19
18
  convertRowId,
20
19
  } from "../../../integrations/utils"
21
20
  import { getDatasourceAndQuery } from "./utils"
22
- import { FieldTypes } from "../../../constants"
21
+ import { FieldTypes, RelationshipTypes } from "../../../constants"
23
22
  import { breakExternalTableId, isSQL } from "../../../integrations/utils"
24
23
  import { processObjectSync } from "@budibase/string-templates"
25
24
  import { cloneDeep } from "lodash/fp"
@@ -45,7 +44,6 @@ export interface RunConfig {
45
44
  row?: Row
46
45
  rows?: Row[]
47
46
  tables?: Record<string, Table>
48
- includeSqlRelationships?: IncludeRelationship
49
47
  }
50
48
 
51
49
  function buildFilters(
@@ -708,9 +706,7 @@ export class ExternalRequest {
708
706
  },
709
707
  resource: {
710
708
  // have to specify the fields to avoid column overlap (for SQL)
711
- fields: isSql
712
- ? this.buildFields(table, config.includeSqlRelationships)
713
- : [],
709
+ fields: isSql ? this.buildFields(table) : [],
714
710
  },
715
711
  filters,
716
712
  sort,
@@ -18,7 +18,6 @@ import {
18
18
  PaginationJson,
19
19
  Table,
20
20
  Datasource,
21
- IncludeRelationship,
22
21
  } from "@budibase/types"
23
22
  import sdk from "../../../sdk"
24
23
 
@@ -58,7 +57,6 @@ export async function patch(ctx: BBContext) {
58
57
  return handleRequest(Operation.UPDATE, tableId, {
59
58
  id: breakRowIdField(id),
60
59
  row: inputs,
61
- includeSqlRelationships: IncludeRelationship.EXCLUDE,
62
60
  })
63
61
  }
64
62
 
@@ -67,7 +65,6 @@ export async function save(ctx: BBContext) {
67
65
  const tableId = ctx.params.tableId
68
66
  return handleRequest(Operation.CREATE, tableId, {
69
67
  row: inputs,
70
- includeSqlRelationships: IncludeRelationship.EXCLUDE,
71
68
  })
72
69
  }
73
70
 
@@ -81,9 +78,7 @@ export async function fetchView(ctx: BBContext) {
81
78
 
82
79
  export async function fetch(ctx: BBContext) {
83
80
  const tableId = ctx.params.tableId
84
- return handleRequest(Operation.READ, tableId, {
85
- includeSqlRelationships: IncludeRelationship.INCLUDE,
86
- })
81
+ return handleRequest(Operation.READ, tableId)
87
82
  }
88
83
 
89
84
  export async function find(ctx: BBContext) {
@@ -91,7 +86,6 @@ export async function find(ctx: BBContext) {
91
86
  const tableId = ctx.params.tableId
92
87
  const response = (await handleRequest(Operation.READ, tableId, {
93
88
  id: breakRowIdField(id),
94
- includeSqlRelationships: IncludeRelationship.EXCLUDE,
95
89
  })) as Row[]
96
90
  return response ? response[0] : response
97
91
  }
@@ -101,7 +95,6 @@ export async function destroy(ctx: BBContext) {
101
95
  const id = ctx.request.body._id
102
96
  const { row } = (await handleRequest(Operation.DELETE, tableId, {
103
97
  id: breakRowIdField(id),
104
- includeSqlRelationships: IncludeRelationship.EXCLUDE,
105
98
  })) as { row: Row }
106
99
  return { response: { ok: true }, row }
107
100
  }
@@ -114,7 +107,6 @@ export async function bulkDestroy(ctx: BBContext) {
114
107
  promises.push(
115
108
  handleRequest(Operation.DELETE, tableId, {
116
109
  id: breakRowIdField(row._id),
117
- includeSqlRelationships: IncludeRelationship.EXCLUDE,
118
110
  })
119
111
  )
120
112
  }
@@ -157,7 +149,6 @@ export async function search(ctx: BBContext) {
157
149
  filters: query,
158
150
  sort,
159
151
  paginate: paginateObj as PaginationJson,
160
- includeSqlRelationships: IncludeRelationship.INCLUDE,
161
152
  })) as Row[]
162
153
  let hasNextPage = false
163
154
  if (paginate && rows.length === limit) {
@@ -168,7 +159,6 @@ export async function search(ctx: BBContext) {
168
159
  limit: 1,
169
160
  page: bookmark * limit + 1,
170
161
  },
171
- includeSqlRelationships: IncludeRelationship.INCLUDE,
172
162
  })) as Row[]
173
163
  hasNextPage = nextRows.length > 0
174
164
  }
@@ -259,7 +249,6 @@ export async function fetchEnrichedRow(ctx: BBContext) {
259
249
  const response = (await handleRequest(Operation.READ, tableId, {
260
250
  id,
261
251
  datasource,
262
- includeSqlRelationships: IncludeRelationship.INCLUDE,
263
252
  })) as Row[]
264
253
  const table: Table = tables[tableName]
265
254
  const row = response[0]
@@ -287,7 +276,6 @@ export async function fetchEnrichedRow(ctx: BBContext) {
287
276
  [primaryLink]: linkedIds,
288
277
  },
289
278
  },
290
- includeSqlRelationships: IncludeRelationship.INCLUDE,
291
279
  })
292
280
  }
293
281
  return row
@@ -8,7 +8,7 @@ import {
8
8
  foreignKeyStructure,
9
9
  hasTypeChanged,
10
10
  } from "./utils"
11
- import { FieldTypes } from "../../../constants"
11
+ import { FieldTypes, RelationshipTypes } from "../../../constants"
12
12
  import { makeExternalQuery } from "../../../integrations/base/query"
13
13
  import { handleRequest } from "../row/external"
14
14
  import { events, context } from "@budibase/backend-core"
@@ -22,7 +22,6 @@ import {
22
22
  FieldSchema,
23
23
  BBContext,
24
24
  TableRequest,
25
- RelationshipTypes,
26
25
  } from "@budibase/types"
27
26
  import sdk from "../../../sdk"
28
27
  const { cloneDeep } = require("lodash/fp")
@@ -147,7 +146,7 @@ function generateLinkSchema(
147
146
  column: FieldSchema,
148
147
  table: Table,
149
148
  relatedTable: Table,
150
- type: RelationshipTypes
149
+ type: string
151
150
  ) {
152
151
  if (!table.primary || !relatedTable.primary) {
153
152
  throw new Error("Unable to generate link schema, no primary keys")
package/src/api/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Router from "@koa/router"
2
- import { auth, middleware } from "@budibase/backend-core"
2
+ import { errors, auth } from "@budibase/backend-core"
3
3
  import currentApp from "../middleware/currentapp"
4
4
  import zlib from "zlib"
5
5
  import { mainRoutes, staticRoutes, publicRoutes } from "./routes"
@@ -14,8 +14,6 @@ export const router: Router = new Router()
14
14
  router.get("/health", ctx => (ctx.status = 200))
15
15
  router.get("/version", ctx => (ctx.body = pkg.version))
16
16
 
17
- router.use(middleware.errorHandling)
18
-
19
17
  router
20
18
  .use(
21
19
  compress({
@@ -56,6 +54,27 @@ router
56
54
  .use(currentApp)
57
55
  .use(auth.auditLog)
58
56
 
57
+ // error handling middleware
58
+ router.use(async (ctx, next) => {
59
+ try {
60
+ await next()
61
+ } catch (err: any) {
62
+ ctx.status = err.status || err.statusCode || 500
63
+ const error = errors.getPublicError(err)
64
+ ctx.body = {
65
+ message: err.message,
66
+ status: ctx.status,
67
+ validationErrors: err.validation,
68
+ error,
69
+ }
70
+ ctx.log.error(err)
71
+ // unauthorised errors don't provide a useful trace
72
+ if (!env.isTest()) {
73
+ console.trace(err)
74
+ }
75
+ }
76
+ })
77
+
59
78
  // authenticated routes
60
79
  for (let route of mainRoutes) {
61
80
  router.use(route.routes())
@@ -38,7 +38,7 @@ router
38
38
  "/api/automations",
39
39
  bodyResource("_id"),
40
40
  authorized(permissions.BUILDER),
41
- automationValidator(false),
41
+ automationValidator(true),
42
42
  controller.update
43
43
  )
44
44
  .post(
@@ -1,6 +1,7 @@
1
1
  import controller from "../../controllers/public/applications"
2
2
  import Endpoint from "./utils/Endpoint"
3
3
  const { nameValidator, applicationValidator } = require("../utils/validators")
4
+ import { db } from "@budibase/backend-core"
4
5
 
5
6
  const read = [],
6
7
  write = []
@@ -13,7 +13,7 @@ beforeAll(async () => {
13
13
  app = await config.init()
14
14
  table = await config.updateTable()
15
15
  apiKey = await config.generateApiKey()
16
- makeRequest = generateMakeRequest(apiKey)
16
+ makeRequest = generateMakeRequest(apiKey, setup)
17
17
  })
18
18
 
19
19
  afterAll(setup.afterAll)
@@ -10,7 +10,7 @@ beforeAll(async () => {
10
10
  await config.init()
11
11
  globalUser = await config.globalUser()
12
12
  apiKey = await config.generateApiKey(globalUser._id)
13
- makeRequest = generateMakeRequest(apiKey)
13
+ makeRequest = generateMakeRequest(apiKey, setup)
14
14
  workerRequests.readGlobalUser.mockReturnValue(globalUser)
15
15
  })
16
16
 
@@ -1,27 +1,13 @@
1
- import * as setup from "../../tests/utilities"
2
1
  import { checkSlashesInUrl } from "../../../../utilities"
3
- import supertest from "supertest"
4
2
 
5
- export type HttpMethod = "post" | "get" | "put" | "delete" | "patch"
6
-
7
- export type MakeRequestResponse = (
8
- method: HttpMethod,
9
- endpoint: string,
10
- body?: any,
11
- intAppId?: string
12
- ) => Promise<supertest.Response>
13
-
14
- export function generateMakeRequest(
15
- apiKey: string,
16
- isInternal = false
17
- ): MakeRequestResponse {
18
- const request = setup.getRequest()!
19
- const config = setup.getConfig()!
3
+ export function generateMakeRequest(apiKey: string, setup: any) {
4
+ const request = setup.getRequest()
5
+ const config = setup.getConfig()
20
6
  return async (
21
- method: HttpMethod,
7
+ method: string,
22
8
  endpoint: string,
23
9
  body?: any,
24
- intAppId: string | null = config.getAppId()
10
+ intAppId: string = config.getAppId()
25
11
  ) => {
26
12
  const extraHeaders: any = {
27
13
  "x-budibase-api-key": apiKey,
@@ -29,12 +15,9 @@ export function generateMakeRequest(
29
15
  if (intAppId) {
30
16
  extraHeaders["x-budibase-app-id"] = intAppId
31
17
  }
32
-
33
- const url = isInternal
34
- ? endpoint
35
- : checkSlashesInUrl(`/api/public/v1/${endpoint}`)
36
-
37
- const req = request[method](url).set(config.defaultHeaders(extraHeaders))
18
+ const req = request[method](
19
+ checkSlashesInUrl(`/api/public/v1/${endpoint}`)
20
+ ).set(config.defaultHeaders(extraHeaders))
38
21
  if (body) {
39
22
  req.send(body)
40
23
  }
@@ -7,7 +7,7 @@ Array [
7
7
  "entities": Array [
8
8
  Object {
9
9
  "_id": "ta_users",
10
- "_rev": "1-2375e1bc58aeec664dc1b1f04ad43e44",
10
+ "_rev": "1-6f4013e796887f1771bf7837598d87e7",
11
11
  "createdAt": "2020-01-01T00:00:00.000Z",
12
12
  "name": "Users",
13
13
  "primaryDisplay": "email",
@@ -10,11 +10,8 @@ describe("/static", () => {
10
10
 
11
11
  afterAll(setup.afterAll)
12
12
 
13
- beforeAll(async () => {
13
+ beforeEach(async () => {
14
14
  app = await config.init()
15
- })
16
-
17
- beforeEach(()=>{
18
15
  jest.clearAllMocks()
19
16
  })
20
17
 
@@ -7,7 +7,7 @@ describe("/api/keys", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeAll(async () => {
10
+ beforeEach(async () => {
11
11
  await config.init()
12
12
  })
13
13