@budibase/server 2.3.19 → 2.3.21-alpha.0

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 (528) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/__mocks__/node-fetch.ts +3 -0
  3. package/builder/assets/blankScreenPreview.72634dd1.png +0 -0
  4. package/builder/assets/{index.a3f8cb92.js → index.90fba548.js} +439 -426
  5. package/builder/assets/index.b24b9dea.css +6 -0
  6. package/builder/assets/listScreenPreview.599c0aae.png +0 -0
  7. package/builder/index.html +2 -2
  8. package/dist/api/controllers/automation.js +11 -2
  9. package/dist/api/controllers/cloud.js +2 -2
  10. package/dist/api/controllers/query/index.js +2 -0
  11. package/dist/api/controllers/row/ExternalRequest.js +50 -23
  12. package/dist/api/controllers/row/external.js +12 -1
  13. package/dist/api/controllers/row/internalSearch.js +6 -450
  14. package/dist/api/controllers/row/utils.js +1 -3
  15. package/dist/api/controllers/table/external.js +8 -8
  16. package/dist/api/index.js +1 -21
  17. package/dist/api/routes/automation.js +1 -1
  18. package/dist/api/routes/public/applications.js +7 -7
  19. package/dist/api/routes/public/queries.js +2 -2
  20. package/dist/api/routes/public/rows.js +5 -5
  21. package/dist/api/routes/public/tables.js +5 -5
  22. package/dist/api/routes/public/users.js +5 -5
  23. package/dist/app.js +9 -1
  24. package/dist/constants/index.js +4 -24
  25. package/dist/db/defaultData/datasource_bb_default.js +6 -5
  26. package/dist/db/index.js +25 -2
  27. package/dist/db/linkedRows/LinkController.js +9 -8
  28. package/dist/db/utils.js +2 -5
  29. package/dist/db/views/staticViews.js +2 -1
  30. package/dist/ddApm.js +11 -0
  31. package/dist/elasticApm.js +14 -0
  32. package/dist/integrations/base/sql.js +6 -3
  33. package/dist/integrations/googlesheets.js +17 -20
  34. package/dist/middleware/authorized.js +5 -3
  35. package/dist/middleware/builder.js +6 -3
  36. package/dist/migrations/functions/backfill/global/configs.js +10 -4
  37. package/dist/migrations/tests/helpers.js +1 -1
  38. package/dist/migrations/tests/structures.js +1 -1
  39. package/dist/package.json +14 -9
  40. package/dist/sdk/app/backups/constants.js +2 -1
  41. package/dist/sdk/app/backups/exports.js +20 -7
  42. package/dist/sdk/app/datasources/datasources.js +3 -0
  43. package/dist/sdk/app/rows/attachments.js +1 -1
  44. package/dist/startup.js +3 -0
  45. package/dist/tsconfig.build.tsbuildinfo +1 -1
  46. package/dist/utilities/redis.js +2 -0
  47. package/dist/utilities/retry.js +30 -0
  48. package/jest-testcontainers-config.js +8 -0
  49. package/jest.config.ts +35 -22
  50. package/package.json +15 -10
  51. package/scripts/load/create-many-apps.js +24 -0
  52. package/scripts/load/create-many-rows.js +30 -0
  53. package/scripts/load/utils.js +66 -0
  54. package/scripts/test.sh +12 -0
  55. package/specs/{generate.js → generate.ts} +7 -9
  56. package/specs/openapi.json +30 -30
  57. package/specs/openapi.yaml +27 -27
  58. package/specs/{parameters.js → parameters.ts} +6 -6
  59. package/specs/resources/{application.js → application.ts} +4 -4
  60. package/specs/resources/{index.js → index.ts} +8 -8
  61. package/specs/resources/{misc.js → misc.ts} +3 -3
  62. package/specs/resources/{query.js → query.ts} +4 -4
  63. package/specs/resources/{row.js → row.ts} +3 -4
  64. package/specs/resources/{table.js → table.ts} +5 -5
  65. package/specs/resources/{user.js → user.ts} +3 -3
  66. package/specs/resources/utils/Resource.ts +39 -0
  67. package/specs/resources/utils/{index.js → index.ts} +1 -1
  68. package/specs/{security.js → security.ts} +1 -1
  69. package/src/api/controllers/automation.ts +13 -2
  70. package/src/api/controllers/cloud.ts +2 -2
  71. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  72. package/src/api/controllers/query/index.ts +2 -0
  73. package/src/api/controllers/row/ExternalRequest.ts +98 -27
  74. package/src/api/controllers/row/external.ts +13 -1
  75. package/src/api/controllers/row/internalSearch.ts +11 -524
  76. package/src/api/controllers/row/utils.ts +1 -2
  77. package/src/api/controllers/table/external.ts +3 -2
  78. package/src/api/index.ts +3 -22
  79. package/src/api/routes/automation.ts +1 -1
  80. package/src/api/routes/public/applications.ts +7 -8
  81. package/src/api/routes/public/queries.ts +2 -2
  82. package/src/api/routes/public/rows.ts +5 -5
  83. package/src/api/routes/public/tables.ts +5 -5
  84. package/src/api/routes/public/tests/{compare.spec.js → compare.spec.ts} +45 -26
  85. package/src/api/routes/public/tests/users.spec.js +1 -1
  86. package/src/api/routes/public/tests/utils.ts +25 -8
  87. package/src/api/routes/public/users.ts +5 -5
  88. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  89. package/src/api/routes/tests/analytics.spec.js +4 -1
  90. package/src/api/routes/tests/apikeys.spec.js +1 -1
  91. package/src/api/routes/tests/application.spec.ts +20 -6
  92. package/src/api/routes/tests/auth.spec.js +2 -2
  93. package/src/api/routes/tests/automation.spec.js +6 -2
  94. package/src/api/routes/tests/backup.spec.ts +4 -14
  95. package/src/api/routes/tests/cloud.spec.ts +20 -31
  96. package/src/api/routes/tests/component.spec.js +1 -1
  97. package/src/api/routes/tests/datasource.spec.ts +20 -3
  98. package/src/api/routes/tests/dev.spec.js +1 -1
  99. package/src/api/routes/tests/environmentVariables.spec.ts +144 -0
  100. package/src/api/routes/tests/integration.spec.js +1 -1
  101. package/src/api/routes/tests/layout.spec.js +1 -1
  102. package/src/api/routes/tests/metadata.spec.js +1 -1
  103. package/src/api/routes/tests/misc.spec.js +1 -1
  104. package/src/api/routes/tests/permissions.spec.js +4 -1
  105. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +22 -1
  106. package/src/api/routes/tests/role.spec.js +6 -1
  107. package/src/api/routes/tests/routing.spec.js +1 -1
  108. package/src/api/routes/tests/row.spec.js +11 -3
  109. package/src/api/routes/tests/screen.spec.js +1 -1
  110. package/src/api/routes/tests/static.spec.js +2 -13
  111. package/src/api/routes/tests/table.spec.js +1 -1
  112. package/src/api/routes/tests/templates.spec.js +1 -1
  113. package/src/api/routes/tests/user.spec.js +11 -12
  114. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -3
  115. package/src/api/routes/tests/utilities/index.ts +5 -3
  116. package/src/api/routes/tests/view.spec.js +4 -1
  117. package/src/api/routes/tests/webhook.spec.js +11 -2
  118. package/src/app.ts +12 -1
  119. package/src/automations/tests/automation.spec.js +4 -4
  120. package/src/automations/tests/bash.spec.js +1 -1
  121. package/src/automations/tests/discord.spec.js +1 -1
  122. package/src/automations/tests/executeQuery.spec.js +2 -3
  123. package/src/automations/tests/executeScript.spec.js +1 -1
  124. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  125. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  126. package/src/automations/tests/serverLog.spec.js +1 -1
  127. package/src/automations/tests/updateRow.spec.js +1 -1
  128. package/src/automations/tests/zapier.spec.js +1 -1
  129. package/src/constants/index.ts +1 -23
  130. package/src/db/defaultData/datasource_bb_default.ts +6 -10
  131. package/src/db/index.ts +2 -2
  132. package/src/db/linkedRows/LinkController.ts +2 -1
  133. package/src/db/tests/linkController.spec.js +4 -1
  134. package/src/db/tests/linkTests.spec.js +1 -1
  135. package/src/db/utils.ts +0 -4
  136. package/src/db/views/staticViews.ts +3 -3
  137. package/src/ddApm.ts +7 -0
  138. package/src/definitions/openapi.ts +449 -63
  139. package/src/elasticApm.ts +10 -0
  140. package/src/integration-test/postgres.spec.ts +1032 -0
  141. package/src/integrations/base/sql.ts +11 -5
  142. package/src/integrations/googlesheets.ts +21 -22
  143. package/src/integrations/oracle.ts +1 -1
  144. package/src/integrations/tests/couchdb.spec.ts +0 -2
  145. package/src/integrations/tests/googlesheets.spec.ts +122 -0
  146. package/src/middleware/authorized.ts +6 -4
  147. package/src/middleware/builder.ts +8 -3
  148. package/src/migrations/functions/backfill/global/configs.ts +15 -9
  149. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  150. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  151. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +4 -5
  152. package/src/migrations/tests/helpers.ts +2 -2
  153. package/src/migrations/tests/index.spec.ts +13 -20
  154. package/src/migrations/tests/structures.ts +1 -0
  155. package/src/sdk/app/backups/constants.ts +1 -0
  156. package/src/sdk/app/backups/exports.ts +32 -10
  157. package/src/sdk/app/datasources/datasources.ts +3 -0
  158. package/src/sdk/app/rows/attachments.ts +1 -1
  159. package/src/startup.ts +4 -1
  160. package/src/tests/jestEnv.ts +9 -11
  161. package/src/tests/jestSetup.ts +9 -7
  162. package/src/tests/logging.ts +34 -0
  163. package/src/tests/utilities/TestConfiguration.ts +187 -101
  164. package/src/tests/utilities/structures.ts +16 -4
  165. package/src/utilities/redis.ts +2 -0
  166. package/src/utilities/retry.ts +18 -0
  167. package/tsconfig.build.json +1 -0
  168. package/builder/assets/index.4488f38d.css +0 -6
  169. package/coverage/clover.xml +0 -11774
  170. package/coverage/coverage-final.json +0 -284
  171. package/coverage/lcov-report/base.css +0 -224
  172. package/coverage/lcov-report/block-navigation.js +0 -87
  173. package/coverage/lcov-report/favicon.png +0 -0
  174. package/coverage/lcov-report/index.html +0 -1031
  175. package/coverage/lcov-report/prettify.css +0 -1
  176. package/coverage/lcov-report/prettify.js +0 -2
  177. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  178. package/coverage/lcov-report/sorter.js +0 -196
  179. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  180. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +0 -247
  181. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -1987
  182. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  183. package/coverage/lcov-report/src/api/controllers/automation.ts.html +0 -940
  184. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  185. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +0 -442
  186. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  187. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +0 -1135
  188. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -262
  189. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  190. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -694
  191. package/coverage/lcov-report/src/api/controllers/dev.ts.html +0 -472
  192. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  193. package/coverage/lcov-report/src/api/controllers/integration.ts.html +0 -124
  194. package/coverage/lcov-report/src/api/controllers/layout.ts.html +0 -226
  195. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +0 -211
  196. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +0 -127
  197. package/coverage/lcov-report/src/api/controllers/permission.ts.html +0 -619
  198. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  199. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  200. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  201. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -499
  202. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  203. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  204. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  205. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -136
  206. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -385
  207. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  208. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  209. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  210. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  211. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  212. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  213. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
  214. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  215. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  216. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  217. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  218. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -325
  219. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  220. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  221. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  222. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  223. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  224. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  225. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  226. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  227. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  228. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  229. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  230. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -1000
  231. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +0 -235
  232. package/coverage/lcov-report/src/api/controllers/role.ts.html +0 -397
  233. package/coverage/lcov-report/src/api/controllers/routing.ts.html +0 -370
  234. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2305
  235. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +0 -931
  236. package/coverage/lcov-report/src/api/controllers/row/index.html +0 -206
  237. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  238. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +0 -1609
  239. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +0 -1678
  240. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +0 -595
  241. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +0 -556
  242. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  243. package/coverage/lcov-report/src/api/controllers/script.ts.html +0 -121
  244. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  245. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -679
  246. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +0 -649
  247. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +0 -1153
  248. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  249. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +0 -514
  250. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -658
  251. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1273
  252. package/coverage/lcov-report/src/api/controllers/templates.ts.html +0 -214
  253. package/coverage/lcov-report/src/api/controllers/user.ts.html +0 -634
  254. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +0 -214
  255. package/coverage/lcov-report/src/api/controllers/view/index.html +0 -161
  256. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +0 -661
  257. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +0 -580
  258. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +0 -694
  259. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -385
  260. package/coverage/lcov-report/src/api/index.html +0 -116
  261. package/coverage/lcov-report/src/api/index.ts.html +0 -352
  262. package/coverage/lcov-report/src/api/routes/analytics.ts.html +0 -112
  263. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
  264. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -256
  265. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  266. package/coverage/lcov-report/src/api/routes/automation.ts.html +0 -346
  267. package/coverage/lcov-report/src/api/routes/backup.ts.html +0 -127
  268. package/coverage/lcov-report/src/api/routes/cloud.ts.html +0 -139
  269. package/coverage/lcov-report/src/api/routes/component.ts.html +0 -127
  270. package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
  271. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -145
  272. package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
  273. package/coverage/lcov-report/src/api/routes/index.html +0 -551
  274. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -298
  275. package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
  276. package/coverage/lcov-report/src/api/routes/layout.ts.html +0 -133
  277. package/coverage/lcov-report/src/api/routes/metadata.ts.html +0 -199
  278. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  279. package/coverage/lcov-report/src/api/routes/permission.ts.html +0 -208
  280. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  281. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -673
  282. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  283. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
  284. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  285. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -340
  286. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  287. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  288. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  289. package/coverage/lcov-report/src/api/routes/public/tests/index.html +0 -116
  290. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +0 -169
  291. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  292. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  293. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  294. package/coverage/lcov-report/src/api/routes/query.ts.html +0 -268
  295. package/coverage/lcov-report/src/api/routes/role.ts.html +0 -157
  296. package/coverage/lcov-report/src/api/routes/routing.ts.html +0 -127
  297. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  298. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  299. package/coverage/lcov-report/src/api/routes/script.ts.html +0 -115
  300. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  301. package/coverage/lcov-report/src/api/routes/table.ts.html +0 -595
  302. package/coverage/lcov-report/src/api/routes/templates.ts.html +0 -133
  303. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  304. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  305. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +0 -367
  306. package/coverage/lcov-report/src/api/routes/user.ts.html +0 -238
  307. package/coverage/lcov-report/src/api/routes/utils/index.html +0 -116
  308. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +0 -805
  309. package/coverage/lcov-report/src/api/routes/view.ts.html +0 -187
  310. package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
  311. package/coverage/lcov-report/src/app.ts.html +0 -424
  312. package/coverage/lcov-report/src/automations/actions.ts.html +0 -316
  313. package/coverage/lcov-report/src/automations/automationUtils.ts.html +0 -562
  314. package/coverage/lcov-report/src/automations/bullboard.ts.html +0 -199
  315. package/coverage/lcov-report/src/automations/index.html +0 -191
  316. package/coverage/lcov-report/src/automations/index.ts.html +0 -163
  317. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  318. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  319. package/coverage/lcov-report/src/automations/steps/bash.ts.html +0 -319
  320. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
  321. package/coverage/lcov-report/src/automations/steps/delay.ts.html +0 -217
  322. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
  323. package/coverage/lcov-report/src/automations/steps/discord.ts.html +0 -397
  324. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +0 -370
  325. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +0 -325
  326. package/coverage/lcov-report/src/automations/steps/filter.ts.html +0 -394
  327. package/coverage/lcov-report/src/automations/steps/index.html +0 -371
  328. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +0 -409
  329. package/coverage/lcov-report/src/automations/steps/loop.ts.html +0 -241
  330. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +0 -499
  331. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +0 -664
  332. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +0 -355
  333. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +0 -256
  334. package/coverage/lcov-report/src/automations/steps/slack.ts.html +0 -340
  335. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +0 -439
  336. package/coverage/lcov-report/src/automations/steps/utils.ts.html +0 -223
  337. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +0 -403
  338. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  339. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
  340. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
  341. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +0 -193
  342. package/coverage/lcov-report/src/automations/triggerInfo/index.html +0 -206
  343. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
  344. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +0 -196
  345. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +0 -220
  346. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +0 -220
  347. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +0 -208
  348. package/coverage/lcov-report/src/automations/triggers.ts.html +0 -553
  349. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  350. package/coverage/lcov-report/src/constants/index.html +0 -146
  351. package/coverage/lcov-report/src/constants/index.ts.html +0 -697
  352. package/coverage/lcov-report/src/constants/layouts.ts.html +0 -526
  353. package/coverage/lcov-report/src/constants/screens.ts.html +0 -229
  354. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
  355. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
  356. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
  357. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  358. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
  359. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
  360. package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
  361. package/coverage/lcov-report/src/db/inMemoryView.ts.html +0 -250
  362. package/coverage/lcov-report/src/db/index.html +0 -176
  363. package/coverage/lcov-report/src/db/index.ts.html +0 -133
  364. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +0 -1417
  365. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
  366. package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
  367. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +0 -736
  368. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +0 -460
  369. package/coverage/lcov-report/src/db/newid.ts.html +0 -100
  370. package/coverage/lcov-report/src/db/utils.ts.html +0 -913
  371. package/coverage/lcov-report/src/definitions/automations.ts.html +0 -184
  372. package/coverage/lcov-report/src/definitions/index.html +0 -116
  373. package/coverage/lcov-report/src/environment.ts.html +0 -472
  374. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +0 -259
  375. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +0 -172
  376. package/coverage/lcov-report/src/events/index.html +0 -161
  377. package/coverage/lcov-report/src/events/index.ts.html +0 -100
  378. package/coverage/lcov-report/src/events/utils.ts.html +0 -319
  379. package/coverage/lcov-report/src/index.html +0 -191
  380. package/coverage/lcov-report/src/index.ts.html +0 -133
  381. package/coverage/lcov-report/src/integrations/airtable.ts.html +0 -529
  382. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  383. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  384. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -139
  385. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -2017
  386. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  387. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  388. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -484
  389. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
  390. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -646
  391. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  392. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
  393. package/coverage/lcov-report/src/integrations/index.html +0 -371
  394. package/coverage/lcov-report/src/integrations/index.ts.html +0 -460
  395. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1012
  396. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1999
  397. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -979
  398. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1387
  399. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1087
  400. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  401. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -328
  402. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  403. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1372
  404. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  405. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  406. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +0 -85
  407. package/coverage/lcov-report/src/integrations/tests/index.html +0 -116
  408. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1036
  409. package/coverage/lcov-report/src/middleware/appInfo.ts.html +0 -145
  410. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -472
  411. package/coverage/lcov-report/src/middleware/builder.ts.html +0 -361
  412. package/coverage/lcov-report/src/middleware/currentapp.ts.html +0 -508
  413. package/coverage/lcov-report/src/middleware/index.html +0 -236
  414. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +0 -205
  415. package/coverage/lcov-report/src/middleware/publicApi.ts.html +0 -148
  416. package/coverage/lcov-report/src/middleware/resourceId.ts.html +0 -283
  417. package/coverage/lcov-report/src/middleware/selfhost.ts.html +0 -121
  418. package/coverage/lcov-report/src/middleware/utils.ts.html +0 -112
  419. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -166
  420. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  421. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  422. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  423. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  424. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  425. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  426. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  427. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  428. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  429. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -286
  430. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  431. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  432. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  433. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  434. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  435. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  436. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  437. package/coverage/lcov-report/src/migrations/functions/index.html +0 -161
  438. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  439. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
  440. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  441. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  442. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  443. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  444. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  445. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  446. package/coverage/lcov-report/src/migrations/index.html +0 -116
  447. package/coverage/lcov-report/src/migrations/index.ts.html +0 -430
  448. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  449. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  450. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  451. package/coverage/lcov-report/src/sdk/app/applications/index.html +0 -146
  452. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +0 -106
  453. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +0 -268
  454. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +0 -136
  455. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  456. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  457. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  458. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  459. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  460. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -640
  461. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  462. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  463. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  464. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +0 -562
  465. package/coverage/lcov-report/src/sdk/app/datasources/index.html +0 -131
  466. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +0 -100
  467. package/coverage/lcov-report/src/sdk/app/queries/index.html +0 -131
  468. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +0 -100
  469. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +0 -235
  470. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +0 -265
  471. package/coverage/lcov-report/src/sdk/app/rows/index.html +0 -146
  472. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +0 -106
  473. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +0 -139
  474. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  475. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -274
  476. package/coverage/lcov-report/src/sdk/index.html +0 -116
  477. package/coverage/lcov-report/src/sdk/index.ts.html +0 -151
  478. package/coverage/lcov-report/src/sdk/users/index.html +0 -131
  479. package/coverage/lcov-report/src/sdk/users/index.ts.html +0 -100
  480. package/coverage/lcov-report/src/sdk/users/utils.ts.html +0 -277
  481. package/coverage/lcov-report/src/sdk/utils/index.html +0 -116
  482. package/coverage/lcov-report/src/sdk/utils/index.ts.html +0 -133
  483. package/coverage/lcov-report/src/startup.ts.html +0 -484
  484. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -2032
  485. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
  486. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  487. package/coverage/lcov-report/src/tests/utilities/index.ts.html +0 -118
  488. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -856
  489. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1555
  490. package/coverage/lcov-report/src/threads/index.html +0 -161
  491. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  492. package/coverage/lcov-report/src/threads/query.ts.html +0 -1000
  493. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  494. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +0 -94
  495. package/coverage/lcov-report/src/utilities/centralPath.ts.html +0 -151
  496. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +0 -343
  497. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
  498. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +0 -601
  499. package/coverage/lcov-report/src/utilities/fileSystem/index.html +0 -206
  500. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -100
  501. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +0 -277
  502. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
  503. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +0 -193
  504. package/coverage/lcov-report/src/utilities/global.ts.html +0 -499
  505. package/coverage/lcov-report/src/utilities/index.html +0 -251
  506. package/coverage/lcov-report/src/utilities/index.ts.html +0 -487
  507. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  508. package/coverage/lcov-report/src/utilities/routing/index.html +0 -116
  509. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  510. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  511. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +0 -922
  512. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
  513. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +0 -373
  514. package/coverage/lcov-report/src/utilities/schema.ts.html +0 -508
  515. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +0 -169
  516. package/coverage/lcov-report/src/utilities/security.ts.html +0 -280
  517. package/coverage/lcov-report/src/utilities/usageQuota/index.html +0 -131
  518. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +0 -325
  519. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +0 -139
  520. package/coverage/lcov-report/src/utilities/users.ts.html +0 -232
  521. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +0 -646
  522. package/coverage/lcov-report/src/watch.ts.html +0 -196
  523. package/coverage/lcov-report/src/websocket.ts.html +0 -163
  524. package/coverage/lcov.info +0 -21777
  525. package/dist/api/routes/public/tests/utils.js +0 -33
  526. package/dist/integrations/base/utils.js +0 -16
  527. package/specs/resources/utils/Resource.js +0 -26
  528. package/src/integrations/base/utils.ts +0 -12
@@ -9,7 +9,7 @@ const read = [],
9
9
  * @openapi
10
10
  * /queries/{queryId}:
11
11
  * post:
12
- * operationId: execute
12
+ * operationId: queryExecute
13
13
  * summary: Execute a query
14
14
  * description: Queries which have been created within a Budibase app can be executed using this,
15
15
  * tags:
@@ -43,7 +43,7 @@ write.push(new Endpoint("post", "/queries/:queryId", controller.execute))
43
43
  * @openapi
44
44
  * /queries/search:
45
45
  * post:
46
- * operationId: search
46
+ * operationId: querySearch
47
47
  * summary: Search for queries
48
48
  * description: Based on query properties (currently only name) search for queries.
49
49
  * tags:
@@ -9,7 +9,7 @@ const read = [],
9
9
  * @openapi
10
10
  * /tables/{tableId}/rows:
11
11
  * post:
12
- * operationId: create
12
+ * operationId: rowCreate
13
13
  * summary: Create a row
14
14
  * description: Creates a row within the specified table.
15
15
  * tags:
@@ -44,7 +44,7 @@ write.push(new Endpoint("post", "/tables/:tableId/rows", controller.create))
44
44
  * @openapi
45
45
  * /tables/{tableId}/rows/{rowId}:
46
46
  * put:
47
- * operationId: update
47
+ * operationId: rowUpdate
48
48
  * summary: Update a row
49
49
  * description: Updates a row within the specified table.
50
50
  * tags:
@@ -81,7 +81,7 @@ write.push(
81
81
  * @openapi
82
82
  * /tables/{tableId}/rows/{rowId}:
83
83
  * delete:
84
- * operationId: destroy
84
+ * operationId: rowDestroy
85
85
  * summary: Delete a row
86
86
  * description: Deletes a row within the specified table.
87
87
  * tags:
@@ -109,7 +109,7 @@ write.push(
109
109
  * @openapi
110
110
  * /tables/{tableId}/rows/{rowId}:
111
111
  * get:
112
- * operationId: getById
112
+ * operationId: rowGetById
113
113
  * summary: Retrieve a row
114
114
  * description: This gets a single row, it will be enriched with the full related rows, rather than
115
115
  * the squashed "primaryDisplay" format returned by the search endpoint.
@@ -136,7 +136,7 @@ read.push(new Endpoint("get", "/tables/:tableId/rows/:rowId", controller.read))
136
136
  * @openapi
137
137
  * /tables/{tableId}/rows/search:
138
138
  * post:
139
- * operationId: search
139
+ * operationId: rowSearch
140
140
  * summary: Search for rows
141
141
  * tags:
142
142
  * - rows
@@ -9,7 +9,7 @@ const read = [],
9
9
  * @openapi
10
10
  * /tables:
11
11
  * post:
12
- * operationId: create
12
+ * operationId: tableCreate
13
13
  * summary: Create a table
14
14
  * description: Create a table, this could be internal or external.
15
15
  * tags:
@@ -46,7 +46,7 @@ write.push(
46
46
  * @openapi
47
47
  * /tables/{tableId}:
48
48
  * put:
49
- * operationId: update
49
+ * operationId: tableUpdate
50
50
  * summary: Update a table
51
51
  * description: Update a table, this could be internal or external.
52
52
  * tags:
@@ -83,7 +83,7 @@ write.push(
83
83
  * @openapi
84
84
  * /tables/{tableId}:
85
85
  * delete:
86
- * operationId: destroy
86
+ * operationId: tableDestroy
87
87
  * summary: Delete a table
88
88
  * description: Delete a table, this could be internal or external.
89
89
  * tags:
@@ -108,7 +108,7 @@ write.push(new Endpoint("delete", "/tables/:tableId", controller.destroy))
108
108
  * @openapi
109
109
  * /tables/{tableId}:
110
110
  * get:
111
- * operationId: getById
111
+ * operationId: tableGetById
112
112
  * summary: Retrieve a table
113
113
  * description: Lookup a table, this could be internal or external.
114
114
  * tags:
@@ -133,7 +133,7 @@ read.push(new Endpoint("get", "/tables/:tableId", controller.read))
133
133
  * @openapi
134
134
  * /tables/search:
135
135
  * post:
136
- * operationId: search
136
+ * operationId: tableSearch
137
137
  * summary: Search for tables
138
138
  * description: Based on table properties (currently only name) search for tables. This could be
139
139
  * an internal or an external table.
@@ -1,19 +1,20 @@
1
- const jestOpenAPI = require("jest-openapi").default
2
- const generateSchema = require("../../../../../specs/generate")
3
- const setup = require("../../tests/utilities")
4
- const { generateMakeRequest } = require("./utils")
1
+ import jestOpenAPI from "jest-openapi"
2
+ import { run as generateSchema } from "../../../../../specs/generate"
3
+ import * as setup from "../../tests/utilities"
4
+ import { generateMakeRequest } from "./utils"
5
+ import { Table, App, Row, User } from "@budibase/types"
5
6
 
6
7
  const yamlPath = generateSchema()
7
- jestOpenAPI(yamlPath)
8
+ jestOpenAPI(yamlPath!)
8
9
 
9
10
  let config = setup.getConfig()
10
- let apiKey, table, app, makeRequest
11
+ let apiKey: string, table: Table, app: App, makeRequest: any
11
12
 
12
13
  beforeAll(async () => {
13
14
  app = await config.init()
14
15
  table = await config.updateTable()
15
16
  apiKey = await config.generateApiKey()
16
- makeRequest = generateMakeRequest(apiKey, setup)
17
+ makeRequest = generateMakeRequest(apiKey)
17
18
  })
18
19
 
19
20
  afterAll(setup.afterAll)
@@ -25,19 +26,29 @@ describe("check the applications endpoints", () => {
25
26
  })
26
27
 
27
28
  it("should allow creating an application", async () => {
28
- const res = await makeRequest("post", "/applications", {
29
- name: "new App"
30
- }, null)
29
+ const res = await makeRequest(
30
+ "post",
31
+ "/applications",
32
+ {
33
+ name: "new App",
34
+ },
35
+ null
36
+ )
31
37
  expect(res).toSatisfyApiSpec()
32
38
  })
33
39
 
34
40
  it("should allow updating an application", async () => {
35
41
  const app = config.getApp()
36
42
  const appId = config.getAppId()
37
- const res = await makeRequest("put", `/applications/${appId}`, {
38
- ...app,
39
- name: "updated app name",
40
- }, appId)
43
+ const res = await makeRequest(
44
+ "put",
45
+ `/applications/${appId}`,
46
+ {
47
+ ...app,
48
+ name: "updated app name",
49
+ },
50
+ appId
51
+ )
41
52
  expect(res).toSatisfyApiSpec()
42
53
  })
43
54
 
@@ -47,7 +58,10 @@ describe("check the applications endpoints", () => {
47
58
  })
48
59
 
49
60
  it("should allow deleting an application", async () => {
50
- const res = await makeRequest("delete", `/applications/${config.getAppId()}`)
61
+ const res = await makeRequest(
62
+ "delete",
63
+ `/applications/${config.getAppId()}`
64
+ )
51
65
  expect(res).toSatisfyApiSpec()
52
66
  })
53
67
  })
@@ -68,8 +82,8 @@ describe("check the tables endpoints", () => {
68
82
  column1: {
69
83
  type: "string",
70
84
  constraints: {},
71
- }
72
- }
85
+ },
86
+ },
73
87
  })
74
88
  expect(res).toSatisfyApiSpec()
75
89
  })
@@ -92,12 +106,11 @@ describe("check the tables endpoints", () => {
92
106
  })
93
107
 
94
108
  describe("check the rows endpoints", () => {
95
- let row
109
+ let row: Row
96
110
  it("should allow retrieving rows through search", async () => {
97
111
  table = await config.updateTable()
98
112
  const res = await makeRequest("post", `/tables/${table._id}/rows/search`, {
99
- query: {
100
- },
113
+ query: {},
101
114
  })
102
115
  expect(res).toSatisfyApiSpec()
103
116
  })
@@ -111,9 +124,13 @@ describe("check the rows endpoints", () => {
111
124
  })
112
125
 
113
126
  it("should allow updating a row", async () => {
114
- const res = await makeRequest("put", `/tables/${table._id}/rows/${row._id}`, {
115
- name: "test row updated",
116
- })
127
+ const res = await makeRequest(
128
+ "put",
129
+ `/tables/${table._id}/rows/${row._id}`,
130
+ {
131
+ name: "test row updated",
132
+ }
133
+ )
117
134
  expect(res).toSatisfyApiSpec()
118
135
  })
119
136
 
@@ -123,13 +140,16 @@ describe("check the rows endpoints", () => {
123
140
  })
124
141
 
125
142
  it("should allow deleting a row", async () => {
126
- const res = await makeRequest("delete", `/tables/${table._id}/rows/${row._id}`)
143
+ const res = await makeRequest(
144
+ "delete",
145
+ `/tables/${table._id}/rows/${row._id}`
146
+ )
127
147
  expect(res).toSatisfyApiSpec()
128
148
  })
129
149
  })
130
150
 
131
151
  describe("check the users endpoints", () => {
132
- let user
152
+ let user: User
133
153
  it("should allow retrieving users through search", async () => {
134
154
  user = await config.createUser()
135
155
  const res = await makeRequest("post", "/users/search")
@@ -163,4 +183,3 @@ describe("check the queries endpoints", () => {
163
183
  expect(res).toSatisfyApiSpec()
164
184
  })
165
185
  })
166
-
@@ -10,7 +10,7 @@ beforeAll(async () => {
10
10
  await config.init()
11
11
  globalUser = await config.globalUser()
12
12
  apiKey = await config.generateApiKey(globalUser._id)
13
- makeRequest = generateMakeRequest(apiKey, setup)
13
+ makeRequest = generateMakeRequest(apiKey)
14
14
  workerRequests.readGlobalUser.mockReturnValue(globalUser)
15
15
  })
16
16
 
@@ -1,13 +1,27 @@
1
+ import * as setup from "../../tests/utilities"
1
2
  import { checkSlashesInUrl } from "../../../../utilities"
3
+ import supertest from "supertest"
2
4
 
3
- export function generateMakeRequest(apiKey: string, setup: any) {
4
- const request = setup.getRequest()
5
- const config = setup.getConfig()
5
+ export type HttpMethod = "post" | "get" | "put" | "delete" | "patch"
6
+
7
+ export type MakeRequestResponse = (
8
+ method: HttpMethod,
9
+ endpoint: string,
10
+ body?: any,
11
+ intAppId?: string
12
+ ) => Promise<supertest.Response>
13
+
14
+ export function generateMakeRequest(
15
+ apiKey: string,
16
+ isInternal = false
17
+ ): MakeRequestResponse {
18
+ const request = setup.getRequest()!
19
+ const config = setup.getConfig()!
6
20
  return async (
7
- method: string,
21
+ method: HttpMethod,
8
22
  endpoint: string,
9
23
  body?: any,
10
- intAppId: string = config.getAppId()
24
+ intAppId: string | null = config.getAppId()
11
25
  ) => {
12
26
  const extraHeaders: any = {
13
27
  "x-budibase-api-key": apiKey,
@@ -15,9 +29,12 @@ export function generateMakeRequest(apiKey: string, setup: any) {
15
29
  if (intAppId) {
16
30
  extraHeaders["x-budibase-app-id"] = intAppId
17
31
  }
18
- const req = request[method](
19
- checkSlashesInUrl(`/api/public/v1/${endpoint}`)
20
- ).set(config.defaultHeaders(extraHeaders))
32
+
33
+ const url = isInternal
34
+ ? endpoint
35
+ : checkSlashesInUrl(`/api/public/v1/${endpoint}`)
36
+
37
+ const req = request[method](url).set(config.defaultHeaders(extraHeaders))
21
38
  if (body) {
22
39
  req.send(body)
23
40
  }
@@ -9,7 +9,7 @@ const read = [],
9
9
  * @openapi
10
10
  * /users:
11
11
  * post:
12
- * operationId: create
12
+ * operationId: userCreate
13
13
  * summary: Create a user
14
14
  * tags:
15
15
  * - users
@@ -36,7 +36,7 @@ write.push(new Endpoint("post", "/users", controller.create))
36
36
  * @openapi
37
37
  * /users/{userId}:
38
38
  * put:
39
- * operationId: update
39
+ * operationId: userUpdate
40
40
  * summary: Update a user
41
41
  * tags:
42
42
  * - users
@@ -65,7 +65,7 @@ write.push(new Endpoint("put", "/users/:userId", controller.update))
65
65
  * @openapi
66
66
  * /users/{userId}:
67
67
  * delete:
68
- * operationId: destroy
68
+ * operationId: userDestroy
69
69
  * summary: Delete a user
70
70
  * tags:
71
71
  * - users
@@ -88,7 +88,7 @@ write.push(new Endpoint("delete", "/users/:userId", controller.destroy))
88
88
  * @openapi
89
89
  * /users/{userId}:
90
90
  * get:
91
- * operationId: getById
91
+ * operationId: userGetById
92
92
  * summary: Retrieve a user
93
93
  * tags:
94
94
  * - users
@@ -111,7 +111,7 @@ read.push(new Endpoint("get", "/users/:userId", controller.read))
111
111
  * @openapi
112
112
  * /users/search:
113
113
  * post:
114
- * operationId: search
114
+ * operationId: userSearch
115
115
  * summary: Search for users
116
116
  * description: Based on user properties (currently only name) search for users.
117
117
  * tags:
@@ -7,7 +7,7 @@ Array [
7
7
  "entities": Array [
8
8
  Object {
9
9
  "_id": "ta_users",
10
- "_rev": "1-6f4013e796887f1771bf7837598d87e7",
10
+ "_rev": "1-2375e1bc58aeec664dc1b1f04ad43e44",
11
11
  "createdAt": "2020-01-01T00:00:00.000Z",
12
12
  "name": "Users",
13
13
  "primaryDisplay": "email",
@@ -10,8 +10,11 @@ describe("/static", () => {
10
10
 
11
11
  afterAll(setup.afterAll)
12
12
 
13
- beforeEach(async () => {
13
+ beforeAll(async () => {
14
14
  app = await config.init()
15
+ })
16
+
17
+ beforeEach(()=>{
15
18
  jest.clearAllMocks()
16
19
  })
17
20
 
@@ -7,7 +7,7 @@ describe("/api/keys", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeEach(async () => {
10
+ beforeAll(async () => {
11
11
  await config.init()
12
12
  })
13
13
 
@@ -14,18 +14,22 @@ jest.mock("../../../utilities/redis", () => ({
14
14
  import { clearAllApps, checkBuilderEndpoint } from "./utilities/TestFunctions"
15
15
  import * as setup from "./utilities"
16
16
  import { AppStatus } from "../../../db/utils"
17
- import { events } from "@budibase/backend-core"
17
+ import { events, utils } from "@budibase/backend-core"
18
18
  import env from "../../../environment"
19
19
 
20
+ jest.setTimeout(15000)
21
+
20
22
  describe("/applications", () => {
21
23
  let request = setup.getRequest()
22
24
  let config = setup.getConfig()
23
25
 
24
26
  afterAll(setup.afterAll)
25
27
 
26
- beforeEach(async () => {
27
- await clearAllApps()
28
+ beforeAll(async () => {
28
29
  await config.init()
30
+ })
31
+
32
+ beforeEach(async () => {
29
33
  jest.clearAllMocks()
30
34
  })
31
35
 
@@ -33,7 +37,7 @@ describe("/applications", () => {
33
37
  it("creates empty app", async () => {
34
38
  const res = await request
35
39
  .post("/api/applications")
36
- .field("name", "My App")
40
+ .field("name", utils.newid())
37
41
  .set(config.defaultHeaders())
38
42
  .expect("Content-Type", /json/)
39
43
  .expect(200)
@@ -44,7 +48,7 @@ describe("/applications", () => {
44
48
  it("creates app from template", async () => {
45
49
  const res = await request
46
50
  .post("/api/applications")
47
- .field("name", "My App")
51
+ .field("name", utils.newid())
48
52
  .field("useTemplate", "true")
49
53
  .field("templateKey", "test")
50
54
  .field("templateString", "{}") // override the file download
@@ -59,7 +63,7 @@ describe("/applications", () => {
59
63
  it("creates app from file", async () => {
60
64
  const res = await request
61
65
  .post("/api/applications")
62
- .field("name", "My App")
66
+ .field("name", utils.newid())
63
67
  .field("useTemplate", "true")
64
68
  .set(config.defaultHeaders())
65
69
  .attach("templateFile", "src/api/routes/tests/data/export.txt")
@@ -106,6 +110,11 @@ describe("/applications", () => {
106
110
  })
107
111
 
108
112
  describe("fetch", () => {
113
+ beforeEach(async () => {
114
+ // Clean all apps but the onde from config
115
+ await clearAllApps(config.getTenantId(), [config.getAppId()!])
116
+ })
117
+
109
118
  it("lists all applications", async () => {
110
119
  await config.createApp("app1")
111
120
  await config.createApp("app2")
@@ -266,6 +275,11 @@ describe("/applications", () => {
266
275
  })
267
276
 
268
277
  describe("unpublish", () => {
278
+ beforeEach(async () => {
279
+ // We want to republish as the unpublish will delete the prod app
280
+ await config.publish()
281
+ })
282
+
269
283
  it("should unpublish app with dev app ID", async () => {
270
284
  const appId = config.getAppId()
271
285
  await request
@@ -7,7 +7,7 @@ describe("/authenticate", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeEach(async () => {
10
+ beforeAll(async () => {
11
11
  await config.init()
12
12
  })
13
13
 
@@ -18,7 +18,7 @@ describe("/authenticate", () => {
18
18
  .set(config.defaultHeaders())
19
19
  .expect("Content-Type", /json/)
20
20
  .expect(200)
21
- expect(res.body._id).toEqual(generateUserMetadataID("us_uuid1"))
21
+ expect(res.body._id).toEqual(generateUserMetadataID(config.user._id))
22
22
  })
23
23
  })
24
24
  })
@@ -10,12 +10,16 @@ const MAX_RETRIES = 4
10
10
  const { TRIGGER_DEFINITIONS, ACTION_DEFINITIONS } = require("../../../automations")
11
11
  const { events } = require("@budibase/backend-core")
12
12
 
13
+
14
+ jest.setTimeout(30000)
15
+
13
16
  describe("/automations", () => {
14
17
  let request = setup.getRequest()
15
18
  let config = setup.getConfig()
16
19
 
17
20
  afterAll(setup.afterAll)
18
21
 
22
+ // For some reason this cannot be a beforeAll or the test "tests the automation successfully" fail
19
23
  beforeEach(async () => {
20
24
  await config.init()
21
25
  })
@@ -145,7 +149,7 @@ describe("/automations", () => {
145
149
  let elements = await getAllTableRows(config)
146
150
  // don't test it unless there are values to test
147
151
  if (elements.length > 1) {
148
- expect(elements.length).toEqual(5)
152
+ expect(elements.length).toBeGreaterThanOrEqual(MAX_RETRIES)
149
153
  expect(elements[0].name).toEqual("Test")
150
154
  expect(elements[0].description).toEqual("TEST")
151
155
  return
@@ -305,7 +309,7 @@ describe("/automations", () => {
305
309
  .expect('Content-Type', /json/)
306
310
  .expect(200)
307
311
 
308
- expect(res.body[0]).toEqual(expect.objectContaining(autoConfig))
312
+ expect(res.body[0]).toEqual(expect.objectContaining(autoConfig))
309
313
  })
310
314
 
311
315
  it("should apply authorization to endpoint", async () => {
@@ -1,17 +1,8 @@
1
- jest.mock("@budibase/backend-core", () => {
2
- const core = jest.requireActual("@budibase/backend-core")
3
- return {
4
- ...core,
5
- objectStore: {
6
- budibaseTempDir: core.objectStore.budibaseTempDir,
7
- },
8
- }
9
- })
10
-
11
1
  import * as setup from "./utilities"
12
2
  import { events } from "@budibase/backend-core"
13
3
  import sdk from "../../../sdk"
14
4
  import { checkBuilderEndpoint } from "./utilities/TestFunctions"
5
+
15
6
  describe("/backups", () => {
16
7
  let request = setup.getRequest()
17
8
  let config = setup.getConfig()
@@ -28,7 +19,6 @@ describe("/backups", () => {
28
19
  .get(`/api/backups/export?appId=${config.getAppId()}&appname=test`)
29
20
  .set(config.defaultHeaders())
30
21
  .expect(200)
31
- expect(res.text).toBeDefined()
32
22
  expect(res.headers["content-type"]).toEqual("application/gzip")
33
23
  expect(events.app.exported).toBeCalledTimes(1)
34
24
  })
@@ -44,9 +34,9 @@ describe("/backups", () => {
44
34
 
45
35
  describe("calculateBackupStats", () => {
46
36
  it("should be able to calculate the backup statistics", async () => {
47
- config.createAutomation()
48
- config.createScreen()
49
- let res = await sdk.backups.calculateBackupStats(config.getAppId())
37
+ await config.createAutomation()
38
+ await config.createScreen()
39
+ let res = await sdk.backups.calculateBackupStats(config.getAppId()!)
50
40
  expect(res.automations).toEqual(1)
51
41
  expect(res.datasources).toEqual(1)
52
42
  expect(res.screens).toEqual(1)
@@ -1,65 +1,54 @@
1
- import { db as dbCore } from "@budibase/backend-core"
1
+ import { App } from "@budibase/types"
2
+
3
+ jest.setTimeout(30000)
4
+
2
5
  import { AppStatus } from "../../../db/utils"
3
6
 
4
7
  import * as setup from "./utilities"
5
8
 
9
+ import { wipeDb } from "./utilities/TestFunctions"
10
+ import { tenancy } from "@budibase/backend-core"
11
+
6
12
  describe("/cloud", () => {
7
- let request = setup.getRequest()
13
+ let request = setup.getRequest()!
8
14
  let config = setup.getConfig()
9
15
 
10
16
  afterAll(setup.afterAll)
11
17
 
12
- beforeEach(async () => {
18
+ beforeAll(async () => {
19
+ // Importing is only allowed in self hosted environments
13
20
  await config.init()
14
- })
15
-
16
- afterEach(async () => {
17
- // clear all mocks
18
- jest.clearAllMocks()
21
+ config.modeSelf()
19
22
  })
20
23
 
21
24
  describe("import", () => {
22
25
  it("should be able to import apps", async () => {
23
26
  // first we need to delete any existing apps on the system so it looks clean otherwise the
24
27
  // import will not run
25
- await request
26
- .post(
27
- `/api/applications/${dbCore.getProdAppID(
28
- config.getAppId()
29
- )}/unpublish`
30
- )
31
- .set(config.defaultHeaders())
32
- .expect(204)
33
- await request
34
- .delete(`/api/applications/${config.getAppId()}`)
35
- .set(config.defaultHeaders())
36
- .expect("Content-Type", /json/)
37
- .expect(200)
38
-
39
- // get a count of apps before the import
40
- const preImportApps = await request
41
- .get(`/api/applications?status=${AppStatus.ALL}`)
42
- .set(config.defaultHeaders())
43
- .expect("Content-Type", /json/)
44
- .expect(200)
28
+ await wipeDb()
45
29
 
46
30
  // Perform the import
47
31
  const res = await request
48
32
  .post(`/api/cloud/import`)
33
+ .set(config.publicHeaders())
49
34
  .attach("importFile", "src/api/routes/tests/data/export-test.tar.gz")
50
- .set(config.defaultHeaders())
51
35
  .expect(200)
52
36
  expect(res.body.message).toEqual("Apps successfully imported.")
53
37
 
54
38
  // get a count of apps after the import
55
39
  const postImportApps = await request
56
40
  .get(`/api/applications?status=${AppStatus.ALL}`)
57
- .set(config.defaultHeaders())
41
+ .set(config.publicHeaders())
58
42
  .expect("Content-Type", /json/)
59
43
  .expect(200)
60
44
 
45
+ const apps = postImportApps.body as App[]
61
46
  // There are two apps in the file that was imported so check for this
62
- expect(postImportApps.body.length).toEqual(2)
47
+ expect(apps.length).toEqual(2)
48
+ // The new tenant id was assigned to the imported apps
49
+ expect(tenancy.getTenantIDFromAppID(apps[0].appId)).toBe(
50
+ config.getTenantId()
51
+ )
63
52
  })
64
53
  })
65
54
  })
@@ -7,7 +7,7 @@ describe("/component", () => {
7
7
 
8
8
  afterAll(setup.afterAll)
9
9
 
10
- beforeEach(async () => {
10
+ beforeAll(async () => {
11
11
  await config.init()
12
12
  })
13
13