@budibase/server 2.3.15 → 2.3.17-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 (458) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.4488f38d.css → index.7e76c039.css} +1 -1
  3. package/builder/assets/{index.e88df740.js → index.e8838b62.js} +364 -364
  4. package/builder/index.html +2 -2
  5. package/dist/api/controllers/query/index.js +2 -0
  6. package/dist/api/controllers/row/ExternalRequest.js +4 -2
  7. package/dist/api/controllers/row/external.js +12 -1
  8. package/dist/api/controllers/table/external.js +8 -8
  9. package/dist/api/routes/public/tests/utils.js +29 -2
  10. package/dist/api/routes/tests/utilities/index.js +131 -0
  11. package/dist/app.js +7 -1
  12. package/dist/constants/index.js +4 -24
  13. package/dist/db/defaultData/datasource_bb_default.js +6 -5
  14. package/dist/db/linkedRows/LinkController.js +9 -8
  15. package/dist/ddApm.js +11 -0
  16. package/dist/elasticApm.js +14 -0
  17. package/dist/integrations/base/sql.js +10 -3
  18. package/dist/package.json +9 -6
  19. package/dist/sdk/app/backups/exports.js +8 -2
  20. package/dist/sdk/app/datasources/datasources.js +3 -0
  21. package/dist/tests/utilities/TestConfiguration.js +626 -0
  22. package/dist/tests/utilities/controllers.js +40 -0
  23. package/dist/tests/utilities/structures.js +234 -0
  24. package/dist/tsconfig.build.tsbuildinfo +1 -1
  25. package/dist/utilities/retry.js +30 -0
  26. package/jest-testcontainers-config.js +8 -0
  27. package/jest.config.ts +28 -11
  28. package/package.json +10 -7
  29. package/scripts/load/create-many-apps.js +24 -0
  30. package/scripts/load/create-many-rows.js +30 -0
  31. package/scripts/load/utils.js +66 -0
  32. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  33. package/src/api/controllers/query/index.ts +2 -0
  34. package/src/api/controllers/row/ExternalRequest.ts +6 -2
  35. package/src/api/controllers/row/external.ts +13 -1
  36. package/src/api/controllers/table/external.ts +3 -2
  37. package/src/api/routes/public/applications.ts +0 -1
  38. package/src/api/routes/public/tests/compare.spec.js +1 -1
  39. package/src/api/routes/public/tests/users.spec.js +1 -1
  40. package/src/api/routes/public/tests/utils.ts +25 -8
  41. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  42. package/src/api/routes/tests/analytics.spec.js +4 -1
  43. package/src/api/routes/tests/apikeys.spec.js +1 -1
  44. package/src/api/routes/tests/application.spec.ts +20 -6
  45. package/src/api/routes/tests/auth.spec.js +2 -2
  46. package/src/api/routes/tests/automation.spec.js +6 -2
  47. package/src/api/routes/tests/backup.spec.ts +4 -13
  48. package/src/api/routes/tests/{cloud.spec.ts → cloud.seq.spec.ts} +11 -15
  49. package/src/api/routes/tests/component.spec.js +1 -1
  50. package/src/api/routes/tests/datasource.spec.ts +20 -3
  51. package/src/api/routes/tests/dev.spec.js +1 -1
  52. package/src/api/routes/tests/environmentVariables.spec.ts +144 -0
  53. package/src/api/routes/tests/integration.spec.js +1 -1
  54. package/src/api/routes/tests/layout.spec.js +1 -1
  55. package/src/api/routes/tests/metadata.spec.js +1 -1
  56. package/src/api/routes/tests/misc.spec.js +1 -1
  57. package/src/api/routes/tests/permissions.spec.js +4 -1
  58. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +22 -1
  59. package/src/api/routes/tests/role.spec.js +6 -1
  60. package/src/api/routes/tests/routing.spec.js +1 -1
  61. package/src/api/routes/tests/row.spec.js +11 -3
  62. package/src/api/routes/tests/screen.spec.js +1 -1
  63. package/src/api/routes/tests/static.spec.js +2 -1
  64. package/src/api/routes/tests/table.spec.js +1 -1
  65. package/src/api/routes/tests/templates.spec.js +1 -1
  66. package/src/api/routes/tests/user.spec.js +12 -12
  67. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -2
  68. package/src/api/routes/tests/utilities/index.ts +5 -3
  69. package/src/api/routes/tests/view.spec.js +4 -1
  70. package/src/api/routes/tests/webhook.spec.js +11 -2
  71. package/src/app.ts +10 -1
  72. package/src/automations/tests/automation.spec.js +4 -4
  73. package/src/automations/tests/bash.spec.js +1 -1
  74. package/src/automations/tests/discord.spec.js +1 -1
  75. package/src/automations/tests/executeQuery.spec.js +2 -3
  76. package/src/automations/tests/executeScript.spec.js +1 -1
  77. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  78. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  79. package/src/automations/tests/serverLog.spec.js +1 -1
  80. package/src/automations/tests/updateRow.spec.js +1 -1
  81. package/src/automations/tests/zapier.spec.js +1 -1
  82. package/src/constants/index.ts +1 -23
  83. package/src/db/defaultData/datasource_bb_default.ts +6 -10
  84. package/src/db/linkedRows/LinkController.ts +2 -1
  85. package/src/db/tests/linkController.spec.js +4 -1
  86. package/src/db/tests/linkTests.spec.js +1 -1
  87. package/src/ddApm.ts +7 -0
  88. package/src/elasticApm.ts +10 -0
  89. package/src/integration-test/postgres.spec.ts +752 -0
  90. package/src/integrations/base/sql.ts +15 -5
  91. package/src/integrations/oracle.ts +1 -1
  92. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  93. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  94. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  95. package/src/migrations/tests/index.spec.ts +13 -20
  96. package/src/sdk/app/backups/exports.ts +8 -2
  97. package/src/sdk/app/datasources/datasources.ts +3 -0
  98. package/src/tests/jestEnv.ts +2 -6
  99. package/src/tests/jestSetup.ts +8 -7
  100. package/src/tests/utilities/TestConfiguration.ts +126 -50
  101. package/src/tests/utilities/structures.ts +16 -2
  102. package/src/utilities/retry.ts +18 -0
  103. package/coverage/clover.xml +0 -11755
  104. package/coverage/coverage-final.json +0 -284
  105. package/coverage/lcov-report/base.css +0 -224
  106. package/coverage/lcov-report/block-navigation.js +0 -87
  107. package/coverage/lcov-report/favicon.png +0 -0
  108. package/coverage/lcov-report/index.html +0 -1031
  109. package/coverage/lcov-report/prettify.css +0 -1
  110. package/coverage/lcov-report/prettify.js +0 -2
  111. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  112. package/coverage/lcov-report/sorter.js +0 -196
  113. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  114. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +0 -247
  115. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -1987
  116. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  117. package/coverage/lcov-report/src/api/controllers/automation.ts.html +0 -940
  118. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  119. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +0 -442
  120. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  121. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +0 -1135
  122. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -262
  123. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  124. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -694
  125. package/coverage/lcov-report/src/api/controllers/dev.ts.html +0 -472
  126. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  127. package/coverage/lcov-report/src/api/controllers/integration.ts.html +0 -124
  128. package/coverage/lcov-report/src/api/controllers/layout.ts.html +0 -226
  129. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +0 -211
  130. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +0 -127
  131. package/coverage/lcov-report/src/api/controllers/permission.ts.html +0 -619
  132. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  133. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  134. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  135. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -499
  136. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  137. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  138. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  139. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -136
  140. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -385
  141. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  142. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  143. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  144. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  145. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  146. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  147. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
  148. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  149. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  150. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  151. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  152. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -325
  153. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  154. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  155. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  156. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  157. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  158. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  159. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  160. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  161. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  162. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  163. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  164. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -1000
  165. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +0 -235
  166. package/coverage/lcov-report/src/api/controllers/role.ts.html +0 -397
  167. package/coverage/lcov-report/src/api/controllers/routing.ts.html +0 -370
  168. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2305
  169. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +0 -931
  170. package/coverage/lcov-report/src/api/controllers/row/index.html +0 -206
  171. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  172. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +0 -1609
  173. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +0 -1678
  174. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +0 -577
  175. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +0 -556
  176. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  177. package/coverage/lcov-report/src/api/controllers/script.ts.html +0 -121
  178. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  179. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -679
  180. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +0 -649
  181. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +0 -1153
  182. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  183. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +0 -514
  184. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -658
  185. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1273
  186. package/coverage/lcov-report/src/api/controllers/templates.ts.html +0 -214
  187. package/coverage/lcov-report/src/api/controllers/user.ts.html +0 -634
  188. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +0 -214
  189. package/coverage/lcov-report/src/api/controllers/view/index.html +0 -161
  190. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +0 -661
  191. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +0 -580
  192. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +0 -694
  193. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -385
  194. package/coverage/lcov-report/src/api/index.html +0 -116
  195. package/coverage/lcov-report/src/api/index.ts.html +0 -352
  196. package/coverage/lcov-report/src/api/routes/analytics.ts.html +0 -112
  197. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
  198. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -256
  199. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  200. package/coverage/lcov-report/src/api/routes/automation.ts.html +0 -346
  201. package/coverage/lcov-report/src/api/routes/backup.ts.html +0 -127
  202. package/coverage/lcov-report/src/api/routes/cloud.ts.html +0 -139
  203. package/coverage/lcov-report/src/api/routes/component.ts.html +0 -127
  204. package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
  205. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -145
  206. package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
  207. package/coverage/lcov-report/src/api/routes/index.html +0 -551
  208. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -298
  209. package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
  210. package/coverage/lcov-report/src/api/routes/layout.ts.html +0 -133
  211. package/coverage/lcov-report/src/api/routes/metadata.ts.html +0 -199
  212. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  213. package/coverage/lcov-report/src/api/routes/permission.ts.html +0 -208
  214. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  215. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -673
  216. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  217. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
  218. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  219. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -340
  220. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  221. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  222. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  223. package/coverage/lcov-report/src/api/routes/public/tests/index.html +0 -116
  224. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +0 -169
  225. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  226. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  227. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  228. package/coverage/lcov-report/src/api/routes/query.ts.html +0 -268
  229. package/coverage/lcov-report/src/api/routes/role.ts.html +0 -157
  230. package/coverage/lcov-report/src/api/routes/routing.ts.html +0 -127
  231. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  232. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  233. package/coverage/lcov-report/src/api/routes/script.ts.html +0 -115
  234. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  235. package/coverage/lcov-report/src/api/routes/table.ts.html +0 -595
  236. package/coverage/lcov-report/src/api/routes/templates.ts.html +0 -133
  237. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  238. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  239. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +0 -367
  240. package/coverage/lcov-report/src/api/routes/user.ts.html +0 -238
  241. package/coverage/lcov-report/src/api/routes/utils/index.html +0 -116
  242. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +0 -805
  243. package/coverage/lcov-report/src/api/routes/view.ts.html +0 -187
  244. package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
  245. package/coverage/lcov-report/src/app.ts.html +0 -424
  246. package/coverage/lcov-report/src/automations/actions.ts.html +0 -316
  247. package/coverage/lcov-report/src/automations/automationUtils.ts.html +0 -562
  248. package/coverage/lcov-report/src/automations/bullboard.ts.html +0 -199
  249. package/coverage/lcov-report/src/automations/index.html +0 -191
  250. package/coverage/lcov-report/src/automations/index.ts.html +0 -163
  251. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  252. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  253. package/coverage/lcov-report/src/automations/steps/bash.ts.html +0 -319
  254. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
  255. package/coverage/lcov-report/src/automations/steps/delay.ts.html +0 -217
  256. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
  257. package/coverage/lcov-report/src/automations/steps/discord.ts.html +0 -349
  258. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +0 -370
  259. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +0 -325
  260. package/coverage/lcov-report/src/automations/steps/filter.ts.html +0 -394
  261. package/coverage/lcov-report/src/automations/steps/index.html +0 -371
  262. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +0 -361
  263. package/coverage/lcov-report/src/automations/steps/loop.ts.html +0 -241
  264. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +0 -499
  265. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +0 -664
  266. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +0 -355
  267. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +0 -256
  268. package/coverage/lcov-report/src/automations/steps/slack.ts.html +0 -292
  269. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +0 -439
  270. package/coverage/lcov-report/src/automations/steps/utils.ts.html +0 -223
  271. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +0 -355
  272. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  273. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
  274. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
  275. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +0 -193
  276. package/coverage/lcov-report/src/automations/triggerInfo/index.html +0 -206
  277. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
  278. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +0 -196
  279. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +0 -220
  280. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +0 -220
  281. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +0 -208
  282. package/coverage/lcov-report/src/automations/triggers.ts.html +0 -553
  283. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  284. package/coverage/lcov-report/src/constants/index.html +0 -146
  285. package/coverage/lcov-report/src/constants/index.ts.html +0 -697
  286. package/coverage/lcov-report/src/constants/layouts.ts.html +0 -526
  287. package/coverage/lcov-report/src/constants/screens.ts.html +0 -229
  288. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
  289. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
  290. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
  291. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  292. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
  293. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
  294. package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
  295. package/coverage/lcov-report/src/db/inMemoryView.ts.html +0 -250
  296. package/coverage/lcov-report/src/db/index.html +0 -176
  297. package/coverage/lcov-report/src/db/index.ts.html +0 -133
  298. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +0 -1417
  299. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
  300. package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
  301. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +0 -736
  302. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +0 -460
  303. package/coverage/lcov-report/src/db/newid.ts.html +0 -100
  304. package/coverage/lcov-report/src/db/utils.ts.html +0 -913
  305. package/coverage/lcov-report/src/definitions/automations.ts.html +0 -184
  306. package/coverage/lcov-report/src/definitions/index.html +0 -116
  307. package/coverage/lcov-report/src/environment.ts.html +0 -472
  308. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +0 -259
  309. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +0 -172
  310. package/coverage/lcov-report/src/events/index.html +0 -161
  311. package/coverage/lcov-report/src/events/index.ts.html +0 -100
  312. package/coverage/lcov-report/src/events/utils.ts.html +0 -319
  313. package/coverage/lcov-report/src/index.html +0 -191
  314. package/coverage/lcov-report/src/index.ts.html +0 -133
  315. package/coverage/lcov-report/src/integrations/airtable.ts.html +0 -529
  316. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  317. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  318. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -139
  319. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -2017
  320. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  321. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  322. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -484
  323. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
  324. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -646
  325. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  326. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
  327. package/coverage/lcov-report/src/integrations/index.html +0 -371
  328. package/coverage/lcov-report/src/integrations/index.ts.html +0 -460
  329. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1012
  330. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1999
  331. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -979
  332. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1387
  333. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1087
  334. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  335. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -328
  336. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  337. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1372
  338. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  339. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  340. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +0 -85
  341. package/coverage/lcov-report/src/integrations/tests/index.html +0 -116
  342. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1036
  343. package/coverage/lcov-report/src/middleware/appInfo.ts.html +0 -145
  344. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -472
  345. package/coverage/lcov-report/src/middleware/builder.ts.html +0 -361
  346. package/coverage/lcov-report/src/middleware/currentapp.ts.html +0 -508
  347. package/coverage/lcov-report/src/middleware/index.html +0 -236
  348. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +0 -205
  349. package/coverage/lcov-report/src/middleware/publicApi.ts.html +0 -148
  350. package/coverage/lcov-report/src/middleware/resourceId.ts.html +0 -283
  351. package/coverage/lcov-report/src/middleware/selfhost.ts.html +0 -121
  352. package/coverage/lcov-report/src/middleware/utils.ts.html +0 -112
  353. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -166
  354. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  355. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  356. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  357. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  358. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  359. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  360. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  361. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  362. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  363. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -286
  364. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  365. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  366. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  367. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  368. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  369. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  370. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  371. package/coverage/lcov-report/src/migrations/functions/index.html +0 -161
  372. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  373. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
  374. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  375. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  376. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  377. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  378. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  379. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  380. package/coverage/lcov-report/src/migrations/index.html +0 -116
  381. package/coverage/lcov-report/src/migrations/index.ts.html +0 -430
  382. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  383. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  384. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  385. package/coverage/lcov-report/src/sdk/app/applications/index.html +0 -146
  386. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +0 -106
  387. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +0 -268
  388. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +0 -136
  389. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  390. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  391. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  392. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  393. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  394. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -640
  395. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  396. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  397. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  398. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +0 -562
  399. package/coverage/lcov-report/src/sdk/app/datasources/index.html +0 -131
  400. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +0 -100
  401. package/coverage/lcov-report/src/sdk/app/queries/index.html +0 -131
  402. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +0 -100
  403. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +0 -235
  404. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +0 -265
  405. package/coverage/lcov-report/src/sdk/app/rows/index.html +0 -146
  406. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +0 -106
  407. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +0 -139
  408. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  409. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -274
  410. package/coverage/lcov-report/src/sdk/index.html +0 -116
  411. package/coverage/lcov-report/src/sdk/index.ts.html +0 -151
  412. package/coverage/lcov-report/src/sdk/users/index.html +0 -131
  413. package/coverage/lcov-report/src/sdk/users/index.ts.html +0 -100
  414. package/coverage/lcov-report/src/sdk/users/utils.ts.html +0 -277
  415. package/coverage/lcov-report/src/sdk/utils/index.html +0 -116
  416. package/coverage/lcov-report/src/sdk/utils/index.ts.html +0 -133
  417. package/coverage/lcov-report/src/startup.ts.html +0 -484
  418. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -2032
  419. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
  420. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  421. package/coverage/lcov-report/src/tests/utilities/index.ts.html +0 -118
  422. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -856
  423. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1555
  424. package/coverage/lcov-report/src/threads/index.html +0 -161
  425. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  426. package/coverage/lcov-report/src/threads/query.ts.html +0 -1000
  427. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  428. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +0 -94
  429. package/coverage/lcov-report/src/utilities/centralPath.ts.html +0 -151
  430. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +0 -343
  431. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
  432. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +0 -601
  433. package/coverage/lcov-report/src/utilities/fileSystem/index.html +0 -206
  434. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -100
  435. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +0 -277
  436. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
  437. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +0 -193
  438. package/coverage/lcov-report/src/utilities/global.ts.html +0 -499
  439. package/coverage/lcov-report/src/utilities/index.html +0 -251
  440. package/coverage/lcov-report/src/utilities/index.ts.html +0 -487
  441. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  442. package/coverage/lcov-report/src/utilities/routing/index.html +0 -116
  443. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  444. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  445. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +0 -922
  446. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
  447. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +0 -373
  448. package/coverage/lcov-report/src/utilities/schema.ts.html +0 -508
  449. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +0 -169
  450. package/coverage/lcov-report/src/utilities/security.ts.html +0 -280
  451. package/coverage/lcov-report/src/utilities/usageQuota/index.html +0 -131
  452. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +0 -325
  453. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +0 -139
  454. package/coverage/lcov-report/src/utilities/users.ts.html +0 -232
  455. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +0 -646
  456. package/coverage/lcov-report/src/watch.ts.html +0 -196
  457. package/coverage/lcov-report/src/websocket.ts.html +0 -163
  458. package/coverage/lcov.info +0 -21750
@@ -10,8 +10,8 @@
10
10
  href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
11
11
  rel="stylesheet"
12
12
  />
13
- <script type="module" crossorigin src="/builder/assets/index.e88df740.js"></script>
14
- <link rel="stylesheet" href="/builder/assets/index.4488f38d.css">
13
+ <script type="module" crossorigin src="/builder/assets/index.e8838b62.js"></script>
14
+ <link rel="stylesheet" href="/builder/assets/index.7e76c039.css">
15
15
  </head>
16
16
  <body id="app">
17
17
 
@@ -184,6 +184,8 @@ function preview(ctx) {
184
184
  schemaFields[key] = fieldType;
185
185
  }
186
186
  }
187
+ // remove configuration before sending event
188
+ delete datasource.config;
187
189
  yield backend_core_1.events.query.previewed(datasource, query);
188
190
  ctx.body = {
189
191
  rows,
@@ -439,7 +439,7 @@ class ExternalRequest {
439
439
  isOneSide(field)) {
440
440
  continue;
441
441
  }
442
- const isMany = field.relationshipType === constants_1.RelationshipTypes.MANY_TO_MANY;
442
+ const isMany = field.relationshipType === types_1.RelationshipTypes.MANY_TO_MANY;
443
443
  const tableId = isMany ? field.through : field.tableId;
444
444
  const { tableName: relatedTableName } = (0, utils_3.breakExternalTableId)(tableId);
445
445
  // @ts-ignore
@@ -609,7 +609,9 @@ class ExternalRequest {
609
609
  },
610
610
  resource: {
611
611
  // have to specify the fields to avoid column overlap (for SQL)
612
- fields: isSql ? this.buildFields(table) : [],
612
+ fields: isSql
613
+ ? this.buildFields(table, config.includeSqlRelationships)
614
+ : [],
613
615
  },
614
616
  filters,
615
617
  sort,
@@ -86,6 +86,7 @@ function patch(ctx) {
86
86
  return handleRequest(types_1.Operation.UPDATE, tableId, {
87
87
  id: (0, utils_1.breakRowIdField)(id),
88
88
  row: inputs,
89
+ includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
89
90
  });
90
91
  });
91
92
  }
@@ -96,6 +97,7 @@ function save(ctx) {
96
97
  const tableId = ctx.params.tableId;
97
98
  return handleRequest(types_1.Operation.CREATE, tableId, {
98
99
  row: inputs,
100
+ includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
99
101
  });
100
102
  });
101
103
  }
@@ -113,7 +115,9 @@ exports.fetchView = fetchView;
113
115
  function fetch(ctx) {
114
116
  return __awaiter(this, void 0, void 0, function* () {
115
117
  const tableId = ctx.params.tableId;
116
- return handleRequest(types_1.Operation.READ, tableId);
118
+ return handleRequest(types_1.Operation.READ, tableId, {
119
+ includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
120
+ });
117
121
  });
118
122
  }
119
123
  exports.fetch = fetch;
@@ -123,6 +127,7 @@ function find(ctx) {
123
127
  const tableId = ctx.params.tableId;
124
128
  const response = (yield handleRequest(types_1.Operation.READ, tableId, {
125
129
  id: (0, utils_1.breakRowIdField)(id),
130
+ includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
126
131
  }));
127
132
  return response ? response[0] : response;
128
133
  });
@@ -134,6 +139,7 @@ function destroy(ctx) {
134
139
  const id = ctx.request.body._id;
135
140
  const { row } = (yield handleRequest(types_1.Operation.DELETE, tableId, {
136
141
  id: (0, utils_1.breakRowIdField)(id),
142
+ includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
137
143
  }));
138
144
  return { response: { ok: true }, row };
139
145
  });
@@ -147,6 +153,7 @@ function bulkDestroy(ctx) {
147
153
  for (let row of rows) {
148
154
  promises.push(handleRequest(types_1.Operation.DELETE, tableId, {
149
155
  id: (0, utils_1.breakRowIdField)(row._id),
156
+ includeSqlRelationships: types_1.IncludeRelationship.EXCLUDE,
150
157
  }));
151
158
  }
152
159
  const responses = (yield Promise.all(promises));
@@ -189,6 +196,7 @@ function search(ctx) {
189
196
  filters: query,
190
197
  sort,
191
198
  paginate: paginateObj,
199
+ includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
192
200
  }));
193
201
  let hasNextPage = false;
194
202
  if (paginate && rows.length === limit) {
@@ -199,6 +207,7 @@ function search(ctx) {
199
207
  limit: 1,
200
208
  page: bookmark * limit + 1,
201
209
  },
210
+ includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
202
211
  }));
203
212
  hasNextPage = nextRows.length > 0;
204
213
  }
@@ -287,6 +296,7 @@ function fetchEnrichedRow(ctx) {
287
296
  const response = (yield handleRequest(types_1.Operation.READ, tableId, {
288
297
  id,
289
298
  datasource,
299
+ includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
290
300
  }));
291
301
  const table = tables[tableName];
292
302
  const row = response[0];
@@ -312,6 +322,7 @@ function fetchEnrichedRow(ctx) {
312
322
  [primaryLink]: linkedIds,
313
323
  },
314
324
  },
325
+ includeSqlRelationships: types_1.IncludeRelationship.INCLUDE,
315
326
  });
316
327
  }
317
328
  return row;
@@ -75,12 +75,12 @@ function getDatasourceId(table) {
75
75
  return (0, utils_1.breakExternalTableId)(table._id).datasourceId;
76
76
  }
77
77
  function otherRelationshipType(type) {
78
- if (type === constants_1.RelationshipTypes.MANY_TO_MANY) {
79
- return constants_1.RelationshipTypes.MANY_TO_MANY;
78
+ if (type === types_1.RelationshipTypes.MANY_TO_MANY) {
79
+ return types_1.RelationshipTypes.MANY_TO_MANY;
80
80
  }
81
- return type === constants_1.RelationshipTypes.ONE_TO_MANY
82
- ? constants_1.RelationshipTypes.MANY_TO_ONE
83
- : constants_1.RelationshipTypes.ONE_TO_MANY;
81
+ return type === types_1.RelationshipTypes.ONE_TO_MANY
82
+ ? types_1.RelationshipTypes.MANY_TO_ONE
83
+ : types_1.RelationshipTypes.ONE_TO_MANY;
84
84
  }
85
85
  function generateManyLinkSchema(datasource, column, table, relatedTable) {
86
86
  if (!table.primary || !relatedTable.primary) {
@@ -116,7 +116,7 @@ function generateLinkSchema(column, table, relatedTable, type) {
116
116
  if (!table.primary || !relatedTable.primary) {
117
117
  throw new Error("Unable to generate link schema, no primary keys");
118
118
  }
119
- const isOneSide = type === constants_1.RelationshipTypes.ONE_TO_MANY;
119
+ const isOneSide = type === types_1.RelationshipTypes.ONE_TO_MANY;
120
120
  const primary = isOneSide ? relatedTable.primary[0] : table.primary[0];
121
121
  // generate a foreign key
122
122
  const foreignKey = (0, utils_2.generateForeignKey)(column, relatedTable);
@@ -186,7 +186,7 @@ function save(ctx) {
186
186
  }
187
187
  const relatedColumnName = schema.fieldName;
188
188
  const relationType = schema.relationshipType;
189
- if (relationType === constants_1.RelationshipTypes.MANY_TO_MANY) {
189
+ if (relationType === types_1.RelationshipTypes.MANY_TO_MANY) {
190
190
  const junctionTable = generateManyLinkSchema(datasource, schema, table, relatedTable);
191
191
  if (tables[junctionTable.name]) {
192
192
  throw "Junction table already exists, cannot create another relationship.";
@@ -195,7 +195,7 @@ function save(ctx) {
195
195
  extraTablesToUpdate.push(junctionTable);
196
196
  }
197
197
  else {
198
- const fkTable = relationType === constants_1.RelationshipTypes.ONE_TO_MANY ? table : relatedTable;
198
+ const fkTable = relationType === types_1.RelationshipTypes.ONE_TO_MANY ? table : relatedTable;
199
199
  const foreignKey = generateLinkSchema(schema, table, relatedTable, relationType);
200
200
  fkTable.schema[foreignKey] = (0, utils_2.foreignKeyStructure)(foreignKey);
201
201
  if (fkTable.constrained == null) {
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -10,8 +33,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
33
  };
11
34
  Object.defineProperty(exports, "__esModule", { value: true });
12
35
  exports.generateMakeRequest = void 0;
36
+ const setup = __importStar(require("../../tests/utilities"));
13
37
  const utilities_1 = require("../../../../utilities");
14
- function generateMakeRequest(apiKey, setup) {
38
+ function generateMakeRequest(apiKey, isInternal = false) {
15
39
  const request = setup.getRequest();
16
40
  const config = setup.getConfig();
17
41
  return (method, endpoint, body, intAppId = config.getAppId()) => __awaiter(this, void 0, void 0, function* () {
@@ -21,7 +45,10 @@ function generateMakeRequest(apiKey, setup) {
21
45
  if (intAppId) {
22
46
  extraHeaders["x-budibase-app-id"] = intAppId;
23
47
  }
24
- const req = request[method]((0, utilities_1.checkSlashesInUrl)(`/api/public/v1/${endpoint}`)).set(config.defaultHeaders(extraHeaders));
48
+ const url = isInternal
49
+ ? endpoint
50
+ : (0, utilities_1.checkSlashesInUrl)(`/api/public/v1/${endpoint}`);
51
+ const req = request[method](url).set(config.defaultHeaders(extraHeaders));
25
52
  if (body) {
26
53
  req.send(body);
27
54
  }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.switchToSelfHosted = exports.getConfig = exports.getRequest = exports.afterAll = exports.beforeAll = exports.delay = exports.structures = void 0;
39
+ const TestConfiguration_1 = __importDefault(require("../../../../tests/utilities/TestConfiguration"));
40
+ const environment_1 = __importDefault(require("../../../../environment"));
41
+ exports.structures = __importStar(require("../../../../tests/utilities/structures"));
42
+ function user() {
43
+ return {
44
+ _id: "user",
45
+ _rev: "rev",
46
+ createdAt: Date.now(),
47
+ email: "test@test.com",
48
+ roles: {},
49
+ tenantId: "default",
50
+ status: "active",
51
+ };
52
+ }
53
+ jest.mock("../../../../utilities/workerRequests", () => ({
54
+ getGlobalUsers: jest.fn(() => {
55
+ return {
56
+ _id: "us_uuid1",
57
+ };
58
+ }),
59
+ getGlobalSelf: jest.fn(() => {
60
+ return {
61
+ _id: "us_uuid1",
62
+ };
63
+ }),
64
+ allGlobalUsers: jest.fn(() => {
65
+ return [user()];
66
+ }),
67
+ readGlobalUser: jest.fn(() => {
68
+ return user();
69
+ }),
70
+ saveGlobalUser: jest.fn(() => {
71
+ return { _id: "user", _rev: "rev" };
72
+ }),
73
+ deleteGlobalUser: jest.fn(() => {
74
+ return { message: "deleted user" };
75
+ }),
76
+ removeAppFromUserRoles: jest.fn(),
77
+ }));
78
+ function delay(ms) {
79
+ return new Promise(resolve => setTimeout(resolve, ms));
80
+ }
81
+ exports.delay = delay;
82
+ let request, config;
83
+ function beforeAll() {
84
+ config = new TestConfiguration_1.default();
85
+ request = config.getRequest();
86
+ }
87
+ exports.beforeAll = beforeAll;
88
+ function afterAll() {
89
+ if (config) {
90
+ config.end();
91
+ }
92
+ // clear app files
93
+ request = null;
94
+ config = null;
95
+ }
96
+ exports.afterAll = afterAll;
97
+ function getRequest() {
98
+ if (!request) {
99
+ beforeAll();
100
+ }
101
+ return request;
102
+ }
103
+ exports.getRequest = getRequest;
104
+ function getConfig() {
105
+ if (!config) {
106
+ beforeAll();
107
+ }
108
+ return config;
109
+ }
110
+ exports.getConfig = getConfig;
111
+ function switchToSelfHosted(func) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ // self hosted stops any attempts to Dynamo
114
+ environment_1.default._set("NODE_ENV", "production");
115
+ environment_1.default._set("SELF_HOSTED", true);
116
+ let error;
117
+ try {
118
+ yield func();
119
+ }
120
+ catch (err) {
121
+ error = err;
122
+ }
123
+ environment_1.default._set("NODE_ENV", "jest");
124
+ environment_1.default._set("SELF_HOSTED", false);
125
+ // don't throw error until after reset
126
+ if (error) {
127
+ throw error;
128
+ }
129
+ });
130
+ }
131
+ exports.switchToSelfHosted = switchToSelfHosted;
package/dist/app.js CHANGED
@@ -35,6 +35,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
+ if (process.env.DD_APM_ENABLED) {
39
+ require("./ddApm");
40
+ }
41
+ if (process.env.ELASTIC_APM_ENABLED) {
42
+ require("./elasticApm");
43
+ }
38
44
  // need to load environment first
39
45
  const environment_1 = __importDefault(require("./environment"));
40
46
  // enable APM if configured
@@ -99,7 +105,7 @@ server.on("close", () => __awaiter(void 0, void 0, void 0, function* () {
99
105
  console.log("Server Closed");
100
106
  yield automations.shutdown();
101
107
  yield redis.shutdown();
102
- yield backend_core_1.events.shutdown();
108
+ backend_core_1.events.shutdown();
103
109
  yield threads_1.Thread.shutdown();
104
110
  api.shutdown();
105
111
  if (!environment_1.default.isTest()) {
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_AUTOMATION_RECURRING_ERRORS = exports.ObjectStoreBuckets = exports.AutomationErrors = exports.BuildSchemaErrors = exports.InvalidColumns = exports.MetadataTypes = exports.BaseQueryVerbs = exports.OBJ_STORE_DIRECTORY = exports.AutoFieldDefaultNames = exports.AutoFieldSubTypes = exports.USERS_TABLE_SCHEMA = exports.SortDirection = exports.DatasourceAuthTypes = exports.DataSourceOperation = exports.AuthTypes = exports.FormulaTypes = exports.RelationshipTypes = exports.SwitchableTypes = exports.CanSwitchTypes = exports.FieldTypes = exports.NoEmptyFilterStrings = exports.FilterTypes = void 0;
3
+ exports.MAX_AUTOMATION_RECURRING_ERRORS = exports.ObjectStoreBuckets = exports.AutomationErrors = exports.BuildSchemaErrors = exports.InvalidColumns = exports.MetadataTypes = exports.BaseQueryVerbs = exports.OBJ_STORE_DIRECTORY = exports.AutoFieldDefaultNames = exports.AutoFieldSubTypes = exports.USERS_TABLE_SCHEMA = exports.SortDirection = exports.DatasourceAuthTypes = exports.DataSourceOperation = exports.AuthTypes = exports.FormulaTypes = exports.SwitchableTypes = exports.CanSwitchTypes = exports.NoEmptyFilterStrings = exports.FilterTypes = exports.RelationshipTypes = exports.FieldTypes = void 0;
4
4
  const backend_core_1 = require("@budibase/backend-core");
5
+ var types_1 = require("@budibase/types");
6
+ Object.defineProperty(exports, "FieldTypes", { enumerable: true, get: function () { return types_1.FieldType; } });
7
+ Object.defineProperty(exports, "RelationshipTypes", { enumerable: true, get: function () { return types_1.RelationshipTypes; } });
5
8
  var FilterTypes;
6
9
  (function (FilterTypes) {
7
10
  FilterTypes["STRING"] = "string";
@@ -23,23 +26,6 @@ exports.NoEmptyFilterStrings = [
23
26
  FilterTypes.CONTAINS,
24
27
  FilterTypes.NOT_CONTAINS,
25
28
  ];
26
- var FieldTypes;
27
- (function (FieldTypes) {
28
- FieldTypes["STRING"] = "string";
29
- FieldTypes["BARCODEQR"] = "barcodeqr";
30
- FieldTypes["LONGFORM"] = "longform";
31
- FieldTypes["OPTIONS"] = "options";
32
- FieldTypes["NUMBER"] = "number";
33
- FieldTypes["BOOLEAN"] = "boolean";
34
- FieldTypes["ARRAY"] = "array";
35
- FieldTypes["DATETIME"] = "datetime";
36
- FieldTypes["ATTACHMENT"] = "attachment";
37
- FieldTypes["LINK"] = "link";
38
- FieldTypes["FORMULA"] = "formula";
39
- FieldTypes["AUTO"] = "auto";
40
- FieldTypes["JSON"] = "json";
41
- FieldTypes["INTERNAL"] = "internal";
42
- })(FieldTypes = exports.FieldTypes || (exports.FieldTypes = {}));
43
29
  exports.CanSwitchTypes = [
44
30
  [exports.FieldTypes.JSON, exports.FieldTypes.ARRAY],
45
31
  [
@@ -51,12 +37,6 @@ exports.CanSwitchTypes = [
51
37
  [exports.FieldTypes.BOOLEAN, exports.FieldTypes.NUMBER],
52
38
  ];
53
39
  exports.SwitchableTypes = exports.CanSwitchTypes.reduce((prev, current) => prev ? prev.concat(current) : current);
54
- var RelationshipTypes;
55
- (function (RelationshipTypes) {
56
- RelationshipTypes["ONE_TO_MANY"] = "one-to-many";
57
- RelationshipTypes["MANY_TO_ONE"] = "many-to-one";
58
- RelationshipTypes["MANY_TO_MANY"] = "many-to-many";
59
- })(RelationshipTypes = exports.RelationshipTypes || (exports.RelationshipTypes = {}));
60
40
  var FormulaTypes;
61
41
  (function (FormulaTypes) {
62
42
  FormulaTypes["STATIC"] = "static";
@@ -13,6 +13,7 @@ const employeeImport_1 = require("./employeeImport");
13
13
  const jobsImport_1 = require("./jobsImport");
14
14
  const expensesImport_1 = require("./expensesImport");
15
15
  const backend_core_1 = require("@budibase/backend-core");
16
+ const types_1 = require("@budibase/types");
16
17
  exports.DEFAULT_JOBS_TABLE_ID = "ta_bb_jobs";
17
18
  exports.DEFAULT_INVENTORY_TABLE_ID = "ta_bb_inventory";
18
19
  exports.DEFAULT_EXPENSES_TABLE_ID = "ta_bb_expenses";
@@ -260,7 +261,7 @@ exports.DEFAULT_EMPLOYEE_TABLE_SCHEMA = {
260
261
  name: "Employee Level",
261
262
  sortable: false,
262
263
  }, "Badge Photo": {
263
- type: "attachment",
264
+ type: constants_1.FieldTypes.ATTACHMENT,
264
265
  constraints: {
265
266
  type: constants_1.FieldTypes.ARRAY,
266
267
  presence: false,
@@ -275,7 +276,7 @@ exports.DEFAULT_EMPLOYEE_TABLE_SCHEMA = {
275
276
  },
276
277
  fieldName: "Assigned",
277
278
  name: "Jobs",
278
- relationshipType: constants_1.RelationshipTypes.MANY_TO_MANY,
279
+ relationshipType: types_1.RelationshipTypes.MANY_TO_MANY,
279
280
  tableId: exports.DEFAULT_JOBS_TABLE_ID,
280
281
  }, "Start Date": {
281
282
  type: constants_1.FieldTypes.DATETIME,
@@ -419,10 +420,10 @@ exports.DEFAULT_JOBS_TABLE_SCHEMA = {
419
420
  type: constants_1.FieldTypes.LINK,
420
421
  tableId: exports.DEFAULT_EMPLOYEE_TABLE_ID,
421
422
  fieldName: "Jobs",
422
- relationshipType: constants_1.RelationshipTypes.MANY_TO_MANY,
423
+ relationshipType: types_1.RelationshipTypes.MANY_TO_MANY,
423
424
  // sortable: true,
424
425
  }, "Works End": {
425
- type: "datetime",
426
+ type: constants_1.FieldTypes.DATETIME,
426
427
  constraints: {
427
428
  type: "string",
428
429
  length: {},
@@ -435,7 +436,7 @@ exports.DEFAULT_JOBS_TABLE_SCHEMA = {
435
436
  name: "Works End",
436
437
  ignoreTimezones: true,
437
438
  }, "Updated Price": {
438
- type: "number",
439
+ type: constants_1.FieldTypes.NUMBER,
439
440
  constraints: {
440
441
  type: "number",
441
442
  presence: false,
@@ -18,6 +18,7 @@ const node_1 = __importDefault(require("@sentry/node"));
18
18
  const constants_1 = require("../../constants");
19
19
  const backend_core_1 = require("@budibase/backend-core");
20
20
  const LinkDocument_1 = __importDefault(require("./LinkDocument"));
21
+ const types_1 = require("@budibase/types");
21
22
  class LinkController {
22
23
  constructor({ tableId, row, table, oldTable }) {
23
24
  this._db = backend_core_1.context.getAppDB();
@@ -124,17 +125,17 @@ class LinkController {
124
125
  */
125
126
  handleRelationshipType(linkerField, linkedField) {
126
127
  if (!linkerField.relationshipType ||
127
- linkerField.relationshipType === constants_1.RelationshipTypes.MANY_TO_MANY) {
128
- linkedField.relationshipType = constants_1.RelationshipTypes.MANY_TO_MANY;
128
+ linkerField.relationshipType === types_1.RelationshipTypes.MANY_TO_MANY) {
129
+ linkedField.relationshipType = types_1.RelationshipTypes.MANY_TO_MANY;
129
130
  // make sure by default all are many to many (if not specified)
130
- linkerField.relationshipType = constants_1.RelationshipTypes.MANY_TO_MANY;
131
+ linkerField.relationshipType = types_1.RelationshipTypes.MANY_TO_MANY;
131
132
  }
132
- else if (linkerField.relationshipType === constants_1.RelationshipTypes.MANY_TO_ONE) {
133
+ else if (linkerField.relationshipType === types_1.RelationshipTypes.MANY_TO_ONE) {
133
134
  // Ensure that the other side of the relationship is locked to one record
134
- linkedField.relationshipType = constants_1.RelationshipTypes.ONE_TO_MANY;
135
+ linkedField.relationshipType = types_1.RelationshipTypes.ONE_TO_MANY;
135
136
  }
136
- else if (linkerField.relationshipType === constants_1.RelationshipTypes.ONE_TO_MANY) {
137
- linkedField.relationshipType = constants_1.RelationshipTypes.MANY_TO_ONE;
137
+ else if (linkerField.relationshipType === types_1.RelationshipTypes.ONE_TO_MANY) {
138
+ linkedField.relationshipType = types_1.RelationshipTypes.MANY_TO_ONE;
138
139
  }
139
140
  return { linkerField, linkedField };
140
141
  }
@@ -178,7 +179,7 @@ class LinkController {
178
179
  }
179
180
  // iterate through the link IDs in the row field, see if any don't exist already
180
181
  for (let linkId of rowField) {
181
- if ((linkedSchema === null || linkedSchema === void 0 ? void 0 : linkedSchema.relationshipType) === constants_1.RelationshipTypes.ONE_TO_MANY) {
182
+ if ((linkedSchema === null || linkedSchema === void 0 ? void 0 : linkedSchema.relationshipType) === types_1.RelationshipTypes.ONE_TO_MANY) {
182
183
  let links = (yield (0, linkUtils_1.getLinkDocuments)({
183
184
  tableId: field.tableId,
184
185
  rowId: linkId,
package/dist/ddApm.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const dd_trace_1 = __importDefault(require("dd-trace"));
7
+ // enable APM if configured
8
+ if (process.env.DD_APM_ENABLED) {
9
+ console.log("Starting dd-trace");
10
+ dd_trace_1.default.init();
11
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const elastic_apm_node_1 = __importDefault(require("elastic-apm-node"));
7
+ // enable APM if configured
8
+ if (process.env.ELASTIC_APM_ENABLED) {
9
+ console.log("Starting elastic-apm-node");
10
+ elastic_apm_node_1.default.start({
11
+ serviceName: process.env.SERVICE,
12
+ environment: process.env.BUDIBASE_ENVIRONMENT,
13
+ });
14
+ }
@@ -90,6 +90,9 @@ function parseFilters(filters) {
90
90
  function generateSelectStatement(json, knex) {
91
91
  var _a;
92
92
  const { resource, meta } = json;
93
+ if (!resource) {
94
+ return "*";
95
+ }
93
96
  const schema = (_a = meta === null || meta === void 0 ? void 0 : meta.table) === null || _a === void 0 ? void 0 : _a.schema;
94
97
  return resource.fields.map(field => {
95
98
  const fieldNames = field.split(/\./g);
@@ -379,7 +382,9 @@ class InternalBuilder {
379
382
  return query.insert(parsedBody);
380
383
  }
381
384
  else {
382
- return query.insert(parsedBody).returning("*");
385
+ return query
386
+ .insert(parsedBody)
387
+ .returning(generateSelectStatement(json, knex));
383
388
  }
384
389
  }
385
390
  bulkCreate(knex, json) {
@@ -458,7 +463,9 @@ class InternalBuilder {
458
463
  return query.update(parsedBody);
459
464
  }
460
465
  else {
461
- return query.update(parsedBody).returning("*");
466
+ return query
467
+ .update(parsedBody)
468
+ .returning(generateSelectStatement(json, knex));
462
469
  }
463
470
  }
464
471
  delete(knex, json, opts) {
@@ -473,7 +480,7 @@ class InternalBuilder {
473
480
  return query.delete();
474
481
  }
475
482
  else {
476
- return query.delete().returning("*");
483
+ return query.delete().returning(generateSelectStatement(json, knex));
477
484
  }
478
485
  }
479
486
  }
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "2.3.14",
4
+ "version": "2.3.16",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -43,11 +43,11 @@
43
43
  "license": "GPL-3.0",
44
44
  "dependencies": {
45
45
  "@apidevtools/swagger-parser": "10.0.3",
46
- "@budibase/backend-core": "^2.3.14",
47
- "@budibase/client": "^2.3.14",
48
- "@budibase/pro": "2.3.14",
49
- "@budibase/string-templates": "^2.3.14",
50
- "@budibase/types": "^2.3.14",
46
+ "@budibase/backend-core": "^2.3.16",
47
+ "@budibase/client": "^2.3.16",
48
+ "@budibase/pro": "2.3.16",
49
+ "@budibase/string-templates": "^2.3.16",
50
+ "@budibase/types": "^2.3.16",
51
51
  "@bull-board/api": "3.7.0",
52
52
  "@bull-board/koa": "3.9.4",
53
53
  "@elastic/elasticsearch": "7.10.0",
@@ -64,6 +64,7 @@
64
64
  "chokidar": "3.5.3",
65
65
  "csvtojson": "2.0.10",
66
66
  "curlconverter": "3.21.0",
67
+ "dd-trace": "3.13.2",
67
68
  "dotenv": "8.2.0",
68
69
  "download": "8.0.0",
69
70
  "elastic-apm-node": "3.38.0",
@@ -125,6 +126,7 @@
125
126
  "@jest/test-sequencer": "24.9.0",
126
127
  "@swc/core": "^1.3.25",
127
128
  "@swc/jest": "^0.2.24",
129
+ "@trendyol/jest-testcontainers": "^2.1.1",
128
130
  "@types/apidoc": "0.50.0",
129
131
  "@types/bson": "4.2.0",
130
132
  "@types/global-agent": "2.1.1",
@@ -151,6 +153,7 @@
151
153
  "is-wsl": "2.2.0",
152
154
  "jest": "28.1.1",
153
155
  "jest-openapi": "0.14.2",
156
+ "jest-serial-runner": "^1.2.1",
154
157
  "nodemon": "2.0.15",
155
158
  "openapi-types": "9.3.1",
156
159
  "openapi-typescript": "5.2.0",
@@ -45,12 +45,18 @@ function tarFilesToTmp(tmpDir, files) {
45
45
  */
46
46
  function exportDB(dbName, opts = {}) {
47
47
  return __awaiter(this, void 0, void 0, function* () {
48
+ const exportOpts = {
49
+ filter: opts === null || opts === void 0 ? void 0 : opts.filter,
50
+ batch_size: 1000,
51
+ batch_limit: 5,
52
+ style: "main_only",
53
+ };
48
54
  return backend_core_1.db.doWithDB(dbName, (db) => __awaiter(this, void 0, void 0, function* () {
49
55
  // Write the dump to file if required
50
56
  if (opts === null || opts === void 0 ? void 0 : opts.exportPath) {
51
57
  const path = opts === null || opts === void 0 ? void 0 : opts.exportPath;
52
58
  const writeStream = fs_1.default.createWriteStream(path);
53
- yield db.dump(writeStream, { filter: opts === null || opts === void 0 ? void 0 : opts.filter });
59
+ yield db.dump(writeStream, exportOpts);
54
60
  return path;
55
61
  }
56
62
  else {
@@ -60,7 +66,7 @@ function exportDB(dbName, opts = {}) {
60
66
  memStream.on("data", (chunk) => {
61
67
  appString += chunk.toString();
62
68
  });
63
- yield db.dump(memStream, { filter: opts === null || opts === void 0 ? void 0 : opts.filter });
69
+ yield db.dump(memStream, exportOpts);
64
70
  return appString;
65
71
  }
66
72
  }));