From 2f9baee2109f31f53a56acf01ff593e78bb41b2a Mon Sep 17 00:00:00 2001 From: Carlos Monastyrski Date: Tue, 15 Jul 2025 18:21:30 -0300 Subject: [PATCH] Removed cloud plan cache as it is handled on the license api --- .../ee/services/license/license-service.ts | 31 ------------------- backend/src/server/routes/index.ts | 1 - .../src/services/project/project-service.ts | 6 +--- 3 files changed, 1 insertion(+), 37 deletions(-) diff --git a/backend/src/ee/services/license/license-service.ts b/backend/src/ee/services/license/license-service.ts index 7e784d9ad..38edcf8e3 100644 --- a/backend/src/ee/services/license/license-service.ts +++ b/backend/src/ee/services/license/license-service.ts @@ -8,7 +8,6 @@ import { ForbiddenError } from "@casl/ability"; import { CronJob } from "cron"; import { Knex } from "knex"; -import { TKeyStoreFactory } from "@app/keystore/keystore"; import { getConfig } from "@app/lib/config/env"; import { verifyOfflineLicense } from "@app/lib/crypto"; import { NotFoundError } from "@app/lib/errors"; @@ -47,7 +46,6 @@ type TLicenseServiceFactoryDep = { orgDAL: Pick; permissionService: Pick; licenseDAL: TLicenseDALFactory; - keyStore: Pick; identityOrgMembershipDAL: TIdentityOrgDALFactory; projectDAL: TProjectDALFactory; }; @@ -57,14 +55,10 @@ export type TLicenseServiceFactory = ReturnType; const LICENSE_SERVER_CLOUD_LOGIN = "/api/auth/v1/license-server-login"; const LICENSE_SERVER_ON_PREM_LOGIN = "/api/auth/v1/license-login"; -const LICENSE_SERVER_CLOUD_PLAN_TTL = 5 * 60; // 5 mins -const FEATURE_CACHE_KEY = (orgId: string) => `infisical-cloud-plan-${orgId}`; - export const licenseServiceFactory = ({ orgDAL, permissionService, licenseDAL, - keyStore, identityOrgMembershipDAL, projectDAL }: TLicenseServiceFactoryDep) => { @@ -178,12 +172,6 @@ export const licenseServiceFactory = ({ logger.info(`getPlan: attempting to fetch plan for [orgId=${orgId}] [projectId=${projectId}]`); try { if (instanceType === InstanceType.Cloud) { - const cachedPlan = await keyStore.getItem(FEATURE_CACHE_KEY(orgId)); - if (cachedPlan) { - logger.info(`getPlan: plan fetched from cache [orgId=${orgId}] [projectId=${projectId}]`); - return JSON.parse(cachedPlan) as TFeatureSet; - } - const org = await orgDAL.findOrgById(orgId); if (!org) throw new NotFoundError({ message: `Organization with ID '${orgId}' not found` }); const { @@ -199,12 +187,6 @@ export const licenseServiceFactory = ({ const identityUsed = await licenseDAL.countOrgUsersAndIdentities(orgId); currentPlan.identitiesUsed = identityUsed; - await keyStore.setItemWithExpiry( - FEATURE_CACHE_KEY(org.id), - LICENSE_SERVER_CLOUD_PLAN_TTL, - JSON.stringify(currentPlan) - ); - return currentPlan; } } catch (error) { @@ -212,11 +194,6 @@ export const licenseServiceFactory = ({ error, `getPlan: encountered an error when fetching pan [orgId=${orgId}] [projectId=${projectId}] [error]` ); - await keyStore.setItemWithExpiry( - FEATURE_CACHE_KEY(orgId), - LICENSE_SERVER_CLOUD_PLAN_TTL, - JSON.stringify(onPremFeatures) - ); return onPremFeatures; } finally { logger.info(`getPlan: Process done for [orgId=${orgId}] [projectId=${projectId}]`); @@ -226,7 +203,6 @@ export const licenseServiceFactory = ({ const refreshPlan = async (orgId: string) => { if (instanceType === InstanceType.Cloud) { - await keyStore.deleteItem(FEATURE_CACHE_KEY(orgId)); await getPlan(orgId); } }; @@ -264,7 +240,6 @@ export const licenseServiceFactory = ({ quantityIdentities }); } - await keyStore.deleteItem(FEATURE_CACHE_KEY(orgId)); } else if (instanceType === InstanceType.EnterpriseOnPrem) { const usedSeats = await licenseDAL.countOfOrgMembers(null, tx); const usedIdentitySeats = await licenseDAL.countOrgUsersAndIdentities(null, tx); @@ -328,7 +303,6 @@ export const licenseServiceFactory = ({ `/api/license-server/v1/customers/${organization.customerId}/session/trial`, { success_url } ); - await keyStore.deleteItem(FEATURE_CACHE_KEY(orgId)); return { url }; }; @@ -705,10 +679,6 @@ export const licenseServiceFactory = ({ return licenses; }; - const invalidateGetPlan = async (orgId: string) => { - await keyStore.deleteItem(FEATURE_CACHE_KEY(orgId)); - }; - return { generateOrgCustomerId, removeOrgCustomer, @@ -723,7 +693,6 @@ export const licenseServiceFactory = ({ return onPremFeatures; }, getPlan, - invalidateGetPlan, updateSubscriptionOrgMemberCount, refreshPlan, getOrgPlan, diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index dcaa2b654..13e117a9c 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -500,7 +500,6 @@ export const registerRoutes = async ( permissionService, orgDAL, licenseDAL, - keyStore, identityOrgMembershipDAL, projectDAL }); diff --git a/backend/src/services/project/project-service.ts b/backend/src/services/project/project-service.ts index de35c11f4..346352c3e 100644 --- a/backend/src/services/project/project-service.ts +++ b/backend/src/services/project/project-service.ts @@ -161,8 +161,8 @@ type TProjectServiceFactoryDep = { sshHostGroupDAL: Pick; permissionService: TPermissionServiceFactory; orgService: Pick; - licenseService: Pick; queueService: Pick; + licenseService: Pick; smtpService: Pick; orgDAL: Pick; keyStore: Pick; @@ -489,10 +489,6 @@ export const projectServiceFactory = ({ ); } - // no need to invalidate if there was no limit - if (plan.workspaceLimit) { - await licenseService.invalidateGetPlan(organization.id); - } return { ...project, environments: envs,