@budibase/server 1.0.32 → 1.0.39

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 (382) hide show
  1. package/__mocks__/node-fetch.ts +21 -0
  2. package/builder/assets/bb-spaceship.8f6e81e1.svg +227 -0
  3. package/builder/assets/index.3079d0f9.js +1348 -0
  4. package/builder/assets/{index.4fb3f887.css → index.39e01193.css} +1 -1
  5. package/builder/assets/{vendor.470042a4.js → vendor.f9faf6ab.js} +88 -88
  6. package/builder/index.html +3 -3
  7. package/coverage/clover.xml +1591 -1345
  8. package/coverage/coverage-final.json +75 -74
  9. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/apikeys.js.html +3 -3
  11. package/coverage/lcov-report/api/controllers/application.js.html +73 -64
  12. package/coverage/lcov-report/api/controllers/auth.js.html +2 -2
  13. package/coverage/lcov-report/api/controllers/automation.js.html +22 -10
  14. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/cloud.js.html +13 -4
  16. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  17. package/coverage/lcov-report/api/controllers/datasource.js.html +170 -68
  18. package/coverage/lcov-report/api/controllers/dev.js.html +3 -3
  19. package/coverage/lcov-report/api/controllers/hosting.js.html +3 -3
  20. package/coverage/lcov-report/api/controllers/index.html +39 -54
  21. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  25. package/coverage/lcov-report/api/controllers/query/index.html +126 -0
  26. package/coverage/lcov-report/api/controllers/{query.js.html → query/index.js.html} +228 -114
  27. package/coverage/lcov-report/api/controllers/query/validation.js.html +206 -0
  28. package/coverage/lcov-report/api/controllers/role.js.html +2 -2
  29. package/coverage/lcov-report/api/controllers/routing.js.html +2 -2
  30. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/index.html +22 -22
  32. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/row/internal.js.html +38 -11
  34. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +8 -5
  35. package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -20
  36. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  37. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/user.js.html +120 -12
  45. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  50. package/coverage/lcov-report/api/controllers/webhook.js.html +19 -7
  51. package/coverage/lcov-report/api/index.html +1 -1
  52. package/coverage/lcov-report/api/index.js.html +6 -6
  53. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/apikeys.js.html +2 -2
  55. package/coverage/lcov-report/api/routes/application.js.html +2 -2
  56. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/automation.js.html +2 -2
  58. package/coverage/lcov-report/api/routes/backup.js.html +2 -2
  59. package/coverage/lcov-report/api/routes/cloud.js.html +2 -2
  60. package/coverage/lcov-report/api/routes/component.js.html +2 -2
  61. package/coverage/lcov-report/api/routes/datasource.js.html +2 -2
  62. package/coverage/lcov-report/api/routes/deploy.js.html +2 -2
  63. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  64. package/coverage/lcov-report/api/routes/hosting.js.html +2 -2
  65. package/coverage/lcov-report/api/routes/index.html +9 -9
  66. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/integration.js.html +2 -2
  68. package/coverage/lcov-report/api/routes/layout.js.html +2 -2
  69. package/coverage/lcov-report/api/routes/metadata.js.html +2 -2
  70. package/coverage/lcov-report/api/routes/permission.js.html +12 -3
  71. package/coverage/lcov-report/api/routes/query.js.html +20 -86
  72. package/coverage/lcov-report/api/routes/role.js.html +2 -2
  73. package/coverage/lcov-report/api/routes/routing.js.html +2 -2
  74. package/coverage/lcov-report/api/routes/row.js.html +2 -2
  75. package/coverage/lcov-report/api/routes/screen.js.html +2 -2
  76. package/coverage/lcov-report/api/routes/script.js.html +2 -2
  77. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  78. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  79. package/coverage/lcov-report/api/routes/templates.js.html +2 -2
  80. package/coverage/lcov-report/api/routes/user.js.html +33 -3
  81. package/coverage/lcov-report/api/routes/view.js.html +2 -2
  82. package/coverage/lcov-report/api/routes/webhook.js.html +2 -2
  83. package/coverage/lcov-report/automations/actions.js.html +1 -1
  84. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  85. package/coverage/lcov-report/automations/bullboard.js.html +2 -2
  86. package/coverage/lcov-report/automations/index.html +20 -20
  87. package/coverage/lcov-report/automations/index.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/executeQuery.js.html +32 -8
  94. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/index.html +11 -11
  97. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +5 -8
  99. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  114. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  115. package/coverage/lcov-report/automations/utils.js.html +49 -16
  116. package/coverage/lcov-report/constants/index.html +1 -1
  117. package/coverage/lcov-report/constants/index.js.html +25 -25
  118. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  119. package/coverage/lcov-report/constants/screens.js.html +2 -2
  120. package/coverage/lcov-report/db/client.js.html +19 -19
  121. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  122. package/coverage/lcov-report/db/index.html +15 -15
  123. package/coverage/lcov-report/db/index.js.html +3 -3
  124. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  125. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  126. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  127. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  128. package/coverage/lcov-report/db/newid.js.html +4 -4
  129. package/coverage/lcov-report/db/utils.js.html +108 -81
  130. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  131. package/coverage/lcov-report/events/index.html +1 -1
  132. package/coverage/lcov-report/events/index.js.html +1 -1
  133. package/coverage/lcov-report/events/utils.js.html +1 -1
  134. package/coverage/lcov-report/index.html +99 -84
  135. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  136. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  137. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  138. package/coverage/lcov-report/middleware/authorized.js.html +12 -12
  139. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  140. package/coverage/lcov-report/middleware/currentapp.js.html +48 -36
  141. package/coverage/lcov-report/middleware/index.html +1 -1
  142. package/coverage/lcov-report/middleware/joi-validator.js.html +11 -11
  143. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  144. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  145. package/coverage/lcov-report/middleware/usageQuota.js.html +2 -2
  146. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  147. package/coverage/lcov-report/threads/automation.js.html +3 -3
  148. package/coverage/lcov-report/threads/index.html +32 -32
  149. package/coverage/lcov-report/threads/index.js.html +12 -12
  150. package/coverage/lcov-report/threads/query.js.html +560 -65
  151. package/coverage/lcov-report/threads/utils.js.html +210 -15
  152. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  153. package/coverage/lcov-report/utilities/budibaseDir.js.html +2 -2
  154. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  155. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  156. package/coverage/lcov-report/utilities/global.js.html +28 -19
  157. package/coverage/lcov-report/utilities/index.html +19 -19
  158. package/coverage/lcov-report/utilities/index.js.html +70 -37
  159. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  160. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  161. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  162. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  163. package/coverage/lcov-report/utilities/rowProcessor/index.html +19 -19
  164. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +247 -10
  165. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  166. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  167. package/coverage/lcov-report/utilities/security.js.html +14 -5
  168. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  169. package/coverage/lcov-report/utilities/users.js.html +1 -1
  170. package/coverage/lcov-report/utilities/workerRequests.js.html +22 -22
  171. package/coverage/lcov.info +2740 -2315
  172. package/dist/api/controllers/apikeys.js +2 -2
  173. package/dist/api/controllers/application.js +4 -4
  174. package/dist/api/controllers/auth.js +1 -1
  175. package/dist/api/controllers/automation.js +7 -5
  176. package/dist/api/controllers/cloud.js +2 -2
  177. package/dist/api/controllers/datasource.js +29 -0
  178. package/dist/api/controllers/deploy/index.js +2 -2
  179. package/dist/api/controllers/dev.js +2 -2
  180. package/dist/api/controllers/hosting.js +2 -2
  181. package/dist/api/controllers/permission.js +2 -2
  182. package/dist/api/controllers/query/import/index.js +79 -0
  183. package/dist/api/controllers/query/import/sources/base/index.js +64 -0
  184. package/dist/api/controllers/query/import/sources/base/openapi.js +42 -0
  185. package/dist/api/controllers/query/import/sources/curl.js +96 -0
  186. package/dist/api/controllers/query/import/sources/openapi2.js +142 -0
  187. package/dist/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +253 -0
  188. package/dist/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +1054 -0
  189. package/dist/api/controllers/{query.js → query/index.js} +87 -52
  190. package/dist/api/controllers/query/validation.js +38 -0
  191. package/dist/api/controllers/role.js +1 -1
  192. package/dist/api/controllers/routing.js +1 -1
  193. package/dist/api/controllers/row/internal.js +14 -6
  194. package/dist/api/controllers/row/internalSearch.js +3 -2
  195. package/dist/api/controllers/row/utils.js +13 -6
  196. package/dist/api/controllers/screen.js +1 -1
  197. package/dist/api/controllers/user.js +40 -4
  198. package/dist/api/controllers/webhook.js +5 -1
  199. package/dist/api/index.js +1 -1
  200. package/dist/api/routes/apikeys.js +1 -1
  201. package/dist/api/routes/application.js +1 -1
  202. package/dist/api/routes/automation.js +1 -1
  203. package/dist/api/routes/backup.js +1 -1
  204. package/dist/api/routes/cloud.js +1 -1
  205. package/dist/api/routes/component.js +1 -1
  206. package/dist/api/routes/datasource.js +1 -1
  207. package/dist/api/routes/deploy.js +1 -1
  208. package/dist/api/routes/dev.js +1 -1
  209. package/dist/api/routes/hosting.js +1 -1
  210. package/dist/api/routes/integration.js +1 -1
  211. package/dist/api/routes/layout.js +1 -1
  212. package/dist/api/routes/metadata.js +1 -1
  213. package/dist/api/routes/permission.js +1 -1
  214. package/dist/api/routes/query.js +6 -34
  215. package/dist/api/routes/role.js +1 -1
  216. package/dist/api/routes/routing.js +1 -1
  217. package/dist/api/routes/row.js +1 -1
  218. package/dist/api/routes/screen.js +1 -1
  219. package/dist/api/routes/script.js +1 -1
  220. package/dist/api/routes/static.js +1 -1
  221. package/dist/api/routes/table.js +1 -1
  222. package/dist/api/routes/templates.js +1 -1
  223. package/dist/api/routes/tests/utilities/TestFunctions.js +1 -1
  224. package/dist/api/routes/user.js +4 -2
  225. package/dist/api/routes/view.js +1 -1
  226. package/dist/api/routes/webhook.js +1 -1
  227. package/dist/app.js +1 -1
  228. package/dist/automations/bullboard.js +1 -1
  229. package/dist/automations/steps/executeQuery.js +9 -2
  230. package/dist/automations/steps/outgoingWebhook.js +2 -3
  231. package/dist/automations/utils.js +11 -1
  232. package/dist/constants/index.js +3 -3
  233. package/dist/constants/screens.js +1 -1
  234. package/dist/db/client.js +1 -1
  235. package/dist/db/utils.js +9 -1
  236. package/dist/definitions/datasource.js +6 -1
  237. package/dist/environment.js +1 -0
  238. package/dist/integrations/base/sqlTable.js +1 -1
  239. package/dist/integrations/dynamodb.js +19 -0
  240. package/dist/integrations/rest.js +259 -120
  241. package/dist/integrations/s3.js +17 -8
  242. package/dist/integrations/utils.js +40 -37
  243. package/dist/middleware/authorized.js +2 -2
  244. package/dist/middleware/builder.js +2 -2
  245. package/dist/middleware/currentapp.js +6 -6
  246. package/dist/middleware/usageQuota.js +1 -1
  247. package/dist/package.json +11 -4
  248. package/dist/tests/utilities/TestConfiguration.js +55 -8
  249. package/dist/tests/utilities/structures.js +2 -2
  250. package/dist/threads/automation.js +2 -2
  251. package/dist/threads/query.js +195 -38
  252. package/dist/threads/utils.js +62 -1
  253. package/dist/tsconfig.tsbuildinfo +1 -1
  254. package/dist/utilities/budibaseDir.js +1 -1
  255. package/dist/utilities/fileSystem/utilities.js +2 -1
  256. package/dist/utilities/global.js +5 -5
  257. package/dist/utilities/index.js +11 -1
  258. package/dist/utilities/redis.js +1 -1
  259. package/dist/utilities/rowProcessor/index.js +76 -0
  260. package/dist/utilities/security.js +2 -2
  261. package/dist/utilities/usageQuota.js +2 -2
  262. package/dist/utilities/workerRequests.js +3 -3
  263. package/package.json +12 -5
  264. package/scripts/replicateApp.js +1 -1
  265. package/src/api/controllers/apikeys.js +2 -2
  266. package/src/api/controllers/application.js +7 -4
  267. package/src/api/controllers/auth.js +1 -1
  268. package/src/api/controllers/automation.js +8 -4
  269. package/src/api/controllers/cloud.js +5 -2
  270. package/src/api/controllers/datasource.js +34 -0
  271. package/src/api/controllers/deploy/index.js +2 -2
  272. package/src/api/controllers/dev.js +2 -2
  273. package/src/api/controllers/hosting.js +2 -2
  274. package/src/api/controllers/permission.js +2 -2
  275. package/src/api/controllers/query/import/index.ts +85 -0
  276. package/src/api/controllers/query/import/sources/base/index.ts +87 -0
  277. package/src/api/controllers/query/import/sources/base/openapi.ts +24 -0
  278. package/src/api/controllers/query/import/sources/curl.ts +102 -0
  279. package/src/api/controllers/query/import/sources/openapi2.ts +163 -0
  280. package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +103 -0
  281. package/src/api/controllers/query/import/sources/tests/curl/data/delete.txt +1 -0
  282. package/src/api/controllers/query/import/sources/tests/curl/data/empty-body.txt +2 -0
  283. package/src/api/controllers/query/import/sources/tests/curl/data/get.txt +1 -0
  284. package/src/api/controllers/query/import/sources/tests/curl/data/headers.txt +3 -0
  285. package/src/api/controllers/query/import/sources/tests/curl/data/patch.txt +2 -0
  286. package/src/api/controllers/query/import/sources/tests/curl/data/path.txt +1 -0
  287. package/src/api/controllers/query/import/sources/tests/curl/data/post.txt +2 -0
  288. package/src/api/controllers/query/import/sources/tests/curl/data/put.txt +2 -0
  289. package/src/api/controllers/query/import/sources/tests/curl/data/query.txt +1 -0
  290. package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +253 -0
  291. package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.yaml +160 -0
  292. package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +1054 -0
  293. package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.yaml +711 -0
  294. package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +238 -0
  295. package/src/api/controllers/query/import/tests/index.spec.js +109 -0
  296. package/src/api/controllers/query/index.js +196 -0
  297. package/src/api/controllers/query/validation.js +42 -0
  298. package/src/api/controllers/role.js +1 -1
  299. package/src/api/controllers/routing.js +1 -1
  300. package/src/api/controllers/row/internal.js +14 -5
  301. package/src/api/controllers/row/internalSearch.js +3 -2
  302. package/src/api/controllers/row/utils.js +11 -8
  303. package/src/api/controllers/screen.js +1 -1
  304. package/src/api/controllers/user.js +39 -3
  305. package/src/api/controllers/webhook.js +5 -1
  306. package/src/api/index.js +1 -1
  307. package/src/api/routes/apikeys.js +1 -1
  308. package/src/api/routes/application.js +1 -1
  309. package/src/api/routes/automation.js +1 -1
  310. package/src/api/routes/backup.js +1 -1
  311. package/src/api/routes/cloud.js +1 -1
  312. package/src/api/routes/component.js +1 -1
  313. package/src/api/routes/datasource.js +1 -1
  314. package/src/api/routes/deploy.js +1 -1
  315. package/src/api/routes/dev.js +1 -1
  316. package/src/api/routes/hosting.js +1 -1
  317. package/src/api/routes/integration.js +1 -1
  318. package/src/api/routes/layout.js +1 -1
  319. package/src/api/routes/metadata.js +1 -1
  320. package/src/api/routes/permission.js +4 -1
  321. package/src/api/routes/query.js +14 -36
  322. package/src/api/routes/role.js +1 -1
  323. package/src/api/routes/routing.js +1 -1
  324. package/src/api/routes/row.js +1 -1
  325. package/src/api/routes/screen.js +1 -1
  326. package/src/api/routes/script.js +1 -1
  327. package/src/api/routes/static.js +1 -1
  328. package/src/api/routes/table.js +1 -1
  329. package/src/api/routes/templates.js +1 -1
  330. package/src/api/routes/tests/datasource.spec.js +45 -0
  331. package/src/api/routes/tests/permissions.spec.js +1 -1
  332. package/src/api/routes/tests/query.spec.js +70 -1
  333. package/src/api/routes/tests/role.spec.js +2 -2
  334. package/src/api/routes/tests/routing.spec.js +1 -1
  335. package/src/api/routes/tests/user.spec.js +1 -1
  336. package/src/api/routes/tests/utilities/TestFunctions.js +1 -1
  337. package/src/api/routes/user.js +11 -1
  338. package/src/api/routes/view.js +1 -1
  339. package/src/api/routes/webhook.js +1 -1
  340. package/src/app.ts +1 -1
  341. package/src/automations/bullboard.js +1 -1
  342. package/src/automations/steps/executeQuery.js +10 -2
  343. package/src/automations/steps/outgoingWebhook.js +2 -3
  344. package/src/automations/utils.js +12 -1
  345. package/src/constants/index.js +3 -3
  346. package/src/constants/screens.js +1 -1
  347. package/src/db/client.js +1 -1
  348. package/src/db/utils.js +10 -1
  349. package/src/definitions/common.ts +2 -16
  350. package/src/definitions/datasource.ts +98 -1
  351. package/src/environment.js +1 -0
  352. package/src/integrations/base/IntegrationBase.ts +4 -4
  353. package/src/integrations/base/sqlTable.ts +1 -1
  354. package/src/integrations/dynamodb.ts +18 -0
  355. package/src/integrations/oracle.ts +1 -1
  356. package/src/integrations/rest.ts +311 -138
  357. package/src/integrations/s3.ts +18 -7
  358. package/src/integrations/tests/rest.spec.js +432 -21
  359. package/src/integrations/utils.ts +8 -7
  360. package/src/middleware/authorized.js +2 -2
  361. package/src/middleware/builder.js +2 -2
  362. package/src/middleware/currentapp.js +11 -7
  363. package/src/middleware/tests/authorized.spec.js +2 -2
  364. package/src/middleware/tests/currentapp.spec.js +35 -41
  365. package/src/middleware/tests/usageQuota.spec.js +1 -1
  366. package/src/middleware/usageQuota.js +1 -1
  367. package/src/tests/utilities/TestConfiguration.js +65 -8
  368. package/src/tests/utilities/structures.js +2 -2
  369. package/src/threads/automation.js +2 -2
  370. package/src/threads/query.js +204 -39
  371. package/src/threads/utils.js +66 -1
  372. package/src/utilities/budibaseDir.js +1 -1
  373. package/src/utilities/fileSystem/utilities.js +3 -1
  374. package/src/utilities/global.js +8 -5
  375. package/src/utilities/index.js +12 -1
  376. package/src/utilities/redis.js +1 -1
  377. package/src/utilities/rowProcessor/index.js +79 -0
  378. package/src/utilities/security.js +5 -2
  379. package/src/utilities/usageQuota.js +2 -2
  380. package/src/utilities/workerRequests.js +3 -3
  381. package/builder/assets/index.891d496c.js +0 -1316
  382. package/src/api/controllers/query.js +0 -158
@@ -0,0 +1,711 @@
1
+ swagger: "2.0"
2
+ info:
3
+ description: "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters."
4
+ version: 1.0.5
5
+ title: Swagger Petstore
6
+ termsOfService: http://swagger.io/terms/
7
+ contact:
8
+ email: apiteam@swagger.io
9
+ license:
10
+ name: Apache 2.0
11
+ url: http://www.apache.org/licenses/LICENSE-2.0.html
12
+ host: petstore.swagger.io
13
+ basePath: /v2
14
+ tags:
15
+ - name: pet
16
+ description: Everything about your Pets
17
+ externalDocs:
18
+ description: Find out more
19
+ url: http://swagger.io
20
+ - name: store
21
+ description: Access to Petstore orders
22
+ - name: user
23
+ description: Operations about user
24
+ externalDocs:
25
+ description: Find out more about our store
26
+ url: http://swagger.io
27
+ schemes:
28
+ - https
29
+ - http
30
+ paths:
31
+ /pet/{petId}/uploadImage:
32
+ post:
33
+ tags:
34
+ - pet
35
+ summary: uploads an image
36
+ description: ""
37
+ operationId: uploadFile
38
+ consumes:
39
+ - multipart/form-data
40
+ produces:
41
+ - application/json
42
+ parameters:
43
+ - name: petId
44
+ in: path
45
+ description: ID of pet to update
46
+ required: true
47
+ type: integer
48
+ format: int64
49
+ - name: additionalMetadata
50
+ in: formData
51
+ description: Additional data to pass to server
52
+ required: false
53
+ type: string
54
+ - name: file
55
+ in: formData
56
+ description: file to upload
57
+ required: false
58
+ type: file
59
+ responses:
60
+ "200":
61
+ description: successful operation
62
+ schema:
63
+ $ref: "#/definitions/ApiResponse"
64
+ security:
65
+ - petstore_auth:
66
+ - write:pets
67
+ - read:pets
68
+ /pet:
69
+ post:
70
+ tags:
71
+ - pet
72
+ summary: Add a new pet to the store
73
+ description: ""
74
+ operationId: addPet
75
+ consumes:
76
+ - application/json
77
+ - application/xml
78
+ produces:
79
+ - application/json
80
+ - application/xml
81
+ parameters:
82
+ - in: body
83
+ name: body
84
+ description: Pet object that needs to be added to the store
85
+ required: true
86
+ schema:
87
+ $ref: "#/definitions/Pet"
88
+ responses:
89
+ "405":
90
+ description: Invalid input
91
+ security:
92
+ - petstore_auth:
93
+ - write:pets
94
+ - read:pets
95
+ put:
96
+ tags:
97
+ - pet
98
+ summary: Update an existing pet
99
+ description: ""
100
+ operationId: updatePet
101
+ consumes:
102
+ - application/json
103
+ - application/xml
104
+ produces:
105
+ - application/json
106
+ - application/xml
107
+ parameters:
108
+ - in: body
109
+ name: body
110
+ description: Pet object that needs to be added to the store
111
+ required: true
112
+ schema:
113
+ $ref: "#/definitions/Pet"
114
+ responses:
115
+ "400":
116
+ description: Invalid ID supplied
117
+ "404":
118
+ description: Pet not found
119
+ "405":
120
+ description: Validation exception
121
+ security:
122
+ - petstore_auth:
123
+ - write:pets
124
+ - read:pets
125
+ /pet/findByStatus:
126
+ get:
127
+ tags:
128
+ - pet
129
+ summary: Finds Pets by status
130
+ description: Multiple status values can be provided with comma separated strings
131
+ operationId: findPetsByStatus
132
+ produces:
133
+ - application/json
134
+ - application/xml
135
+ parameters:
136
+ - name: status
137
+ in: query
138
+ description: Status values that need to be considered for filter
139
+ required: true
140
+ type: array
141
+ items:
142
+ type: string
143
+ enum:
144
+ - available
145
+ - pending
146
+ - sold
147
+ default: available
148
+ collectionFormat: multi
149
+ responses:
150
+ "200":
151
+ description: successful operation
152
+ schema:
153
+ type: array
154
+ items:
155
+ $ref: "#/definitions/Pet"
156
+ "400":
157
+ description: Invalid status value
158
+ security:
159
+ - petstore_auth:
160
+ - write:pets
161
+ - read:pets
162
+ /pet/findByTags:
163
+ get:
164
+ tags:
165
+ - pet
166
+ summary: Finds Pets by tags
167
+ description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
168
+ operationId: findPetsByTags
169
+ produces:
170
+ - application/json
171
+ - application/xml
172
+ parameters:
173
+ - name: tags
174
+ in: query
175
+ description: Tags to filter by
176
+ required: true
177
+ type: array
178
+ items:
179
+ type: string
180
+ collectionFormat: multi
181
+ responses:
182
+ "200":
183
+ description: successful operation
184
+ schema:
185
+ type: array
186
+ items:
187
+ $ref: "#/definitions/Pet"
188
+ "400":
189
+ description: Invalid tag value
190
+ security:
191
+ - petstore_auth:
192
+ - write:pets
193
+ - read:pets
194
+ deprecated: true
195
+ /pet/{petId}:
196
+ get:
197
+ tags:
198
+ - pet
199
+ summary: Find pet by ID
200
+ description: Returns a single pet
201
+ operationId: getPetById
202
+ produces:
203
+ - application/json
204
+ - application/xml
205
+ parameters:
206
+ - name: petId
207
+ in: path
208
+ description: ID of pet to return
209
+ required: true
210
+ type: integer
211
+ format: int64
212
+ responses:
213
+ "200":
214
+ description: successful operation
215
+ schema:
216
+ $ref: "#/definitions/Pet"
217
+ "400":
218
+ description: Invalid ID supplied
219
+ "404":
220
+ description: Pet not found
221
+ security:
222
+ - api_key: []
223
+ post:
224
+ tags:
225
+ - pet
226
+ summary: Updates a pet in the store with form data
227
+ description: ""
228
+ operationId: updatePetWithForm
229
+ consumes:
230
+ - application/x-www-form-urlencoded
231
+ produces:
232
+ - application/json
233
+ - application/xml
234
+ parameters:
235
+ - name: petId
236
+ in: path
237
+ description: ID of pet that needs to be updated
238
+ required: true
239
+ type: integer
240
+ format: int64
241
+ - name: name
242
+ in: formData
243
+ description: Updated name of the pet
244
+ required: false
245
+ type: string
246
+ - name: status
247
+ in: formData
248
+ description: Updated status of the pet
249
+ required: false
250
+ type: string
251
+ responses:
252
+ "405":
253
+ description: Invalid input
254
+ security:
255
+ - petstore_auth:
256
+ - write:pets
257
+ - read:pets
258
+ delete:
259
+ tags:
260
+ - pet
261
+ summary: Deletes a pet
262
+ description: ""
263
+ operationId: deletePet
264
+ produces:
265
+ - application/json
266
+ - application/xml
267
+ parameters:
268
+ - name: api_key
269
+ in: header
270
+ required: false
271
+ type: string
272
+ - name: petId
273
+ in: path
274
+ description: Pet id to delete
275
+ required: true
276
+ type: integer
277
+ format: int64
278
+ responses:
279
+ "400":
280
+ description: Invalid ID supplied
281
+ "404":
282
+ description: Pet not found
283
+ security:
284
+ - petstore_auth:
285
+ - write:pets
286
+ - read:pets
287
+ /store/inventory:
288
+ get:
289
+ tags:
290
+ - store
291
+ summary: Returns pet inventories by status
292
+ description: Returns a map of status codes to quantities
293
+ operationId: getInventory
294
+ produces:
295
+ - application/json
296
+ parameters: []
297
+ responses:
298
+ "200":
299
+ description: successful operation
300
+ schema:
301
+ type: object
302
+ additionalProperties:
303
+ type: integer
304
+ format: int32
305
+ security:
306
+ - api_key: []
307
+ /store/order:
308
+ post:
309
+ tags:
310
+ - store
311
+ summary: Place an order for a pet
312
+ description: ""
313
+ operationId: placeOrder
314
+ consumes:
315
+ - application/json
316
+ produces:
317
+ - application/json
318
+ - application/xml
319
+ parameters:
320
+ - in: body
321
+ name: body
322
+ description: order placed for purchasing the pet
323
+ required: true
324
+ schema:
325
+ $ref: "#/definitions/Order"
326
+ responses:
327
+ "200":
328
+ description: successful operation
329
+ schema:
330
+ $ref: "#/definitions/Order"
331
+ "400":
332
+ description: Invalid Order
333
+ /store/order/{orderId}:
334
+ get:
335
+ tags:
336
+ - store
337
+ summary: Find purchase order by ID
338
+ description: For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions
339
+ operationId: getOrderById
340
+ produces:
341
+ - application/json
342
+ - application/xml
343
+ parameters:
344
+ - name: orderId
345
+ in: path
346
+ description: ID of pet that needs to be fetched
347
+ required: true
348
+ type: integer
349
+ maximum: 10
350
+ minimum: 1
351
+ format: int64
352
+ responses:
353
+ "200":
354
+ description: successful operation
355
+ schema:
356
+ $ref: "#/definitions/Order"
357
+ "400":
358
+ description: Invalid ID supplied
359
+ "404":
360
+ description: Order not found
361
+ delete:
362
+ tags:
363
+ - store
364
+ summary: Delete purchase order by ID
365
+ description: For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors
366
+ operationId: deleteOrder
367
+ produces:
368
+ - application/json
369
+ - application/xml
370
+ parameters:
371
+ - name: orderId
372
+ in: path
373
+ description: ID of the order that needs to be deleted
374
+ required: true
375
+ type: integer
376
+ minimum: 1
377
+ format: int64
378
+ responses:
379
+ "400":
380
+ description: Invalid ID supplied
381
+ "404":
382
+ description: Order not found
383
+ /user/createWithList:
384
+ post:
385
+ tags:
386
+ - user
387
+ summary: Creates list of users with given input array
388
+ description: ""
389
+ operationId: createUsersWithListInput
390
+ consumes:
391
+ - application/json
392
+ produces:
393
+ - application/json
394
+ - application/xml
395
+ parameters:
396
+ - in: body
397
+ name: body
398
+ description: List of user object
399
+ required: true
400
+ schema:
401
+ type: array
402
+ items:
403
+ $ref: "#/definitions/User"
404
+ responses:
405
+ default:
406
+ description: successful operation
407
+ /user/{username}:
408
+ get:
409
+ tags:
410
+ - user
411
+ summary: Get user by user name
412
+ description: ""
413
+ operationId: getUserByName
414
+ produces:
415
+ - application/json
416
+ - application/xml
417
+ parameters:
418
+ - name: username
419
+ in: path
420
+ description: "The name that needs to be fetched. Use user1 for testing. "
421
+ required: true
422
+ type: string
423
+ responses:
424
+ "200":
425
+ description: successful operation
426
+ schema:
427
+ $ref: "#/definitions/User"
428
+ "400":
429
+ description: Invalid username supplied
430
+ "404":
431
+ description: User not found
432
+ put:
433
+ tags:
434
+ - user
435
+ summary: Updated user
436
+ description: This can only be done by the logged in user.
437
+ operationId: updateUser
438
+ consumes:
439
+ - application/json
440
+ produces:
441
+ - application/json
442
+ - application/xml
443
+ parameters:
444
+ - name: username
445
+ in: path
446
+ description: name that need to be updated
447
+ required: true
448
+ type: string
449
+ - in: body
450
+ name: body
451
+ description: Updated user object
452
+ required: true
453
+ schema:
454
+ $ref: "#/definitions/User"
455
+ responses:
456
+ "400":
457
+ description: Invalid user supplied
458
+ "404":
459
+ description: User not found
460
+ delete:
461
+ tags:
462
+ - user
463
+ summary: Delete user
464
+ description: This can only be done by the logged in user.
465
+ operationId: deleteUser
466
+ produces:
467
+ - application/json
468
+ - application/xml
469
+ parameters:
470
+ - name: username
471
+ in: path
472
+ description: The name that needs to be deleted
473
+ required: true
474
+ type: string
475
+ responses:
476
+ "400":
477
+ description: Invalid username supplied
478
+ "404":
479
+ description: User not found
480
+ /user/login:
481
+ get:
482
+ tags:
483
+ - user
484
+ summary: Logs user into the system
485
+ description: ""
486
+ operationId: loginUser
487
+ produces:
488
+ - application/json
489
+ - application/xml
490
+ parameters:
491
+ - name: username
492
+ in: query
493
+ description: The user name for login
494
+ required: true
495
+ type: string
496
+ - name: password
497
+ in: query
498
+ description: The password for login in clear text
499
+ required: true
500
+ type: string
501
+ responses:
502
+ "200":
503
+ description: successful operation
504
+ headers:
505
+ X-Expires-After:
506
+ type: string
507
+ format: date-time
508
+ description: date in UTC when token expires
509
+ X-Rate-Limit:
510
+ type: integer
511
+ format: int32
512
+ description: calls per hour allowed by the user
513
+ schema:
514
+ type: string
515
+ "400":
516
+ description: Invalid username/password supplied
517
+ /user/logout:
518
+ get:
519
+ tags:
520
+ - user
521
+ summary: Logs out current logged in user session
522
+ description: ""
523
+ operationId: logoutUser
524
+ produces:
525
+ - application/json
526
+ - application/xml
527
+ parameters: []
528
+ responses:
529
+ default:
530
+ description: successful operation
531
+ /user/createWithArray:
532
+ post:
533
+ tags:
534
+ - user
535
+ summary: Creates list of users with given input array
536
+ description: ""
537
+ operationId: createUsersWithArrayInput
538
+ consumes:
539
+ - application/json
540
+ produces:
541
+ - application/json
542
+ - application/xml
543
+ parameters:
544
+ - in: body
545
+ name: body
546
+ description: List of user object
547
+ required: true
548
+ schema:
549
+ type: array
550
+ items:
551
+ $ref: "#/definitions/User"
552
+ responses:
553
+ default:
554
+ description: successful operation
555
+ /user:
556
+ post:
557
+ tags:
558
+ - user
559
+ summary: Create user
560
+ description: This can only be done by the logged in user.
561
+ operationId: createUser
562
+ consumes:
563
+ - application/json
564
+ produces:
565
+ - application/json
566
+ - application/xml
567
+ parameters:
568
+ - in: body
569
+ name: body
570
+ description: Created user object
571
+ required: true
572
+ schema:
573
+ $ref: "#/definitions/User"
574
+ responses:
575
+ default:
576
+ description: successful operation
577
+ securityDefinitions:
578
+ api_key:
579
+ type: apiKey
580
+ name: api_key
581
+ in: header
582
+ petstore_auth:
583
+ type: oauth2
584
+ authorizationUrl: https://petstore.swagger.io/oauth/authorize
585
+ flow: implicit
586
+ scopes:
587
+ read:pets: read your pets
588
+ write:pets: modify pets in your account
589
+ definitions:
590
+ ApiResponse:
591
+ type: object
592
+ properties:
593
+ code:
594
+ type: integer
595
+ format: int32
596
+ type:
597
+ type: string
598
+ message:
599
+ type: string
600
+ Category:
601
+ type: object
602
+ properties:
603
+ id:
604
+ type: integer
605
+ format: int64
606
+ name:
607
+ type: string
608
+ xml:
609
+ name: Category
610
+ Pet:
611
+ type: object
612
+ required:
613
+ - name
614
+ - photoUrls
615
+ properties:
616
+ id:
617
+ type: integer
618
+ format: int64
619
+ category:
620
+ $ref: "#/definitions/Category"
621
+ name:
622
+ type: string
623
+ example: doggie
624
+ photoUrls:
625
+ type: array
626
+ xml:
627
+ wrapped: true
628
+ items:
629
+ type: string
630
+ xml:
631
+ name: photoUrl
632
+ tags:
633
+ type: array
634
+ xml:
635
+ wrapped: true
636
+ items:
637
+ xml:
638
+ name: tag
639
+ $ref: "#/definitions/Tag"
640
+ status:
641
+ type: string
642
+ description: pet status in the store
643
+ enum:
644
+ - available
645
+ - pending
646
+ - sold
647
+ xml:
648
+ name: Pet
649
+ Tag:
650
+ type: object
651
+ properties:
652
+ id:
653
+ type: integer
654
+ format: int64
655
+ name:
656
+ type: string
657
+ xml:
658
+ name: Tag
659
+ Order:
660
+ type: object
661
+ properties:
662
+ id:
663
+ type: integer
664
+ format: int64
665
+ petId:
666
+ type: integer
667
+ format: int64
668
+ quantity:
669
+ type: integer
670
+ format: int32
671
+ shipDate:
672
+ type: string
673
+ format: date-time
674
+ status:
675
+ type: string
676
+ description: Order Status
677
+ enum:
678
+ - placed
679
+ - approved
680
+ - delivered
681
+ complete:
682
+ type: boolean
683
+ xml:
684
+ name: Order
685
+ User:
686
+ type: object
687
+ properties:
688
+ id:
689
+ type: integer
690
+ format: int64
691
+ username:
692
+ type: string
693
+ firstName:
694
+ type: string
695
+ lastName:
696
+ type: string
697
+ email:
698
+ type: string
699
+ password:
700
+ type: string
701
+ phone:
702
+ type: string
703
+ userStatus:
704
+ type: integer
705
+ format: int32
706
+ description: User Status
707
+ xml:
708
+ name: User
709
+ externalDocs:
710
+ description: Find out more about Swagger
711
+ url: http://swagger.io