@budibase/server 1.0.105-alpha.22 → 1.0.105-alpha.25

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 (294) hide show
  1. package/builder/assets/{index.fb599536.js → index.ad3c30dc.js} +150 -147
  2. package/builder/assets/{index.b7e0672d.css → index.e3fb1cb4.css} +2 -2
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +523 -1570
  5. package/coverage/coverage-final.json +27 -43
  6. package/coverage/lcov-report/api/controllers/analytics.js.html +8 -3
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +9 -4
  8. package/coverage/lcov-report/api/controllers/auth.js.html +8 -3
  9. package/coverage/lcov-report/api/controllers/automation.js.html +8 -3
  10. package/coverage/lcov-report/api/controllers/backup.js.html +8 -3
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -3
  12. package/coverage/lcov-report/api/controllers/component.js.html +8 -3
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +11 -6
  14. package/coverage/lcov-report/api/controllers/dev.js.html +8 -3
  15. package/coverage/lcov-report/api/controllers/index.html +16 -26
  16. package/coverage/lcov-report/api/controllers/integration.js.html +8 -3
  17. package/coverage/lcov-report/api/controllers/layout.js.html +8 -3
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +8 -3
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +8 -3
  20. package/coverage/lcov-report/api/controllers/permission.js.html +8 -3
  21. package/coverage/lcov-report/api/controllers/query/index.html +16 -26
  22. package/coverage/lcov-report/api/controllers/query/validation.js.html +8 -3
  23. package/coverage/lcov-report/api/controllers/role.js.html +10 -5
  24. package/coverage/lcov-report/api/controllers/routing.js.html +9 -4
  25. package/coverage/lcov-report/api/controllers/row/external.js.html +8 -3
  26. package/coverage/lcov-report/api/controllers/row/index.html +25 -35
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +32 -24
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +21 -16
  29. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -19
  30. package/coverage/lcov-report/api/controllers/row/utils.js.html +33 -19
  31. package/coverage/lcov-report/api/controllers/screen.js.html +9 -4
  32. package/coverage/lcov-report/api/controllers/script.js.html +8 -3
  33. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +52 -47
  34. package/coverage/lcov-report/api/controllers/table/external.js.html +8 -3
  35. package/coverage/lcov-report/api/controllers/table/index.html +17 -42
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +20 -15
  37. package/coverage/lcov-report/api/controllers/templates.js.html +8 -3
  38. package/coverage/lcov-report/api/controllers/user.js.html +8 -3
  39. package/coverage/lcov-report/api/controllers/view/exporters.js.html +8 -3
  40. package/coverage/lcov-report/api/controllers/view/index.html +8 -3
  41. package/coverage/lcov-report/api/controllers/view/index.js.html +10 -5
  42. package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -3
  43. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -3
  44. package/coverage/lcov-report/api/controllers/webhook.js.html +10 -5
  45. package/coverage/lcov-report/api/index.html +18 -13
  46. package/coverage/lcov-report/api/index.js.html +28 -8
  47. package/coverage/lcov-report/api/routes/analytics.js.html +8 -3
  48. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -3
  49. package/coverage/lcov-report/api/routes/auth.js.html +8 -3
  50. package/coverage/lcov-report/api/routes/automation.js.html +8 -3
  51. package/coverage/lcov-report/api/routes/backup.js.html +8 -3
  52. package/coverage/lcov-report/api/routes/cloud.js.html +8 -3
  53. package/coverage/lcov-report/api/routes/component.js.html +8 -3
  54. package/coverage/lcov-report/api/routes/datasource.js.html +8 -3
  55. package/coverage/lcov-report/api/routes/deploy.js.html +8 -3
  56. package/coverage/lcov-report/api/routes/dev.js.html +9 -4
  57. package/coverage/lcov-report/api/routes/index.html +13 -68
  58. package/coverage/lcov-report/api/routes/integration.js.html +8 -3
  59. package/coverage/lcov-report/api/routes/layout.js.html +8 -3
  60. package/coverage/lcov-report/api/routes/metadata.js.html +8 -3
  61. package/coverage/lcov-report/api/routes/migrations.js.html +8 -3
  62. package/coverage/lcov-report/api/routes/permission.js.html +8 -3
  63. package/coverage/lcov-report/api/routes/query.js.html +8 -3
  64. package/coverage/lcov-report/api/routes/role.js.html +8 -3
  65. package/coverage/lcov-report/api/routes/routing.js.html +8 -3
  66. package/coverage/lcov-report/api/routes/screen.js.html +8 -3
  67. package/coverage/lcov-report/api/routes/script.js.html +8 -3
  68. package/coverage/lcov-report/api/routes/table.js.html +8 -3
  69. package/coverage/lcov-report/api/routes/templates.js.html +8 -3
  70. package/coverage/lcov-report/api/routes/user.js.html +8 -3
  71. package/coverage/lcov-report/api/routes/utils/index.html +8 -3
  72. package/coverage/lcov-report/api/routes/utils/validators.js.html +8 -3
  73. package/coverage/lcov-report/api/routes/view.js.html +8 -3
  74. package/coverage/lcov-report/api/routes/webhook.js.html +8 -3
  75. package/coverage/lcov-report/automations/actions.js.html +9 -4
  76. package/coverage/lcov-report/automations/automationUtils.js.html +20 -15
  77. package/coverage/lcov-report/automations/bullboard.js.html +8 -3
  78. package/coverage/lcov-report/automations/index.html +16 -26
  79. package/coverage/lcov-report/automations/index.js.html +8 -3
  80. package/coverage/lcov-report/automations/steps/bash.js.html +8 -3
  81. package/coverage/lcov-report/automations/steps/delay.js.html +8 -3
  82. package/coverage/lcov-report/automations/steps/discord.js.html +8 -3
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +8 -3
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +8 -3
  85. package/coverage/lcov-report/automations/steps/filter.js.html +8 -3
  86. package/coverage/lcov-report/automations/steps/index.html +16 -41
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +8 -3
  88. package/coverage/lcov-report/automations/steps/loop.js.html +8 -3
  89. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +9 -4
  90. package/coverage/lcov-report/automations/steps/queryRows.js.html +9 -4
  91. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +8 -3
  92. package/coverage/lcov-report/automations/steps/serverLog.js.html +8 -3
  93. package/coverage/lcov-report/automations/steps/slack.js.html +8 -3
  94. package/coverage/lcov-report/automations/steps/updateRow.js.html +8 -3
  95. package/coverage/lcov-report/automations/steps/utils.js.html +14 -9
  96. package/coverage/lcov-report/automations/steps/zapier.js.html +8 -3
  97. package/coverage/lcov-report/automations/triggerInfo/app.js.html +8 -3
  98. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +8 -3
  99. package/coverage/lcov-report/automations/triggerInfo/index.html +8 -3
  100. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -3
  101. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +8 -3
  102. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +8 -3
  103. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +8 -3
  104. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +8 -3
  105. package/coverage/lcov-report/automations/triggers.js.html +16 -11
  106. package/coverage/lcov-report/block-navigation.js +8 -0
  107. package/coverage/lcov-report/constants/index.html +8 -3
  108. package/coverage/lcov-report/constants/index.js.html +35 -30
  109. package/coverage/lcov-report/constants/layouts.js.html +8 -3
  110. package/coverage/lcov-report/constants/screens.js.html +8 -3
  111. package/coverage/lcov-report/db/client.js.html +26 -21
  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 +10 -5
  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 +83 -78
  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 +122 -117
  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 +11 -6
  131. package/coverage/lcov-report/middleware/index.html +16 -41
  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 +55 -50
  139. package/coverage/lcov-report/threads/index.html +16 -26
  140. package/coverage/lcov-report/threads/query.js.html +10 -5
  141. package/coverage/lcov-report/threads/utils.js.html +11 -6
  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 +46 -41
  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 +45 -40
  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 +762 -2600
  165. package/dist/api/controllers/application.js +138 -70
  166. package/dist/api/controllers/deploy/index.js +64 -35
  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/table/internal.js +40 -34
  180. package/dist/api/controllers/table/utils.js +271 -229
  181. package/dist/api/index.js +5 -0
  182. package/dist/api/routes/application.js +39 -13
  183. package/dist/api/routes/index.js +61 -56
  184. package/dist/api/routes/public/index.js +6 -9
  185. package/dist/api/routes/public/queries.js +1 -1
  186. package/dist/api/routes/public/rows.js +1 -1
  187. package/dist/api/routes/public/tables.js +3 -3
  188. package/dist/api/routes/public/users.js +1 -1
  189. package/dist/api/routes/row.js +43 -17
  190. package/dist/api/routes/static.js +40 -13
  191. package/dist/api/routes/tests/utilities/TestFunctions.js +62 -26
  192. package/dist/app.js +11 -4
  193. package/dist/automations/steps/createRow.js +12 -12
  194. package/dist/automations/steps/deleteRow.js +13 -16
  195. package/dist/automations/tests/utilities/index.js +0 -2
  196. package/dist/automations/utils.js +187 -132
  197. package/dist/environment.js +0 -2
  198. package/dist/integrations/base/sql.js +2 -2
  199. package/dist/integrations/base/sqlTable.js +2 -2
  200. package/dist/integrations/googlesheets.js +1 -1
  201. package/dist/integrations/microsoftSqlServer.js +8 -8
  202. package/dist/integrations/mysql.js +9 -9
  203. package/dist/integrations/oracle.js +7 -7
  204. package/dist/integrations/postgres.js +7 -7
  205. package/dist/integrations/rest.js +1 -1
  206. package/dist/middleware/authorized.js +51 -51
  207. package/dist/migrations/functions/appUrls.js +1 -1
  208. package/dist/migrations/functions/developerQuota.js +49 -0
  209. package/dist/migrations/functions/publishedAppsQuota.js +47 -0
  210. package/dist/migrations/functions/quotas1.js +6 -2
  211. package/dist/migrations/functions/usageQuotas/index.js +0 -4
  212. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -7
  213. package/dist/migrations/functions/usageQuotas/syncDevelopers.js +24 -0
  214. package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +26 -0
  215. package/dist/migrations/functions/usageQuotas/syncRows.js +5 -8
  216. package/dist/migrations/index.js +17 -1
  217. package/dist/package.json +10 -8
  218. package/dist/threads/index.js +35 -8
  219. package/dist/tsconfig.build.tsbuildinfo +1 -0
  220. package/dist/utilities/queue/inMemoryQueue.js +6 -1
  221. package/nodemon.json +1 -1
  222. package/package.json +11 -9
  223. package/scripts/dev/manage.js +2 -0
  224. package/src/api/controllers/{application.js → application.ts} +103 -44
  225. package/src/api/controllers/deploy/{index.js → index.ts} +45 -28
  226. package/src/api/controllers/public/applications.ts +2 -2
  227. package/src/api/controllers/public/queries.ts +1 -1
  228. package/src/api/controllers/public/rows.ts +1 -1
  229. package/src/api/controllers/query/{index.js → index.ts} +51 -48
  230. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  231. package/src/api/controllers/row/{index.js → index.ts} +24 -17
  232. package/src/api/controllers/row/internal.js +2 -1
  233. package/src/api/controllers/row/utils.js +4 -1
  234. package/src/api/controllers/table/{internal.js → internal.ts} +27 -24
  235. package/src/api/controllers/table/{utils.js → utils.ts} +86 -69
  236. package/src/api/index.js +5 -0
  237. package/src/api/routes/{application.js → application.ts} +8 -14
  238. package/src/api/routes/index.ts +60 -0
  239. package/src/api/routes/public/index.ts +1 -4
  240. package/src/api/routes/{row.js → row.ts} +7 -15
  241. package/src/api/routes/{static.js → static.ts} +11 -11
  242. package/src/api/routes/tests/utilities/{TestFunctions.js → TestFunctions.ts} +42 -25
  243. package/src/app.ts +1 -2
  244. package/src/automations/steps/{createRow.js → createRow.ts} +9 -15
  245. package/src/automations/steps/{deleteRow.js → deleteRow.ts} +10 -16
  246. package/src/automations/tests/automation.spec.js +0 -1
  247. package/src/automations/tests/{createRow.spec.js → createRow.spec.ts} +4 -15
  248. package/src/automations/tests/{deleteRow.spec.js → deleteRow.spec.ts} +3 -5
  249. package/src/automations/tests/utilities/index.js +0 -2
  250. package/src/automations/{utils.js → utils.ts} +39 -27
  251. package/src/environment.js +0 -2
  252. package/src/middleware/{authorized.js → authorized.ts} +20 -14
  253. package/src/migrations/functions/developerQuota.ts +15 -0
  254. package/src/migrations/functions/publishedAppsQuota.ts +13 -0
  255. package/src/migrations/functions/tests/quotas1.spec.js +0 -2
  256. package/src/migrations/functions/usageQuotas/index.ts +0 -5
  257. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -6
  258. package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
  259. package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
  260. package/src/migrations/functions/usageQuotas/syncRows.ts +3 -6
  261. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +32 -0
  262. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +38 -0
  263. package/src/migrations/index.ts +13 -1
  264. package/src/module.d.ts +4 -0
  265. package/src/threads/{index.js → index.ts} +14 -12
  266. package/src/utilities/queue/inMemoryQueue.js +7 -1
  267. package/tsconfig.build.json +10 -0
  268. package/tsconfig.json +2 -2
  269. package/coverage/lcov-report/api/controllers/application.js.html +0 -1430
  270. package/coverage/lcov-report/api/controllers/query/index.js.html +0 -713
  271. package/coverage/lcov-report/api/controllers/row/index.js.html +0 -524
  272. package/coverage/lcov-report/api/controllers/table/internal.js.html +0 -548
  273. package/coverage/lcov-report/api/controllers/table/utils.js.html +0 -1331
  274. package/coverage/lcov-report/api/routes/application.js.html +0 -179
  275. package/coverage/lcov-report/api/routes/index.js.html +0 -266
  276. package/coverage/lcov-report/api/routes/row.js.html +0 -908
  277. package/coverage/lcov-report/api/routes/static.js.html +0 -245
  278. package/coverage/lcov-report/automations/steps/createRow.js.html +0 -380
  279. package/coverage/lcov-report/automations/steps/deleteRow.js.html +0 -347
  280. package/coverage/lcov-report/automations/utils.js.html +0 -662
  281. package/coverage/lcov-report/middleware/authorized.js.html +0 -458
  282. package/coverage/lcov-report/middleware/usageQuota.js.html +0 -572
  283. package/coverage/lcov-report/threads/index.js.html +0 -278
  284. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  285. package/dist/middleware/usageQuota.js +0 -154
  286. package/dist/tsconfig.tsbuildinfo +0 -1
  287. package/dist/utilities/usageQuota/index.js +0 -86
  288. package/src/api/routes/index.js +0 -62
  289. package/src/middleware/tests/usageQuota.spec.js +0 -134
  290. package/src/middleware/usageQuota.js +0 -164
  291. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
  292. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
  293. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  294. package/src/utilities/usageQuota/index.js +0 -93
@@ -0,0 +1,19 @@
1
+ import { getTenantId } from "@budibase/backend-core/tenancy"
2
+ import { utils } from "@budibase/backend-core"
3
+ import { quotas, QuotaUsageType, StaticQuotaName } from "@budibase/pro"
4
+
5
+ export const run = async () => {
6
+ // get developer count
7
+ const developerCount = await utils.getBuildersCount()
8
+
9
+ // sync developer count
10
+ const tenantId = getTenantId()
11
+ console.log(
12
+ `[Tenant: ${tenantId}] Syncing developer count: ${developerCount}`
13
+ )
14
+ await quotas.setUsage(
15
+ developerCount,
16
+ StaticQuotaName.DEVELOPERS,
17
+ QuotaUsageType.STATIC
18
+ )
19
+ }
@@ -0,0 +1,21 @@
1
+ import { getTenantId } from "@budibase/backend-core/tenancy"
2
+ import { getAllApps } from "@budibase/backend-core/db"
3
+ import { quotas, QuotaUsageType, StaticQuotaName } from "@budibase/pro"
4
+
5
+ export const run = async () => {
6
+ // get app count
7
+ const opts: any = { dev: false }
8
+ const prodApps = await getAllApps(opts)
9
+ const prodAppCount = prodApps ? prodApps.length : 0
10
+
11
+ // sync app count
12
+ const tenantId = getTenantId()
13
+ console.log(
14
+ `[Tenant: ${tenantId}] Syncing published app count: ${prodAppCount}`
15
+ )
16
+ await quotas.setUsage(
17
+ prodAppCount,
18
+ StaticQuotaName.PUBLISHED_APPS,
19
+ QuotaUsageType.STATIC
20
+ )
21
+ }
@@ -1,10 +1,9 @@
1
- import { getGlobalDB, getTenantId } from "@budibase/backend-core/tenancy"
1
+ import { getTenantId } from "@budibase/backend-core/tenancy"
2
2
  import { getAllApps } from "@budibase/backend-core/db"
3
- import { getUsageQuotaDoc } from "../../../utilities/usageQuota"
4
3
  import { getUniqueRows } from "../../../utilities/usageQuota/rows"
4
+ import { quotas, QuotaUsageType, StaticQuotaName } from "@budibase/pro"
5
5
 
6
6
  export const run = async () => {
7
- const db = getGlobalDB()
8
7
  // get all rows in all apps
9
8
  // @ts-ignore
10
9
  const allApps = await getAllApps({ all: true })
@@ -16,7 +15,5 @@ export const run = async () => {
16
15
  // sync row count
17
16
  const tenantId = getTenantId()
18
17
  console.log(`[Tenant: ${tenantId}] Syncing row count: ${rowCount}`)
19
- const usageDoc = await getUsageQuotaDoc(db)
20
- usageDoc.usageQuota.rows = rowCount
21
- await db.put(usageDoc)
18
+ await quotas.setUsage(rowCount, StaticQuotaName.ROWS, QuotaUsageType.STATIC)
22
19
  }
@@ -0,0 +1,32 @@
1
+ import TestConfig from "../../../../tests/utilities/TestConfiguration"
2
+ import * as syncApps from "../syncApps"
3
+ import { quotas, QuotaUsageType, StaticQuotaName } from "@budibase/pro"
4
+
5
+ describe("syncApps", () => {
6
+ let config = new TestConfig(false)
7
+
8
+ beforeEach(async () => {
9
+ await config.init()
10
+ })
11
+
12
+ afterAll(config.end)
13
+
14
+ it("runs successfully", async () => {
15
+ // create the usage quota doc and mock usages
16
+ await quotas.getQuotaUsage()
17
+ await quotas.setUsage(3, StaticQuotaName.APPS, QuotaUsageType.STATIC)
18
+
19
+ let usageDoc = await quotas.getQuotaUsage()
20
+ expect(usageDoc.usageQuota.apps).toEqual(3)
21
+
22
+ // create an extra app to test the migration
23
+ await config.createApp("quota-test")
24
+
25
+ // migrate
26
+ await syncApps.run()
27
+
28
+ // assert the migration worked
29
+ usageDoc = await quotas.getQuotaUsage()
30
+ expect(usageDoc.usageQuota.apps).toEqual(2)
31
+ })
32
+ })
@@ -0,0 +1,38 @@
1
+ import TestConfig from "../../../../tests/utilities/TestConfiguration"
2
+ import * as syncRows from "../syncRows"
3
+ import { quotas, QuotaUsageType, StaticQuotaName } from "@budibase/pro"
4
+
5
+ describe("syncRows", () => {
6
+ let config = new TestConfig(false)
7
+
8
+ beforeEach(async () => {
9
+ await config.init()
10
+ })
11
+
12
+ afterAll(config.end)
13
+
14
+ it("runs successfully", async () => {
15
+ // create the usage quota doc and mock usages
16
+ await quotas.getQuotaUsage()
17
+ await quotas.setUsage(300, StaticQuotaName.ROWS, QuotaUsageType.STATIC)
18
+
19
+ let usageDoc = await quotas.getQuotaUsage()
20
+ expect(usageDoc.usageQuota.rows).toEqual(300)
21
+
22
+ // app 1
23
+ await config.createTable()
24
+ await config.createRow()
25
+ // app 2
26
+ await config.createApp("second-app")
27
+ await config.createTable()
28
+ await config.createRow()
29
+ await config.createRow()
30
+
31
+ // migrate
32
+ await syncRows.run()
33
+
34
+ // assert the migration worked
35
+ usageDoc = await quotas.getQuotaUsage()
36
+ expect(usageDoc.usageQuota.rows).toEqual(3)
37
+ })
38
+ })
@@ -8,6 +8,8 @@ const {
8
8
  import * as userEmailViewCasing from "./functions/userEmailViewCasing"
9
9
  import * as quota1 from "./functions/quotas1"
10
10
  import * as appUrls from "./functions/appUrls"
11
+ import * as developerQuota from "./functions/developerQuota"
12
+ import * as publishedAppsQuota from "./functions/publishedAppsQuota"
11
13
 
12
14
  export interface Migration {
13
15
  type: string
@@ -27,7 +29,7 @@ export interface Migration {
27
29
  */
28
30
  export interface MigrationOptions {
29
31
  tenantIds?: string[]
30
- forced?: {
32
+ force?: {
31
33
  [type: string]: string[]
32
34
  }
33
35
  }
@@ -49,6 +51,16 @@ export const MIGRATIONS: Migration[] = [
49
51
  opts: { all: true },
50
52
  fn: appUrls.run,
51
53
  },
54
+ {
55
+ type: MIGRATION_TYPES.GLOBAL,
56
+ name: "developer_quota",
57
+ fn: developerQuota.run,
58
+ },
59
+ {
60
+ type: MIGRATION_TYPES.GLOBAL,
61
+ name: "published_apps_quota",
62
+ fn: publishedAppsQuota.run,
63
+ },
52
64
  ]
53
65
 
54
66
  export const migrate = async (options?: MigrationOptions) => {
package/src/module.d.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  declare module "@budibase/backend-core"
2
2
  declare module "@budibase/backend-core/tenancy"
3
3
  declare module "@budibase/backend-core/db"
4
+ declare module "@budibase/backend-core/context"
5
+ declare module "@budibase/backend-core/cache"
6
+ declare module "@budibase/backend-core/permissions"
7
+ declare module "@budibase/backend-core/roles"
@@ -1,12 +1,12 @@
1
- const workerFarm = require("worker-farm")
2
- const env = require("../environment")
1
+ import workerFarm from "worker-farm"
2
+ import * as env from "../environment"
3
3
 
4
- const ThreadType = {
4
+ export const ThreadType = {
5
5
  QUERY: "query",
6
6
  AUTOMATION: "automation",
7
7
  }
8
8
 
9
- function typeToFile(type) {
9
+ function typeToFile(type: any) {
10
10
  let filename = null
11
11
  switch (type) {
12
12
  case ThreadType.QUERY:
@@ -21,8 +21,13 @@ function typeToFile(type) {
21
21
  return require.resolve(filename)
22
22
  }
23
23
 
24
- class Thread {
25
- constructor(type, opts = { timeoutMs: null, count: 1 }) {
24
+ export class Thread {
25
+ type: any
26
+ count: any
27
+ disableThreading: any
28
+ workers: any
29
+
30
+ constructor(type: any, opts: any = { timeoutMs: null, count: 1 }) {
26
31
  this.type = type
27
32
  this.count = opts.count ? opts.count : 1
28
33
  this.disableThreading =
@@ -31,7 +36,7 @@ class Thread {
31
36
  this.count === 0 ||
32
37
  env.isInThread()
33
38
  if (!this.disableThreading) {
34
- const workerOpts = {
39
+ const workerOpts: any = {
35
40
  autoStart: true,
36
41
  maxConcurrentWorkers: this.count,
37
42
  }
@@ -42,7 +47,7 @@ class Thread {
42
47
  }
43
48
  }
44
49
 
45
- run(data) {
50
+ run(data: any) {
46
51
  return new Promise((resolve, reject) => {
47
52
  let fncToCall
48
53
  // if in test then don't use threading
@@ -51,7 +56,7 @@ class Thread {
51
56
  } else {
52
57
  fncToCall = this.workers
53
58
  }
54
- fncToCall(data, (err, response) => {
59
+ fncToCall(data, (err: any, response: any) => {
55
60
  if (err) {
56
61
  reject(err)
57
62
  } else {
@@ -61,6 +66,3 @@ class Thread {
61
66
  })
62
67
  }
63
68
  }
64
-
65
- module.exports.Thread = Thread
66
- module.exports.ThreadType = ThreadType
@@ -66,7 +66,8 @@ class InMemoryQueue {
66
66
  * @param {object} msg A message to be transported over the queue, this should be
67
67
  * a JSON message as this is required by Bull.
68
68
  */
69
- add(msg) {
69
+ // eslint-disable-next-line no-unused-vars
70
+ add(msg, repeat) {
70
71
  if (typeof msg !== "object") {
71
72
  throw "Queue only supports carrying JSON."
72
73
  }
@@ -90,6 +91,11 @@ class InMemoryQueue {
90
91
  return []
91
92
  }
92
93
 
94
+ // eslint-disable-next-line no-unused-vars
95
+ removeJobs(pattern) {
96
+ // no-op
97
+ }
98
+
93
99
  /**
94
100
  * Implemented for tests
95
101
  */
@@ -0,0 +1,10 @@
1
+ {
2
+ // Used for building with tsc
3
+ "extends": "./tsconfig.json",
4
+ "exclude": [
5
+ "node_modules",
6
+ "**/*.json",
7
+ "**/*.spec.js",
8
+ "**/*.spec.ts"
9
+ ]
10
+ }
package/tsconfig.json CHANGED
@@ -19,7 +19,7 @@
19
19
  "exclude": [
20
20
  "node_modules",
21
21
  "**/*.json",
22
- "**/*.spec.ts",
23
- "**/*.spec.js"
22
+ "**/*.spec.js",
23
+ // "**/*.spec.ts" // don't exclude spec.ts files for editor support
24
24
  ]
25
25
  }