From e4608640916336c51233eb24bae6f88dfb444e61 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Sat, 24 Sep 2022 12:10:09 +0100 Subject: [PATCH 1/3] Adding a migration for the plugin quotas to make sure they are always accurate in self host at startup. --- .../backend-core/src/migrations/definitions.ts | 4 ++++ .../src/migrations/functions/pluginCount.ts | 17 +++++++++++++++++ packages/server/src/migrations/index.ts | 9 +++++++++ packages/types/src/sdk/migrations.ts | 1 + 4 files changed, 31 insertions(+) create mode 100644 packages/server/src/migrations/functions/pluginCount.ts 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 { From e12a03d05f8464dde746fd7b0c73517f05549259 Mon Sep 17 00:00:00 2001 From: Michael Drury Date: Sat, 24 Sep 2022 16:55:22 +0100 Subject: [PATCH 2/3] PR comments. --- .../server/src/migrations/functions/pluginCount.ts | 5 ----- packages/server/src/migrations/index.ts | 14 ++++++++------ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/packages/server/src/migrations/functions/pluginCount.ts b/packages/server/src/migrations/functions/pluginCount.ts index 873a0967f8..a9dff9d7c8 100644 --- a/packages/server/src/migrations/functions/pluginCount.ts +++ b/packages/server/src/migrations/functions/pluginCount.ts @@ -1,12 +1,7 @@ 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() diff --git a/packages/server/src/migrations/index.ts b/packages/server/src/migrations/index.ts index 0e60df546f..8fcdf1e311 100644 --- a/packages/server/src/migrations/index.ts +++ b/packages/server/src/migrations/index.ts @@ -70,12 +70,14 @@ export const buildMigrations = () => { break } case MigrationName.PLUGIN_COUNT: { - serverMigrations.push({ - ...definition, - fn: pluginCount.run, - silent: !!env.SELF_HOSTED, - preventRetry: false, - }) + if (env.SELF_HOSTED) { + serverMigrations.push({ + ...definition, + fn: pluginCount.run, + silent: !!env.SELF_HOSTED, + preventRetry: false, + }) + } } } } From 31841d2a7b8bc96820092bf146163f62c99ee64c Mon Sep 17 00:00:00 2001 From: Michael Drury Date: Sat, 24 Sep 2022 19:39:19 +0100 Subject: [PATCH 3/3] x-ing the search test which should not work. --- qa-core/src/tests/public-api/tables/rows.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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: {