@budibase/server 1.0.105-alpha.21 → 1.0.105-alpha.24

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 (292) hide show
  1. package/builder/assets/{index.8d922c8c.js → index.06b1c616.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 +517 -1564
  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 +23 -33
  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 +20 -15
  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 +759 -2599
  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/table/internal.js +40 -34
  179. package/dist/api/controllers/table/utils.js +271 -229
  180. package/dist/api/index.js +5 -0
  181. package/dist/api/routes/application.js +39 -13
  182. package/dist/api/routes/index.js +61 -56
  183. package/dist/api/routes/public/index.js +6 -9
  184. package/dist/api/routes/public/queries.js +1 -1
  185. package/dist/api/routes/public/rows.js +1 -1
  186. package/dist/api/routes/public/tables.js +3 -3
  187. package/dist/api/routes/public/users.js +1 -1
  188. package/dist/api/routes/row.js +43 -17
  189. package/dist/api/routes/static.js +40 -13
  190. package/dist/api/routes/tests/utilities/TestFunctions.js +62 -26
  191. package/dist/app.js +11 -4
  192. package/dist/automations/steps/createRow.js +12 -12
  193. package/dist/automations/steps/deleteRow.js +13 -16
  194. package/dist/automations/tests/utilities/index.js +0 -2
  195. package/dist/automations/utils.js +187 -132
  196. package/dist/environment.js +0 -2
  197. package/dist/integrations/base/sql.js +2 -2
  198. package/dist/integrations/base/sqlTable.js +2 -2
  199. package/dist/integrations/googlesheets.js +1 -1
  200. package/dist/integrations/microsoftSqlServer.js +8 -8
  201. package/dist/integrations/mysql.js +9 -9
  202. package/dist/integrations/oracle.js +7 -7
  203. package/dist/integrations/postgres.js +7 -7
  204. package/dist/integrations/rest.js +1 -1
  205. package/dist/middleware/authorized.js +51 -51
  206. package/dist/migrations/functions/appUrls.js +1 -1
  207. package/dist/migrations/functions/developerQuota.js +49 -0
  208. package/dist/migrations/functions/publishedAppsQuota.js +47 -0
  209. package/dist/migrations/functions/quotas1.js +6 -2
  210. package/dist/migrations/functions/usageQuotas/index.js +0 -4
  211. package/dist/migrations/functions/usageQuotas/syncApps.js +4 -7
  212. package/dist/migrations/functions/usageQuotas/syncDevelopers.js +24 -0
  213. package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +26 -0
  214. package/dist/migrations/functions/usageQuotas/syncRows.js +5 -8
  215. package/dist/migrations/index.js +17 -1
  216. package/dist/package.json +10 -8
  217. package/dist/threads/index.js +35 -8
  218. package/dist/tsconfig.build.tsbuildinfo +1 -0
  219. package/dist/utilities/queue/inMemoryQueue.js +6 -1
  220. package/nodemon.json +1 -1
  221. package/package.json +11 -9
  222. package/scripts/dev/manage.js +2 -0
  223. package/src/api/controllers/{application.js → application.ts} +103 -44
  224. package/src/api/controllers/deploy/{index.js → index.ts} +45 -28
  225. package/src/api/controllers/public/applications.ts +2 -2
  226. package/src/api/controllers/public/queries.ts +1 -1
  227. package/src/api/controllers/public/rows.ts +1 -1
  228. package/src/api/controllers/query/{index.js → index.ts} +51 -48
  229. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  230. package/src/api/controllers/row/{index.js → index.ts} +24 -17
  231. package/src/api/controllers/row/internal.js +2 -1
  232. package/src/api/controllers/table/{internal.js → internal.ts} +27 -24
  233. package/src/api/controllers/table/{utils.js → utils.ts} +86 -69
  234. package/src/api/index.js +5 -0
  235. package/src/api/routes/{application.js → application.ts} +8 -14
  236. package/src/api/routes/index.ts +60 -0
  237. package/src/api/routes/public/index.ts +1 -4
  238. package/src/api/routes/{row.js → row.ts} +7 -15
  239. package/src/api/routes/{static.js → static.ts} +11 -11
  240. package/src/api/routes/tests/utilities/{TestFunctions.js → TestFunctions.ts} +42 -25
  241. package/src/app.ts +1 -2
  242. package/src/automations/steps/{createRow.js → createRow.ts} +9 -15
  243. package/src/automations/steps/{deleteRow.js → deleteRow.ts} +10 -16
  244. package/src/automations/tests/automation.spec.js +0 -1
  245. package/src/automations/tests/{createRow.spec.js → createRow.spec.ts} +4 -15
  246. package/src/automations/tests/{deleteRow.spec.js → deleteRow.spec.ts} +3 -5
  247. package/src/automations/tests/utilities/index.js +0 -2
  248. package/src/automations/{utils.js → utils.ts} +39 -27
  249. package/src/environment.js +0 -2
  250. package/src/middleware/{authorized.js → authorized.ts} +20 -14
  251. package/src/migrations/functions/developerQuota.ts +15 -0
  252. package/src/migrations/functions/publishedAppsQuota.ts +13 -0
  253. package/src/migrations/functions/tests/quotas1.spec.js +0 -2
  254. package/src/migrations/functions/usageQuotas/index.ts +0 -5
  255. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -6
  256. package/src/migrations/functions/usageQuotas/syncDevelopers.ts +19 -0
  257. package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +21 -0
  258. package/src/migrations/functions/usageQuotas/syncRows.ts +3 -6
  259. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +32 -0
  260. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +38 -0
  261. package/src/migrations/index.ts +13 -1
  262. package/src/module.d.ts +4 -0
  263. package/src/threads/{index.js → index.ts} +14 -12
  264. package/src/utilities/queue/inMemoryQueue.js +7 -1
  265. package/tsconfig.build.json +10 -0
  266. package/tsconfig.json +2 -2
  267. package/coverage/lcov-report/api/controllers/application.js.html +0 -1430
  268. package/coverage/lcov-report/api/controllers/query/index.js.html +0 -713
  269. package/coverage/lcov-report/api/controllers/row/index.js.html +0 -524
  270. package/coverage/lcov-report/api/controllers/table/internal.js.html +0 -548
  271. package/coverage/lcov-report/api/controllers/table/utils.js.html +0 -1331
  272. package/coverage/lcov-report/api/routes/application.js.html +0 -179
  273. package/coverage/lcov-report/api/routes/index.js.html +0 -266
  274. package/coverage/lcov-report/api/routes/row.js.html +0 -908
  275. package/coverage/lcov-report/api/routes/static.js.html +0 -245
  276. package/coverage/lcov-report/automations/steps/createRow.js.html +0 -380
  277. package/coverage/lcov-report/automations/steps/deleteRow.js.html +0 -347
  278. package/coverage/lcov-report/automations/utils.js.html +0 -662
  279. package/coverage/lcov-report/middleware/authorized.js.html +0 -458
  280. package/coverage/lcov-report/middleware/usageQuota.js.html +0 -572
  281. package/coverage/lcov-report/threads/index.js.html +0 -278
  282. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  283. package/dist/middleware/usageQuota.js +0 -154
  284. package/dist/tsconfig.tsbuildinfo +0 -1
  285. package/dist/utilities/usageQuota/index.js +0 -86
  286. package/src/api/routes/index.js +0 -62
  287. package/src/middleware/tests/usageQuota.spec.js +0 -134
  288. package/src/middleware/usageQuota.js +0 -164
  289. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
  290. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
  291. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  292. 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
  }