@budibase/server 2.3.2-alpha.3 → 2.3.3

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 (543) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.584d49b4.css → index.4488f38d.css} +1 -1
  3. package/builder/assets/{index.bef36368.js → index.ef71e5c7.js} +199 -199
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +6527 -11196
  6. package/coverage/coverage-final.json +269 -353
  7. package/coverage/lcov-report/index.html +180 -405
  8. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +6 -6
  9. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
  10. package/coverage/lcov-report/src/api/controllers/application.ts.html +140 -140
  11. package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
  12. package/coverage/lcov-report/src/api/controllers/automation.ts.html +47 -47
  13. package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
  14. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +26 -26
  15. package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
  16. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +37 -37
  17. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +81 -81
  20. package/coverage/lcov-report/src/api/controllers/dev.ts.html +26 -26
  21. package/coverage/lcov-report/src/api/controllers/index.html +37 -37
  22. package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
  23. package/coverage/lcov-report/src/api/controllers/layout.ts.html +15 -15
  24. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
  25. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
  26. package/coverage/lcov-report/src/api/controllers/permission.ts.html +34 -34
  27. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
  28. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +18 -18
  31. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
  32. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  33. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
  34. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
  35. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +6 -6
  36. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +4 -4
  45. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +5 -5
  46. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +4 -4
  47. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +6 -6
  48. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +4 -4
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +7 -7
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +3 -3
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +7 -7
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +9 -9
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +13 -13
  58. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  59. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +33 -33
  60. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
  61. package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
  62. package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
  63. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +419 -431
  64. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +175 -211
  65. package/coverage/lcov-report/src/api/controllers/row/index.html +42 -42
  66. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +78 -78
  67. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +34 -34
  68. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +6 -6
  69. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +22 -22
  70. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +31 -31
  71. package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
  72. package/coverage/lcov-report/src/api/controllers/script.ts.html +2 -2
  73. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  74. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +22 -22
  75. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +51 -51
  76. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +195 -198
  77. package/coverage/lcov-report/src/api/controllers/table/index.html +47 -47
  78. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +42 -42
  79. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +61 -61
  80. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +63 -63
  81. package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
  82. package/coverage/lcov-report/src/api/controllers/user.ts.html +28 -28
  83. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +2 -2
  84. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  85. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +16 -16
  86. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +5 -5
  87. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +7 -7
  88. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +25 -25
  89. package/coverage/lcov-report/src/api/index.html +1 -1
  90. package/coverage/lcov-report/src/api/index.ts.html +27 -27
  91. package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
  92. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
  93. package/coverage/lcov-report/src/api/routes/application.ts.html +10 -10
  94. package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
  95. package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
  96. package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
  97. package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
  98. package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
  99. package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
  100. package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
  101. package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
  102. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  103. package/coverage/lcov-report/src/api/routes/index.ts.html +35 -35
  104. package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
  105. package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
  106. package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
  107. package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
  108. package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
  109. package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
  110. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +17 -14
  111. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  112. package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
  113. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +4 -4
  115. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
  116. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
  117. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
  118. package/coverage/lcov-report/src/api/routes/public/tests/index.html +12 -42
  119. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +27 -78
  120. package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
  121. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
  122. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
  124. package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
  125. package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
  126. package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
  127. package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
  128. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  129. package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
  130. package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
  131. package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +41 -110
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +19 -19
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +17 -23
  135. package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
  136. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  137. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
  138. package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
  139. package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
  140. package/coverage/lcov-report/src/app.ts.html +35 -38
  141. package/coverage/lcov-report/src/automations/actions.ts.html +24 -24
  142. package/coverage/lcov-report/src/automations/automationUtils.ts.html +4 -4
  143. package/coverage/lcov-report/src/automations/bullboard.ts.html +9 -9
  144. package/coverage/lcov-report/src/automations/index.html +27 -27
  145. package/coverage/lcov-report/src/automations/index.ts.html +9 -9
  146. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  147. package/coverage/lcov-report/src/automations/logging/index.ts.html +10 -10
  148. package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
  149. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
  150. package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
  151. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
  152. package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
  153. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
  154. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
  155. package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
  156. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  157. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  158. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  159. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +9 -9
  160. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +13 -13
  161. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
  162. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +4 -4
  163. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  164. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
  165. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  166. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
  170. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
  176. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
  177. package/coverage/lcov-report/src/automations/triggers.ts.html +46 -46
  178. package/coverage/lcov-report/src/automations/utils.ts.html +63 -63
  179. package/coverage/lcov-report/src/constants/index.html +16 -16
  180. package/coverage/lcov-report/src/constants/index.ts.html +99 -33
  181. package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
  182. package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
  183. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -33
  184. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
  185. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
  186. package/coverage/lcov-report/src/db/defaultData/index.html +11 -11
  187. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
  188. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
  189. package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
  190. package/coverage/lcov-report/src/db/inMemoryView.ts.html +4 -4
  191. package/coverage/lcov-report/src/db/index.html +16 -16
  192. package/coverage/lcov-report/src/db/index.ts.html +19 -19
  193. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +23 -26
  194. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  195. package/coverage/lcov-report/src/db/linkedRows/index.html +10 -10
  196. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +23 -23
  197. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +10 -10
  198. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  199. package/coverage/lcov-report/src/db/utils.ts.html +52 -52
  200. package/coverage/lcov-report/src/definitions/automations.ts.html +2 -2
  201. package/coverage/lcov-report/src/definitions/index.html +1 -1
  202. package/coverage/lcov-report/src/environment.ts.html +32 -32
  203. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
  204. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +6 -6
  205. package/coverage/lcov-report/src/events/index.html +1 -1
  206. package/coverage/lcov-report/src/events/index.ts.html +4 -4
  207. package/coverage/lcov-report/src/events/utils.ts.html +10 -10
  208. package/coverage/lcov-report/src/index.html +16 -16
  209. package/coverage/lcov-report/src/index.ts.html +1 -1
  210. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  211. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  212. package/coverage/lcov-report/src/integrations/base/index.html +30 -30
  213. package/coverage/lcov-report/src/integrations/base/query.ts.html +9 -9
  214. package/coverage/lcov-report/src/integrations/base/sql.ts.html +187 -217
  215. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +107 -107
  216. package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
  217. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  218. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
  219. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  220. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  221. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  222. package/coverage/lcov-report/src/integrations/index.html +27 -27
  223. package/coverage/lcov-report/src/integrations/index.ts.html +37 -37
  224. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  225. package/coverage/lcov-report/src/integrations/mongodb.ts.html +11 -11
  226. package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
  227. package/coverage/lcov-report/src/integrations/oracle.ts.html +14 -14
  228. package/coverage/lcov-report/src/integrations/postgres.ts.html +65 -65
  229. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  230. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  231. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  232. package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
  233. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  234. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  235. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  236. package/coverage/lcov-report/src/integrations/tests/index.html +5 -230
  237. package/coverage/lcov-report/src/integrations/utils.ts.html +74 -74
  238. package/coverage/lcov-report/src/middleware/appInfo.ts.html +5 -5
  239. package/coverage/lcov-report/src/middleware/authorized.ts.html +29 -29
  240. package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
  241. package/coverage/lcov-report/src/middleware/currentapp.ts.html +53 -53
  242. package/coverage/lcov-report/src/middleware/index.html +15 -15
  243. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  244. package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
  245. package/coverage/lcov-report/src/middleware/resourceId.ts.html +28 -28
  246. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  247. package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
  248. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
  265. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
  266. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  267. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
  268. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
  274. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  275. package/coverage/lcov-report/src/migrations/index.html +1 -1
  276. package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
  277. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  278. package/coverage/lcov-report/src/migrations/tests/index.html +8 -23
  279. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  280. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  281. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
  282. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +22 -22
  283. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
  284. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  286. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +10 -10
  287. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  288. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +23 -41
  289. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +18 -18
  290. package/coverage/lcov-report/src/sdk/app/backups/index.html +10 -10
  291. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
  292. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  293. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +39 -39
  294. package/coverage/lcov-report/src/sdk/app/datasources/index.html +1 -1
  295. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +3 -3
  296. package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
  297. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +3 -3
  298. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +4 -4
  299. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
  300. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  301. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
  302. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
  303. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  304. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +10 -10
  305. package/coverage/lcov-report/src/sdk/index.html +1 -1
  306. package/coverage/lcov-report/src/sdk/index.ts.html +11 -11
  307. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  308. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  309. package/coverage/lcov-report/src/sdk/users/utils.ts.html +31 -31
  310. package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
  311. package/coverage/lcov-report/src/sdk/utils/index.ts.html +11 -11
  312. package/coverage/lcov-report/src/startup.ts.html +42 -42
  313. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +189 -387
  314. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
  315. package/coverage/lcov-report/src/tests/utilities/index.html +18 -18
  316. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  317. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +27 -33
  318. package/coverage/lcov-report/src/threads/automation.ts.html +22 -22
  319. package/coverage/lcov-report/src/threads/index.html +1 -1
  320. package/coverage/lcov-report/src/threads/index.ts.html +10 -10
  321. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  322. package/coverage/lcov-report/src/threads/utils.ts.html +9 -9
  323. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
  324. package/coverage/lcov-report/src/utilities/centralPath.ts.html +2 -2
  325. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +17 -17
  326. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +8 -8
  327. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +25 -25
  328. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  329. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +6 -6
  330. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +8 -8
  331. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  332. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +7 -7
  333. package/coverage/lcov-report/src/utilities/global.ts.html +40 -40
  334. package/coverage/lcov-report/src/utilities/index.html +19 -34
  335. package/coverage/lcov-report/src/utilities/index.ts.html +26 -26
  336. package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
  337. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  338. package/coverage/lcov-report/src/utilities/routing/index.ts.html +4 -4
  339. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +19 -19
  340. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +49 -49
  341. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
  342. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
  343. package/coverage/lcov-report/src/utilities/schema.ts.html +3 -3
  344. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
  345. package/coverage/lcov-report/src/utilities/security.ts.html +22 -22
  346. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  347. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
  348. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  349. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  350. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +15 -15
  351. package/coverage/lcov-report/src/watch.ts.html +7 -7
  352. package/coverage/lcov-report/src/websocket.ts.html +5 -5
  353. package/coverage/lcov.info +11292 -18907
  354. package/dist/api/controllers/row/ExternalRequest.js +2 -4
  355. package/dist/api/controllers/row/external.js +1 -12
  356. package/dist/api/controllers/table/external.js +8 -8
  357. package/dist/api/routes/public/tests/utils.js +2 -29
  358. package/dist/app.js +1 -1
  359. package/dist/constants/index.js +24 -4
  360. package/dist/db/defaultData/datasource_bb_default.js +5 -6
  361. package/dist/db/linkedRows/LinkController.js +8 -9
  362. package/dist/integrations/base/sql.js +3 -10
  363. package/dist/package.json +6 -8
  364. package/dist/sdk/app/backups/exports.js +2 -8
  365. package/dist/tsconfig.build.tsbuildinfo +1 -1
  366. package/jest.config.ts +11 -28
  367. package/package.json +7 -9
  368. package/specs/openapi.json +6 -6
  369. package/specs/openapi.yaml +3 -3
  370. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  371. package/src/api/controllers/row/ExternalRequest.ts +2 -6
  372. package/src/api/controllers/row/external.ts +1 -13
  373. package/src/api/controllers/table/external.ts +2 -3
  374. package/src/api/routes/public/applications.ts +1 -0
  375. package/src/api/routes/public/tests/compare.spec.js +1 -1
  376. package/src/api/routes/public/tests/users.spec.js +1 -1
  377. package/src/api/routes/public/tests/utils.ts +8 -25
  378. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  379. package/src/api/routes/tests/analytics.spec.js +1 -4
  380. package/src/api/routes/tests/apikeys.spec.js +1 -1
  381. package/src/api/routes/tests/application.spec.ts +6 -20
  382. package/src/api/routes/tests/auth.spec.js +2 -2
  383. package/src/api/routes/tests/automation.spec.js +2 -6
  384. package/src/api/routes/tests/backup.spec.ts +13 -4
  385. package/src/api/routes/tests/{cloud.seq.spec.ts → cloud.spec.ts} +15 -11
  386. package/src/api/routes/tests/component.spec.js +1 -1
  387. package/src/api/routes/tests/datasource.spec.ts +3 -20
  388. package/src/api/routes/tests/dev.spec.js +1 -1
  389. package/src/api/routes/tests/integration.spec.js +1 -1
  390. package/src/api/routes/tests/layout.spec.js +1 -1
  391. package/src/api/routes/tests/metadata.spec.js +1 -1
  392. package/src/api/routes/tests/misc.spec.js +1 -1
  393. package/src/api/routes/tests/permissions.spec.js +1 -4
  394. package/src/api/routes/tests/{query.seq.spec.js → query.spec.js} +1 -21
  395. package/src/api/routes/tests/role.spec.js +1 -6
  396. package/src/api/routes/tests/routing.spec.js +1 -1
  397. package/src/api/routes/tests/row.spec.js +3 -11
  398. package/src/api/routes/tests/screen.spec.js +1 -1
  399. package/src/api/routes/tests/static.spec.js +1 -2
  400. package/src/api/routes/tests/table.spec.js +1 -1
  401. package/src/api/routes/tests/templates.spec.js +1 -1
  402. package/src/api/routes/tests/user.spec.js +0 -3
  403. package/src/api/routes/tests/utilities/TestFunctions.ts +2 -25
  404. package/src/api/routes/tests/utilities/index.ts +3 -5
  405. package/src/api/routes/tests/view.spec.js +1 -4
  406. package/src/api/routes/tests/webhook.spec.js +2 -11
  407. package/src/app.ts +1 -2
  408. package/src/automations/tests/automation.spec.js +4 -4
  409. package/src/automations/tests/bash.spec.js +1 -1
  410. package/src/automations/tests/discord.spec.js +1 -1
  411. package/src/automations/tests/executeQuery.spec.js +3 -2
  412. package/src/automations/tests/executeScript.spec.js +1 -1
  413. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  414. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  415. package/src/automations/tests/serverLog.spec.js +1 -1
  416. package/src/automations/tests/updateRow.spec.js +1 -1
  417. package/src/automations/tests/zapier.spec.js +1 -1
  418. package/src/constants/index.ts +23 -1
  419. package/src/db/defaultData/datasource_bb_default.ts +10 -6
  420. package/src/db/linkedRows/LinkController.ts +1 -2
  421. package/src/db/tests/linkController.spec.js +1 -4
  422. package/src/db/tests/linkTests.spec.js +1 -1
  423. package/src/integrations/base/sql.ts +5 -15
  424. package/src/integrations/oracle.ts +1 -1
  425. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  426. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  427. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  428. package/src/migrations/tests/index.spec.ts +2 -3
  429. package/src/sdk/app/backups/exports.ts +2 -8
  430. package/src/tests/jestEnv.ts +6 -2
  431. package/src/tests/jestSetup.ts +6 -5
  432. package/src/tests/utilities/TestConfiguration.ts +46 -112
  433. package/src/tests/utilities/structures.ts +2 -4
  434. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +0 -391
  435. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +0 -116
  436. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +0 -116
  437. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +0 -796
  438. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +0 -116
  439. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +0 -805
  440. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +0 -116
  441. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +0 -568
  442. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +0 -116
  443. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +0 -277
  444. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +0 -583
  445. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +0 -199
  446. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +0 -271
  447. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +0 -259
  448. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +0 -1066
  449. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +0 -154
  450. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +0 -1123
  451. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +0 -223
  452. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +0 -268
  453. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +0 -178
  454. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +0 -799
  455. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +0 -202
  456. package/coverage/lcov-report/src/api/routes/tests/index.html +0 -521
  457. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +0 -238
  458. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +0 -670
  459. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +0 -259
  460. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +0 -280
  461. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +0 -358
  462. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +0 -484
  463. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +0 -622
  464. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +0 -1696
  465. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +0 -478
  466. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +0 -430
  467. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +0 -1804
  468. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +0 -391
  469. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +0 -541
  470. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +0 -991
  471. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +0 -154
  472. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +0 -688
  473. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +0 -1342
  474. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +0 -484
  475. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +0 -337
  476. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +0 -187
  477. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +0 -223
  478. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +0 -133
  479. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +0 -250
  480. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +0 -166
  481. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +0 -229
  482. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +0 -229
  483. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +0 -232
  484. package/coverage/lcov-report/src/automations/tests/index.html +0 -341
  485. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +0 -220
  486. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +0 -202
  487. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +0 -436
  488. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +0 -298
  489. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +0 -151
  490. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +0 -217
  491. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +0 -166
  492. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +0 -280
  493. package/coverage/lcov-report/src/automations/unitTests/index.html +0 -116
  494. package/coverage/lcov-report/src/db/tests/index.html +0 -131
  495. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +0 -793
  496. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +0 -277
  497. package/coverage/lcov-report/src/integration-test/index.html +0 -116
  498. package/coverage/lcov-report/src/integration-test/postgres.spec.ts.html +0 -2341
  499. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +0 -310
  500. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +0 -199
  501. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +0 -349
  502. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +0 -550
  503. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +0 -331
  504. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +0 -376
  505. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +0 -253
  506. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +0 -1087
  507. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +0 -484
  508. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +0 -373
  509. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +0 -328
  510. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +0 -337
  511. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +0 -1870
  512. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +0 -421
  513. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +0 -1753
  514. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +0 -574
  515. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +0 -814
  516. package/coverage/lcov-report/src/middleware/tests/index.html +0 -161
  517. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +0 -397
  518. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +0 -214
  519. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +0 -163
  520. package/coverage/lcov-report/src/migrations/functions/tests/index.html +0 -161
  521. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +0 -163
  522. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +0 -517
  523. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +0 -190
  524. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +0 -131
  525. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +0 -190
  526. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +0 -244
  527. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +0 -535
  528. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +0 -313
  529. package/coverage/lcov-report/src/sdk/tests/index.html +0 -116
  530. package/coverage/lcov-report/src/utilities/retry.ts.html +0 -139
  531. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +0 -116
  532. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +0 -256
  533. package/dist/api/routes/tests/utilities/index.js +0 -131
  534. package/dist/tests/utilities/TestConfiguration.js +0 -618
  535. package/dist/tests/utilities/controllers.js +0 -40
  536. package/dist/tests/utilities/structures.js +0 -226
  537. package/dist/utilities/retry.js +0 -30
  538. package/jest-testcontainers-config.js +0 -8
  539. package/scripts/load/create-many-apps.js +0 -24
  540. package/scripts/load/create-many-rows.js +0 -30
  541. package/scripts/load/utils.js +0 -66
  542. package/src/integration-test/postgres.spec.ts +0 -752
  543. package/src/utilities/retry.ts +0 -18
@@ -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]
@@ -397,14 +392,11 @@ class InternalBuilder {
397
392
  delete parsedBody[key]
398
393
  }
399
394
  }
400
-
401
395
  // mysql can't use returning
402
396
  if (opts.disableReturning) {
403
397
  return query.insert(parsedBody)
404
398
  } else {
405
- return query
406
- .insert(parsedBody)
407
- .returning(generateSelectStatement(json, knex))
399
+ return query.insert(parsedBody).returning("*")
408
400
  }
409
401
  }
410
402
 
@@ -489,9 +481,7 @@ class InternalBuilder {
489
481
  if (opts.disableReturning) {
490
482
  return query.update(parsedBody)
491
483
  } else {
492
- return query
493
- .update(parsedBody)
494
- .returning(generateSelectStatement(json, knex))
484
+ return query.update(parsedBody).returning("*")
495
485
  }
496
486
  }
497
487
 
@@ -506,7 +496,7 @@ class InternalBuilder {
506
496
  if (opts.disableReturning) {
507
497
  return query.delete()
508
498
  } else {
509
- return query.delete().returning(generateSelectStatement(json, knex))
499
+ return query.delete().returning("*")
510
500
  }
511
501
  }
512
502
  }
@@ -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
  }
@@ -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()]
@@ -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
  })
@@ -3,7 +3,11 @@ import { tmpdir } from "os"
3
3
 
4
4
  env._set("SELF_HOSTED", "1")
5
5
  env._set("NODE_ENV", "jest")
6
- env._set("MULTI_TENANCY", "1")
7
- // @ts-ignore
6
+ env._set("JWT_SECRET", "test-jwtsecret")
7
+ env._set("CLIENT_ID", "test-client-id")
8
8
  env._set("BUDIBASE_DIR", tmpdir("budibase-unittests"))
9
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,6 +1,9 @@
1
- import env from "../environment"
2
- import { env as coreEnv } from "@budibase/backend-core"
3
- 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)
4
7
 
5
8
  if (!process.env.DEBUG) {
6
9
  global.console.log = jest.fn() // console.log are ignored in tests
@@ -12,5 +15,3 @@ if (!process.env.CI) {
12
15
  // 100 seconds
13
16
  jest.setTimeout(100000)
14
17
  }
15
-
16
- testContainerUtils.setupEnv(env, coreEnv)
@@ -1,4 +1,4 @@
1
- import { generator, mocks, structures } from "@budibase/backend-core/tests"
1
+ import { mocks } from "@budibase/backend-core/tests"
2
2
 
3
3
  // init the licensing mock
4
4
  import * as pro from "@budibase/pro"
@@ -10,7 +10,6 @@ mocks.licenses.useUnlimited()
10
10
  import { init as dbInit } from "../../db"
11
11
  dbInit()
12
12
  import env from "../../environment"
13
- import { env as coreEnv } from "@budibase/backend-core"
14
13
  import {
15
14
  basicTable,
16
15
  basicRow,
@@ -39,27 +38,17 @@ import { cleanup } from "../../utilities/fileSystem"
39
38
  import newid from "../../db/newid"
40
39
  import { generateUserMetadataID } from "../../db/utils"
41
40
  import { startup } from "../../startup"
42
- import supertest from "supertest"
43
- import {
44
- AuthToken,
45
- Database,
46
- Datasource,
47
- Row,
48
- SourceName,
49
- Table,
50
- } from "@budibase/types"
51
-
52
- type DefaultUserValues = {
53
- globalUserId: string
54
- email: string
55
- firstName: string
56
- lastName: string
57
- csrfToken: string
58
- }
41
+ const supertest = require("supertest")
42
+
43
+ const GLOBAL_USER_ID = "us_uuid1"
44
+ const EMAIL = "babs@babs.com"
45
+ const FIRSTNAME = "Barbara"
46
+ const LASTNAME = "Barbington"
47
+ const CSRF_TOKEN = "e3727778-7af0-4226-b5eb-f43cbe60a306"
59
48
 
60
49
  class TestConfiguration {
61
50
  server: any
62
- request: supertest.SuperTest<supertest.Test> | undefined
51
+ request: any
63
52
  started: boolean
64
53
  appId: string | null
65
54
  allApps: any[]
@@ -73,8 +62,6 @@ class TestConfiguration {
73
62
  linkedTable: any
74
63
  automation: any
75
64
  datasource: any
76
- tenantId: string | null
77
- defaultUserValues: DefaultUserValues
78
65
 
79
66
  constructor(openServer = true) {
80
67
  if (openServer) {
@@ -89,18 +76,6 @@ class TestConfiguration {
89
76
  }
90
77
  this.appId = null
91
78
  this.allApps = []
92
- this.tenantId = null
93
- this.defaultUserValues = this.populateDefaultUserValues()
94
- }
95
-
96
- populateDefaultUserValues(): DefaultUserValues {
97
- return {
98
- globalUserId: `us_${newid()}`,
99
- email: generator.email(),
100
- firstName: generator.first(),
101
- lastName: generator.last(),
102
- csrfToken: generator.hash(),
103
- }
104
79
  }
105
80
 
106
81
  getRequest() {
@@ -125,10 +100,10 @@ class TestConfiguration {
125
100
 
126
101
  getUserDetails() {
127
102
  return {
128
- globalId: this.defaultUserValues.globalUserId,
129
- email: this.defaultUserValues.email,
130
- firstName: this.defaultUserValues.firstName,
131
- lastName: this.defaultUserValues.lastName,
103
+ globalId: GLOBAL_USER_ID,
104
+ email: EMAIL,
105
+ firstName: FIRSTNAME,
106
+ lastName: LASTNAME,
132
107
  }
133
108
  }
134
109
 
@@ -136,9 +111,7 @@ class TestConfiguration {
136
111
  if (!appId) {
137
112
  appId = this.appId
138
113
  }
139
-
140
- const tenant = this.getTenantId()
141
- return tenancy.doInTenant(tenant, () => {
114
+ return tenancy.doInTenant(TENANT_ID, () => {
142
115
  // check if already in a context
143
116
  if (context.getAppId() == null && appId !== null) {
144
117
  return context.doInAppContext(appId, async () => {
@@ -154,11 +127,6 @@ class TestConfiguration {
154
127
 
155
128
  // use a new id as the name to avoid name collisions
156
129
  async init(appName = newid()) {
157
- this.defaultUserValues = this.populateDefaultUserValues()
158
- if (context.isMultiTenant()) {
159
- this.tenantId = structures.tenant.id()
160
- }
161
-
162
130
  if (!this.started) {
163
131
  await startup()
164
132
  }
@@ -181,30 +149,9 @@ class TestConfiguration {
181
149
  }
182
150
  }
183
151
 
184
- // MODES
185
- #setMultiTenancy = (value: boolean) => {
186
- env._set("MULTI_TENANCY", value)
187
- coreEnv._set("MULTI_TENANCY", value)
188
- }
189
-
190
- #setSelfHosted = (value: boolean) => {
191
- env._set("SELF_HOSTED", value)
192
- coreEnv._set("SELF_HOSTED", value)
193
- }
194
-
195
- modeCloud = () => {
196
- this.#setSelfHosted(false)
197
- this.#setMultiTenancy(true)
198
- }
199
-
200
- modeSelf = () => {
201
- this.#setSelfHosted(true)
202
- this.#setMultiTenancy(false)
203
- }
204
-
205
152
  // UTILS
206
153
 
207
- _req(body: any, params: any, controlFunc: any) {
154
+ async _req(body: any, params: any, controlFunc: any) {
208
155
  // create a fake request ctx
209
156
  const request: any = {}
210
157
  const appId = this.appId
@@ -212,7 +159,7 @@ class TestConfiguration {
212
159
  // fake cookies, we don't need them
213
160
  request.cookies = { set: () => {}, get: () => {} }
214
161
  request.config = { jwtSecret: env.JWT_SECRET }
215
- request.user = { appId, tenantId: this.getTenantId() }
162
+ request.user = { appId, tenantId: TENANT_ID }
216
163
  request.query = {}
217
164
  request.request = {
218
165
  body,
@@ -228,15 +175,15 @@ class TestConfiguration {
228
175
 
229
176
  // USER / AUTH
230
177
  async globalUser({
231
- id = this.defaultUserValues.globalUserId,
232
- firstName = this.defaultUserValues.firstName,
233
- lastName = this.defaultUserValues.lastName,
178
+ id = GLOBAL_USER_ID,
179
+ firstName = FIRSTNAME,
180
+ lastName = LASTNAME,
234
181
  builder = true,
235
182
  admin = false,
236
- email = this.defaultUserValues.email,
183
+ email = EMAIL,
237
184
  roles,
238
185
  }: any = {}) {
239
- return tenancy.doWithGlobalDB(this.getTenantId(), async (db: Database) => {
186
+ return tenancy.doWithGlobalDB(TENANT_ID, async (db: any) => {
240
187
  let existing
241
188
  try {
242
189
  existing = await db.get(id)
@@ -247,14 +194,14 @@ class TestConfiguration {
247
194
  _id: id,
248
195
  ...existing,
249
196
  roles: roles || {},
250
- tenantId: this.getTenantId(),
197
+ tenantId: TENANT_ID,
251
198
  firstName,
252
199
  lastName,
253
200
  }
254
201
  await sessions.createASession(id, {
255
202
  sessionId: "sessionid",
256
- tenantId: this.getTenantId(),
257
- csrfToken: this.defaultUserValues.csrfToken,
203
+ tenantId: TENANT_ID,
204
+ csrfToken: CSRF_TOKEN,
258
205
  })
259
206
  if (builder) {
260
207
  user.builder = { global: true }
@@ -268,7 +215,7 @@ class TestConfiguration {
268
215
  }
269
216
  const resp = await db.put(user)
270
217
  return {
271
- _rev: resp.rev,
218
+ _rev: resp._rev,
272
219
  ...user,
273
220
  }
274
221
  })
@@ -276,9 +223,9 @@ class TestConfiguration {
276
223
 
277
224
  async createUser(
278
225
  id = null,
279
- firstName = this.defaultUserValues.firstName,
280
- lastName = this.defaultUserValues.lastName,
281
- email = this.defaultUserValues.email,
226
+ firstName = FIRSTNAME,
227
+ lastName = LASTNAME,
228
+ email = EMAIL,
282
229
  builder = true,
283
230
  admin = false,
284
231
  roles = {}
@@ -317,13 +264,13 @@ class TestConfiguration {
317
264
  }
318
265
  await sessions.createASession(userId, {
319
266
  sessionId: "sessionid",
320
- tenantId: this.getTenantId(),
267
+ tenantId: TENANT_ID,
321
268
  })
322
269
  // have to fake this
323
270
  const authObj = {
324
271
  userId,
325
272
  sessionId: "sessionid",
326
- tenantId: this.getTenantId(),
273
+ tenantId: TENANT_ID,
327
274
  }
328
275
  const app = {
329
276
  roleId: roleId,
@@ -346,11 +293,10 @@ class TestConfiguration {
346
293
  }
347
294
 
348
295
  defaultHeaders(extras = {}) {
349
- const tenantId = this.getTenantId()
350
- const authObj: AuthToken = {
351
- userId: this.defaultUserValues.globalUserId,
296
+ const authObj = {
297
+ userId: GLOBAL_USER_ID,
352
298
  sessionId: "sessionid",
353
- tenantId,
299
+ tenantId: TENANT_ID,
354
300
  }
355
301
  const app = {
356
302
  roleId: roles.BUILTIN_ROLE_IDS.ADMIN,
@@ -364,20 +310,15 @@ class TestConfiguration {
364
310
  `${constants.Cookie.Auth}=${authToken}`,
365
311
  `${constants.Cookie.CurrentApp}=${appToken}`,
366
312
  ],
367
- [constants.Header.CSRF_TOKEN]: this.defaultUserValues.csrfToken,
313
+ [constants.Header.CSRF_TOKEN]: CSRF_TOKEN,
368
314
  ...extras,
369
315
  }
370
-
371
316
  if (this.appId) {
372
317
  headers[constants.Header.APP_ID] = this.appId
373
318
  }
374
319
  return headers
375
320
  }
376
321
 
377
- getTenantId() {
378
- return this.tenantId || TENANT_ID
379
- }
380
-
381
322
  publicHeaders({ prodApp = true } = {}) {
382
323
  const appId = prodApp ? this.prodAppId : this.appId
383
324
 
@@ -387,16 +328,11 @@ class TestConfiguration {
387
328
  if (appId) {
388
329
  headers[constants.Header.APP_ID] = appId
389
330
  }
390
-
391
- if (this.tenantId) {
392
- headers[constants.Header.TENANT_ID] = this.tenantId
393
- }
394
-
395
331
  return headers
396
332
  }
397
333
 
398
334
  async roleHeaders({
399
- email = this.defaultUserValues.email,
335
+ email = EMAIL,
400
336
  roleId = roles.BUILTIN_ROLE_IDS.ADMIN,
401
337
  builder = false,
402
338
  prodApp = true,
@@ -406,8 +342,8 @@ class TestConfiguration {
406
342
 
407
343
  // API
408
344
 
409
- async generateApiKey(userId = this.defaultUserValues.globalUserId) {
410
- return tenancy.doWithGlobalDB(this.getTenantId(), async (db: any) => {
345
+ async generateApiKey(userId = GLOBAL_USER_ID) {
346
+ return tenancy.doWithGlobalDB(TENANT_ID, async (db: any) => {
411
347
  const id = dbCore.generateDevInfoID(userId)
412
348
  let devInfo
413
349
  try {
@@ -416,7 +352,7 @@ class TestConfiguration {
416
352
  devInfo = { _id: id, userId }
417
353
  }
418
354
  devInfo.apiKey = encryption.encrypt(
419
- `${this.getTenantId()}${dbCore.SEPARATOR}${newid()}`
355
+ `${TENANT_ID}${dbCore.SEPARATOR}${newid()}`
420
356
  )
421
357
  await db.put(devInfo)
422
358
  return devInfo.apiKey
@@ -472,13 +408,13 @@ class TestConfiguration {
472
408
 
473
409
  // TABLE
474
410
 
475
- async updateTable(config?: any): Promise<Table> {
411
+ async updateTable(config?: any) {
476
412
  config = config || basicTable()
477
413
  this.table = await this._req(config, null, controllers.table.save)
478
414
  return this.table
479
415
  }
480
416
 
481
- async createTable(config?: Table) {
417
+ async createTable(config?: any) {
482
418
  if (config != null && config._id) {
483
419
  delete config._id
484
420
  }
@@ -522,7 +458,7 @@ class TestConfiguration {
522
458
 
523
459
  // ROW
524
460
 
525
- async createRow(config?: Row): Promise<Row> {
461
+ async createRow(config: any = null) {
526
462
  if (!this.table) {
527
463
  throw "Test requires table to be configured."
528
464
  }
@@ -531,7 +467,7 @@ class TestConfiguration {
531
467
  return this._req(config, { tableId }, controllers.row.save)
532
468
  }
533
469
 
534
- async getRow(tableId: string, rowId: string): Promise<Row> {
470
+ async getRow(tableId: string, rowId: string) {
535
471
  return this._req(null, { tableId, rowId }, controllers.row.find)
536
472
  }
537
473
 
@@ -613,9 +549,7 @@ class TestConfiguration {
613
549
 
614
550
  // DATASOURCE
615
551
 
616
- async createDatasource(config?: {
617
- datasource: Datasource
618
- }): Promise<Datasource> {
552
+ async createDatasource(config?: any) {
619
553
  config = config || basicDatasource()
620
554
  const response = await this._req(config, null, controllers.datasource.save)
621
555
  this.datasource = response.datasource
@@ -636,7 +570,7 @@ class TestConfiguration {
636
570
  return this.createDatasource({
637
571
  datasource: {
638
572
  ...basicDatasource().datasource,
639
- source: SourceName.REST,
573
+ source: "REST",
640
574
  config: cfg || {},
641
575
  },
642
576
  })
@@ -645,7 +579,7 @@ class TestConfiguration {
645
579
  async dynamicVariableDatasource() {
646
580
  let datasource = await this.restDatasource()
647
581
  const basedOnQuery = await this.createQuery({
648
- ...basicQuery(datasource._id!),
582
+ ...basicQuery(datasource._id),
649
583
  fields: {
650
584
  path: "www.google.com",
651
585
  },
@@ -673,7 +607,7 @@ class TestConfiguration {
673
607
  datasource: any,
674
608
  fields: any,
675
609
  params: any,
676
- verb?: string
610
+ verb: string
677
611
  ) {
678
612
  return request
679
613
  .post(`/api/queries/preview`)