@budibase/server 1.0.123 → 1.0.125

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 (325) hide show
  1. package/builder/assets/index.3d890df7.js +1299 -0
  2. package/builder/assets/index.89795487.css +6 -0
  3. package/builder/assets/{vendor.8e34a169.js → vendor.5240f480.js} +1 -1
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +695 -1678
  6. package/coverage/coverage-final.json +28 -43
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +8 -3
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +9 -4
  9. package/coverage/lcov-report/api/controllers/auth.js.html +8 -3
  10. package/coverage/lcov-report/api/controllers/automation.js.html +8 -3
  11. package/coverage/lcov-report/api/controllers/backup.js.html +8 -3
  12. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -3
  13. package/coverage/lcov-report/api/controllers/component.js.html +8 -3
  14. package/coverage/lcov-report/api/controllers/datasource.js.html +11 -6
  15. package/coverage/lcov-report/api/controllers/dev.js.html +8 -3
  16. package/coverage/lcov-report/api/controllers/index.html +16 -26
  17. package/coverage/lcov-report/api/controllers/integration.js.html +8 -3
  18. package/coverage/lcov-report/api/controllers/layout.js.html +8 -3
  19. package/coverage/lcov-report/api/controllers/metadata.js.html +8 -3
  20. package/coverage/lcov-report/api/controllers/migrations.js.html +8 -3
  21. package/coverage/lcov-report/api/controllers/permission.js.html +8 -3
  22. package/coverage/lcov-report/api/controllers/query/index.html +16 -26
  23. package/coverage/lcov-report/api/controllers/query/validation.js.html +8 -3
  24. package/coverage/lcov-report/api/controllers/role.js.html +10 -5
  25. package/coverage/lcov-report/api/controllers/routing.js.html +9 -4
  26. package/coverage/lcov-report/api/controllers/row/external.js.html +8 -3
  27. package/coverage/lcov-report/api/controllers/row/index.html +25 -35
  28. package/coverage/lcov-report/api/controllers/row/internal.js.html +32 -24
  29. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +21 -16
  30. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -19
  31. package/coverage/lcov-report/api/controllers/row/utils.js.html +33 -19
  32. package/coverage/lcov-report/api/controllers/screen.js.html +9 -4
  33. package/coverage/lcov-report/api/controllers/script.js.html +8 -3
  34. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +55 -50
  35. package/coverage/lcov-report/api/controllers/table/external.js.html +8 -3
  36. package/coverage/lcov-report/api/controllers/table/index.html +19 -44
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +20 -15
  38. package/coverage/lcov-report/api/controllers/templates.js.html +8 -3
  39. package/coverage/lcov-report/api/controllers/user.js.html +8 -3
  40. package/coverage/lcov-report/api/controllers/view/exporters.js.html +8 -3
  41. package/coverage/lcov-report/api/controllers/view/index.html +8 -3
  42. package/coverage/lcov-report/api/controllers/view/index.js.html +10 -5
  43. package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -3
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -3
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +10 -5
  46. package/coverage/lcov-report/api/index.html +18 -13
  47. package/coverage/lcov-report/api/index.js.html +28 -8
  48. package/coverage/lcov-report/api/routes/analytics.js.html +8 -3
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -3
  50. package/coverage/lcov-report/api/routes/auth.js.html +8 -3
  51. package/coverage/lcov-report/api/routes/automation.js.html +8 -3
  52. package/coverage/lcov-report/api/routes/backup.js.html +8 -3
  53. package/coverage/lcov-report/api/routes/cloud.js.html +8 -3
  54. package/coverage/lcov-report/api/routes/component.js.html +8 -3
  55. package/coverage/lcov-report/api/routes/datasource.js.html +8 -3
  56. package/coverage/lcov-report/api/routes/deploy.js.html +8 -3
  57. package/coverage/lcov-report/api/routes/dev.js.html +9 -4
  58. package/coverage/lcov-report/api/routes/index.html +13 -68
  59. package/coverage/lcov-report/api/routes/integration.js.html +8 -3
  60. package/coverage/lcov-report/api/routes/layout.js.html +8 -3
  61. package/coverage/lcov-report/api/routes/metadata.js.html +8 -3
  62. package/coverage/lcov-report/api/routes/migrations.js.html +8 -3
  63. package/coverage/lcov-report/api/routes/permission.js.html +8 -3
  64. package/coverage/lcov-report/api/routes/query.js.html +8 -3
  65. package/coverage/lcov-report/api/routes/role.js.html +8 -3
  66. package/coverage/lcov-report/api/routes/routing.js.html +8 -3
  67. package/coverage/lcov-report/api/routes/screen.js.html +8 -3
  68. package/coverage/lcov-report/api/routes/script.js.html +8 -3
  69. package/coverage/lcov-report/api/routes/table.js.html +8 -3
  70. package/coverage/lcov-report/api/routes/templates.js.html +8 -3
  71. package/coverage/lcov-report/api/routes/user.js.html +8 -3
  72. package/coverage/lcov-report/api/routes/utils/index.html +8 -3
  73. package/coverage/lcov-report/api/routes/utils/validators.js.html +8 -3
  74. package/coverage/lcov-report/api/routes/view.js.html +8 -3
  75. package/coverage/lcov-report/api/routes/webhook.js.html +8 -3
  76. package/coverage/lcov-report/automations/actions.js.html +21 -7
  77. package/coverage/lcov-report/automations/automationUtils.js.html +64 -23
  78. package/coverage/lcov-report/automations/bullboard.js.html +8 -3
  79. package/coverage/lcov-report/automations/index.html +27 -37
  80. package/coverage/lcov-report/automations/index.js.html +8 -3
  81. package/coverage/lcov-report/automations/steps/bash.js.html +8 -3
  82. package/coverage/lcov-report/automations/steps/delay.js.html +8 -3
  83. package/coverage/lcov-report/automations/steps/discord.js.html +8 -3
  84. package/coverage/lcov-report/automations/steps/executeQuery.js.html +8 -3
  85. package/coverage/lcov-report/automations/steps/executeScript.js.html +8 -3
  86. package/coverage/lcov-report/automations/steps/filter.js.html +8 -3
  87. package/coverage/lcov-report/automations/steps/index.html +31 -41
  88. package/coverage/lcov-report/automations/steps/integromat.js.html +8 -3
  89. package/coverage/lcov-report/{api/routes/static.js.html → automations/steps/loop.js.html} +70 -80
  90. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +9 -4
  91. package/coverage/lcov-report/automations/steps/queryRows.js.html +9 -4
  92. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +8 -3
  93. package/coverage/lcov-report/automations/steps/serverLog.js.html +8 -3
  94. package/coverage/lcov-report/automations/steps/slack.js.html +8 -3
  95. package/coverage/lcov-report/automations/steps/updateRow.js.html +8 -3
  96. package/coverage/lcov-report/automations/steps/utils.js.html +14 -9
  97. package/coverage/lcov-report/automations/steps/zapier.js.html +8 -3
  98. package/coverage/lcov-report/automations/triggerInfo/app.js.html +8 -3
  99. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +8 -3
  100. package/coverage/lcov-report/automations/triggerInfo/index.html +8 -3
  101. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -3
  102. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +8 -3
  103. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +8 -3
  104. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +8 -3
  105. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +8 -3
  106. package/coverage/lcov-report/automations/triggers.js.html +16 -11
  107. package/coverage/lcov-report/block-navigation.js +8 -0
  108. package/coverage/lcov-report/constants/index.html +12 -7
  109. package/coverage/lcov-report/constants/index.js.html +55 -32
  110. package/coverage/lcov-report/constants/layouts.js.html +8 -3
  111. package/coverage/lcov-report/constants/screens.js.html +8 -3
  112. package/coverage/lcov-report/db/inMemoryView.js.html +8 -3
  113. package/coverage/lcov-report/db/index.html +8 -3
  114. package/coverage/lcov-report/db/index.js.html +9 -4
  115. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +20 -15
  116. package/coverage/lcov-report/db/linkedRows/index.html +8 -3
  117. package/coverage/lcov-report/db/linkedRows/index.js.html +22 -17
  118. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +12 -7
  119. package/coverage/lcov-report/db/newid.js.html +11 -6
  120. package/coverage/lcov-report/db/utils.js.html +84 -79
  121. package/coverage/lcov-report/events/AutomationEmitter.js.html +14 -9
  122. package/coverage/lcov-report/events/index.html +8 -3
  123. package/coverage/lcov-report/events/index.js.html +9 -4
  124. package/coverage/lcov-report/events/utils.js.html +18 -13
  125. package/coverage/lcov-report/index.html +125 -120
  126. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +8 -3
  127. package/coverage/lcov-report/integrations/tests/index.html +8 -3
  128. package/coverage/lcov-report/middleware/appInfo.js.html +8 -3
  129. package/coverage/lcov-report/middleware/builder.js.html +8 -3
  130. package/coverage/lcov-report/middleware/currentapp.js.html +65 -15
  131. package/coverage/lcov-report/middleware/index.html +25 -50
  132. package/coverage/lcov-report/middleware/joi-validator.js.html +9 -4
  133. package/coverage/lcov-report/middleware/publicApi.js.html +8 -3
  134. package/coverage/lcov-report/middleware/resourceId.js.html +8 -3
  135. package/coverage/lcov-report/middleware/selfhost.js.html +9 -4
  136. package/coverage/lcov-report/middleware/utils.js.html +8 -3
  137. package/coverage/lcov-report/sorter.js +26 -0
  138. package/coverage/lcov-report/threads/automation.js.html +581 -90
  139. package/coverage/lcov-report/threads/index.html +30 -40
  140. package/coverage/lcov-report/threads/query.js.html +9 -4
  141. package/coverage/lcov-report/threads/utils.js.html +17 -9
  142. package/coverage/lcov-report/utilities/bcrypt.js.html +8 -3
  143. package/coverage/lcov-report/utilities/budibaseDir.js.html +8 -3
  144. package/coverage/lcov-report/utilities/centralPath.js.html +8 -3
  145. package/coverage/lcov-report/utilities/csvParser.js.html +10 -5
  146. package/coverage/lcov-report/utilities/global.js.html +9 -4
  147. package/coverage/lcov-report/utilities/index.html +8 -3
  148. package/coverage/lcov-report/utilities/index.js.html +11 -6
  149. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +32 -9
  150. package/coverage/lcov-report/utilities/queue/index.html +12 -7
  151. package/coverage/lcov-report/utilities/routing/index.html +8 -3
  152. package/coverage/lcov-report/utilities/routing/index.js.html +8 -3
  153. package/coverage/lcov-report/utilities/rowProcessor/index.html +8 -3
  154. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +48 -43
  155. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +18 -13
  156. package/coverage/lcov-report/utilities/scriptRunner.js.html +8 -3
  157. package/coverage/lcov-report/utilities/security.js.html +9 -4
  158. package/coverage/lcov-report/utilities/statusCodes.js.html +8 -3
  159. package/coverage/lcov-report/utilities/usageQuota/index.html +24 -34
  160. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +44 -39
  161. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +8 -3
  162. package/coverage/lcov-report/utilities/users.js.html +8 -3
  163. package/coverage/lcov-report/utilities/workerRequests.js.html +9 -4
  164. package/coverage/lcov.info +1144 -2875
  165. package/dist/api/controllers/application.js +145 -73
  166. package/dist/api/controllers/deploy/index.js +68 -36
  167. package/dist/api/controllers/public/applications.js +29 -9
  168. package/dist/api/controllers/public/queries.js +27 -7
  169. package/dist/api/controllers/public/rows.js +32 -12
  170. package/dist/api/controllers/public/tables.js +2 -2
  171. package/dist/api/controllers/public/users.js +8 -8
  172. package/dist/api/controllers/public/utils.js +1 -1
  173. package/dist/api/controllers/query/import/index.js +3 -3
  174. package/dist/api/controllers/query/index.js +57 -44
  175. package/dist/api/controllers/row/ExternalRequest.js +27 -27
  176. package/dist/api/controllers/row/index.js +83 -60
  177. package/dist/api/controllers/row/internal.js +2 -1
  178. package/dist/api/controllers/row/utils.js +2 -1
  179. package/dist/api/controllers/static/templates/BudibaseApp.svelte +3 -0
  180. package/dist/api/controllers/table/bulkFormula.js +2 -1
  181. package/dist/api/controllers/table/internal.js +41 -35
  182. package/dist/api/controllers/table/utils.js +271 -229
  183. package/dist/api/index.js +5 -0
  184. package/dist/api/routes/application.js +39 -13
  185. package/dist/api/routes/index.js +61 -56
  186. package/dist/api/routes/public/index.js +6 -9
  187. package/dist/api/routes/public/queries.js +1 -1
  188. package/dist/api/routes/public/rows.js +1 -1
  189. package/dist/api/routes/public/tables.js +3 -3
  190. package/dist/api/routes/public/users.js +1 -1
  191. package/dist/api/routes/row.js +43 -17
  192. package/dist/api/routes/static.js +40 -13
  193. package/dist/api/routes/tests/utilities/TestFunctions.js +75 -33
  194. package/dist/app.js +8 -4
  195. package/dist/automations/actions.js +3 -0
  196. package/dist/automations/automationUtils.js +10 -0
  197. package/dist/automations/steps/createRow.js +12 -12
  198. package/dist/automations/steps/deleteRow.js +13 -16
  199. package/dist/automations/steps/loop.js +51 -0
  200. package/dist/automations/tests/utilities/index.js +13 -11
  201. package/dist/automations/utils.js +187 -133
  202. package/dist/constants/index.js +5 -0
  203. package/dist/definitions/datasource.js +1 -0
  204. package/dist/environment.js +2 -3
  205. package/dist/index.js +4 -0
  206. package/dist/integrations/base/sql.js +2 -2
  207. package/dist/integrations/base/sqlTable.js +2 -2
  208. package/dist/integrations/googlesheets.js +1 -1
  209. package/dist/integrations/index.js +4 -0
  210. package/dist/integrations/microsoftSqlServer.js +8 -8
  211. package/dist/integrations/mysql.js +9 -9
  212. package/dist/integrations/oracle.js +7 -7
  213. package/dist/integrations/postgres.js +7 -7
  214. package/dist/integrations/queries/sql.js +2 -2
  215. package/dist/integrations/redis.js +158 -0
  216. package/dist/integrations/rest.js +1 -1
  217. package/dist/middleware/authorized.js +51 -51
  218. package/dist/middleware/currentapp.js +15 -1
  219. package/dist/migrations/functions/appUrls.js +1 -1
  220. package/dist/migrations/functions/developerQuota.js +49 -0
  221. package/dist/migrations/functions/publishedAppsQuota.js +47 -0
  222. package/dist/migrations/functions/quotas1.js +6 -2
  223. package/dist/migrations/functions/usageQuotas/index.js +0 -4
  224. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -7
  225. package/dist/migrations/functions/usageQuotas/syncDevelopers.js +24 -0
  226. package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +26 -0
  227. package/dist/migrations/functions/usageQuotas/syncRows.js +5 -8
  228. package/dist/migrations/index.js +17 -1
  229. package/dist/package.json +14 -8
  230. package/dist/threads/automation.js +149 -27
  231. package/dist/threads/index.js +36 -10
  232. package/dist/threads/utils.js +1 -0
  233. package/dist/tsconfig.build.tsbuildinfo +1 -0
  234. package/dist/utilities/queue/inMemoryQueue.js +6 -1
  235. package/nodemon.json +1 -1
  236. package/package.json +15 -9
  237. package/scripts/dev/manage.js +2 -0
  238. package/src/api/controllers/{application.js → application.ts} +118 -51
  239. package/src/api/controllers/deploy/{index.js → index.ts} +53 -29
  240. package/src/api/controllers/public/applications.ts +2 -2
  241. package/src/api/controllers/public/queries.ts +1 -1
  242. package/src/api/controllers/public/rows.ts +1 -1
  243. package/src/api/controllers/query/{index.js → index.ts} +51 -48
  244. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  245. package/src/api/controllers/row/{index.js → index.ts} +24 -17
  246. package/src/api/controllers/row/internal.js +2 -1
  247. package/src/api/controllers/row/utils.js +4 -1
  248. package/src/api/controllers/static/templates/BudibaseApp.svelte +3 -0
  249. package/src/api/controllers/table/bulkFormula.js +1 -1
  250. package/src/api/controllers/table/{internal.js → internal.ts} +30 -26
  251. package/src/api/controllers/table/{utils.js → utils.ts} +86 -69
  252. package/src/api/index.js +5 -0
  253. package/src/api/routes/{application.js → application.ts} +8 -14
  254. package/src/api/routes/index.ts +60 -0
  255. package/src/api/routes/public/index.ts +1 -4
  256. package/src/api/routes/{row.js → row.ts} +7 -15
  257. package/src/api/routes/{static.js → static.ts} +11 -11
  258. package/src/api/routes/tests/misc.spec.js +39 -37
  259. package/src/api/routes/tests/utilities/{TestFunctions.js → TestFunctions.ts} +57 -33
  260. package/src/app.ts +1 -2
  261. package/src/automations/actions.js +3 -0
  262. package/src/automations/automationUtils.js +12 -0
  263. package/src/automations/steps/{createRow.js → createRow.ts} +9 -15
  264. package/src/automations/steps/{deleteRow.js → deleteRow.ts} +10 -16
  265. package/src/automations/steps/loop.js +50 -0
  266. package/src/automations/tests/automation.spec.js +0 -1
  267. package/src/automations/tests/{createRow.spec.js → createRow.spec.ts} +4 -15
  268. package/src/automations/tests/{deleteRow.spec.js → deleteRow.spec.ts} +3 -5
  269. package/src/automations/tests/utilities/index.js +12 -10
  270. package/src/automations/{utils.js → utils.ts} +39 -28
  271. package/src/constants/index.js +6 -0
  272. package/src/definitions/common.ts +1 -0
  273. package/src/definitions/datasource.ts +1 -0
  274. package/src/environment.js +2 -3
  275. package/src/index.ts +3 -0
  276. package/src/integrations/index.ts +4 -0
  277. package/src/integrations/redis.ts +152 -0
  278. package/src/integrations/tests/redis.spec.js +60 -0
  279. package/src/middleware/{authorized.js → authorized.ts} +20 -14
  280. package/src/middleware/currentapp.js +16 -1
  281. package/src/middleware/tests/currentapp.spec.js +8 -4
  282. package/src/migrations/functions/developerQuota.ts +15 -0
  283. package/src/migrations/functions/publishedAppsQuota.ts +13 -0
  284. package/src/migrations/functions/tests/quotas1.spec.js +0 -2
  285. package/src/migrations/functions/usageQuotas/index.ts +0 -5
  286. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -6
  287. package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
  288. package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
  289. package/src/migrations/functions/usageQuotas/syncRows.ts +3 -6
  290. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +34 -0
  291. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +40 -0
  292. package/src/migrations/index.ts +13 -1
  293. package/src/threads/automation.js +196 -34
  294. package/src/threads/{index.js → index.ts} +18 -14
  295. package/src/threads/utils.js +1 -0
  296. package/src/utilities/queue/inMemoryQueue.js +7 -1
  297. package/tsconfig.build.json +10 -0
  298. package/tsconfig.json +2 -2
  299. package/builder/assets/index.68a7f4e3.css +0 -6
  300. package/builder/assets/index.8d4a5b33.js +0 -1291
  301. package/coverage/lcov-report/api/controllers/application.js.html +0 -1436
  302. package/coverage/lcov-report/api/controllers/query/index.js.html +0 -713
  303. package/coverage/lcov-report/api/controllers/row/index.js.html +0 -524
  304. package/coverage/lcov-report/api/controllers/table/internal.js.html +0 -620
  305. package/coverage/lcov-report/api/controllers/table/utils.js.html +0 -1331
  306. package/coverage/lcov-report/api/routes/application.js.html +0 -179
  307. package/coverage/lcov-report/api/routes/index.js.html +0 -266
  308. package/coverage/lcov-report/api/routes/row.js.html +0 -908
  309. package/coverage/lcov-report/automations/steps/createRow.js.html +0 -380
  310. package/coverage/lcov-report/automations/steps/deleteRow.js.html +0 -347
  311. package/coverage/lcov-report/automations/utils.js.html +0 -665
  312. package/coverage/lcov-report/middleware/authorized.js.html +0 -458
  313. package/coverage/lcov-report/middleware/usageQuota.js.html +0 -572
  314. package/coverage/lcov-report/threads/index.js.html +0 -296
  315. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  316. package/dist/middleware/usageQuota.js +0 -154
  317. package/dist/tsconfig.tsbuildinfo +0 -1
  318. package/dist/utilities/usageQuota/index.js +0 -86
  319. package/src/api/routes/index.js +0 -62
  320. package/src/middleware/tests/usageQuota.spec.js +0 -120
  321. package/src/middleware/usageQuota.js +0 -164
  322. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -41
  323. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -45
  324. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  325. package/src/utilities/usageQuota/index.js +0 -93
@@ -204,7 +204,7 @@ var OracleModule;
204
204
  if (this.isBooleanType(column)) {
205
205
  return constants_1.FieldTypes.BOOLEAN;
206
206
  }
207
- return utils_1.convertSqlType(column.type);
207
+ return (0, utils_1.convertSqlType)(column.type);
208
208
  }
209
209
  /**
210
210
  * Fetches the tables from the oracle table and assigns them to the datasource.
@@ -223,7 +223,7 @@ var OracleModule;
223
223
  let table = tables[oracleTable.name];
224
224
  if (!table) {
225
225
  table = {
226
- _id: utils_1.buildExternalTableId(datasourceId, oracleTable.name),
226
+ _id: (0, utils_1.buildExternalTableId)(datasourceId, oracleTable.name),
227
227
  primary: [],
228
228
  name: oracleTable.name,
229
229
  schema: {},
@@ -255,7 +255,7 @@ var OracleModule;
255
255
  });
256
256
  });
257
257
  });
258
- const final = utils_1.finaliseExternalTables(tables, entities);
258
+ const final = (0, utils_1.finaliseExternalTables)(tables, entities);
259
259
  this.tables = final.tables;
260
260
  this.schemaErrors = final.errors;
261
261
  });
@@ -284,7 +284,7 @@ var OracleModule;
284
284
  }
285
285
  create(query) {
286
286
  return __awaiter(this, void 0, void 0, function* () {
287
- const response = yield this.internalQuery(utils_1.getSqlQuery(query));
287
+ const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
288
288
  return response.rows && response.rows.length
289
289
  ? response.rows
290
290
  : [{ created: true }];
@@ -292,13 +292,13 @@ var OracleModule;
292
292
  }
293
293
  read(query) {
294
294
  return __awaiter(this, void 0, void 0, function* () {
295
- const response = yield this.internalQuery(utils_1.getSqlQuery(query));
295
+ const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
296
296
  return response.rows ? response.rows : [];
297
297
  });
298
298
  }
299
299
  update(query) {
300
300
  return __awaiter(this, void 0, void 0, function* () {
301
- const response = yield this.internalQuery(utils_1.getSqlQuery(query));
301
+ const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
302
302
  return response.rows && response.rows.length
303
303
  ? response.rows
304
304
  : [{ updated: true }];
@@ -306,7 +306,7 @@ var OracleModule;
306
306
  }
307
307
  delete(query) {
308
308
  return __awaiter(this, void 0, void 0, function* () {
309
- const response = yield this.internalQuery(utils_1.getSqlQuery(query));
309
+ const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
310
310
  return response.rows && response.rows.length
311
311
  ? response.rows
312
312
  : [{ deleted: true }];
@@ -184,13 +184,13 @@ var PostgresModule;
184
184
  // table key doesn't exist yet
185
185
  if (!tables[tableName] || !tables[tableName].schema) {
186
186
  tables[tableName] = {
187
- _id: utils_1.buildExternalTableId(datasourceId, tableName),
187
+ _id: (0, utils_1.buildExternalTableId)(datasourceId, tableName),
188
188
  primary: tableKeys[tableName] || [],
189
189
  name: tableName,
190
190
  schema: {},
191
191
  };
192
192
  }
193
- const type = utils_1.convertSqlType(column.data_type);
193
+ const type = (0, utils_1.convertSqlType)(column.data_type);
194
194
  const identity = !!(column.identity_generation ||
195
195
  column.identity_start ||
196
196
  column.identity_increment);
@@ -204,32 +204,32 @@ var PostgresModule;
204
204
  type,
205
205
  };
206
206
  }
207
- const final = utils_1.finaliseExternalTables(tables, entities);
207
+ const final = (0, utils_1.finaliseExternalTables)(tables, entities);
208
208
  this.tables = final.tables;
209
209
  this.schemaErrors = final.errors;
210
210
  });
211
211
  }
212
212
  create(query) {
213
213
  return __awaiter(this, void 0, void 0, function* () {
214
- const response = yield this.internalQuery(utils_1.getSqlQuery(query));
214
+ const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
215
215
  return response.rows.length ? response.rows : [{ created: true }];
216
216
  });
217
217
  }
218
218
  read(query) {
219
219
  return __awaiter(this, void 0, void 0, function* () {
220
- const response = yield this.internalQuery(utils_1.getSqlQuery(query));
220
+ const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
221
221
  return response.rows;
222
222
  });
223
223
  }
224
224
  update(query) {
225
225
  return __awaiter(this, void 0, void 0, function* () {
226
- const response = yield this.internalQuery(utils_1.getSqlQuery(query));
226
+ const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
227
227
  return response.rows.length ? response.rows : [{ updated: true }];
228
228
  });
229
229
  }
230
230
  delete(query) {
231
231
  return __awaiter(this, void 0, void 0, function* () {
232
- const response = yield this.internalQuery(utils_1.getSqlQuery(query));
232
+ const response = yield this.internalQuery((0, utils_1.getSqlQuery)(query));
233
233
  return response.rows.length ? response.rows : [{ deleted: true }];
234
234
  });
235
235
  }
@@ -16,7 +16,7 @@ function enrichQueryFields(fields, parameters = {}) {
16
16
  }
17
17
  else if (typeof fields[key] === "string") {
18
18
  // enrich string value as normal
19
- enrichedQuery[key] = string_templates_1.processStringSync(fields[key], parameters, {
19
+ enrichedQuery[key] = (0, string_templates_1.processStringSync)(fields[key], parameters, {
20
20
  noEscaping: true,
21
21
  noHelpers: true,
22
22
  escapeNewlines: true,
@@ -47,7 +47,7 @@ function interpolateSQL(fields, parameters, integration) {
47
47
  if (!sql || typeof sql !== "string") {
48
48
  return fields;
49
49
  }
50
- const bindings = string_templates_1.findHBSBlocks(sql);
50
+ const bindings = (0, string_templates_1.findHBSBlocks)(sql);
51
51
  let variables = [], arrays = [];
52
52
  for (let binding of bindings) {
53
53
  // look for array/list operations in the SQL statement, which will need handled later
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const datasource_1 = require("../definitions/datasource");
16
+ const ioredis_1 = __importDefault(require("ioredis"));
17
+ var RedisModule;
18
+ (function (RedisModule) {
19
+ const SCHEMA = {
20
+ docs: "https://redis.io/docs/",
21
+ description: "",
22
+ friendlyName: "Redis",
23
+ datasource: {
24
+ host: {
25
+ type: "string",
26
+ required: true,
27
+ default: "localhost",
28
+ },
29
+ port: {
30
+ type: "number",
31
+ required: true,
32
+ default: 6379,
33
+ },
34
+ username: {
35
+ type: "string",
36
+ required: false,
37
+ },
38
+ password: {
39
+ type: "password",
40
+ required: false,
41
+ },
42
+ },
43
+ query: {
44
+ create: {
45
+ type: datasource_1.QueryTypes.FIELDS,
46
+ fields: {
47
+ key: {
48
+ type: datasource_1.DatasourceFieldTypes.STRING,
49
+ required: true,
50
+ },
51
+ value: {
52
+ type: datasource_1.DatasourceFieldTypes.STRING,
53
+ required: true,
54
+ },
55
+ ttl: {
56
+ type: datasource_1.DatasourceFieldTypes.NUMBER,
57
+ },
58
+ },
59
+ },
60
+ read: {
61
+ readable: true,
62
+ type: datasource_1.QueryTypes.FIELDS,
63
+ fields: {
64
+ key: {
65
+ type: datasource_1.DatasourceFieldTypes.STRING,
66
+ required: true,
67
+ },
68
+ },
69
+ },
70
+ delete: {
71
+ type: datasource_1.QueryTypes.FIELDS,
72
+ fields: {
73
+ key: {
74
+ type: datasource_1.DatasourceFieldTypes.STRING,
75
+ required: true,
76
+ },
77
+ },
78
+ },
79
+ command: {
80
+ readable: true,
81
+ displayName: "Redis Command",
82
+ type: datasource_1.QueryTypes.JSON,
83
+ },
84
+ },
85
+ };
86
+ class RedisIntegration {
87
+ constructor(config) {
88
+ this.config = config;
89
+ this.client = new ioredis_1.default({
90
+ host: this.config.host,
91
+ port: this.config.port,
92
+ username: this.config.username,
93
+ password: this.config.password,
94
+ });
95
+ }
96
+ disconnect() {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ this.client.disconnect();
99
+ });
100
+ }
101
+ redisContext(query) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ try {
104
+ return yield query();
105
+ }
106
+ catch (err) {
107
+ throw new Error(`Redis error: ${err}`);
108
+ }
109
+ finally {
110
+ this.disconnect();
111
+ }
112
+ });
113
+ }
114
+ create(query) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
117
+ const response = yield this.client.set(query.key, query.value);
118
+ if (query.ttl) {
119
+ yield this.client.expire(query.key, query.ttl);
120
+ }
121
+ return response;
122
+ }));
123
+ });
124
+ }
125
+ read(query) {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
128
+ const response = yield this.client.get(query.key);
129
+ return response;
130
+ }));
131
+ });
132
+ }
133
+ delete(query) {
134
+ return __awaiter(this, void 0, void 0, function* () {
135
+ return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
136
+ const response = yield this.client.del(query.key);
137
+ return response;
138
+ }));
139
+ });
140
+ }
141
+ command(query) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ return this.redisContext(() => __awaiter(this, void 0, void 0, function* () {
144
+ const commands = query.json.trim().split(" ");
145
+ const pipeline = this.client.pipeline([commands]);
146
+ const result = yield pipeline.exec();
147
+ return {
148
+ response: result[0][1],
149
+ };
150
+ }));
151
+ });
152
+ }
153
+ }
154
+ module.exports = {
155
+ schema: SCHEMA,
156
+ integration: RedisIntegration,
157
+ };
158
+ })(RedisModule || (RedisModule = {}));
@@ -149,7 +149,7 @@ var RestModule;
149
149
  // Check if a pagination cursor exists in the response
150
150
  let nextCursor = null;
151
151
  if (pagination === null || pagination === void 0 ? void 0 : pagination.responseParam) {
152
- nextCursor = lodash_1.get(data, pagination.responseParam);
152
+ nextCursor = (0, lodash_1.get)(data, pagination.responseParam);
153
153
  }
154
154
  return {
155
155
  data,
@@ -8,7 +8,7 @@ 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 { getUserRoleHierarchy, getRequiredResourceRole, BUILTIN_ROLE_IDS, } = require("@budibase/backend-core/roles");
11
+ const roles_1 = require("@budibase/backend-core/roles");
12
12
  const { PermissionTypes, PermissionLevels, doesHaveBasePermission, } = require("@budibase/backend-core/permissions");
13
13
  const builderMiddleware = require("./builder");
14
14
  const { isWebhookEndpoint } = require("./utils");
@@ -38,15 +38,15 @@ const checkAuthorized = (ctx, resourceRoles, permType, permLevel) => __awaiter(v
38
38
  });
39
39
  const checkAuthorizedResource = (ctx, resourceRoles, permType, permLevel) => __awaiter(void 0, void 0, void 0, function* () {
40
40
  // get the user's roles
41
- const roleId = ctx.roleId || BUILTIN_ROLE_IDS.PUBLIC;
42
- const userRoles = yield getUserRoleHierarchy(roleId, {
41
+ const roleId = ctx.roleId || roles_1.BUILTIN_ROLE_IDS.PUBLIC;
42
+ const userRoles = yield (0, roles_1.getUserRoleHierarchy)(roleId, {
43
43
  idOnly: false,
44
44
  });
45
45
  const permError = "User does not have permission";
46
46
  // check if the user has the required role
47
47
  if (resourceRoles.length > 0) {
48
48
  // deny access if the user doesn't have the required resource role
49
- const found = userRoles.find(role => resourceRoles.indexOf(role._id) !== -1);
49
+ const found = userRoles.find((role) => resourceRoles.indexOf(role._id) !== -1);
50
50
  if (!found) {
51
51
  ctx.throw(403, permError);
52
52
  }
@@ -56,53 +56,53 @@ const checkAuthorizedResource = (ctx, resourceRoles, permType, permLevel) => __a
56
56
  ctx.throw(403, permError);
57
57
  }
58
58
  });
59
- module.exports =
60
- (permType, permLevel = null, opts = { schema: false }) => (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
61
- // webhooks don't need authentication, each webhook unique
62
- // also internal requests (between services) don't need authorized
63
- if (isWebhookEndpoint(ctx) || ctx.internal) {
64
- return next();
65
- }
66
- if (!ctx.user) {
67
- return ctx.throw(403, "No user info found");
68
- }
69
- // check general builder stuff, this middleware is a good way
70
- // to find API endpoints which are builder focused
71
- yield builderMiddleware(ctx, permType);
72
- // get the resource roles
73
- let resourceRoles = [], otherLevelRoles;
74
- const otherLevel = permLevel === PermissionLevels.READ
75
- ? PermissionLevels.WRITE
76
- : PermissionLevels.READ;
77
- const appId = getAppId();
78
- if (appId && hasResource(ctx)) {
79
- resourceRoles = yield getRequiredResourceRole(permLevel, ctx);
80
- if (opts && opts.schema) {
81
- otherLevelRoles = yield getRequiredResourceRole(otherLevel, ctx);
82
- }
83
- }
84
- // if the resource is public, proceed
85
- if (resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC) ||
86
- (otherLevelRoles && otherLevelRoles.includes(BUILTIN_ROLE_IDS.PUBLIC))) {
87
- return next();
88
- }
89
- // check authenticated
90
- if (!ctx.isAuthenticated) {
91
- return ctx.throw(403, "Session not authenticated");
59
+ module.exports = (permType, permLevel = null, opts = { schema: false }) => (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
60
+ // webhooks don't need authentication, each webhook unique
61
+ // also internal requests (between services) don't need authorized
62
+ if (isWebhookEndpoint(ctx) || ctx.internal) {
63
+ return next();
64
+ }
65
+ if (!ctx.user) {
66
+ return ctx.throw(403, "No user info found");
67
+ }
68
+ // check general builder stuff, this middleware is a good way
69
+ // to find API endpoints which are builder focused
70
+ yield builderMiddleware(ctx, permType);
71
+ // get the resource roles
72
+ let resourceRoles = [];
73
+ let otherLevelRoles = [];
74
+ const otherLevel = permLevel === PermissionLevels.READ
75
+ ? PermissionLevels.WRITE
76
+ : PermissionLevels.READ;
77
+ const appId = getAppId();
78
+ if (appId && hasResource(ctx)) {
79
+ resourceRoles = yield (0, roles_1.getRequiredResourceRole)(permLevel, ctx);
80
+ if (opts && opts.schema) {
81
+ otherLevelRoles = yield (0, roles_1.getRequiredResourceRole)(otherLevel, ctx);
92
82
  }
93
- try {
94
- // check authorized
95
- yield checkAuthorized(ctx, resourceRoles, permType, permLevel);
83
+ }
84
+ // if the resource is public, proceed
85
+ if (resourceRoles.includes(roles_1.BUILTIN_ROLE_IDS.PUBLIC) ||
86
+ (otherLevelRoles && otherLevelRoles.includes(roles_1.BUILTIN_ROLE_IDS.PUBLIC))) {
87
+ return next();
88
+ }
89
+ // check authenticated
90
+ if (!ctx.isAuthenticated) {
91
+ return ctx.throw(403, "Session not authenticated");
92
+ }
93
+ try {
94
+ // check authorized
95
+ yield checkAuthorized(ctx, resourceRoles, permType, permLevel);
96
+ }
97
+ catch (err) {
98
+ // this is a schema, check if
99
+ if (opts && opts.schema && permLevel) {
100
+ yield checkAuthorized(ctx, otherLevelRoles, permType, otherLevel);
96
101
  }
97
- catch (err) {
98
- // this is a schema, check if
99
- if (opts && opts.schema && permLevel) {
100
- yield checkAuthorized(ctx, otherLevelRoles, permType, otherLevel);
101
- }
102
- else {
103
- throw err;
104
- }
102
+ else {
103
+ throw err;
105
104
  }
106
- // csrf protection
107
- return csrf(ctx, next);
108
- });
105
+ }
106
+ // csrf protection
107
+ return csrf(ctx, next);
108
+ });
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const { getAppIdFromCtx, setCookie, getCookie, clearCookie, } = require("@budibase/backend-core/utils");
12
- const { Cookies } = require("@budibase/backend-core/constants");
12
+ const { Cookies, Headers } = require("@budibase/backend-core/constants");
13
13
  const { getRole } = require("@budibase/backend-core/roles");
14
14
  const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
15
15
  const { generateUserMetadataID, isDevAppID } = require("../db/utils");
@@ -64,6 +64,20 @@ module.exports = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
64
64
  appId = requestAppId;
65
65
  // retrieving global user gets the right role
66
66
  roleId = globalUser.roleId || roleId;
67
+ // Allow builders to specify their role via a header
68
+ const isBuilder = globalUser && globalUser.builder && globalUser.builder.global;
69
+ const isDevApp = appId && isDevAppID(appId);
70
+ const roleHeader = ctx.request && ctx.request.headers[Headers.PREVIEW_ROLE];
71
+ if (isBuilder && isDevApp && roleHeader) {
72
+ // Ensure the role is valid by ensuring a definition exists
73
+ try {
74
+ yield getRole(roleHeader);
75
+ roleId = roleHeader;
76
+ }
77
+ catch (error) {
78
+ // Swallow error and do nothing
79
+ }
80
+ }
67
81
  }
68
82
  // nothing more to do
69
83
  if (!appId) {
@@ -38,7 +38,7 @@ const run = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
38
38
  },
39
39
  },
40
40
  };
41
- metadata.url = application_1.getAppUrl(context);
41
+ metadata.url = (0, application_1.getAppUrl)(context);
42
42
  console.log(`Adding url to app: ${metadata.url}`);
43
43
  yield appDb.put(metadata);
44
44
  }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.run = void 0;
36
+ const { createUserBuildersView } = require("@budibase/backend-core/db");
37
+ const syncDevelopers = __importStar(require("./usageQuotas/syncDevelopers"));
38
+ /**
39
+ * Date:
40
+ * March 2022
41
+ *
42
+ * Description:
43
+ * Create the builder users view and sync the developer count
44
+ */
45
+ const run = (db) => __awaiter(void 0, void 0, void 0, function* () {
46
+ yield createUserBuildersView(db);
47
+ yield syncDevelopers.run();
48
+ });
49
+ exports.run = run;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.run = void 0;
36
+ const syncPublishedApps = __importStar(require("./usageQuotas/syncPublishedApps"));
37
+ /**
38
+ * Date:
39
+ * March 2022
40
+ *
41
+ * Description:
42
+ * Sync the published apps count
43
+ */
44
+ const run = (db) => __awaiter(void 0, void 0, void 0, function* () {
45
+ yield syncPublishedApps.run();
46
+ });
47
+ exports.run = run;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -42,7 +46,7 @@ const syncRows = __importStar(require("./usageQuotas/syncRows"));
42
46
  * weren't being decremented correctly.
43
47
  */
44
48
  const run = () => __awaiter(void 0, void 0, void 0, function* () {
45
- yield usageQuotas_1.runQuotaMigration(() => __awaiter(void 0, void 0, void 0, function* () {
49
+ yield (0, usageQuotas_1.runQuotaMigration)(() => __awaiter(void 0, void 0, void 0, function* () {
46
50
  yield syncApps.run();
47
51
  yield syncRows.run();
48
52
  }));
@@ -10,11 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.runQuotaMigration = void 0;
13
- const { useQuotas } = require("../../../utilities/usageQuota");
14
13
  const runQuotaMigration = (migration) => __awaiter(void 0, void 0, void 0, function* () {
15
- if (!useQuotas()) {
16
- return;
17
- }
18
14
  yield migration();
19
15
  });
20
16
  exports.runQuotaMigration = runQuotaMigration;
@@ -12,18 +12,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.run = void 0;
13
13
  const tenancy_1 = require("@budibase/backend-core/tenancy");
14
14
  const db_1 = require("@budibase/backend-core/db");
15
- const usageQuota_1 = require("../../../utilities/usageQuota");
15
+ const pro_1 = require("@budibase/pro");
16
16
  const run = () => __awaiter(void 0, void 0, void 0, function* () {
17
- const db = tenancy_1.getGlobalDB();
18
17
  // get app count
19
18
  // @ts-ignore
20
- const devApps = yield db_1.getAllApps({ dev: true });
19
+ const devApps = yield (0, db_1.getAllApps)({ dev: true });
21
20
  const appCount = devApps ? devApps.length : 0;
22
21
  // sync app count
23
- const tenantId = tenancy_1.getTenantId();
22
+ const tenantId = (0, tenancy_1.getTenantId)();
24
23
  console.log(`[Tenant: ${tenantId}] Syncing app count: ${appCount}`);
25
- const usageDoc = yield usageQuota_1.getUsageQuotaDoc(db);
26
- usageDoc.usageQuota.apps = appCount;
27
- yield db.put(usageDoc);
24
+ yield pro_1.quotas.setUsage(appCount, pro_1.StaticQuotaName.APPS, pro_1.QuotaUsageType.STATIC);
28
25
  });
29
26
  exports.run = run;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.run = void 0;
13
+ const tenancy_1 = require("@budibase/backend-core/tenancy");
14
+ const backend_core_1 = require("@budibase/backend-core");
15
+ const pro_1 = require("@budibase/pro");
16
+ const run = () => __awaiter(void 0, void 0, void 0, function* () {
17
+ // get developer count
18
+ const developerCount = yield backend_core_1.utils.getBuildersCount();
19
+ // sync developer count
20
+ const tenantId = (0, tenancy_1.getTenantId)();
21
+ console.log(`[Tenant: ${tenantId}] Syncing developer count: ${developerCount}`);
22
+ yield pro_1.quotas.setUsage(developerCount, pro_1.StaticQuotaName.DEVELOPERS, pro_1.QuotaUsageType.STATIC);
23
+ });
24
+ exports.run = run;