@budibase/server 2.2.12-alpha.43 → 2.2.12-alpha.45

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 (423) hide show
  1. package/__mocks__/node-fetch.ts +2 -0
  2. package/builder/assets/{index.68e5f22f.js → index.353f1284.js} +392 -386
  3. package/builder/assets/{index.80229ab4.css → index.f9c1cb26.css} +2 -2
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +1872 -1762
  6. package/coverage/coverage-final.json +83 -78
  7. package/coverage/lcov-report/index.html +141 -96
  8. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +1 -1
  10. package/coverage/lcov-report/src/api/controllers/application.ts.html +158 -137
  11. package/coverage/lcov-report/src/api/controllers/auth.ts.html +1 -1
  12. package/coverage/lcov-report/src/api/controllers/automation.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  14. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +1 -1
  15. package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
  16. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +99 -75
  17. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +12 -12
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +69 -69
  20. package/coverage/lcov-report/src/api/controllers/dev.ts.html +1 -1
  21. package/coverage/lcov-report/src/api/controllers/index.html +24 -24
  22. package/coverage/lcov-report/src/api/controllers/integration.ts.html +1 -1
  23. package/coverage/lcov-report/src/api/controllers/layout.ts.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +1 -1
  26. package/coverage/lcov-report/src/api/controllers/permission.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
  28. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +14 -14
  31. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
  32. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  33. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
  34. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
  35. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
  36. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  48. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/index.html +7 -7
  59. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +70 -46
  60. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +1 -1
  61. package/coverage/lcov-report/src/api/controllers/role.ts.html +1 -1
  62. package/coverage/lcov-report/src/api/controllers/routing.ts.html +1 -1
  63. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +9 -9
  64. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +11 -14
  65. package/coverage/lcov-report/src/api/controllers/row/index.html +15 -15
  66. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +1 -1
  67. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +1 -1
  68. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1 -1
  69. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +1 -1
  70. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +4 -4
  71. package/coverage/lcov-report/src/api/controllers/screen.ts.html +1 -1
  72. package/coverage/lcov-report/src/api/controllers/script.ts.html +1 -1
  73. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  74. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +21 -24
  75. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +1 -1
  76. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +21 -15
  77. package/coverage/lcov-report/src/api/controllers/table/index.html +13 -13
  78. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +1 -1
  79. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +1 -1
  80. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1 -1
  81. package/coverage/lcov-report/src/api/controllers/templates.ts.html +1 -1
  82. package/coverage/lcov-report/src/api/controllers/user.ts.html +1 -1
  83. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  85. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +1 -1
  87. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +1 -1
  88. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +57 -51
  89. package/coverage/lcov-report/src/api/index.html +1 -1
  90. package/coverage/lcov-report/src/api/index.ts.html +7 -7
  91. package/coverage/lcov-report/src/api/routes/analytics.ts.html +1 -1
  92. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +1 -1
  93. package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
  94. package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
  95. package/coverage/lcov-report/src/api/routes/automation.ts.html +1 -1
  96. package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
  97. package/coverage/lcov-report/src/api/routes/cloud.ts.html +1 -1
  98. package/coverage/lcov-report/src/api/routes/component.ts.html +1 -1
  99. package/coverage/lcov-report/src/api/routes/datasource.ts.html +1 -1
  100. package/coverage/lcov-report/src/api/routes/deploy.ts.html +1 -1
  101. package/coverage/lcov-report/src/api/routes/dev.ts.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/index.html +5 -5
  103. package/coverage/lcov-report/src/api/routes/index.ts.html +10 -4
  104. package/coverage/lcov-report/src/api/routes/integration.ts.html +1 -1
  105. package/coverage/lcov-report/src/api/routes/layout.ts.html +1 -1
  106. package/coverage/lcov-report/src/api/routes/metadata.ts.html +1 -1
  107. package/coverage/lcov-report/src/api/routes/migrations.ts.html +1 -1
  108. package/coverage/lcov-report/src/api/routes/permission.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
  110. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  112. package/coverage/lcov-report/src/api/routes/public/index.ts.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/query.ts.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/role.ts.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/routing.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/row.ts.html +2 -2
  127. package/coverage/lcov-report/src/api/routes/screen.ts.html +1 -1
  128. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  129. package/coverage/lcov-report/src/api/routes/static.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/table.ts.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/templates.ts.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/user.ts.html +1 -1
  136. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  137. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/view.ts.html +1 -1
  139. package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
  140. package/coverage/lcov-report/src/app.ts.html +1 -1
  141. package/coverage/lcov-report/src/automations/actions.ts.html +1 -1
  142. package/coverage/lcov-report/src/automations/automationUtils.ts.html +1 -1
  143. package/coverage/lcov-report/src/automations/bullboard.ts.html +2 -2
  144. package/coverage/lcov-report/src/automations/index.html +15 -15
  145. package/coverage/lcov-report/src/automations/index.ts.html +1 -1
  146. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  147. package/coverage/lcov-report/src/automations/logging/index.ts.html +4 -4
  148. package/coverage/lcov-report/src/automations/steps/bash.ts.html +1 -1
  149. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  150. package/coverage/lcov-report/src/automations/steps/delay.ts.html +1 -1
  151. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  152. package/coverage/lcov-report/src/automations/steps/discord.ts.html +1 -1
  153. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +1 -1
  155. package/coverage/lcov-report/src/automations/steps/filter.ts.html +1 -1
  156. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  157. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +1 -1
  158. package/coverage/lcov-report/src/automations/steps/loop.ts.html +1 -1
  159. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +1 -1
  160. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +1 -1
  161. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +1 -1
  162. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +1 -1
  163. package/coverage/lcov-report/src/automations/steps/slack.ts.html +1 -1
  164. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +1 -1
  165. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  166. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +1 -1
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +1 -1
  170. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +1 -1
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +2 -2
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +1 -1
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +1 -1
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +1 -1
  176. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +1 -1
  177. package/coverage/lcov-report/src/automations/triggers.ts.html +1 -1
  178. package/coverage/lcov-report/src/automations/utils.ts.html +21 -21
  179. package/coverage/lcov-report/src/constants/index.html +1 -1
  180. package/coverage/lcov-report/src/constants/index.ts.html +2 -2
  181. package/coverage/lcov-report/src/constants/layouts.ts.html +1 -1
  182. package/coverage/lcov-report/src/constants/screens.ts.html +1 -1
  183. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +1 -1
  184. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +1 -1
  185. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +1 -1
  186. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  187. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +1 -1
  188. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +1 -1
  189. package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
  190. package/coverage/lcov-report/src/db/inMemoryView.ts.html +1 -1
  191. package/coverage/lcov-report/src/db/index.html +1 -1
  192. package/coverage/lcov-report/src/db/index.ts.html +1 -1
  193. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +1 -1
  194. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +1 -1
  195. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  196. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +1 -1
  197. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +1 -1
  198. package/coverage/lcov-report/src/db/newid.ts.html +3 -3
  199. package/coverage/lcov-report/src/db/utils.ts.html +17 -17
  200. package/coverage/lcov-report/src/definitions/automations.ts.html +5 -2
  201. package/coverage/lcov-report/src/definitions/datasource.ts.html +2 -2
  202. package/coverage/lcov-report/src/definitions/index.html +1 -1
  203. package/coverage/lcov-report/src/environment.ts.html +9 -9
  204. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +1 -1
  205. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +1 -1
  206. package/coverage/lcov-report/src/events/index.html +1 -1
  207. package/coverage/lcov-report/src/events/index.ts.html +1 -1
  208. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  209. package/coverage/lcov-report/src/index.html +7 -7
  210. package/coverage/lcov-report/src/index.ts.html +5 -5
  211. package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
  212. package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
  213. package/coverage/lcov-report/src/integrations/base/index.html +11 -11
  214. package/coverage/lcov-report/src/integrations/base/query.ts.html +13 -7
  215. package/coverage/lcov-report/src/integrations/base/sql.ts.html +12 -12
  216. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
  217. package/coverage/lcov-report/src/integrations/base/utils.ts.html +2 -2
  218. package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
  219. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +9 -9
  220. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
  221. package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
  222. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
  223. package/coverage/lcov-report/src/integrations/index.html +1 -1
  224. package/coverage/lcov-report/src/integrations/index.ts.html +37 -37
  225. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
  226. package/coverage/lcov-report/src/integrations/mongodb.ts.html +11 -11
  227. package/coverage/lcov-report/src/integrations/mysql.ts.html +11 -11
  228. package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
  229. package/coverage/lcov-report/src/integrations/postgres.ts.html +10 -10
  230. package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
  231. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +15 -150
  232. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  233. package/coverage/lcov-report/src/integrations/rest.ts.html +24 -24
  234. package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
  235. package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
  236. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  237. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  238. package/coverage/lcov-report/src/integrations/utils.ts.html +2 -2
  239. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  240. package/coverage/lcov-report/src/middleware/authorized.ts.html +19 -19
  241. package/coverage/lcov-report/src/middleware/builder.ts.html +13 -13
  242. package/coverage/lcov-report/src/middleware/currentapp.ts.html +33 -33
  243. package/coverage/lcov-report/src/middleware/index.html +1 -1
  244. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  245. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  246. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  247. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  248. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  249. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  265. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  267. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  268. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +1 -1
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
  275. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
  276. package/coverage/lcov-report/src/migrations/index.html +1 -1
  277. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  278. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  279. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  280. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  281. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  282. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +1 -1
  283. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +18 -18
  284. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +7 -7
  285. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  286. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  287. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +1 -1
  288. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  289. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +1 -1
  290. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +1 -1
  291. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  292. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  293. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
  294. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +379 -0
  295. package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
  296. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
  297. package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
  298. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +100 -0
  299. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +235 -0
  300. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +1 -1
  301. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  302. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +1 -1
  303. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
  304. package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
  305. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +18 -9
  306. package/coverage/lcov-report/src/sdk/index.html +5 -5
  307. package/coverage/lcov-report/src/sdk/index.ts.html +17 -5
  308. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  309. package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
  310. package/coverage/lcov-report/src/sdk/users/utils.ts.html +20 -20
  311. package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
  312. package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
  313. package/coverage/lcov-report/src/startup.ts.html +1 -1
  314. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +89 -80
  315. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +4 -4
  316. package/coverage/lcov-report/src/tests/utilities/index.html +5 -5
  317. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  318. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +4 -4
  319. package/coverage/lcov-report/src/threads/automation.ts.html +42 -24
  320. package/coverage/lcov-report/src/threads/index.html +28 -28
  321. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  322. package/coverage/lcov-report/src/threads/query.ts.html +68 -29
  323. package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
  324. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +2 -2
  325. package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
  326. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +8 -8
  327. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
  328. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +18 -12
  329. package/coverage/lcov-report/src/utilities/fileSystem/index.html +17 -17
  330. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  331. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +5 -8
  332. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  333. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +3 -3
  334. package/coverage/lcov-report/src/utilities/global.ts.html +33 -33
  335. package/coverage/lcov-report/src/utilities/index.html +16 -16
  336. package/coverage/lcov-report/src/utilities/index.ts.html +12 -12
  337. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  338. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  339. package/coverage/lcov-report/src/utilities/routing/index.ts.html +1 -1
  340. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  341. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +1 -1
  342. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +1 -1
  343. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +1 -1
  344. package/coverage/lcov-report/src/utilities/schema.ts.html +1 -1
  345. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +1 -1
  346. package/coverage/lcov-report/src/utilities/security.ts.html +1 -1
  347. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  348. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +1 -1
  349. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  350. package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
  351. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +1 -1
  352. package/coverage/lcov-report/src/watch.ts.html +1 -1
  353. package/coverage/lcov-report/src/websocket.ts.html +3 -3
  354. package/coverage/lcov.info +2986 -2796
  355. package/dist/api/controllers/application.js +73 -74
  356. package/dist/api/controllers/datasource.js +24 -15
  357. package/dist/api/controllers/query/index.js +18 -11
  358. package/dist/api/controllers/row/ExternalRequest.js +5 -3
  359. package/dist/api/controllers/row/external.js +6 -5
  360. package/dist/api/controllers/row/utils.js +5 -2
  361. package/dist/api/controllers/static/index.js +38 -38
  362. package/dist/api/controllers/table/external.js +8 -5
  363. package/dist/api/controllers/webhook.js +45 -43
  364. package/dist/api/routes/index.js +2 -0
  365. package/dist/api/routes/row.js +2 -2
  366. package/dist/index.js +2 -2
  367. package/dist/integrations/base/query.js +7 -2
  368. package/dist/integrations/base/sqlTable.js +14 -14
  369. package/dist/integrations/dynamodb.js +8 -5
  370. package/dist/integrations/mysql.js +2 -2
  371. package/dist/integrations/queries/sql.js +73 -100
  372. package/dist/integrations/rest.js +14 -14
  373. package/dist/package.json +6 -6
  374. package/dist/sdk/app/datasources/datasources.js +113 -0
  375. package/dist/sdk/app/datasources/index.js +27 -0
  376. package/dist/sdk/app/queries/index.js +27 -0
  377. package/dist/sdk/app/queries/queries.js +60 -0
  378. package/dist/sdk/app/tables/index.js +6 -2
  379. package/dist/sdk/index.js +4 -0
  380. package/dist/sdk/utils/index.js +29 -0
  381. package/dist/threads/automation.js +9 -2
  382. package/dist/threads/query.js +27 -13
  383. package/dist/tsconfig.build.tsbuildinfo +1 -1
  384. package/dist/utilities/fileSystem/filesystem.js +36 -34
  385. package/dist/utilities/fileSystem/plugin.js +17 -14
  386. package/dist/utilities/fileSystem/template.js +7 -4
  387. package/package.json +7 -7
  388. package/scripts/dev/manage.js +1 -0
  389. package/src/api/controllers/application.ts +81 -74
  390. package/src/api/controllers/datasource.ts +33 -25
  391. package/src/api/controllers/query/index.ts +47 -39
  392. package/src/api/controllers/row/ExternalRequest.ts +2 -2
  393. package/src/api/controllers/row/external.ts +3 -4
  394. package/src/api/controllers/row/utils.ts +2 -2
  395. package/src/api/controllers/static/index.ts +17 -18
  396. package/src/api/controllers/table/external.ts +8 -6
  397. package/src/api/controllers/webhook.ts +48 -46
  398. package/src/api/routes/index.ts +2 -0
  399. package/src/api/routes/row.ts +1 -1
  400. package/src/api/routes/tests/datasource.spec.ts +35 -1
  401. package/src/definitions/automations.ts +1 -0
  402. package/src/index.ts +1 -1
  403. package/src/integrations/base/query.ts +3 -1
  404. package/src/integrations/base/sqlTable.ts +1 -1
  405. package/src/integrations/dynamodb.ts +3 -3
  406. package/src/integrations/mysql.ts +1 -1
  407. package/src/integrations/queries/sql.ts +5 -50
  408. package/src/integrations/rest.ts +8 -8
  409. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
  410. package/src/sdk/app/datasources/datasources.ts +98 -0
  411. package/src/sdk/app/datasources/index.ts +5 -0
  412. package/src/sdk/app/queries/index.ts +5 -0
  413. package/src/sdk/app/queries/queries.ts +50 -0
  414. package/src/sdk/app/tables/index.ts +6 -3
  415. package/src/sdk/index.ts +4 -0
  416. package/src/sdk/utils/index.ts +16 -0
  417. package/src/tests/utilities/TestConfiguration.ts +15 -12
  418. package/src/threads/automation.ts +9 -3
  419. package/src/threads/definitions.ts +3 -0
  420. package/src/threads/query.ts +28 -15
  421. package/src/utilities/fileSystem/filesystem.ts +6 -4
  422. package/src/utilities/fileSystem/plugin.ts +3 -4
  423. package/src/utilities/fileSystem/template.ts +2 -2
@@ -14,20 +14,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.getSignedUploadURL = exports.serveClientLibrary = exports.serveBuilderPreview = exports.serveApp = exports.deleteObjects = exports.uploadFile = exports.serveBuilder = exports.toggleBetaUiFeature = void 0;
16
16
  require("svelte/register");
17
- const send = require("koa-send");
18
- const { resolve, join } = require("../../../utilities/centralPath");
17
+ const centralPath_1 = require("../../../utilities/centralPath");
19
18
  const uuid = require("uuid");
20
19
  const constants_1 = require("../../../constants");
21
- const { processString } = require("@budibase/string-templates");
22
- const { loadHandlebarsFile, NODE_MODULES_PATH, TOP_LEVEL_PATH, } = require("../../../utilities/fileSystem");
20
+ const string_templates_1 = require("@budibase/string-templates");
21
+ const fileSystem_1 = require("../../../utilities/fileSystem");
23
22
  const environment_1 = __importDefault(require("../../../environment"));
24
- const { DocumentType } = require("../../../db/utils");
25
- const { context, objectStore, utils } = require("@budibase/backend-core");
26
- const AWS = require("aws-sdk");
27
- const fs = require("fs");
23
+ const utils_1 = require("../../../db/utils");
24
+ const backend_core_1 = require("@budibase/backend-core");
25
+ const aws_sdk_1 = __importDefault(require("aws-sdk"));
26
+ const fs_1 = __importDefault(require("fs"));
27
+ const sdk_1 = __importDefault(require("../../../sdk"));
28
+ const send = require("koa-send");
28
29
  function prepareUpload({ s3Key, bucket, metadata, file }) {
29
30
  return __awaiter(this, void 0, void 0, function* () {
30
- const response = yield objectStore.upload({
31
+ const response = yield backend_core_1.objectStore.upload({
31
32
  bucket,
32
33
  metadata,
33
34
  filename: s3Key,
@@ -38,7 +39,7 @@ function prepareUpload({ s3Key, bucket, metadata, file }) {
38
39
  return {
39
40
  size: file.size,
40
41
  name: file.name,
41
- url: objectStore.getAppFileUrl(s3Key),
42
+ url: backend_core_1.objectStore.getAppFileUrl(s3Key),
42
43
  extension: [...file.name.split(".")].pop(),
43
44
  key: response.Key,
44
45
  };
@@ -48,19 +49,19 @@ const toggleBetaUiFeature = function (ctx) {
48
49
  return __awaiter(this, void 0, void 0, function* () {
49
50
  const cookieName = `beta:${ctx.params.feature}`;
50
51
  if (ctx.cookies.get(cookieName)) {
51
- utils.clearCookie(ctx, cookieName);
52
+ backend_core_1.utils.clearCookie(ctx, cookieName);
52
53
  ctx.body = {
53
54
  message: `${ctx.params.feature} disabled`,
54
55
  };
55
56
  return;
56
57
  }
57
- let builderPath = resolve(TOP_LEVEL_PATH, "new_design_ui");
58
+ let builderPath = (0, centralPath_1.resolve)(fileSystem_1.TOP_LEVEL_PATH, "new_design_ui");
58
59
  // // download it from S3
59
- if (!fs.existsSync(builderPath)) {
60
- fs.mkdirSync(builderPath);
60
+ if (!fs_1.default.existsSync(builderPath)) {
61
+ fs_1.default.mkdirSync(builderPath);
61
62
  }
62
- yield objectStore.downloadTarballDirect("https://cdn.budi.live/beta:design_ui/new_ui.tar.gz", builderPath);
63
- utils.setCookie(ctx, {}, cookieName);
63
+ yield backend_core_1.objectStore.downloadTarballDirect("https://cdn.budi.live/beta:design_ui/new_ui.tar.gz", builderPath);
64
+ backend_core_1.utils.setCookie(ctx, {}, cookieName);
64
65
  ctx.body = {
65
66
  message: `${ctx.params.feature} enabled`,
66
67
  };
@@ -69,7 +70,7 @@ const toggleBetaUiFeature = function (ctx) {
69
70
  exports.toggleBetaUiFeature = toggleBetaUiFeature;
70
71
  const serveBuilder = function (ctx) {
71
72
  return __awaiter(this, void 0, void 0, function* () {
72
- const builderPath = resolve(TOP_LEVEL_PATH, "builder");
73
+ const builderPath = (0, centralPath_1.resolve)(fileSystem_1.TOP_LEVEL_PATH, "builder");
73
74
  yield send(ctx, ctx.file, { root: builderPath });
74
75
  });
75
76
  };
@@ -85,7 +86,7 @@ const uploadFile = function (ctx) {
85
86
  const processedFileName = `${uuid.v4()}.${fileExtension}`;
86
87
  return prepareUpload({
87
88
  file,
88
- s3Key: `${context.getProdAppId()}/attachments/${processedFileName}`,
89
+ s3Key: `${backend_core_1.context.getProdAppId()}/attachments/${processedFileName}`,
89
90
  bucket: constants_1.ObjectStoreBuckets.APPS,
90
91
  });
91
92
  }));
@@ -95,28 +96,28 @@ const uploadFile = function (ctx) {
95
96
  exports.uploadFile = uploadFile;
96
97
  const deleteObjects = function (ctx) {
97
98
  return __awaiter(this, void 0, void 0, function* () {
98
- ctx.body = yield objectStore.deleteFiles(constants_1.ObjectStoreBuckets.APPS, ctx.request.body.keys);
99
+ ctx.body = yield backend_core_1.objectStore.deleteFiles(constants_1.ObjectStoreBuckets.APPS, ctx.request.body.keys);
99
100
  });
100
101
  };
101
102
  exports.deleteObjects = deleteObjects;
102
103
  const serveApp = function (ctx) {
103
104
  return __awaiter(this, void 0, void 0, function* () {
104
- const db = context.getAppDB({ skip_setup: true });
105
- const appInfo = yield db.get(DocumentType.APP_METADATA);
106
- let appId = context.getAppId();
105
+ const db = backend_core_1.context.getAppDB({ skip_setup: true });
106
+ const appInfo = yield db.get(utils_1.DocumentType.APP_METADATA);
107
+ let appId = backend_core_1.context.getAppId();
107
108
  if (!environment_1.default.isJest()) {
108
109
  const App = require("./templates/BudibaseApp.svelte").default;
109
- const plugins = objectStore.enrichPluginURLs(appInfo.usedPlugins);
110
+ const plugins = backend_core_1.objectStore.enrichPluginURLs(appInfo.usedPlugins);
110
111
  const { head, html, css } = App.render({
111
112
  metaImage: "https://res.cloudinary.com/daog6scxm/image/upload/v1666109324/meta-images/budibase-meta-image_uukc1m.png",
112
113
  title: appInfo.name,
113
114
  production: environment_1.default.isProd(),
114
115
  appId,
115
- clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
116
+ clientLibPath: backend_core_1.objectStore.clientLibraryUrl(appId, appInfo.version),
116
117
  usedPlugins: plugins,
117
118
  });
118
- const appHbs = loadHandlebarsFile(`${__dirname}/templates/app.hbs`);
119
- ctx.body = yield processString(appHbs, {
119
+ const appHbs = (0, fileSystem_1.loadHandlebarsFile)(`${__dirname}/templates/app.hbs`);
120
+ ctx.body = yield (0, string_templates_1.processString)(appHbs, {
120
121
  head,
121
122
  body: html,
122
123
  style: css.code,
@@ -132,13 +133,13 @@ const serveApp = function (ctx) {
132
133
  exports.serveApp = serveApp;
133
134
  const serveBuilderPreview = function (ctx) {
134
135
  return __awaiter(this, void 0, void 0, function* () {
135
- const db = context.getAppDB({ skip_setup: true });
136
- const appInfo = yield db.get(DocumentType.APP_METADATA);
136
+ const db = backend_core_1.context.getAppDB({ skip_setup: true });
137
+ const appInfo = yield db.get(utils_1.DocumentType.APP_METADATA);
137
138
  if (!environment_1.default.isJest()) {
138
- let appId = context.getAppId();
139
- const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`);
140
- ctx.body = yield processString(previewHbs, {
141
- clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
139
+ let appId = backend_core_1.context.getAppId();
140
+ const previewHbs = (0, fileSystem_1.loadHandlebarsFile)(`${__dirname}/templates/preview.hbs`);
141
+ ctx.body = yield (0, string_templates_1.processString)(previewHbs, {
142
+ clientLibPath: backend_core_1.objectStore.clientLibraryUrl(appId, appInfo.version),
142
143
  });
143
144
  }
144
145
  else {
@@ -151,7 +152,7 @@ exports.serveBuilderPreview = serveBuilderPreview;
151
152
  const serveClientLibrary = function (ctx) {
152
153
  return __awaiter(this, void 0, void 0, function* () {
153
154
  return send(ctx, "budibase-client.js", {
154
- root: join(NODE_MODULES_PATH, "@budibase", "client", "dist"),
155
+ root: (0, centralPath_1.join)(fileSystem_1.NODE_MODULES_PATH, "@budibase", "client", "dist"),
155
156
  });
156
157
  });
157
158
  };
@@ -159,12 +160,11 @@ exports.serveClientLibrary = serveClientLibrary;
159
160
  const getSignedUploadURL = function (ctx) {
160
161
  var _a, _b, _c, _d;
161
162
  return __awaiter(this, void 0, void 0, function* () {
162
- const database = context.getAppDB();
163
163
  // Ensure datasource is valid
164
164
  let datasource;
165
165
  try {
166
166
  const { datasourceId } = ctx.params;
167
- datasource = yield database.get(datasourceId);
167
+ datasource = yield sdk_1.default.datasources.get(datasourceId, { enriched: true });
168
168
  if (!datasource) {
169
169
  ctx.throw(400, "The specified datasource could not be found");
170
170
  }
@@ -179,15 +179,15 @@ const getSignedUploadURL = function (ctx) {
179
179
  // Determine type of datasource and generate signed URL
180
180
  let signedUrl;
181
181
  let publicUrl;
182
- const awsRegion = ((_b = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _b === void 0 ? void 0 : _b.region) || "eu-west-1";
183
- if (datasource.source === "S3") {
182
+ const awsRegion = (((_b = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _b === void 0 ? void 0 : _b.region) || "eu-west-1");
183
+ if ((datasource === null || datasource === void 0 ? void 0 : datasource.source) === "S3") {
184
184
  const { bucket, key } = ctx.request.body || {};
185
185
  if (!bucket || !key) {
186
186
  ctx.throw(400, "bucket and key values are required");
187
187
  return;
188
188
  }
189
189
  try {
190
- const s3 = new AWS.S3({
190
+ const s3 = new aws_sdk_1.default.S3({
191
191
  region: awsRegion,
192
192
  accessKeyId: (_c = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _c === void 0 ? void 0 : _c.accessKeyId,
193
193
  secretAccessKey: (_d = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _d === void 0 ? void 0 : _d.secretAccessKey,
@@ -168,7 +168,7 @@ function save(ctx) {
168
168
  ctx.throw(400, "A column type has changed.");
169
169
  }
170
170
  const db = backend_core_1.context.getAppDB();
171
- const datasource = yield db.get(datasourceId);
171
+ const datasource = yield sdk_1.default.datasources.get(datasourceId);
172
172
  if (!datasource.entities) {
173
173
  datasource.entities = {};
174
174
  }
@@ -242,12 +242,15 @@ function destroy(ctx) {
242
242
  }
243
243
  const datasourceId = getDatasourceId(tableToDelete);
244
244
  const db = backend_core_1.context.getAppDB();
245
- const datasource = yield db.get(datasourceId);
245
+ const datasource = yield sdk_1.default.datasources.get(datasourceId);
246
246
  const tables = datasource.entities;
247
247
  const operation = types_1.Operation.DELETE_TABLE;
248
- yield makeTableRequest(datasource, operation, tableToDelete, tables);
249
- cleanupRelationships(tableToDelete, tables);
250
- delete datasource.entities[tableToDelete.name];
248
+ if (tables) {
249
+ yield makeTableRequest(datasource, operation, tableToDelete, tables);
250
+ cleanupRelationships(tableToDelete, tables);
251
+ delete tables[tableToDelete.name];
252
+ datasource.entities = tables;
253
+ }
251
254
  yield db.put(datasource);
252
255
  return tableToDelete;
253
256
  });
@@ -72,61 +72,63 @@ function destroy(ctx) {
72
72
  exports.destroy = destroy;
73
73
  function buildSchema(ctx) {
74
74
  return __awaiter(this, void 0, void 0, function* () {
75
- yield backend_core_1.context.updateAppId(ctx.params.instance);
76
- const db = backend_core_1.context.getAppDB();
77
- const webhook = (yield db.get(ctx.params.id));
78
- webhook.bodySchema = toJsonSchema(ctx.request.body);
79
- // update the automation outputs
80
- if (webhook.action.type === types_1.WebhookActionType.AUTOMATION) {
81
- let automation = (yield db.get(webhook.action.target));
82
- const autoOutputs = automation.definition.trigger.schema.outputs;
83
- let properties = webhook.bodySchema.properties;
84
- // reset webhook outputs
85
- autoOutputs.properties = {
86
- body: autoOutputs.properties.body,
87
- };
88
- for (let prop of Object.keys(properties)) {
89
- autoOutputs.properties[prop] = {
90
- type: properties[prop].type,
91
- description: AUTOMATION_DESCRIPTION,
75
+ yield backend_core_1.context.doInAppContext(ctx.params.instance, () => __awaiter(this, void 0, void 0, function* () {
76
+ const db = backend_core_1.context.getAppDB();
77
+ const webhook = (yield db.get(ctx.params.id));
78
+ webhook.bodySchema = toJsonSchema(ctx.request.body);
79
+ // update the automation outputs
80
+ if (webhook.action.type === types_1.WebhookActionType.AUTOMATION) {
81
+ let automation = (yield db.get(webhook.action.target));
82
+ const autoOutputs = automation.definition.trigger.schema.outputs;
83
+ let properties = webhook.bodySchema.properties;
84
+ // reset webhook outputs
85
+ autoOutputs.properties = {
86
+ body: autoOutputs.properties.body,
92
87
  };
88
+ for (let prop of Object.keys(properties)) {
89
+ autoOutputs.properties[prop] = {
90
+ type: properties[prop].type,
91
+ description: AUTOMATION_DESCRIPTION,
92
+ };
93
+ }
94
+ yield db.put(automation);
93
95
  }
94
- yield db.put(automation);
95
- }
96
- ctx.body = yield db.put(webhook);
96
+ ctx.body = yield db.put(webhook);
97
+ }));
97
98
  });
98
99
  }
99
100
  exports.buildSchema = buildSchema;
100
101
  function trigger(ctx) {
101
102
  return __awaiter(this, void 0, void 0, function* () {
102
103
  const prodAppId = backend_core_1.db.getProdAppID(ctx.params.instance);
103
- yield backend_core_1.context.updateAppId(prodAppId);
104
- try {
105
- const db = backend_core_1.context.getAppDB();
106
- const webhook = (yield db.get(ctx.params.id));
107
- // validate against the schema
108
- if (webhook.bodySchema) {
109
- validate(ctx.request.body, webhook.bodySchema);
110
- }
111
- const target = yield db.get(webhook.action.target);
112
- if (webhook.action.type === types_1.WebhookActionType.AUTOMATION) {
113
- // trigger with both the pure request and then expand it
114
- // incase the user has produced a schema to bind to
115
- yield triggers.externalTrigger(target, Object.assign(Object.assign({ body: ctx.request.body }, ctx.request.body), { appId: prodAppId }));
116
- }
117
- ctx.status = 200;
118
- ctx.body = {
119
- message: "Webhook trigger fired successfully",
120
- };
121
- }
122
- catch (err) {
123
- if (err.status === 404) {
104
+ yield backend_core_1.context.doInAppContext(prodAppId, () => __awaiter(this, void 0, void 0, function* () {
105
+ try {
106
+ const db = backend_core_1.context.getAppDB();
107
+ const webhook = (yield db.get(ctx.params.id));
108
+ // validate against the schema
109
+ if (webhook.bodySchema) {
110
+ validate(ctx.request.body, webhook.bodySchema);
111
+ }
112
+ const target = yield db.get(webhook.action.target);
113
+ if (webhook.action.type === types_1.WebhookActionType.AUTOMATION) {
114
+ // trigger with both the pure request and then expand it
115
+ // incase the user has produced a schema to bind to
116
+ yield triggers.externalTrigger(target, Object.assign(Object.assign({ body: ctx.request.body }, ctx.request.body), { appId: prodAppId }));
117
+ }
124
118
  ctx.status = 200;
125
119
  ctx.body = {
126
- message: "Application not deployed yet.",
120
+ message: "Webhook trigger fired successfully",
127
121
  };
128
122
  }
129
- }
123
+ catch (err) {
124
+ if (err.status === 404) {
125
+ ctx.status = 200;
126
+ ctx.body = {
127
+ message: "Application not deployed yet.",
128
+ };
129
+ }
130
+ }
131
+ }));
130
132
  });
131
133
  }
132
134
  exports.trigger = trigger;
@@ -38,6 +38,7 @@ var public_1 = require("./public");
38
38
  Object.defineProperty(exports, "publicRoutes", { enumerable: true, get: function () { return __importDefault(public_1).default; } });
39
39
  const appBackupRoutes = pro_1.api.appBackups;
40
40
  const scheduleRoutes = pro_1.api.schedules;
41
+ const environmentVariableRoutes = pro_1.api.environmentVariables;
41
42
  exports.mainRoutes = [
42
43
  appBackupRoutes,
43
44
  backup_1.default,
@@ -67,6 +68,7 @@ exports.mainRoutes = [
67
68
  migrations_1.default,
68
69
  plugin_1.default,
69
70
  scheduleRoutes,
71
+ environmentVariableRoutes,
70
72
  // these need to be handled last as they still use /api/:tableId
71
73
  // this could be breaking as koa may recognise other routes as this
72
74
  table_1.default,
@@ -31,7 +31,7 @@ const rowController = __importStar(require("../controllers/row"));
31
31
  const authorized_1 = __importDefault(require("../../middleware/authorized"));
32
32
  const resourceId_1 = require("../../middleware/resourceId");
33
33
  const backend_core_1 = require("@budibase/backend-core");
34
- const { internalSearchValidator } = require("./utils/validators");
34
+ const validators_1 = require("./utils/validators");
35
35
  const { PermissionType, PermissionLevel } = backend_core_1.permissions;
36
36
  const router = new router_1.default();
37
37
  router
@@ -142,7 +142,7 @@ router
142
142
  * @apiSuccess {string} bookmark The bookmark to be sent with the next request to get the next
143
143
  * page.
144
144
  */
145
- .post("/api/:tableId/search", internalSearchValidator(), (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.search)
145
+ .post("/api/:tableId/search", (0, validators_1.internalSearchValidator)(), (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.search)
146
146
  // DEPRECATED - this is an old API, but for backwards compat it needs to be
147
147
  // supported still
148
148
  .post("/api/search/:tableId/rows", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.search)
package/dist/index.js CHANGED
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const global_agent_1 = require("global-agent");
4
4
  const fixPath = require("fix-path");
5
- const { checkDevelopmentEnvironment } = require("./utilities/fileSystem");
5
+ const fileSystem_1 = require("./utilities/fileSystem");
6
6
  function runServer() {
7
7
  // this will shutdown the system if development environment not ready
8
8
  // will print an error explaining what to do
9
- checkDevelopmentEnvironment();
9
+ (0, fileSystem_1.checkDevelopmentEnvironment)();
10
10
  fixPath();
11
11
  // this will setup http and https proxies form env variables
12
12
  process.env.GLOBAL_AGENT_FORCE_GLOBAL_AGENT = "false";
@@ -8,12 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.makeExternalQuery = void 0;
13
- const { getIntegration } = require("../index");
16
+ const index_1 = require("../index");
17
+ const sdk_1 = __importDefault(require("../../sdk"));
14
18
  function makeExternalQuery(datasource, json) {
15
19
  return __awaiter(this, void 0, void 0, function* () {
16
- const Integration = yield getIntegration(datasource.source);
20
+ datasource = yield sdk_1.default.datasources.enrich(datasource);
21
+ const Integration = yield (0, index_1.getIntegration)(datasource.source);
17
22
  // query is the opinionated function
18
23
  if (Integration.prototype.query) {
19
24
  const integration = new Integration(datasource.config);
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const knex_1 = require("knex");
4
4
  const types_1 = require("@budibase/types");
5
5
  const utils_1 = require("../utils");
6
- const { FieldTypes, RelationshipTypes } = require("../../constants");
6
+ const constants_1 = require("../../constants");
7
7
  function generateSchema(schema, table, tables, oldTable = null, renamed) {
8
8
  let primaryKey = table && table.primary ? table.primary[0] : null;
9
9
  const columns = Object.values(table.schema);
@@ -28,13 +28,13 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
28
28
  continue;
29
29
  }
30
30
  switch (column.type) {
31
- case FieldTypes.STRING:
32
- case FieldTypes.OPTIONS:
33
- case FieldTypes.LONGFORM:
34
- case FieldTypes.BARCODEQR:
31
+ case constants_1.FieldTypes.STRING:
32
+ case constants_1.FieldTypes.OPTIONS:
33
+ case constants_1.FieldTypes.LONGFORM:
34
+ case constants_1.FieldTypes.BARCODEQR:
35
35
  schema.text(key);
36
36
  break;
37
- case FieldTypes.NUMBER:
37
+ case constants_1.FieldTypes.NUMBER:
38
38
  // if meta is specified then this is a junction table entry
39
39
  if (column.meta && column.meta.toKey && column.meta.toTable) {
40
40
  const { toKey, toTable } = column.meta;
@@ -45,21 +45,21 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
45
45
  schema.float(key);
46
46
  }
47
47
  break;
48
- case FieldTypes.BOOLEAN:
48
+ case constants_1.FieldTypes.BOOLEAN:
49
49
  schema.boolean(key);
50
50
  break;
51
- case FieldTypes.DATETIME:
51
+ case constants_1.FieldTypes.DATETIME:
52
52
  schema.datetime(key, {
53
53
  useTz: !column.ignoreTimezones,
54
54
  });
55
55
  break;
56
- case FieldTypes.ARRAY:
56
+ case constants_1.FieldTypes.ARRAY:
57
57
  schema.json(key);
58
58
  break;
59
- case FieldTypes.LINK:
59
+ case constants_1.FieldTypes.LINK:
60
60
  // this side of the relationship doesn't need any SQL work
61
- if (column.relationshipType !== RelationshipTypes.MANY_TO_ONE &&
62
- column.relationshipType !== RelationshipTypes.MANY_TO_MANY) {
61
+ if (column.relationshipType !== constants_1.RelationshipTypes.MANY_TO_ONE &&
62
+ column.relationshipType !== constants_1.RelationshipTypes.MANY_TO_MANY) {
63
63
  if (!column.foreignKey || !column.tableId) {
64
64
  throw "Invalid relationship schema";
65
65
  }
@@ -83,8 +83,8 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
83
83
  // need to check if any columns have been deleted
84
84
  if (oldTable) {
85
85
  const deletedColumns = Object.entries(oldTable.schema)
86
- .filter(([key, schema]) => schema.type !== FieldTypes.LINK &&
87
- schema.type !== FieldTypes.FORMULA &&
86
+ .filter(([key, schema]) => schema.type !== constants_1.FieldTypes.LINK &&
87
+ schema.type !== constants_1.FieldTypes.FORMULA &&
88
88
  table.schema[key] == null)
89
89
  .map(([key]) => key);
90
90
  deletedColumns.forEach(key => {
@@ -8,10 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  const types_1 = require("@budibase/types");
13
- const AWS = require("aws-sdk");
14
- const { AWS_REGION } = require("../db/dynamoClient");
16
+ const aws_sdk_1 = __importDefault(require("aws-sdk"));
17
+ const dynamoClient_1 = require("../db/dynamoClient");
15
18
  const SCHEMA = {
16
19
  docs: "https://github.com/dabit3/dynamodb-documentclient-cheat-sheet",
17
20
  description: "Amazon DynamoDB is a key-value and document database that delivers single-digit millisecond performance at any scale.",
@@ -129,8 +132,8 @@ class DynamoDBIntegration {
129
132
  // @ts-ignore
130
133
  this.config = {};
131
134
  }
132
- this.config = Object.assign(Object.assign({}, this.config), { currentClockSkew: true, region: config.region || AWS_REGION, endpoint: config.endpoint || undefined });
133
- this.client = new AWS.DynamoDB.DocumentClient(this.config);
135
+ this.config = Object.assign(Object.assign({}, this.config), { currentClockSkew: true, region: config.region || dynamoClient_1.AWS_REGION, endpoint: config.endpoint || undefined });
136
+ this.client = new aws_sdk_1.default.DynamoDB.DocumentClient(this.config);
134
137
  }
135
138
  create(query) {
136
139
  return __awaiter(this, void 0, void 0, function* () {
@@ -163,7 +166,7 @@ class DynamoDBIntegration {
163
166
  const params = {
164
167
  TableName: query.table,
165
168
  };
166
- return new AWS.DynamoDB(this.config).describeTable(params).promise();
169
+ return new aws_sdk_1.default.DynamoDB(this.config).describeTable(params).promise();
167
170
  });
168
171
  }
169
172
  get(query) {
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const types_1 = require("@budibase/types");
16
16
  const utils_1 = require("./utils");
17
17
  const dayjs_1 = __importDefault(require("dayjs"));
18
- const { NUMBER_REGEX } = require("../utilities");
18
+ const utilities_1 = require("../utilities");
19
19
  const sql_1 = __importDefault(require("./base/sql"));
20
20
  const mysql = require("mysql2/promise");
21
21
  const SCHEMA = {
@@ -81,7 +81,7 @@ function bindingTypeCoerce(bindings) {
81
81
  if (typeof binding !== "string") {
82
82
  continue;
83
83
  }
84
- const matches = binding.match(NUMBER_REGEX);
84
+ const matches = binding.match(utilities_1.NUMBER_REGEX);
85
85
  // check if number first
86
86
  if (matches && matches[0] !== "" && !isNaN(Number(matches[0]))) {
87
87
  bindings[i] = parseFloat(binding);