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..a9dff9d7c8 --- /dev/null +++ b/packages/server/src/migrations/functions/pluginCount.ts @@ -0,0 +1,12 @@ +import { tenancy, logging } from "@budibase/backend-core" +import { plugins } from "@budibase/pro" + +export const run = async () => { + 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..8fcdf1e311 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,16 @@ export const buildMigrations = () => { }) break } + case MigrationName.PLUGIN_COUNT: { + if (env.SELF_HOSTED) { + 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 { diff --git a/qa-core/src/tests/public-api/tables/rows.spec.ts b/qa-core/src/tests/public-api/tables/rows.spec.ts index 91df85e65c..38a813b093 100644 --- a/qa-core/src/tests/public-api/tables/rows.spec.ts +++ b/qa-core/src/tests/public-api/tables/rows.spec.ts @@ -32,7 +32,8 @@ describe("Public API - /rows endpoints", () => { expect(row._id).toBeDefined() }) - it("POST - Search rows", async () => { + // search really isn't supported + xit("POST - Search rows", async () => { const [response, rows] = await config.rows.search({ query: { string: {