@budibase/server 1.0.35 → 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 (375) 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 +1589 -1344
  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} +225 -120
  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 +2735 -2313
  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} +88 -56
  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/integrations/base/sqlTable.js +1 -1
  238. package/dist/integrations/rest.js +259 -120
  239. package/dist/integrations/utils.js +40 -37
  240. package/dist/middleware/authorized.js +2 -2
  241. package/dist/middleware/builder.js +2 -2
  242. package/dist/middleware/currentapp.js +6 -6
  243. package/dist/middleware/usageQuota.js +1 -1
  244. package/dist/package.json +11 -4
  245. package/dist/tests/utilities/TestConfiguration.js +55 -8
  246. package/dist/tests/utilities/structures.js +2 -2
  247. package/dist/threads/automation.js +2 -2
  248. package/dist/threads/query.js +195 -38
  249. package/dist/threads/utils.js +62 -1
  250. package/dist/tsconfig.tsbuildinfo +1 -1
  251. package/dist/utilities/budibaseDir.js +1 -1
  252. package/dist/utilities/fileSystem/utilities.js +2 -1
  253. package/dist/utilities/global.js +5 -5
  254. package/dist/utilities/index.js +11 -1
  255. package/dist/utilities/redis.js +1 -1
  256. package/dist/utilities/rowProcessor/index.js +76 -0
  257. package/dist/utilities/security.js +2 -2
  258. package/dist/utilities/usageQuota.js +2 -2
  259. package/dist/utilities/workerRequests.js +3 -3
  260. package/package.json +12 -5
  261. package/scripts/replicateApp.js +1 -1
  262. package/src/api/controllers/apikeys.js +2 -2
  263. package/src/api/controllers/application.js +7 -4
  264. package/src/api/controllers/auth.js +1 -1
  265. package/src/api/controllers/automation.js +8 -4
  266. package/src/api/controllers/cloud.js +5 -2
  267. package/src/api/controllers/datasource.js +34 -0
  268. package/src/api/controllers/deploy/index.js +2 -2
  269. package/src/api/controllers/dev.js +2 -2
  270. package/src/api/controllers/hosting.js +2 -2
  271. package/src/api/controllers/permission.js +2 -2
  272. package/src/api/controllers/query/import/index.ts +85 -0
  273. package/src/api/controllers/query/import/sources/base/index.ts +87 -0
  274. package/src/api/controllers/query/import/sources/base/openapi.ts +24 -0
  275. package/src/api/controllers/query/import/sources/curl.ts +102 -0
  276. package/src/api/controllers/query/import/sources/openapi2.ts +163 -0
  277. package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +103 -0
  278. package/src/api/controllers/query/import/sources/tests/curl/data/delete.txt +1 -0
  279. package/src/api/controllers/query/import/sources/tests/curl/data/empty-body.txt +2 -0
  280. package/src/api/controllers/query/import/sources/tests/curl/data/get.txt +1 -0
  281. package/src/api/controllers/query/import/sources/tests/curl/data/headers.txt +3 -0
  282. package/src/api/controllers/query/import/sources/tests/curl/data/patch.txt +2 -0
  283. package/src/api/controllers/query/import/sources/tests/curl/data/path.txt +1 -0
  284. package/src/api/controllers/query/import/sources/tests/curl/data/post.txt +2 -0
  285. package/src/api/controllers/query/import/sources/tests/curl/data/put.txt +2 -0
  286. package/src/api/controllers/query/import/sources/tests/curl/data/query.txt +1 -0
  287. package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +253 -0
  288. package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.yaml +160 -0
  289. package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +1054 -0
  290. package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.yaml +711 -0
  291. package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +238 -0
  292. package/src/api/controllers/query/import/tests/index.spec.js +109 -0
  293. package/src/api/controllers/query/index.js +196 -0
  294. package/src/api/controllers/query/validation.js +42 -0
  295. package/src/api/controllers/role.js +1 -1
  296. package/src/api/controllers/routing.js +1 -1
  297. package/src/api/controllers/row/internal.js +14 -5
  298. package/src/api/controllers/row/internalSearch.js +3 -2
  299. package/src/api/controllers/row/utils.js +11 -8
  300. package/src/api/controllers/screen.js +1 -1
  301. package/src/api/controllers/user.js +39 -3
  302. package/src/api/controllers/webhook.js +5 -1
  303. package/src/api/index.js +1 -1
  304. package/src/api/routes/apikeys.js +1 -1
  305. package/src/api/routes/application.js +1 -1
  306. package/src/api/routes/automation.js +1 -1
  307. package/src/api/routes/backup.js +1 -1
  308. package/src/api/routes/cloud.js +1 -1
  309. package/src/api/routes/component.js +1 -1
  310. package/src/api/routes/datasource.js +1 -1
  311. package/src/api/routes/deploy.js +1 -1
  312. package/src/api/routes/dev.js +1 -1
  313. package/src/api/routes/hosting.js +1 -1
  314. package/src/api/routes/integration.js +1 -1
  315. package/src/api/routes/layout.js +1 -1
  316. package/src/api/routes/metadata.js +1 -1
  317. package/src/api/routes/permission.js +4 -1
  318. package/src/api/routes/query.js +14 -36
  319. package/src/api/routes/role.js +1 -1
  320. package/src/api/routes/routing.js +1 -1
  321. package/src/api/routes/row.js +1 -1
  322. package/src/api/routes/screen.js +1 -1
  323. package/src/api/routes/script.js +1 -1
  324. package/src/api/routes/static.js +1 -1
  325. package/src/api/routes/table.js +1 -1
  326. package/src/api/routes/templates.js +1 -1
  327. package/src/api/routes/tests/datasource.spec.js +45 -0
  328. package/src/api/routes/tests/permissions.spec.js +1 -1
  329. package/src/api/routes/tests/query.spec.js +70 -1
  330. package/src/api/routes/tests/role.spec.js +2 -2
  331. package/src/api/routes/tests/routing.spec.js +1 -1
  332. package/src/api/routes/tests/user.spec.js +1 -1
  333. package/src/api/routes/tests/utilities/TestFunctions.js +1 -1
  334. package/src/api/routes/user.js +11 -1
  335. package/src/api/routes/view.js +1 -1
  336. package/src/api/routes/webhook.js +1 -1
  337. package/src/app.ts +1 -1
  338. package/src/automations/bullboard.js +1 -1
  339. package/src/automations/steps/executeQuery.js +10 -2
  340. package/src/automations/steps/outgoingWebhook.js +2 -3
  341. package/src/automations/utils.js +12 -1
  342. package/src/constants/index.js +3 -3
  343. package/src/constants/screens.js +1 -1
  344. package/src/db/client.js +1 -1
  345. package/src/db/utils.js +10 -1
  346. package/src/definitions/common.ts +2 -16
  347. package/src/definitions/datasource.ts +98 -1
  348. package/src/integrations/base/IntegrationBase.ts +4 -4
  349. package/src/integrations/base/sqlTable.ts +1 -1
  350. package/src/integrations/rest.ts +311 -138
  351. package/src/integrations/tests/rest.spec.js +432 -21
  352. package/src/integrations/utils.ts +8 -7
  353. package/src/middleware/authorized.js +2 -2
  354. package/src/middleware/builder.js +2 -2
  355. package/src/middleware/currentapp.js +11 -7
  356. package/src/middleware/tests/authorized.spec.js +2 -2
  357. package/src/middleware/tests/currentapp.spec.js +35 -41
  358. package/src/middleware/tests/usageQuota.spec.js +1 -1
  359. package/src/middleware/usageQuota.js +1 -1
  360. package/src/tests/utilities/TestConfiguration.js +65 -8
  361. package/src/tests/utilities/structures.js +2 -2
  362. package/src/threads/automation.js +2 -2
  363. package/src/threads/query.js +204 -39
  364. package/src/threads/utils.js +66 -1
  365. package/src/utilities/budibaseDir.js +1 -1
  366. package/src/utilities/fileSystem/utilities.js +3 -1
  367. package/src/utilities/global.js +8 -5
  368. package/src/utilities/index.js +12 -1
  369. package/src/utilities/redis.js +1 -1
  370. package/src/utilities/rowProcessor/index.js +79 -0
  371. package/src/utilities/security.js +5 -2
  372. package/src/utilities/usageQuota.js +2 -2
  373. package/src/utilities/workerRequests.js +3 -3
  374. package/builder/assets/index.9ac33cf1.js +0 -1316
  375. package/src/api/controllers/query.js +0 -161
@@ -8,15 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- const { processString } = require("@budibase/string-templates");
12
- const CouchDB = require("../../db");
13
- const { generateQueryID, getQueryParams, isProdAppID, } = require("../../db/utils");
14
- const { BaseQueryVerbs } = require("../../constants");
15
- const { Thread, ThreadType } = require("../../threads");
16
- const env = require("../../environment");
17
- const Runner = new Thread(ThreadType.QUERY, {
18
- timeoutMs: env.QUERY_THREAD_TIMEOUT || 10000,
19
- });
11
+ const CouchDB = require("../../../db");
12
+ const { generateQueryID, getQueryParams, isProdAppID, } = require("../../../db/utils");
13
+ const { BaseQueryVerbs } = require("../../../constants");
14
+ const { Thread, ThreadType } = require("../../../threads");
15
+ const { save: saveDatasource } = require("../datasource");
16
+ const { RestImporter } = require("./import");
17
+ const { invalidateDynamicVariables } = require("../../../threads/utils");
18
+ const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 });
20
19
  // simple function to append "readable" to all read queries
21
20
  function enrichQueries(input) {
22
21
  const wasArray = Array.isArray(input);
@@ -37,6 +36,38 @@ exports.fetch = function (ctx) {
37
36
  ctx.body = enrichQueries(body.rows.map(row => row.doc));
38
37
  });
39
38
  };
39
+ exports.import = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
40
+ const body = ctx.request.body;
41
+ const data = body.data;
42
+ const importer = new RestImporter(data);
43
+ yield importer.init();
44
+ let datasourceId;
45
+ if (!body.datasourceId) {
46
+ // construct new datasource
47
+ const info = yield importer.getInfo();
48
+ let datasource = {
49
+ type: "datasource",
50
+ source: "REST",
51
+ config: {
52
+ url: info.url,
53
+ defaultHeaders: [],
54
+ },
55
+ name: info.name,
56
+ };
57
+ // save the datasource
58
+ const datasourceCtx = Object.assign({}, ctx);
59
+ datasourceCtx.request.body.datasource = datasource;
60
+ yield saveDatasource(datasourceCtx);
61
+ datasourceId = datasourceCtx.body.datasource._id;
62
+ }
63
+ else {
64
+ // use existing datasource
65
+ datasourceId = body.datasourceId;
66
+ }
67
+ const importResult = yield importer.importQueries(ctx.appId, datasourceId);
68
+ ctx.body = Object.assign(Object.assign({}, importResult), { datasourceId });
69
+ ctx.status = 200;
70
+ });
40
71
  exports.save = function (ctx) {
41
72
  return __awaiter(this, void 0, void 0, function* () {
42
73
  const db = new CouchDB(ctx.appId);
@@ -50,44 +81,6 @@ exports.save = function (ctx) {
50
81
  ctx.message = `Query ${query.name} saved successfully.`;
51
82
  });
52
83
  };
53
- function enrichQueryFields(fields, parameters = {}) {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- const enrichedQuery = {};
56
- // enrich the fields with dynamic parameters
57
- for (let key of Object.keys(fields)) {
58
- if (fields[key] == null) {
59
- continue;
60
- }
61
- if (typeof fields[key] === "object") {
62
- // enrich nested fields object
63
- enrichedQuery[key] = yield enrichQueryFields(fields[key], parameters);
64
- }
65
- else if (typeof fields[key] === "string") {
66
- // enrich string value as normal
67
- enrichedQuery[key] = yield processString(fields[key], parameters, {
68
- noHelpers: true,
69
- });
70
- }
71
- else {
72
- enrichedQuery[key] = fields[key];
73
- }
74
- }
75
- if (enrichedQuery.json ||
76
- enrichedQuery.customData ||
77
- enrichedQuery.requestBody) {
78
- try {
79
- enrichedQuery.json = JSON.parse(enrichedQuery.json ||
80
- enrichedQuery.customData ||
81
- enrichedQuery.requestBody);
82
- }
83
- catch (err) {
84
- throw { message: `JSON Invalid - error: ${err}` };
85
- }
86
- delete enrichedQuery.customData;
87
- }
88
- return enrichedQuery;
89
- });
90
- }
91
84
  exports.find = function (ctx) {
92
85
  return __awaiter(this, void 0, void 0, function* () {
93
86
  const db = new CouchDB(ctx.appId);
@@ -104,18 +97,24 @@ exports.preview = function (ctx) {
104
97
  return __awaiter(this, void 0, void 0, function* () {
105
98
  const db = new CouchDB(ctx.appId);
106
99
  const datasource = yield db.get(ctx.request.body.datasourceId);
107
- const { fields, parameters, queryVerb, transformer } = ctx.request.body;
108
- const enrichedQuery = yield enrichQueryFields(fields, parameters);
100
+ // preview may not have a queryId as it hasn't been saved, but if it does
101
+ // this stops dynamic variables from calling the same query
102
+ const { fields, parameters, queryVerb, transformer, queryId } = ctx.request.body;
109
103
  try {
110
- const { rows, keys } = yield Runner.run({
104
+ const { rows, keys, info, extra } = yield Runner.run({
105
+ appId: ctx.appId,
111
106
  datasource,
112
107
  queryVerb,
113
- query: enrichedQuery,
108
+ fields,
109
+ parameters,
114
110
  transformer,
111
+ queryId,
115
112
  });
116
113
  ctx.body = {
117
114
  rows,
118
115
  schemaFields: [...new Set(keys)],
116
+ info,
117
+ extra,
119
118
  };
120
119
  }
121
120
  catch (err) {
@@ -123,30 +122,63 @@ exports.preview = function (ctx) {
123
122
  }
124
123
  });
125
124
  };
126
- exports.execute = function (ctx) {
125
+ function execute(ctx, opts = { rowsOnly: false }) {
127
126
  return __awaiter(this, void 0, void 0, function* () {
128
127
  const db = new CouchDB(ctx.appId);
129
128
  const query = yield db.get(ctx.params.queryId);
130
129
  const datasource = yield db.get(query.datasourceId);
131
- const enrichedQuery = yield enrichQueryFields(query.fields, ctx.request.body.parameters);
132
130
  // call the relevant CRUD method on the integration class
133
131
  try {
134
- const { rows } = yield Runner.run({
132
+ const { rows, pagination, extra } = yield Runner.run({
133
+ appId: ctx.appId,
135
134
  datasource,
136
135
  queryVerb: query.queryVerb,
137
- query: enrichedQuery,
136
+ fields: query.fields,
137
+ pagination: ctx.request.body.pagination,
138
+ parameters: ctx.request.body.parameters,
138
139
  transformer: query.transformer,
140
+ queryId: ctx.params.queryId,
139
141
  });
140
- ctx.body = rows;
142
+ if (opts && opts.rowsOnly) {
143
+ ctx.body = rows;
144
+ }
145
+ else {
146
+ ctx.body = Object.assign({ data: rows, pagination }, extra);
147
+ }
141
148
  }
142
149
  catch (err) {
143
150
  ctx.throw(400, err);
144
151
  }
145
152
  });
153
+ }
154
+ exports.executeV1 = function (ctx) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ return execute(ctx, { rowsOnly: true });
157
+ });
158
+ };
159
+ exports.executeV2 = function (ctx) {
160
+ return __awaiter(this, void 0, void 0, function* () {
161
+ return execute(ctx, { rowsOnly: false });
162
+ });
146
163
  };
164
+ const removeDynamicVariables = (db, queryId) => __awaiter(void 0, void 0, void 0, function* () {
165
+ const query = yield db.get(queryId);
166
+ const datasource = yield db.get(query.datasourceId);
167
+ const dynamicVariables = datasource.config.dynamicVariables;
168
+ if (dynamicVariables) {
169
+ // delete dynamic variables from the datasource
170
+ const newVariables = dynamicVariables.filter(dv => dv.queryId !== queryId);
171
+ datasource.config.dynamicVariables = newVariables;
172
+ yield db.put(datasource);
173
+ // invalidate the deleted variables
174
+ const variablesToDelete = dynamicVariables.filter(dv => dv.queryId === queryId);
175
+ yield invalidateDynamicVariables(variablesToDelete);
176
+ }
177
+ });
147
178
  exports.destroy = function (ctx) {
148
179
  return __awaiter(this, void 0, void 0, function* () {
149
180
  const db = new CouchDB(ctx.appId);
181
+ yield removeDynamicVariables(db, ctx.params.queryId);
150
182
  yield db.remove(ctx.params.queryId, ctx.params.revId);
151
183
  ctx.message = `Query deleted.`;
152
184
  ctx.status = 200;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ const joiValidator = require("../../../middleware/joi-validator");
3
+ const Joi = require("joi");
4
+ exports.queryValidation = () => {
5
+ return Joi.object({
6
+ _id: Joi.string(),
7
+ _rev: Joi.string(),
8
+ name: Joi.string().required(),
9
+ fields: Joi.object().required(),
10
+ datasourceId: Joi.string().required(),
11
+ readable: Joi.boolean(),
12
+ parameters: Joi.array().items(Joi.object({
13
+ name: Joi.string(),
14
+ default: Joi.string().allow(""),
15
+ })),
16
+ queryVerb: Joi.string().allow().required(),
17
+ extra: Joi.object().optional(),
18
+ schema: Joi.object({}).required().unknown(true),
19
+ transformer: Joi.string().optional(),
20
+ flags: Joi.object().optional(),
21
+ });
22
+ };
23
+ exports.generateQueryValidation = () => {
24
+ // prettier-ignore
25
+ return joiValidator.body(exports.queryValidation());
26
+ };
27
+ exports.generateQueryPreviewValidation = () => {
28
+ // prettier-ignore
29
+ return joiValidator.body(Joi.object({
30
+ fields: Joi.object().required(),
31
+ queryVerb: Joi.string().allow().required(),
32
+ extra: Joi.object().optional(),
33
+ datasourceId: Joi.string().required(),
34
+ transformer: Joi.string().optional(),
35
+ parameters: Joi.object({}).required().unknown(true),
36
+ queryId: Joi.string().optional(),
37
+ }));
38
+ };
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const CouchDB = require("../../db");
12
- const { Role, getRole, isBuiltin, getAllRoles, } = require("@budibase/auth/roles");
12
+ const { Role, getRole, isBuiltin, getAllRoles, } = require("@budibase/backend-core/roles");
13
13
  const { generateRoleID, getUserMetadataParams, InternalTables, } = require("../../db/utils");
14
14
  const UpdateRolesOptions = {
15
15
  CREATED: "created",
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const { getRoutingInfo } = require("../../utilities/routing");
12
- const { getUserRoleHierarchy, BUILTIN_ROLE_IDS, } = require("@budibase/auth/roles");
12
+ const { getUserRoleHierarchy, BUILTIN_ROLE_IDS, } = require("@budibase/backend-core/roles");
13
13
  const URL_SEPARATOR = "/";
14
14
  function Routing() {
15
15
  this.json = {};
@@ -23,7 +23,7 @@ const CouchDB = require("../../../db");
23
23
  const linkRows = require("../../../db/linkedRows");
24
24
  const { getRowParams, generateRowID, DocumentTypes, InternalTables, } = require("../../../db/utils");
25
25
  const userController = require("../user");
26
- const { inputProcessing, outputProcessing, processAutoColumn, } = require("../../../utilities/rowProcessor");
26
+ const { inputProcessing, outputProcessing, processAutoColumn, cleanupAttachments, } = require("../../../utilities/rowProcessor");
27
27
  const { FieldTypes } = require("../../../constants");
28
28
  const { isEqual } = require("lodash");
29
29
  const { validate, findRow } = require("./utils");
@@ -32,6 +32,7 @@ const { getGlobalUsersFromMetadata } = require("../../../utilities/global");
32
32
  const inMemoryViews = require("../../../db/inMemoryView");
33
33
  const env = require("../../../environment");
34
34
  const { migrateToInMemoryView, migrateToDesignView, getFromDesignDoc, getFromMemoryDoc, } = require("../view/utils");
35
+ const { cloneDeep } = require("lodash/fp");
35
36
  const CALCULATION_TYPES = {
36
37
  SUM: "sum",
37
38
  COUNT: "count",
@@ -119,15 +120,15 @@ exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
119
120
  const inputs = ctx.request.body;
120
121
  const tableId = inputs.tableId;
121
122
  const isUserTable = tableId === InternalTables.USER_METADATA;
122
- let dbRow;
123
+ let oldRow;
123
124
  try {
124
- dbRow = yield db.get(inputs._id);
125
+ oldRow = yield db.get(inputs._id);
125
126
  }
126
127
  catch (err) {
127
128
  if (isUserTable) {
128
129
  // don't include the rev, it'll be the global rev
129
130
  // this time
130
- dbRow = {
131
+ oldRow = {
131
132
  _id: inputs._id,
132
133
  };
133
134
  }
@@ -137,13 +138,14 @@ exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
137
138
  }
138
139
  let dbTable = yield db.get(tableId);
139
140
  // need to build up full patch fields before coerce
141
+ let combinedRow = cloneDeep(oldRow);
140
142
  for (let key of Object.keys(inputs)) {
141
143
  if (!dbTable.schema[key])
142
144
  continue;
143
- dbRow[key] = inputs[key];
145
+ combinedRow[key] = inputs[key];
144
146
  }
145
147
  // this returns the table and row incase they have been updated
146
- let { table, row } = inputProcessing(ctx.user, dbTable, dbRow);
148
+ let { table, row } = inputProcessing(ctx.user, dbTable, combinedRow);
147
149
  const validateResult = yield validate({
148
150
  row,
149
151
  table,
@@ -159,6 +161,8 @@ exports.patch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
159
161
  tableId: row.tableId,
160
162
  table,
161
163
  });
164
+ // check if any attachments removed
165
+ yield cleanupAttachments(appId, table, { oldRow, row });
162
166
  if (isUserTable) {
163
167
  // the row has been updated, need to put it into the ctx
164
168
  ctx.request.body = row;
@@ -284,6 +288,8 @@ exports.destroy = function (ctx) {
284
288
  row,
285
289
  tableId: row.tableId,
286
290
  });
291
+ // remove any attachments that were on the row from object storage
292
+ yield cleanupAttachments(appId, table, { row });
287
293
  let response;
288
294
  if (ctx.params.tableId === InternalTables.USER_METADATA) {
289
295
  ctx.params = {
@@ -325,6 +331,8 @@ exports.bulkDestroy = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
325
331
  else {
326
332
  yield db.bulkDocs(rows.map(row => (Object.assign(Object.assign({}, row), { _deleted: true }))));
327
333
  }
334
+ // remove any attachments that were on the rows from object storage
335
+ yield cleanupAttachments(appId, table, { rows });
328
336
  yield Promise.all(updates);
329
337
  return { response: { ok: true }, rows };
330
338
  });
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  const { SearchIndexes } = require("../../../db/utils");
12
12
  const fetch = require("node-fetch");
13
- const { getCouchUrl } = require("@budibase/auth/db");
13
+ const { getCouchUrl } = require("@budibase/backend-core/db");
14
14
  /**
15
15
  * Class to build lucene query URLs.
16
16
  * Optionally takes a base lucene query object.
@@ -172,7 +172,8 @@ class QueryBuilder {
172
172
  }
173
173
  if (this.query.equal) {
174
174
  build(this.query.equal, (key, value) => {
175
- if (!value) {
175
+ // 0 evaluates to false, which means we would return all rows if we don't check it
176
+ if (!value && value !== 0) {
176
177
  return null;
177
178
  }
178
179
  return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`;
@@ -57,24 +57,31 @@ exports.validate = ({ appId, tableId, row, table }) => __awaiter(void 0, void 0,
57
57
  const errors = {};
58
58
  for (let fieldName of Object.keys(table.schema)) {
59
59
  const constraints = cloneDeep(table.schema[fieldName].constraints);
60
+ const type = table.schema[fieldName].type;
60
61
  // special case for options, need to always allow unselected (null)
61
- if (table.schema[fieldName].type ===
62
- (FieldTypes.OPTIONS || FieldTypes.ARRAY) &&
62
+ if ((type === FieldTypes.OPTIONS || type === FieldTypes.ARRAY) &&
63
63
  constraints.inclusion) {
64
64
  constraints.inclusion.push(null);
65
65
  }
66
66
  let res;
67
67
  // Validate.js doesn't seem to handle array
68
- if (table.schema[fieldName].type === FieldTypes.ARRAY &&
69
- row[fieldName] &&
70
- row[fieldName].length) {
68
+ if (type === FieldTypes.ARRAY && row[fieldName] && row[fieldName].length) {
71
69
  row[fieldName].map(val => {
72
70
  if (!constraints.inclusion.includes(val)) {
73
71
  errors[fieldName] = "Field not in list";
74
72
  }
75
73
  });
76
74
  }
77
- else if (table.schema[fieldName].type === FieldTypes.FORMULA) {
75
+ else if (type === FieldTypes.JSON && typeof row[fieldName] === "string") {
76
+ // this should only happen if there is an error
77
+ try {
78
+ JSON.parse(row[fieldName]);
79
+ }
80
+ catch (err) {
81
+ errors[fieldName] = [`Contains invalid JSON`];
82
+ }
83
+ }
84
+ else if (type === FieldTypes.FORMULA) {
78
85
  res = validateJs.single(processStringSync(table.schema[fieldName].formula, row), constraints);
79
86
  }
80
87
  else {
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  const CouchDB = require("../../db");
12
12
  const { getScreenParams, generateScreenID } = require("../../db/utils");
13
- const { AccessController } = require("@budibase/auth/roles");
13
+ const { AccessController } = require("@budibase/backend-core/roles");
14
14
  exports.fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
15
15
  const appId = ctx.appId;
16
16
  const db = new CouchDB(appId);
@@ -9,15 +9,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const CouchDB = require("../../db");
12
- const { generateUserMetadataID, getUserMetadataParams, } = require("../../db/utils");
12
+ const { generateUserMetadataID, getUserMetadataParams, generateUserFlagID, } = require("../../db/utils");
13
13
  const { InternalTables } = require("../../db/utils");
14
14
  const { getGlobalUsers, getRawGlobalUser } = require("../../utilities/global");
15
15
  const { getFullUser } = require("../../utilities/users");
16
16
  const { isEqual } = require("lodash");
17
- const { BUILTIN_ROLE_IDS } = require("@budibase/auth/roles");
18
- const { getDevelopmentAppID, getDeployedAppIDs } = require("@budibase/auth/db");
17
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
18
+ const { getDevelopmentAppID, getDeployedAppIDs, } = require("@budibase/backend-core/db");
19
19
  const { doesDatabaseExist } = require("../../utilities");
20
- const { UserStatus } = require("@budibase/auth/constants");
20
+ const { UserStatus } = require("@budibase/backend-core/constants");
21
21
  function rawMetadata(db) {
22
22
  return __awaiter(this, void 0, void 0, function* () {
23
23
  return (yield db.allDocs(getUserMetadataParams(null, {
@@ -189,3 +189,39 @@ exports.findMetadata = function (ctx) {
189
189
  ctx.body = yield getFullUser(ctx, ctx.params.id);
190
190
  });
191
191
  };
192
+ exports.setFlag = function (ctx) {
193
+ return __awaiter(this, void 0, void 0, function* () {
194
+ const userId = ctx.user._id;
195
+ const { flag, value } = ctx.request.body;
196
+ if (!flag) {
197
+ ctx.throw(400, "Must supply a 'flag' field in request body.");
198
+ }
199
+ const flagDocId = generateUserFlagID(userId);
200
+ const db = new CouchDB(ctx.appId);
201
+ let doc;
202
+ try {
203
+ doc = yield db.get(flagDocId);
204
+ }
205
+ catch (err) {
206
+ doc = { _id: flagDocId };
207
+ }
208
+ doc[flag] = value || true;
209
+ yield db.put(doc);
210
+ ctx.body = { message: "Flag set successfully" };
211
+ });
212
+ };
213
+ exports.getFlags = function (ctx) {
214
+ return __awaiter(this, void 0, void 0, function* () {
215
+ const userId = ctx.user._id;
216
+ const docId = generateUserFlagID(userId);
217
+ const db = new CouchDB(ctx.appId);
218
+ let doc;
219
+ try {
220
+ doc = yield db.get(docId);
221
+ }
222
+ catch (err) {
223
+ doc = { _id: docId };
224
+ }
225
+ ctx.body = doc;
226
+ });
227
+ };
@@ -13,7 +13,7 @@ const { generateWebhookID, getWebhookParams } = require("../../db/utils");
13
13
  const toJsonSchema = require("to-json-schema");
14
14
  const validate = require("jsonschema").validate;
15
15
  const triggers = require("../../automations/triggers");
16
- const { getDeployedAppID } = require("@budibase/auth/db");
16
+ const { getDeployedAppID } = require("@budibase/backend-core/db");
17
17
  const AUTOMATION_DESCRIPTION = "Generated from Webhook Schema";
18
18
  function Webhook(name, type, target) {
19
19
  this.live = true;
@@ -65,6 +65,10 @@ exports.buildSchema = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
65
65
  let automation = yield db.get(webhook.action.target);
66
66
  const autoOutputs = automation.definition.trigger.schema.outputs;
67
67
  let properties = webhook.bodySchema.properties;
68
+ // reset webhook outputs
69
+ autoOutputs.properties = {
70
+ body: autoOutputs.properties.body,
71
+ };
68
72
  for (let prop of Object.keys(properties)) {
69
73
  autoOutputs.properties[prop] = {
70
74
  type: properties[prop].type,
package/dist/api/index.js CHANGED
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const Router = require("@koa/router");
12
- const { buildAuthMiddleware, auditLog, buildTenancyMiddleware, buildAppTenancyMiddleware, } = require("@budibase/auth").auth;
12
+ const { buildAuthMiddleware, auditLog, buildTenancyMiddleware, buildAppTenancyMiddleware, } = require("@budibase/backend-core/auth");
13
13
  const currentApp = require("../middleware/currentapp");
14
14
  const compress = require("koa-compress");
15
15
  const zlib = require("zlib");
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/apikeys");
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/keys", authorized(BUILDER), controller.fetch)
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/application");
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 usage = require("../../middleware/usageQuota");
7
7
  const router = Router();
8
8
  router
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/automation");
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 { bodyResource, paramResource } = require("../../middleware/resourceId");
9
9
  const { middleware: appInfoMiddleware, AppType, } = require("../../middleware/appInfo");
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/backup");
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/backups/export", authorized(BUILDER), controller.exportAppDump);
8
8
  module.exports = router;
@@ -2,7 +2,7 @@
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/cloud");
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/cloud/export", authorized(BUILDER), controller.exportApps)
@@ -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();