@budibase/server 1.0.27-alpha.2 → 1.0.27-alpha.23

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 (350) hide show
  1. package/__mocks__/node-fetch.ts +18 -0
  2. package/builder/assets/{index.5522fcd5.css → index.39e01193.css} +1 -1
  3. package/builder/assets/{index.e9e2c4d7.js → index.52b37e8a.js} +247 -242
  4. package/builder/assets/{vendor.f9faf6ab.js → vendor.10e2ad1b.js} +12 -12
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +1128 -968
  7. package/coverage/coverage-final.json +70 -70
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +3 -3
  10. package/coverage/lcov-report/api/controllers/application.js.html +73 -64
  11. package/coverage/lcov-report/api/controllers/auth.js.html +2 -2
  12. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +13 -4
  15. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +150 -48
  17. package/coverage/lcov-report/api/controllers/dev.js.html +3 -3
  18. package/coverage/lcov-report/api/controllers/hosting.js.html +3 -3
  19. package/coverage/lcov-report/api/controllers/index.html +20 -20
  20. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  24. package/coverage/lcov-report/api/controllers/query/index.html +21 -21
  25. package/coverage/lcov-report/api/controllers/query/index.js.html +102 -120
  26. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -3
  27. package/coverage/lcov-report/api/controllers/role.js.html +2 -2
  28. package/coverage/lcov-report/api/controllers/routing.js.html +2 -2
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/index.html +11 -11
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +38 -11
  33. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  36. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/user.js.html +14 -5
  44. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/webhook.js.html +2 -2
  50. package/coverage/lcov-report/api/index.html +1 -1
  51. package/coverage/lcov-report/api/index.js.html +6 -6
  52. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/apikeys.js.html +2 -2
  54. package/coverage/lcov-report/api/routes/application.js.html +2 -2
  55. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/automation.js.html +2 -2
  57. package/coverage/lcov-report/api/routes/backup.js.html +2 -2
  58. package/coverage/lcov-report/api/routes/cloud.js.html +2 -2
  59. package/coverage/lcov-report/api/routes/component.js.html +2 -2
  60. package/coverage/lcov-report/api/routes/datasource.js.html +2 -2
  61. package/coverage/lcov-report/api/routes/deploy.js.html +2 -2
  62. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  63. package/coverage/lcov-report/api/routes/hosting.js.html +2 -2
  64. package/coverage/lcov-report/api/routes/index.html +1 -1
  65. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/integration.js.html +2 -2
  67. package/coverage/lcov-report/api/routes/layout.js.html +2 -2
  68. package/coverage/lcov-report/api/routes/metadata.js.html +2 -2
  69. package/coverage/lcov-report/api/routes/permission.js.html +12 -3
  70. package/coverage/lcov-report/api/routes/query.js.html +25 -4
  71. package/coverage/lcov-report/api/routes/role.js.html +2 -2
  72. package/coverage/lcov-report/api/routes/routing.js.html +2 -2
  73. package/coverage/lcov-report/api/routes/row.js.html +2 -2
  74. package/coverage/lcov-report/api/routes/screen.js.html +2 -2
  75. package/coverage/lcov-report/api/routes/script.js.html +2 -2
  76. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  77. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  78. package/coverage/lcov-report/api/routes/templates.js.html +2 -2
  79. package/coverage/lcov-report/api/routes/user.js.html +2 -2
  80. package/coverage/lcov-report/api/routes/view.js.html +2 -2
  81. package/coverage/lcov-report/api/routes/webhook.js.html +2 -2
  82. package/coverage/lcov-report/automations/actions.js.html +1 -1
  83. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  84. package/coverage/lcov-report/automations/bullboard.js.html +2 -2
  85. package/coverage/lcov-report/automations/index.html +1 -1
  86. package/coverage/lcov-report/automations/index.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/executeQuery.js.html +32 -8
  93. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/index.html +11 -11
  96. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  113. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  114. package/coverage/lcov-report/automations/utils.js.html +6 -6
  115. package/coverage/lcov-report/constants/index.html +1 -1
  116. package/coverage/lcov-report/constants/index.js.html +4 -4
  117. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  118. package/coverage/lcov-report/constants/screens.js.html +2 -2
  119. package/coverage/lcov-report/db/client.js.html +2 -2
  120. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  121. package/coverage/lcov-report/db/index.html +1 -1
  122. package/coverage/lcov-report/db/index.js.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  124. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  126. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  127. package/coverage/lcov-report/db/newid.js.html +2 -2
  128. package/coverage/lcov-report/db/utils.js.html +19 -19
  129. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  130. package/coverage/lcov-report/events/index.html +1 -1
  131. package/coverage/lcov-report/events/index.js.html +1 -1
  132. package/coverage/lcov-report/events/utils.js.html +1 -1
  133. package/coverage/lcov-report/index.html +69 -69
  134. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  135. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  136. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  137. package/coverage/lcov-report/middleware/authorized.js.html +12 -12
  138. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  139. package/coverage/lcov-report/middleware/currentapp.js.html +79 -40
  140. package/coverage/lcov-report/middleware/index.html +10 -10
  141. package/coverage/lcov-report/middleware/joi-validator.js.html +9 -9
  142. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  143. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  144. package/coverage/lcov-report/middleware/usageQuota.js.html +2 -2
  145. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  146. package/coverage/lcov-report/threads/automation.js.html +3 -3
  147. package/coverage/lcov-report/threads/index.html +31 -31
  148. package/coverage/lcov-report/threads/index.js.html +12 -12
  149. package/coverage/lcov-report/threads/query.js.html +531 -87
  150. package/coverage/lcov-report/threads/utils.js.html +210 -15
  151. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  152. package/coverage/lcov-report/utilities/budibaseDir.js.html +2 -2
  153. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  154. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  155. package/coverage/lcov-report/utilities/global.js.html +28 -19
  156. package/coverage/lcov-report/utilities/index.html +4 -4
  157. package/coverage/lcov-report/utilities/index.js.html +13 -13
  158. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  159. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  160. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  161. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  162. package/coverage/lcov-report/utilities/rowProcessor/index.html +19 -19
  163. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +211 -10
  164. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  165. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  166. package/coverage/lcov-report/utilities/security.js.html +13 -4
  167. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  168. package/coverage/lcov-report/utilities/users.js.html +1 -1
  169. package/coverage/lcov-report/utilities/workerRequests.js.html +22 -22
  170. package/coverage/lcov.info +1921 -1630
  171. package/dist/api/controllers/apikeys.js +2 -2
  172. package/dist/api/controllers/application.js +4 -4
  173. package/dist/api/controllers/auth.js +1 -1
  174. package/dist/api/controllers/cloud.js +2 -2
  175. package/dist/api/controllers/datasource.js +29 -0
  176. package/dist/api/controllers/deploy/index.js +2 -2
  177. package/dist/api/controllers/dev.js +2 -2
  178. package/dist/api/controllers/hosting.js +2 -2
  179. package/dist/api/controllers/permission.js +2 -2
  180. package/dist/api/controllers/query/import/sources/base/index.js +2 -1
  181. package/dist/api/controllers/query/import/sources/curl.js +11 -5
  182. package/dist/api/controllers/query/import/sources/openapi2.js +8 -5
  183. package/dist/api/controllers/query/index.js +46 -47
  184. package/dist/api/controllers/query/validation.js +2 -1
  185. package/dist/api/controllers/role.js +1 -1
  186. package/dist/api/controllers/routing.js +1 -1
  187. package/dist/api/controllers/row/internal.js +14 -6
  188. package/dist/api/controllers/row/internalSearch.js +1 -1
  189. package/dist/api/controllers/screen.js +1 -1
  190. package/dist/api/controllers/user.js +3 -3
  191. package/dist/api/controllers/webhook.js +1 -1
  192. package/dist/api/index.js +1 -1
  193. package/dist/api/routes/apikeys.js +1 -1
  194. package/dist/api/routes/application.js +1 -1
  195. package/dist/api/routes/automation.js +1 -1
  196. package/dist/api/routes/backup.js +1 -1
  197. package/dist/api/routes/cloud.js +1 -1
  198. package/dist/api/routes/component.js +1 -1
  199. package/dist/api/routes/datasource.js +1 -1
  200. package/dist/api/routes/deploy.js +1 -1
  201. package/dist/api/routes/dev.js +1 -1
  202. package/dist/api/routes/hosting.js +1 -1
  203. package/dist/api/routes/integration.js +1 -1
  204. package/dist/api/routes/layout.js +1 -1
  205. package/dist/api/routes/metadata.js +1 -1
  206. package/dist/api/routes/permission.js +1 -1
  207. package/dist/api/routes/query.js +4 -2
  208. package/dist/api/routes/role.js +1 -1
  209. package/dist/api/routes/routing.js +1 -1
  210. package/dist/api/routes/row.js +1 -1
  211. package/dist/api/routes/screen.js +1 -1
  212. package/dist/api/routes/script.js +1 -1
  213. package/dist/api/routes/static.js +1 -1
  214. package/dist/api/routes/table.js +1 -1
  215. package/dist/api/routes/templates.js +1 -1
  216. package/dist/api/routes/tests/utilities/TestFunctions.js +1 -1
  217. package/dist/api/routes/user.js +1 -1
  218. package/dist/api/routes/view.js +1 -1
  219. package/dist/api/routes/webhook.js +1 -1
  220. package/dist/app.js +1 -1
  221. package/dist/automations/bullboard.js +1 -1
  222. package/dist/automations/steps/executeQuery.js +9 -2
  223. package/dist/automations/utils.js +1 -1
  224. package/dist/constants/index.js +3 -3
  225. package/dist/constants/screens.js +1 -1
  226. package/dist/db/client.js +1 -1
  227. package/dist/db/utils.js +1 -1
  228. package/dist/environment.js +1 -0
  229. package/dist/integrations/base/sqlTable.js +1 -1
  230. package/dist/integrations/dynamodb.js +19 -0
  231. package/dist/integrations/rest.js +71 -22
  232. package/dist/integrations/s3.js +17 -8
  233. package/dist/integrations/utils.js +40 -37
  234. package/dist/middleware/authorized.js +2 -2
  235. package/dist/middleware/builder.js +2 -2
  236. package/dist/middleware/currentapp.js +15 -6
  237. package/dist/middleware/usageQuota.js +1 -1
  238. package/dist/package.json +5 -4
  239. package/dist/tests/utilities/TestConfiguration.js +55 -8
  240. package/dist/tests/utilities/structures.js +2 -2
  241. package/dist/threads/automation.js +2 -2
  242. package/dist/threads/query.js +195 -50
  243. package/dist/threads/utils.js +62 -1
  244. package/dist/tsconfig.tsbuildinfo +1 -1
  245. package/dist/utilities/budibaseDir.js +1 -1
  246. package/dist/utilities/fileSystem/utilities.js +2 -1
  247. package/dist/utilities/global.js +5 -5
  248. package/dist/utilities/index.js +2 -2
  249. package/dist/utilities/redis.js +1 -1
  250. package/dist/utilities/rowProcessor/index.js +63 -0
  251. package/dist/utilities/security.js +2 -2
  252. package/dist/utilities/usageQuota.js +2 -2
  253. package/dist/utilities/workerRequests.js +3 -3
  254. package/package.json +6 -5
  255. package/scripts/replicateApp.js +1 -1
  256. package/src/api/controllers/apikeys.js +2 -2
  257. package/src/api/controllers/application.js +7 -4
  258. package/src/api/controllers/auth.js +1 -1
  259. package/src/api/controllers/cloud.js +5 -2
  260. package/src/api/controllers/datasource.js +34 -0
  261. package/src/api/controllers/deploy/index.js +2 -2
  262. package/src/api/controllers/dev.js +2 -2
  263. package/src/api/controllers/hosting.js +2 -2
  264. package/src/api/controllers/permission.js +2 -2
  265. package/src/api/controllers/query/import/sources/base/index.ts +3 -1
  266. package/src/api/controllers/query/import/sources/curl.ts +12 -4
  267. package/src/api/controllers/query/import/sources/openapi2.ts +9 -5
  268. package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +2 -3
  269. package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +6 -7
  270. package/src/api/controllers/query/import/tests/index.spec.js +0 -6
  271. package/src/api/controllers/query/index.js +49 -55
  272. package/src/api/controllers/query/validation.js +2 -1
  273. package/src/api/controllers/role.js +1 -1
  274. package/src/api/controllers/routing.js +1 -1
  275. package/src/api/controllers/row/internal.js +14 -5
  276. package/src/api/controllers/row/internalSearch.js +1 -1
  277. package/src/api/controllers/screen.js +1 -1
  278. package/src/api/controllers/user.js +6 -3
  279. package/src/api/controllers/webhook.js +1 -1
  280. package/src/api/index.js +1 -1
  281. package/src/api/routes/apikeys.js +1 -1
  282. package/src/api/routes/application.js +1 -1
  283. package/src/api/routes/automation.js +1 -1
  284. package/src/api/routes/backup.js +1 -1
  285. package/src/api/routes/cloud.js +1 -1
  286. package/src/api/routes/component.js +1 -1
  287. package/src/api/routes/datasource.js +1 -1
  288. package/src/api/routes/deploy.js +1 -1
  289. package/src/api/routes/dev.js +1 -1
  290. package/src/api/routes/hosting.js +1 -1
  291. package/src/api/routes/integration.js +1 -1
  292. package/src/api/routes/layout.js +1 -1
  293. package/src/api/routes/metadata.js +1 -1
  294. package/src/api/routes/permission.js +4 -1
  295. package/src/api/routes/query.js +9 -2
  296. package/src/api/routes/role.js +1 -1
  297. package/src/api/routes/routing.js +1 -1
  298. package/src/api/routes/row.js +1 -1
  299. package/src/api/routes/screen.js +1 -1
  300. package/src/api/routes/script.js +1 -1
  301. package/src/api/routes/static.js +1 -1
  302. package/src/api/routes/table.js +1 -1
  303. package/src/api/routes/templates.js +1 -1
  304. package/src/api/routes/tests/datasource.spec.js +45 -0
  305. package/src/api/routes/tests/permissions.spec.js +1 -1
  306. package/src/api/routes/tests/query.spec.js +70 -1
  307. package/src/api/routes/tests/role.spec.js +2 -2
  308. package/src/api/routes/tests/routing.spec.js +1 -1
  309. package/src/api/routes/tests/user.spec.js +1 -1
  310. package/src/api/routes/tests/utilities/TestFunctions.js +1 -1
  311. package/src/api/routes/user.js +1 -1
  312. package/src/api/routes/view.js +1 -1
  313. package/src/api/routes/webhook.js +1 -1
  314. package/src/app.ts +1 -1
  315. package/src/automations/bullboard.js +1 -1
  316. package/src/automations/steps/executeQuery.js +10 -2
  317. package/src/automations/utils.js +1 -1
  318. package/src/constants/index.js +3 -3
  319. package/src/constants/screens.js +1 -1
  320. package/src/db/client.js +1 -1
  321. package/src/db/utils.js +1 -1
  322. package/src/definitions/datasource.ts +25 -0
  323. package/src/environment.js +1 -0
  324. package/src/integrations/base/sqlTable.ts +1 -1
  325. package/src/integrations/dynamodb.ts +18 -0
  326. package/src/integrations/rest.ts +103 -20
  327. package/src/integrations/s3.ts +18 -7
  328. package/src/integrations/tests/rest.spec.js +287 -24
  329. package/src/integrations/utils.ts +8 -7
  330. package/src/middleware/authorized.js +2 -2
  331. package/src/middleware/builder.js +2 -2
  332. package/src/middleware/currentapp.js +20 -7
  333. package/src/middleware/tests/authorized.spec.js +2 -2
  334. package/src/middleware/tests/currentapp.spec.js +35 -41
  335. package/src/middleware/tests/usageQuota.spec.js +1 -1
  336. package/src/middleware/usageQuota.js +1 -1
  337. package/src/tests/utilities/TestConfiguration.js +65 -8
  338. package/src/tests/utilities/structures.js +2 -2
  339. package/src/threads/automation.js +2 -2
  340. package/src/threads/query.js +203 -55
  341. package/src/threads/utils.js +66 -1
  342. package/src/utilities/budibaseDir.js +1 -1
  343. package/src/utilities/fileSystem/utilities.js +3 -1
  344. package/src/utilities/global.js +8 -5
  345. package/src/utilities/index.js +2 -2
  346. package/src/utilities/redis.js +1 -1
  347. package/src/utilities/rowProcessor/index.js +67 -0
  348. package/src/utilities/security.js +5 -2
  349. package/src/utilities/usageQuota.js +2 -2
  350. package/src/utilities/workerRequests.js +3 -3
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/component");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { BUILDER } = require("@budibase/auth/permissions");
5
+ const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const router = Router();
7
7
  router.get("/api/:appId/components/definitions", authorized(BUILDER), controller.fetchAppComponentDefinitions);
8
8
  module.exports = router;
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const datasourceController = require("../controllers/datasource");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const joiValidator = require("../../middleware/joi-validator");
6
- const { BUILDER, PermissionLevels, PermissionTypes, } = require("@budibase/auth/permissions");
6
+ const { BUILDER, PermissionLevels, PermissionTypes, } = require("@budibase/backend-core/permissions");
7
7
  const Joi = require("joi");
8
8
  const { DataSourceOperation } = require("../../constants");
9
9
  const router = Router();
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/deploy");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { BUILDER } = require("@budibase/auth/permissions");
5
+ const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const router = Router();
7
7
  router
8
8
  .get("/api/deployments", authorized(BUILDER), controller.fetchDeployments)
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/dev");
4
4
  const env = require("../../environment");
5
5
  const authorized = require("../../middleware/authorized");
6
- const { BUILDER } = require("@budibase/auth/permissions");
6
+ const { BUILDER } = require("@budibase/backend-core/permissions");
7
7
  const router = Router();
8
8
  function redirectPath(path) {
9
9
  router
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/hosting");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { BUILDER } = require("@budibase/auth/permissions");
5
+ const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const router = Router();
7
7
  router
8
8
  .get("/api/hosting/urls", authorized(BUILDER), controller.fetchUrls)
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/integration");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { BUILDER } = require("@budibase/auth/permissions");
5
+ const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const router = Router();
7
7
  router
8
8
  .get("/api/integrations", authorized(BUILDER), controller.fetch)
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const Router = require("@koa/router");
3
3
  const authorized = require("../../middleware/authorized");
4
- const { BUILDER } = require("@budibase/auth/permissions");
4
+ const { BUILDER } = require("@budibase/backend-core/permissions");
5
5
  const controller = require("../controllers/layout");
6
6
  const router = Router();
7
7
  router
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/metadata");
4
4
  const { middleware: appInfoMiddleware, AppType, } = require("../../middleware/appInfo");
5
5
  const authorized = require("../../middleware/authorized");
6
- const { BUILDER } = require("@budibase/auth/permissions");
6
+ const { BUILDER } = require("@budibase/backend-core/permissions");
7
7
  const router = Router();
8
8
  router
9
9
  .post("/api/metadata/:type/:entityId", authorized(BUILDER), appInfoMiddleware({ appType: AppType.DEV }), controller.saveMetadata)
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/permission");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { BUILDER, PermissionLevels } = require("@budibase/auth/permissions");
5
+ const { BUILDER, PermissionLevels, } = require("@budibase/backend-core/permissions");
6
6
  const Joi = require("joi");
7
7
  const joiValidator = require("../../middleware/joi-validator");
8
8
  const router = Router();
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const queryController = require("../controllers/query");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { PermissionLevels, PermissionTypes, BUILDER, } = require("@budibase/auth/permissions");
5
+ const { PermissionLevels, PermissionTypes, BUILDER, } = require("@budibase/backend-core/permissions");
6
6
  const { bodyResource, bodySubResource, paramResource, } = require("../../middleware/resourceId");
7
7
  const { generateQueryPreviewValidation, generateQueryValidation, } = require("../controllers/query/validation");
8
8
  const router = Router();
@@ -12,6 +12,8 @@ router
12
12
  .post("/api/queries/import", authorized(BUILDER), queryController.import)
13
13
  .post("/api/queries/preview", bodyResource("datasourceId"), authorized(BUILDER), generateQueryPreviewValidation(), queryController.preview)
14
14
  .get("/api/queries/:queryId", paramResource("queryId"), authorized(PermissionTypes.QUERY, PermissionLevels.READ), queryController.find)
15
- .post("/api/queries/:queryId", paramResource("queryId"), authorized(PermissionTypes.QUERY, PermissionLevels.WRITE), queryController.execute)
15
+ // DEPRECATED - use new query endpoint for future work
16
+ .post("/api/queries/:queryId", paramResource("queryId"), authorized(PermissionTypes.QUERY, PermissionLevels.WRITE), queryController.executeV1)
17
+ .post("/api/v2/queries/:queryId", paramResource("queryId"), authorized(PermissionTypes.QUERY, PermissionLevels.WRITE), queryController.executeV2)
16
18
  .delete("/api/queries/:queryId/:revId", paramResource("queryId"), authorized(BUILDER), queryController.destroy);
17
19
  module.exports = router;
@@ -4,7 +4,7 @@ const controller = require("../controllers/role");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const Joi = require("joi");
6
6
  const joiValidator = require("../../middleware/joi-validator");
7
- const { BUILTIN_PERMISSION_IDS, BUILDER, PermissionLevels, } = require("@budibase/auth/permissions");
7
+ const { BUILTIN_PERMISSION_IDS, BUILDER, PermissionLevels, } = require("@budibase/backend-core/permissions");
8
8
  const router = Router();
9
9
  function generateValidator() {
10
10
  const permLevelArray = Object.values(PermissionLevels);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const Router = require("@koa/router");
3
3
  const authorized = require("../../middleware/authorized");
4
- const { BUILDER } = require("@budibase/auth/permissions");
4
+ const { BUILDER } = require("@budibase/backend-core/permissions");
5
5
  const controller = require("../controllers/routing");
6
6
  const router = Router();
7
7
  router
@@ -4,7 +4,7 @@ const rowController = require("../controllers/row");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const usage = require("../../middleware/usageQuota");
6
6
  const { paramResource, paramSubResource, } = require("../../middleware/resourceId");
7
- const { PermissionLevels, PermissionTypes, } = require("@budibase/auth/permissions");
7
+ const { PermissionLevels, PermissionTypes, } = require("@budibase/backend-core/permissions");
8
8
  const router = Router();
9
9
  router
10
10
  /**
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/screen");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { BUILDER } = require("@budibase/auth/permissions");
5
+ const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const joiValidator = require("../../middleware/joi-validator");
7
7
  const Joi = require("joi");
8
8
  const router = Router();
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/script");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { BUILDER } = require("@budibase/auth/permissions");
5
+ const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const router = Router();
7
7
  router.post("/api/script", authorized(BUILDER), controller.save);
8
8
  module.exports = router;
@@ -12,7 +12,7 @@ const Router = require("@koa/router");
12
12
  const controller = require("../controllers/static");
13
13
  const { budibaseTempDir } = require("../../utilities/budibaseDir");
14
14
  const authorized = require("../../middleware/authorized");
15
- const { BUILDER, PermissionTypes, PermissionLevels, } = require("@budibase/auth/permissions");
15
+ const { BUILDER, PermissionTypes, PermissionLevels, } = require("@budibase/backend-core/permissions");
16
16
  const env = require("../../environment");
17
17
  const { paramResource } = require("../../middleware/resourceId");
18
18
  const router = Router();
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const tableController = require("../controllers/table");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { paramResource, bodyResource } = require("../../middleware/resourceId");
6
- const { BUILDER, PermissionLevels, PermissionTypes, } = require("@budibase/auth/permissions");
6
+ const { BUILDER, PermissionLevels, PermissionTypes, } = require("@budibase/backend-core/permissions");
7
7
  const joiValidator = require("../../middleware/joi-validator");
8
8
  const Joi = require("joi");
9
9
  const router = Router();
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/templates");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { BUILDER } = require("@budibase/auth/permissions");
5
+ const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const router = Router();
7
7
  router
8
8
  .get("/api/templates", authorized(BUILDER), controller.fetch)
@@ -12,7 +12,7 @@ const rowController = require("../../../controllers/row");
12
12
  const appController = require("../../../controllers/application");
13
13
  const CouchDB = require("../../../../db");
14
14
  const { AppStatus } = require("../../../../db/utils");
15
- const { BUILTIN_ROLE_IDS } = require("@budibase/auth/roles");
15
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
16
16
  const { TENANT_ID } = require("../../../../tests/utilities/structures");
17
17
  function Request(appId, params) {
18
18
  this.appId = appId;
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/user");
4
4
  const authorized = require("../../middleware/authorized");
5
- const { PermissionLevels, PermissionTypes, } = require("@budibase/auth/permissions");
5
+ const { PermissionLevels, PermissionTypes, } = require("@budibase/backend-core/permissions");
6
6
  const router = Router();
7
7
  router
8
8
  .get("/api/users/metadata", authorized(PermissionTypes.USER, PermissionLevels.READ), controller.fetchMetadata)
@@ -4,7 +4,7 @@ const viewController = require("../controllers/view");
4
4
  const rowController = require("../controllers/row");
5
5
  const authorized = require("../../middleware/authorized");
6
6
  const { paramResource } = require("../../middleware/resourceId");
7
- const { BUILDER, PermissionTypes, PermissionLevels, } = require("@budibase/auth/permissions");
7
+ const { BUILDER, PermissionTypes, PermissionLevels, } = require("@budibase/backend-core/permissions");
8
8
  const router = Router();
9
9
  router
10
10
  .get("/api/views/export", authorized(BUILDER), viewController.exportView)
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/webhook");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const joiValidator = require("../../middleware/joi-validator");
6
- const { BUILDER } = require("@budibase/auth/permissions");
6
+ const { BUILDER } = require("@budibase/backend-core/permissions");
7
7
  const Joi = require("joi");
8
8
  const router = Router();
9
9
  function generateSaveValidator() {
package/dist/app.js CHANGED
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const env = require("./environment");
13
13
  const CouchDB = require("./db");
14
- require("@budibase/auth").init(CouchDB);
14
+ require("@budibase/backend-core").init(CouchDB);
15
15
  const Koa = require("koa");
16
16
  const destroyable = require("server-destroy");
17
17
  const koaBody = require("koa-body");
@@ -16,7 +16,7 @@ const Queue = env.isTest()
16
16
  ? require("../utilities/queue/inMemoryQueue")
17
17
  : require("bull");
18
18
  const { JobQueues } = require("../constants");
19
- const { utils } = require("@budibase/auth/redis");
19
+ const { utils } = require("@budibase/backend-core/redis");
20
20
  const { opts, redisProtocolUrl } = utils.getRedisOptions();
21
21
  const CLEANUP_PERIOD_MS = 60 * 1000;
22
22
  const queueConfig = redisProtocolUrl || { redis: opts };
@@ -55,6 +55,10 @@ exports.definition = {
55
55
  type: "object",
56
56
  description: "The response from the datasource execution",
57
57
  },
58
+ info: {
59
+ type: "object",
60
+ description: "Some query types may return extra data, like headers from a REST query",
61
+ },
58
62
  success: {
59
63
  type: "boolean",
60
64
  description: "Whether the action was successful",
@@ -84,15 +88,18 @@ exports.run = function ({ inputs, appId, emitter }) {
84
88
  },
85
89
  });
86
90
  try {
87
- yield queryController.execute(ctx);
91
+ yield queryController.executeV1(ctx);
92
+ const _b = ctx.body, { data } = _b, rest = __rest(_b, ["data"]);
88
93
  return {
89
- response: ctx.body,
94
+ response: data,
95
+ info: rest,
90
96
  success: true,
91
97
  };
92
98
  }
93
99
  catch (err) {
94
100
  return {
95
101
  success: false,
102
+ info: {},
96
103
  response: automationUtils.getError(err),
97
104
  };
98
105
  }
@@ -16,7 +16,7 @@ const { queue } = require("./bullboard");
16
16
  const newid = require("../db/newid");
17
17
  const { updateEntityMetadata } = require("../utilities");
18
18
  const { MetadataTypes } = require("../constants");
19
- const { getDeployedAppID } = require("@budibase/auth/db");
19
+ const { getDeployedAppID } = require("@budibase/backend-core/db");
20
20
  const { cloneDeep } = require("lodash/fp");
21
21
  const WH_STEP_ID = definitions.WEBHOOK.stepId;
22
22
  const CRON_STEP_ID = definitions.CRON.stepId;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- const { BUILTIN_ROLE_IDS } = require("@budibase/auth/roles");
3
- const { UserStatus } = require("@budibase/auth").constants;
4
- const { ObjectStoreBuckets } = require("@budibase/auth").objectStore;
2
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
3
+ const { UserStatus } = require("@budibase/backend-core/constants");
4
+ const { ObjectStoreBuckets } = require("@budibase/backend-core/objectStore");
5
5
  exports.JobQueues = {
6
6
  AUTOMATIONS: "automationQueue",
7
7
  };
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const { BUILTIN_ROLE_IDS } = require("@budibase/auth/roles");
2
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
3
3
  const { BASE_LAYOUT_PROP_IDS } = require("./layouts");
4
4
  exports.createHomeScreen = () => ({
5
5
  description: "",
package/dist/db/client.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const PouchDB = require("pouchdb");
3
- const { getCouchUrl } = require("@budibase/auth/db");
3
+ const { getCouchUrl } = require("@budibase/backend-core/db");
4
4
  const replicationStream = require("pouchdb-replication-stream");
5
5
  const allDbs = require("pouchdb-all-dbs");
6
6
  const find = require("pouchdb-find");
package/dist/db/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const newid = require("./newid");
3
- const { DocumentTypes: CoreDocTypes, getRoleParams, generateRoleID, APP_DEV_PREFIX, APP_PREFIX, SEPARATOR, StaticDatabases, isDevAppID, isProdAppID, } = require("@budibase/auth/db");
3
+ const { DocumentTypes: CoreDocTypes, getRoleParams, generateRoleID, APP_DEV_PREFIX, APP_PREFIX, SEPARATOR, StaticDatabases, isDevAppID, isProdAppID, } = require("@budibase/backend-core/db");
4
4
  const UNICODE_MAX = "\ufff0";
5
5
  const AppStatus = {
6
6
  DEV: "development",
@@ -57,6 +57,7 @@ module.exports = {
57
57
  DEPLOYMENT_CREDENTIALS_URL: process.env.DEPLOYMENT_CREDENTIALS_URL,
58
58
  ALLOW_DEV_AUTOMATIONS: process.env.ALLOW_DEV_AUTOMATIONS,
59
59
  DISABLE_THREADING: process.env.DISABLE_THREADING,
60
+ QUERY_THREAD_TIMEOUT: process.env.QUERY_THREAD_TIMEOUT,
60
61
  _set(key, value) {
61
62
  process.env[key] = value;
62
63
  module.exports[key] = value;
@@ -29,7 +29,7 @@ function generateSchema(schema, table, tables, oldTable = null) {
29
29
  case FieldTypes.STRING:
30
30
  case FieldTypes.OPTIONS:
31
31
  case FieldTypes.LONGFORM:
32
- schema.string(key);
32
+ schema.text(key);
33
33
  break;
34
34
  case FieldTypes.NUMBER:
35
35
  // if meta is specified then this is a junction table entry
@@ -77,6 +77,17 @@ var DynamoModule;
77
77
  },
78
78
  },
79
79
  },
80
+ describe: {
81
+ type: datasource_1.QueryTypes.FIELDS,
82
+ customisable: true,
83
+ readable: true,
84
+ fields: {
85
+ table: {
86
+ type: datasource_1.DatasourceFieldTypes.STRING,
87
+ required: true,
88
+ },
89
+ },
90
+ },
80
91
  get: {
81
92
  type: datasource_1.QueryTypes.FIELDS,
82
93
  customisable: true,
@@ -161,6 +172,14 @@ var DynamoModule;
161
172
  return response;
162
173
  });
163
174
  }
175
+ describe(query) {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ const params = {
178
+ TableName: query.table,
179
+ };
180
+ return new AWS.DynamoDB().describeTable(params).promise();
181
+ });
182
+ }
164
183
  get(query) {
165
184
  return __awaiter(this, void 0, void 0, function* () {
166
185
  const params = Object.assign({ TableName: query.table }, query.json);
@@ -39,6 +39,9 @@ const coreFields = {
39
39
  type: datasource_1.DatasourceFieldTypes.STRING,
40
40
  enum: Object.values(BodyTypes),
41
41
  },
42
+ pagination: {
43
+ type: datasource_1.DatasourceFieldTypes.OBJECT,
44
+ },
42
45
  };
43
46
  var RestModule;
44
47
  (function (RestModule) {
@@ -47,7 +50,7 @@ var RestModule;
47
50
  const { performance } = require("perf_hooks");
48
51
  const FormData = require("form-data");
49
52
  const { URLSearchParams } = require("url");
50
- const { parseStringPromise: xmlParser, Builder: XmlBuilder } = require("xml2js");
53
+ const { parseStringPromise: xmlParser, Builder: XmlBuilder, } = require("xml2js");
51
54
  const SCHEMA = {
52
55
  docs: "https://github.com/node-fetch/node-fetch",
53
56
  description: "With the REST API datasource, you can connect, query and pull data from multiple REST APIs. You can then use the retrieved data to build apps.",
@@ -103,7 +106,7 @@ var RestModule;
103
106
  this.startTimeMs = performance.now();
104
107
  this.config = config;
105
108
  }
106
- parseResponse(response) {
109
+ parseResponse(response, pagination) {
107
110
  return __awaiter(this, void 0, void 0, function* () {
108
111
  let data, raw, headers;
109
112
  const contentType = response.headers.get("content-type") || "";
@@ -142,6 +145,11 @@ var RestModule;
142
145
  for (let [key, value] of Object.entries(headers)) {
143
146
  headers[key] = Array.isArray(value) ? value[0] : value;
144
147
  }
148
+ // Check if a pagination cursor exists in the response
149
+ let nextCursor = null;
150
+ if (pagination === null || pagination === void 0 ? void 0 : pagination.responseParam) {
151
+ nextCursor = data === null || data === void 0 ? void 0 : data[pagination.responseParam];
152
+ }
145
153
  return {
146
154
  data,
147
155
  info: {
@@ -153,13 +161,34 @@ var RestModule;
153
161
  raw,
154
162
  headers,
155
163
  },
164
+ pagination: {
165
+ cursor: nextCursor,
166
+ },
156
167
  };
157
168
  });
158
169
  }
159
- getUrl(path, queryString) {
170
+ getUrl(path, queryString, pagination, paginationValues) {
171
+ // Add pagination params to query string if required
172
+ if ((pagination === null || pagination === void 0 ? void 0 : pagination.location) === "query" && paginationValues) {
173
+ const { pageParam, sizeParam } = pagination;
174
+ const params = new URLSearchParams();
175
+ // Append page number or cursor param if configured
176
+ if (pageParam && paginationValues.page != null) {
177
+ params.append(pageParam, paginationValues.page);
178
+ }
179
+ // Append page size param if configured
180
+ if (sizeParam && paginationValues.limit != null) {
181
+ params.append(sizeParam, paginationValues.limit);
182
+ }
183
+ // Prepend query string with pagination params
184
+ let paginationString = params.toString();
185
+ if (paginationString) {
186
+ queryString = `${paginationString}&${queryString}`;
187
+ }
188
+ }
160
189
  const main = `${path}?${queryString}`;
161
190
  let complete = main;
162
- if (this.config.url && !main.startsWith(this.config.url)) {
191
+ if (this.config.url && !main.startsWith("http")) {
163
192
  complete = !this.config.url ? main : `${this.config.url}/${main}`;
164
193
  }
165
194
  if (!complete.startsWith("http")) {
@@ -167,21 +196,35 @@ var RestModule;
167
196
  }
168
197
  return complete;
169
198
  }
170
- addBody(bodyType, body, input) {
171
- let error, object, string;
199
+ addBody(bodyType, body, input, pagination, paginationValues) {
200
+ if (!input.headers) {
201
+ input.headers = {};
202
+ }
203
+ if (bodyType === BodyTypes.NONE) {
204
+ return input;
205
+ }
206
+ let error, object = {}, string = "";
172
207
  try {
173
- string = typeof body !== "string" ? JSON.stringify(body) : body;
174
- object = typeof body === "object" ? body : JSON.parse(body);
208
+ if (body) {
209
+ string = typeof body !== "string" ? JSON.stringify(body) : body;
210
+ object = typeof body === "object" ? body : JSON.parse(body);
211
+ }
175
212
  }
176
213
  catch (err) {
177
214
  error = err;
178
215
  }
179
- if (!input.headers) {
180
- input.headers = {};
181
- }
216
+ // Util to add pagination values to a certain body type
217
+ const addPaginationToBody = (insertFn) => {
218
+ if ((pagination === null || pagination === void 0 ? void 0 : pagination.location) === "body") {
219
+ if ((pagination === null || pagination === void 0 ? void 0 : pagination.pageParam) && (paginationValues === null || paginationValues === void 0 ? void 0 : paginationValues.page) != null) {
220
+ insertFn(pagination.pageParam, paginationValues.page);
221
+ }
222
+ if ((pagination === null || pagination === void 0 ? void 0 : pagination.sizeParam) && (paginationValues === null || paginationValues === void 0 ? void 0 : paginationValues.limit) != null) {
223
+ insertFn(pagination.sizeParam, paginationValues.limit);
224
+ }
225
+ }
226
+ };
182
227
  switch (bodyType) {
183
- case BodyTypes.NONE:
184
- break;
185
228
  case BodyTypes.TEXT:
186
229
  // content type defaults to plaintext
187
230
  input.body = string;
@@ -191,6 +234,9 @@ var RestModule;
191
234
  for (let [key, value] of Object.entries(object)) {
192
235
  params.append(key, value);
193
236
  }
237
+ addPaginationToBody((key, value) => {
238
+ params.append(key, value);
239
+ });
194
240
  input.body = params;
195
241
  break;
196
242
  case BodyTypes.FORM_DATA:
@@ -198,22 +244,27 @@ var RestModule;
198
244
  for (let [key, value] of Object.entries(object)) {
199
245
  form.append(key, value);
200
246
  }
247
+ addPaginationToBody((key, value) => {
248
+ form.append(key, value);
249
+ });
201
250
  input.body = form;
202
251
  break;
203
252
  case BodyTypes.XML:
204
253
  if (object != null) {
205
- string = (new XmlBuilder()).buildObject(object);
254
+ string = new XmlBuilder().buildObject(object);
206
255
  }
207
256
  input.body = string;
208
257
  input.headers["Content-Type"] = "application/xml";
209
258
  break;
210
- default:
211
259
  case BodyTypes.JSON:
212
260
  // if JSON error, throw it
213
261
  if (error) {
214
262
  throw "Invalid JSON for request body";
215
263
  }
216
- input.body = string;
264
+ addPaginationToBody((key, value) => {
265
+ object[key] = value;
266
+ });
267
+ input.body = JSON.stringify(object);
217
268
  input.headers["Content-Type"] = "application/json";
218
269
  break;
219
270
  }
@@ -243,7 +294,7 @@ var RestModule;
243
294
  }
244
295
  _req(query) {
245
296
  return __awaiter(this, void 0, void 0, function* () {
246
- const { path = "", queryString = "", headers = {}, method = "GET", disabledHeaders, bodyType, requestBody, authConfigId, } = query;
297
+ const { path = "", queryString = "", headers = {}, method = "GET", disabledHeaders, bodyType, requestBody, authConfigId, pagination, paginationValues, } = query;
247
298
  const authHeaders = this.getAuthHeaders(authConfigId);
248
299
  this.headers = Object.assign(Object.assign(Object.assign({}, this.config.defaultHeaders), headers), authHeaders);
249
300
  if (disabledHeaders) {
@@ -254,13 +305,11 @@ var RestModule;
254
305
  }
255
306
  }
256
307
  let input = { method, headers: this.headers };
257
- if (requestBody) {
258
- input = this.addBody(bodyType, requestBody, input);
259
- }
308
+ input = this.addBody(bodyType, requestBody, input, pagination, paginationValues);
260
309
  this.startTimeMs = performance.now();
261
- const url = this.getUrl(path, queryString);
310
+ const url = this.getUrl(path, queryString, pagination, paginationValues);
262
311
  const response = yield fetch(url, input);
263
- return yield this.parseResponse(response);
312
+ return yield this.parseResponse(response, pagination);
264
313
  });
265
314
  }
266
315
  create(opts) {
@@ -20,7 +20,7 @@ var S3Module;
20
20
  datasource: {
21
21
  region: {
22
22
  type: "string",
23
- required: true,
23
+ required: false,
24
24
  default: "us-east-1",
25
25
  },
26
26
  accessKeyId: {
@@ -31,6 +31,15 @@ var S3Module;
31
31
  type: "password",
32
32
  required: true,
33
33
  },
34
+ endpoint: {
35
+ type: "string",
36
+ required: false,
37
+ },
38
+ signatureVersion: {
39
+ type: "string",
40
+ required: false,
41
+ default: "v4",
42
+ },
34
43
  },
35
44
  query: {
36
45
  read: {
@@ -47,13 +56,13 @@ var S3Module;
47
56
  class S3Integration {
48
57
  constructor(config) {
49
58
  this.config = config;
50
- this.connectionPromise = this.connect();
51
- this.client = new AWS.S3();
52
- }
53
- connect() {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- AWS.config.update(this.config);
56
- });
59
+ if (this.config.endpoint) {
60
+ this.config.s3ForcePathStyle = true;
61
+ }
62
+ else {
63
+ delete this.config.endpoint;
64
+ }
65
+ this.client = new AWS.S3(this.config);
57
66
  }
58
67
  read(query) {
59
68
  return __awaiter(this, void 0, void 0, function* () {