@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
@@ -28,11 +28,8 @@ describe("/views", () => {
28
28
 
29
29
  afterAll(setup.afterAll)
30
30
 
31
- beforeAll(async () => {
31
+ beforeEach(async () => {
32
32
  await config.init()
33
- })
34
-
35
- beforeEach(async() => {
36
33
  table = await config.createTable(priceTable())
37
34
  })
38
35
 
@@ -9,8 +9,7 @@ describe("/webhooks", () => {
9
9
 
10
10
  afterAll(setup.afterAll)
11
11
 
12
- const setupTest = async () => {
13
- config.modeSelf()
12
+ beforeEach(async () => {
14
13
  await config.init()
15
14
  const autoConfig = basicAutomation()
16
15
  autoConfig.definition.trigger = {
@@ -19,9 +18,7 @@ describe("/webhooks", () => {
19
18
  }
20
19
  await config.createAutomation(autoConfig)
21
20
  webhook = await config.createWebhook()
22
- }
23
-
24
- beforeAll(setupTest)
21
+ })
25
22
 
26
23
  describe("create", () => {
27
24
  it("should create a webhook successfully", async () => {
@@ -47,8 +44,6 @@ describe("/webhooks", () => {
47
44
  })
48
45
 
49
46
  describe("fetch", () => {
50
- beforeAll(setupTest)
51
-
52
47
  it("returns the correct routing for basic user", async () => {
53
48
  const res = await request
54
49
  .get(`/api/webhooks`)
@@ -69,8 +64,6 @@ describe("/webhooks", () => {
69
64
  })
70
65
 
71
66
  describe("delete", () => {
72
- beforeAll(setupTest)
73
-
74
67
  it("should successfully delete", async () => {
75
68
  const res = await request
76
69
  .delete(`/api/webhooks/${webhook._id}/${webhook._rev}`)
@@ -91,8 +84,6 @@ describe("/webhooks", () => {
91
84
  })
92
85
 
93
86
  describe("build schema", () => {
94
- beforeAll(setupTest)
95
-
96
87
  it("should allow building a schema", async () => {
97
88
  const res = await request
98
89
  .post(`/api/webhooks/schema/${config.getAppId()}/${webhook._id}`)
package/src/app.ts CHANGED
@@ -1,11 +1,3 @@
1
- if (process.env.DD_APM_ENABLED) {
2
- require("./ddApm")
3
- }
4
-
5
- if (process.env.ELASTIC_APM_ENABLED) {
6
- require("./elasticApm")
7
- }
8
-
9
1
  // need to load environment first
10
2
  import env from "./environment"
11
3
 
@@ -74,7 +66,6 @@ initialiseWebsockets(server)
74
66
 
75
67
  let shuttingDown = false,
76
68
  errCode = 0
77
-
78
69
  server.on("close", async () => {
79
70
  // already in process
80
71
  if (shuttingDown) {
@@ -84,7 +75,7 @@ server.on("close", async () => {
84
75
  console.log("Server Closed")
85
76
  await automations.shutdown()
86
77
  await redis.shutdown()
87
- events.shutdown()
78
+ await events.shutdown()
88
79
  await Thread.shutdown()
89
80
  api.shutdown()
90
81
  if (!env.isTest()) {
@@ -21,7 +21,7 @@ const setup = require("./utilities")
21
21
  describe("Run through some parts of the automations system", () => {
22
22
  let config = setup.getConfig()
23
23
 
24
- beforeAll(async () => {
24
+ beforeEach(async () => {
25
25
  await automation.init()
26
26
  await config.init()
27
27
  })
@@ -29,9 +29,9 @@ describe("Run through some parts of the automations system", () => {
29
29
  afterAll(setup.afterAll)
30
30
 
31
31
  it("should be able to init in builder", async () => {
32
- await triggers.externalTrigger(basicAutomation(), { a: 1, appId: config.appId })
33
- await wait(100)
34
- expect(thread.execute).toHaveBeenCalled()
32
+ await triggers.externalTrigger(basicAutomation(), { a: 1, appId: "app_123" })
33
+ await wait(100)
34
+ expect(thread.execute).toHaveBeenCalled()
35
35
  })
36
36
 
37
37
  it("should check coercion", async () => {
@@ -3,7 +3,7 @@ const setup = require("./utilities")
3
3
  describe("test the bash action", () => {
4
4
  let config = setup.getConfig()
5
5
 
6
- beforeAll(async () => {
6
+ beforeEach(async () => {
7
7
  await config.init()
8
8
  })
9
9
  afterAll(setup.afterAll)
@@ -7,7 +7,7 @@ describe("test the outgoing webhook action", () => {
7
7
  let inputs
8
8
  let config = setup.getConfig()
9
9
 
10
- beforeAll(async () => {
10
+ beforeEach(async () => {
11
11
  await config.init()
12
12
  inputs = {
13
13
  username: "joe_bloggs",
@@ -1,9 +1,10 @@
1
1
  const setup = require("./utilities")
2
2
 
3
3
  describe("test the execute query action", () => {
4
+ let datasource
4
5
  let config = setup.getConfig()
5
6
 
6
- beforeAll(async () => {
7
+ beforeEach(async () => {
7
8
  await config.init()
8
9
 
9
10
  await config.createDatasource()
@@ -40,7 +41,7 @@ describe("test the execute query action", () => {
40
41
  query: { queryId: "wrong_id" }
41
42
  }
42
43
  )
43
- expect(res.response).toEqual('Error: missing')
44
+ expect(res.response).toEqual('{"status":404,"name":"not_found","message":"missing","reason":"missing"}')
44
45
  expect(res.success).toEqual(false)
45
46
  })
46
47
 
@@ -3,7 +3,7 @@ const setup = require("./utilities")
3
3
  describe("test the execute script action", () => {
4
4
  let config = setup.getConfig()
5
5
 
6
- beforeAll(async () => {
6
+ beforeEach(async () => {
7
7
  await config.init()
8
8
  })
9
9
  afterAll(setup.afterAll)
@@ -7,7 +7,7 @@ describe("test the outgoing webhook action", () => {
7
7
  let inputs
8
8
  let config = setup.getConfig()
9
9
 
10
- beforeAll(async () => {
10
+ beforeEach(async () => {
11
11
  await config.init()
12
12
  inputs = {
13
13
  requestMethod: "POST",
@@ -36,7 +36,7 @@ const setup = require("./utilities")
36
36
  describe("test the outgoing webhook action", () => {
37
37
  let inputs
38
38
  let config = setup.getConfig()
39
- beforeAll(async () => {
39
+ beforeEach(async () => {
40
40
  await config.init()
41
41
  })
42
42
 
@@ -3,7 +3,7 @@ const setup = require("./utilities")
3
3
  describe("test the server log action", () => {
4
4
  let config = setup.getConfig()
5
5
 
6
- beforeAll(async () => {
6
+ beforeEach(async () => {
7
7
  await config.init()
8
8
  inputs = {
9
9
  text: "log message",
@@ -4,7 +4,7 @@ describe("test the update row action", () => {
4
4
  let table, row, inputs
5
5
  let config = setup.getConfig()
6
6
 
7
- beforeAll(async () => {
7
+ beforeEach(async () => {
8
8
  await config.init()
9
9
  table = await config.createTable()
10
10
  row = await config.createRow()
@@ -7,7 +7,7 @@ describe("test the outgoing webhook action", () => {
7
7
  let inputs
8
8
  let config = setup.getConfig()
9
9
 
10
- beforeAll(async () => {
10
+ beforeEach(async () => {
11
11
  await config.init()
12
12
  inputs = {
13
13
  value1: "test",
@@ -1,5 +1,4 @@
1
1
  import { objectStore, roles, constants } from "@budibase/backend-core"
2
- export { FieldType as FieldTypes, RelationshipTypes } from "@budibase/types"
3
2
 
4
3
  export enum FilterTypes {
5
4
  STRING = "string",
@@ -23,6 +22,23 @@ export const NoEmptyFilterStrings = [
23
22
  FilterTypes.NOT_CONTAINS,
24
23
  ]
25
24
 
25
+ export enum FieldTypes {
26
+ STRING = "string",
27
+ BARCODEQR = "barcodeqr",
28
+ LONGFORM = "longform",
29
+ OPTIONS = "options",
30
+ NUMBER = "number",
31
+ BOOLEAN = "boolean",
32
+ ARRAY = "array",
33
+ DATETIME = "datetime",
34
+ ATTACHMENT = "attachment",
35
+ LINK = "link",
36
+ FORMULA = "formula",
37
+ AUTO = "auto",
38
+ JSON = "json",
39
+ INTERNAL = "internal",
40
+ }
41
+
26
42
  export const CanSwitchTypes = [
27
43
  [exports.FieldTypes.JSON, exports.FieldTypes.ARRAY],
28
44
  [
@@ -38,6 +54,12 @@ export const SwitchableTypes = CanSwitchTypes.reduce((prev, current) =>
38
54
  prev ? prev.concat(current) : current
39
55
  )
40
56
 
57
+ export enum RelationshipTypes {
58
+ ONE_TO_MANY = "one-to-many",
59
+ MANY_TO_ONE = "many-to-one",
60
+ MANY_TO_MANY = "many-to-many",
61
+ }
62
+
41
63
  export enum FormulaTypes {
42
64
  STATIC = "static",
43
65
  DYNAMIC = "dynamic",
@@ -1,4 +1,8 @@
1
- import { FieldTypes, AutoFieldSubTypes } from "../../constants"
1
+ import {
2
+ FieldTypes,
3
+ AutoFieldSubTypes,
4
+ RelationshipTypes,
5
+ } from "../../constants"
2
6
  import { importToRows } from "../../api/controllers/table/utils"
3
7
  import { cloneDeep } from "lodash/fp"
4
8
  import LinkDocument from "../linkedRows/LinkDocument"
@@ -7,7 +11,7 @@ import { employeeImport } from "./employeeImport"
7
11
  import { jobsImport } from "./jobsImport"
8
12
  import { expensesImport } from "./expensesImport"
9
13
  import { db as dbCore } from "@budibase/backend-core"
10
- import { Table, Row, RelationshipTypes } from "@budibase/types"
14
+ import { Table, Row } from "@budibase/types"
11
15
 
12
16
  export const DEFAULT_JOBS_TABLE_ID = "ta_bb_jobs"
13
17
  export const DEFAULT_INVENTORY_TABLE_ID = "ta_bb_inventory"
@@ -186,7 +190,7 @@ export const DEFAULT_INVENTORY_TABLE_SCHEMA: Table = {
186
190
  },
187
191
  }
188
192
 
189
- export const DEFAULT_EMPLOYEE_TABLE_SCHEMA: Table = {
193
+ export const DEFAULT_EMPLOYEE_TABLE_SCHEMA = {
190
194
  _id: DEFAULT_EMPLOYEE_TABLE_ID,
191
195
  type: "internal",
192
196
  views: {},
@@ -283,7 +287,7 @@ export const DEFAULT_EMPLOYEE_TABLE_SCHEMA: Table = {
283
287
  sortable: false,
284
288
  },
285
289
  "Badge Photo": {
286
- type: FieldTypes.ATTACHMENT,
290
+ type: "attachment",
287
291
  constraints: {
288
292
  type: FieldTypes.ARRAY,
289
293
  presence: false,
@@ -462,7 +466,7 @@ export const DEFAULT_JOBS_TABLE_SCHEMA: Table = {
462
466
  // sortable: true,
463
467
  },
464
468
  "Works End": {
465
- type: FieldTypes.DATETIME,
469
+ type: "datetime",
466
470
  constraints: {
467
471
  type: "string",
468
472
  length: {},
@@ -476,7 +480,7 @@ export const DEFAULT_JOBS_TABLE_SCHEMA: Table = {
476
480
  ignoreTimezones: true,
477
481
  },
478
482
  "Updated Price": {
479
- type: FieldTypes.NUMBER,
483
+ type: "number",
480
484
  constraints: {
481
485
  type: "number",
482
486
  presence: false,
@@ -1,14 +1,13 @@
1
1
  import { IncludeDocs, getLinkDocuments } from "./linkUtils"
2
2
  import { InternalTables, getUserMetadataParams } from "../utils"
3
3
  import Sentry from "@sentry/node"
4
- import { FieldTypes } from "../../constants"
4
+ import { FieldTypes, RelationshipTypes } from "../../constants"
5
5
  import { context } from "@budibase/backend-core"
6
6
  import LinkDocument from "./LinkDocument"
7
7
  import {
8
8
  Database,
9
9
  FieldSchema,
10
10
  LinkDocumentValue,
11
- RelationshipTypes,
12
11
  Row,
13
12
  Table,
14
13
  } from "@budibase/types"
@@ -9,12 +9,9 @@ describe("test the link controller", () => {
9
9
  let config = new TestConfig(false)
10
10
  let table1, table2, appId
11
11
 
12
- beforeAll(async () => {
12
+ beforeEach(async () => {
13
13
  const app = await config.init()
14
14
  appId = app.appId
15
- })
16
-
17
- beforeEach(async () => {
18
15
  const { _id } = await config.createTable()
19
16
  table2 = await config.createLinkedTable(RelationshipTypes.MANY_TO_MANY, ["link", "link2"])
20
17
  // update table after creating link
@@ -9,7 +9,7 @@ describe("test link functionality", () => {
9
9
 
10
10
  describe("getLinkedTable", () => {
11
11
  let table
12
- beforeAll(async () => {
12
+ beforeEach(async () => {
13
13
  const app = await config.init()
14
14
  appId = app.appId
15
15
  table = await config.createTable()
@@ -90,15 +90,10 @@ function parseFilters(filters: SearchFilters | undefined): SearchFilters {
90
90
  function generateSelectStatement(
91
91
  json: QueryJson,
92
92
  knex: Knex
93
- ): (string | Knex.Raw)[] | "*" {
93
+ ): (string | Knex.Raw)[] {
94
94
  const { resource, meta } = json
95
-
96
- if (!resource) {
97
- return "*"
98
- }
99
-
100
95
  const schema = meta?.table?.schema
101
- return resource.fields.map(field => {
96
+ return resource!.fields.map(field => {
102
97
  const fieldNames = field.split(/\./g)
103
98
  const tableName = fieldNames[0]
104
99
  const columnName = fieldNames[1]
@@ -410,14 +405,11 @@ class InternalBuilder {
410
405
  delete parsedBody[key]
411
406
  }
412
407
  }
413
-
414
408
  // mysql can't use returning
415
409
  if (opts.disableReturning) {
416
410
  return query.insert(parsedBody)
417
411
  } else {
418
- return query
419
- .insert(parsedBody)
420
- .returning(generateSelectStatement(json, knex))
412
+ return query.insert(parsedBody).returning("*")
421
413
  }
422
414
  }
423
415
 
@@ -502,9 +494,7 @@ class InternalBuilder {
502
494
  if (opts.disableReturning) {
503
495
  return query.update(parsedBody)
504
496
  } else {
505
- return query
506
- .update(parsedBody)
507
- .returning(generateSelectStatement(json, knex))
497
+ return query.update(parsedBody).returning("*")
508
498
  }
509
499
  }
510
500
 
@@ -519,7 +509,7 @@ class InternalBuilder {
519
509
  if (opts.disableReturning) {
520
510
  return query.delete()
521
511
  } else {
522
- return query.delete().returning(generateSelectStatement(json, knex))
512
+ return query.delete().returning("*")
523
513
  }
524
514
  }
525
515
  }
@@ -247,7 +247,7 @@ class OracleIntegration extends Sql implements DatasourcePlus {
247
247
  )
248
248
  }
249
249
 
250
- private internalConvertType(column: OracleColumn): { type: FieldTypes } {
250
+ private internalConvertType(column: OracleColumn): { type: string } {
251
251
  if (this.isBooleanType(column)) {
252
252
  return { type: FieldTypes.BOOLEAN }
253
253
  }
@@ -1,3 +1,5 @@
1
+ import { DatabaseWithConnection } from "@budibase/backend-core/src/db"
2
+
1
3
  jest.mock("@budibase/backend-core", () => {
2
4
  const core = jest.requireActual("@budibase/backend-core")
3
5
  return {
@@ -79,6 +79,10 @@ export default (
79
79
  return ctx.throw(403, "No user info found")
80
80
  }
81
81
 
82
+ // check general builder stuff, this middleware is a good way
83
+ // to find API endpoints which are builder focused
84
+ await builderMiddleware(ctx, permType)
85
+
82
86
  // get the resource roles
83
87
  let resourceRoles: any = []
84
88
  let otherLevelRoles: any = []
@@ -108,12 +112,6 @@ export default (
108
112
  return ctx.throw(403, "Session not authenticated")
109
113
  }
110
114
 
111
- // check general builder stuff, this middleware is a good way
112
- // to find API endpoints which are builder focused
113
- if (permType === permissions.PermissionType.BUILDER) {
114
- await builderMiddleware(ctx)
115
- }
116
-
117
115
  try {
118
116
  // check authorized
119
117
  await checkAuthorized(ctx, resourceRoles, permType, permLevel)
@@ -64,18 +64,13 @@ async function updateAppUpdatedAt(ctx: BBContext) {
64
64
  })
65
65
  }
66
66
 
67
- export default async function builder(ctx: BBContext) {
67
+ export default async function builder(ctx: BBContext, permType: string) {
68
68
  const appId = ctx.appId
69
69
  // this only functions within an app context
70
70
  if (!appId) {
71
71
  return
72
72
  }
73
-
74
- // check authenticated
75
- if (!ctx.isAuthenticated) {
76
- return ctx.throw(403, "Session not authenticated")
77
- }
78
-
73
+ const isBuilderApi = permType === permissions.PermissionType.BUILDER
79
74
  const referer = ctx.headers["referer"]
80
75
 
81
76
  const overviewPath = "/builder/portal/overview/"
@@ -87,7 +82,7 @@ export default async function builder(ctx: BBContext) {
87
82
  const hasAppId = !referer ? false : referer.includes(appId)
88
83
  const editingApp = referer ? hasAppId : false
89
84
  // check this is a builder call and editing
90
- if (!editingApp) {
85
+ if (!isBuilderApi || !editingApp) {
91
86
  return
92
87
  }
93
88
  // check locks
@@ -6,7 +6,7 @@ const migration = require("../appUrls")
6
6
  describe("run", () => {
7
7
  let config = new TestConfig(false)
8
8
 
9
- beforeAll(async () => {
9
+ beforeEach(async () => {
10
10
  await config.init()
11
11
  })
12
12
 
@@ -11,7 +11,7 @@ const migration = require("../syncQuotas")
11
11
  describe("run", () => {
12
12
  let config = new TestConfig(false)
13
13
 
14
- beforeAll(async () => {
14
+ beforeEach(async () => {
15
15
  await config.init()
16
16
  })
17
17
 
@@ -19,7 +19,7 @@ const migration = require("../userEmailViewCasing")
19
19
  describe("run", () => {
20
20
  let config = new TestConfig(false)
21
21
 
22
- beforeAll(async () => {
22
+ beforeEach(async () => {
23
23
  await config.init()
24
24
  })
25
25
 
@@ -10,9 +10,8 @@ import * as structures from "../../tests/utilities/structures"
10
10
  import { MIGRATIONS } from "../"
11
11
  import * as helpers from "./helpers"
12
12
 
13
- import tk from "timekeeper"
14
- const timestamp = new Date().toISOString()
15
- tk.freeze(timestamp)
13
+ const { mocks } = require("@budibase/backend-core/tests")
14
+ const timestamp = mocks.date.MOCK_DATE.toISOString()
16
15
 
17
16
  const clearMigrations = async () => {
18
17
  const dbs = [context.getDevAppDB(), context.getProdAppDB()]
@@ -93,16 +92,24 @@ describe("migrations", () => {
93
92
  await clearMigrations()
94
93
  const appId = config.prodAppId
95
94
  const roles = { [appId]: "role_12345" }
96
- await config.createUser({
97
- builder: false,
98
- admin: true,
99
- roles,
100
- }) // admin only
101
- await config.createUser({
102
- builder: false,
103
- admin: false,
104
- roles,
105
- }) // non admin non builder
95
+ await config.createUser(
96
+ undefined,
97
+ undefined,
98
+ undefined,
99
+ undefined,
100
+ false,
101
+ true,
102
+ roles
103
+ ) // admin only
104
+ await config.createUser(
105
+ undefined,
106
+ undefined,
107
+ undefined,
108
+ undefined,
109
+ false,
110
+ false,
111
+ roles
112
+ ) // non admin non builder
106
113
  await config.createTable()
107
114
  await config.createRow()
108
115
  await config.createRow()
@@ -45,18 +45,12 @@ function tarFilesToTmp(tmpDir: string, files: string[]) {
45
45
  * @return {*} either a readable stream or a string
46
46
  */
47
47
  export async function exportDB(dbName: string, opts: ExportOpts = {}) {
48
- const exportOpts = {
49
- filter: opts?.filter,
50
- batch_size: 1000,
51
- batch_limit: 5,
52
- style: "main_only",
53
- }
54
48
  return dbCore.doWithDB(dbName, async (db: any) => {
55
49
  // Write the dump to file if required
56
50
  if (opts?.exportPath) {
57
51
  const path = opts?.exportPath
58
52
  const writeStream = fs.createWriteStream(path)
59
- await db.dump(writeStream, exportOpts)
53
+ await db.dump(writeStream, { filter: opts?.filter })
60
54
  return path
61
55
  } else {
62
56
  // Stringify the dump in memory if required
@@ -65,7 +59,7 @@ export async function exportDB(dbName: string, opts: ExportOpts = {}) {
65
59
  memStream.on("data", (chunk: any) => {
66
60
  appString += chunk.toString()
67
61
  })
68
- await db.dump(memStream, exportOpts)
62
+ await db.dump(memStream, { filter: opts?.filter })
69
63
  return appString
70
64
  }
71
65
  })
@@ -88,9 +88,6 @@ export async function removeSecrets(datasources: Datasource[]) {
88
88
  const definitions = await getDefinitions()
89
89
  for (let datasource of datasources) {
90
90
  const schema = definitions[datasource.source]
91
- if (!schema) {
92
- continue
93
- }
94
91
  if (datasource.config) {
95
92
  // strip secrets from response, so they don't show in the network request
96
93
  if (datasource.config.auth) {
@@ -1,10 +1,13 @@
1
+ import env from "../environment"
1
2
  import { tmpdir } from "os"
2
3
 
3
- process.env.SELF_HOSTED = "1"
4
- process.env.NODE_ENV = "jest"
5
- process.env.MULTI_TENANCY = "1"
6
- // @ts-ignore
7
- process.env.BUDIBASE_DIR = tmpdir("budibase-unittests")
8
- process.env.LOG_LEVEL = process.env.LOG_LEVEL || "error"
9
- process.env.ENABLE_4XX_HTTP_LOGGING = "0"
10
- process.env.MOCK_REDIS = "1"
4
+ env._set("SELF_HOSTED", "1")
5
+ env._set("NODE_ENV", "jest")
6
+ env._set("JWT_SECRET", "test-jwtsecret")
7
+ env._set("CLIENT_ID", "test-client-id")
8
+ env._set("BUDIBASE_DIR", tmpdir("budibase-unittests"))
9
+ env._set("LOG_LEVEL", "silent")
10
+ env._set("PORT", 0)
11
+ env._set("MINIO_URL", "http://localhost")
12
+ env._set("MINIO_ACCESS_KEY", "test")
13
+ env._set("MINIO_SECRET_KEY", "test")
@@ -1,7 +1,9 @@
1
- import "./logging"
2
- import env from "../environment"
3
- import { env as coreEnv } from "@budibase/backend-core"
4
- import { testContainerUtils } from "@budibase/backend-core/tests"
1
+ import { mocks } from "@budibase/backend-core/tests"
2
+
3
+ // mock all dates to 2020-01-01T00:00:00.000Z
4
+ // use tk.reset() to use real dates in individual tests
5
+ const tk = require("timekeeper")
6
+ tk.freeze(mocks.date.MOCK_DATE)
5
7
 
6
8
  if (!process.env.DEBUG) {
7
9
  global.console.log = jest.fn() // console.log are ignored in tests
@@ -11,9 +13,5 @@ if (!process.env.DEBUG) {
11
13
  if (!process.env.CI) {
12
14
  // set a longer timeout in dev for debugging
13
15
  // 100 seconds
14
- jest.setTimeout(100 * 1000)
15
- } else {
16
- jest.setTimeout(10 * 1000)
16
+ jest.setTimeout(100000)
17
17
  }
18
-
19
- testContainerUtils.setupEnv(env, coreEnv)