diff --git a/packages/backend-core/src/migrations/definitions.ts b/packages/backend-core/src/migrations/definitions.ts index 0eea946be8..946fc3f364 100644 --- a/packages/backend-core/src/migrations/definitions.ts +++ b/packages/backend-core/src/migrations/definitions.ts @@ -33,4 +33,8 @@ export const DEFINITIONS: MigrationDefinition[] = [ type: MigrationType.GLOBAL, name: MigrationName.GLOBAL_INFO_SYNC_USERS, }, + { + type: MigrationType.GLOBAL, + name: MigrationName.PLUGIN_COUNT, + }, ] diff --git a/packages/server/src/migrations/functions/pluginCount.ts b/packages/server/src/migrations/functions/pluginCount.ts new file mode 100644 index 0000000000..873a0967f8 --- /dev/null +++ b/packages/server/src/migrations/functions/pluginCount.ts @@ -0,0 +1,17 @@ +import { tenancy, logging } from "@budibase/backend-core" +import { plugins } from "@budibase/pro" +import env from "../../environment" + +export const run = async () => { + // only a self hosted op + if (!env.SELF_HOSTED) { + return + } + try { + await tenancy.doInTenant(tenancy.DEFAULT_TENANT_ID, async () => { + await plugins.checkPluginQuotas() + }) + } catch (err) { + logging.logAlert("Failed to update plugin quotas", err) + } +} diff --git a/packages/server/src/migrations/index.ts b/packages/server/src/migrations/index.ts index bb691f1133..0e60df546f 100644 --- a/packages/server/src/migrations/index.ts +++ b/packages/server/src/migrations/index.ts @@ -7,6 +7,7 @@ import * as userEmailViewCasing from "./functions/userEmailViewCasing" import * as quota1 from "./functions/quotas1" import * as appUrls from "./functions/appUrls" import * as backfill from "./functions/backfill" +import * as pluginCount from "./functions/pluginCount" /** * Populate the migration function and additional configuration from @@ -68,6 +69,14 @@ export const buildMigrations = () => { }) break } + case MigrationName.PLUGIN_COUNT: { + serverMigrations.push({ + ...definition, + fn: pluginCount.run, + silent: !!env.SELF_HOSTED, + preventRetry: false, + }) + } } } diff --git a/packages/types/src/sdk/migrations.ts b/packages/types/src/sdk/migrations.ts index 7b36dfbbca..bf12c6c0ea 100644 --- a/packages/types/src/sdk/migrations.ts +++ b/packages/types/src/sdk/migrations.ts @@ -46,6 +46,7 @@ export enum MigrationName { EVENT_INSTALLATION_BACKFILL = "event_installation_backfill", GLOBAL_INFO_SYNC_USERS = "global_info_sync_users", PLATFORM_USERS_EMAIL_CASING = "platform_users_email_casing", + PLUGIN_COUNT = "plugin_count", } export interface MigrationDefinition {