From 71701060a95af9fb75f2f4cfd8a578ae986462fc Mon Sep 17 00:00:00 2001 From: = Date: Thu, 25 Sep 2025 16:07:39 +0530 Subject: [PATCH 1/3] feat: fixed access list broken in ui --- backend/src/ee/routes/v1/secret-router.ts | 4 ++-- backend/src/lib/api-docs/constants.ts | 2 +- .../src/services/secret-v2-bridge/secret-v2-bridge-fns.ts | 5 +++-- backend/src/services/webhook/webhook-fns.ts | 2 ++ .../components/SecretListView/SecretDetailSidebar.tsx | 6 ++++-- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/backend/src/ee/routes/v1/secret-router.ts b/backend/src/ee/routes/v1/secret-router.ts index a964eb1b8..b9eeb7729 100644 --- a/backend/src/ee/routes/v1/secret-router.ts +++ b/backend/src/ee/routes/v1/secret-router.ts @@ -34,7 +34,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { secretName: z.string().trim().describe(RAW_SECRETS.GET_ACCESS_LIST.secretName) }), querystring: z.object({ - workspaceId: z.string().trim().describe(RAW_SECRETS.GET_ACCESS_LIST.workspaceId), + projectId: z.string().trim().describe(RAW_SECRETS.GET_ACCESS_LIST.projectId), environment: z.string().trim().describe(RAW_SECRETS.GET_ACCESS_LIST.environment), secretPath: z .string() @@ -54,7 +54,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { onRequest: verifyAuth([AuthMode.JWT]), handler: async (req) => { const { secretName } = req.params; - const { secretPath, environment, workspaceId: projectId } = req.query; + const { secretPath, environment, projectId } = req.query; return server.services.secret.getSecretAccessList({ actorId: req.permission.id, diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index 7a15ea1c8..2ac8f996e 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -1049,7 +1049,7 @@ export const RAW_SECRETS = { }, GET_ACCESS_LIST: { secretName: "The name of the secret to get the access list for.", - workspaceId: "The ID of the project where the secret is located.", + projectId: "The ID of the project where the secret is located.", environment: "The slug of the environment where the the secret is located.", secretPath: "The folder path where the secret is located." } diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index 6dba0150f..afcc53c18 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -782,7 +782,7 @@ export const expandSecretReferencesFactory = ({ }; export const reshapeBridgeSecret = ( - workspaceId: string, + projectId: string, environment: string, secretPath: string, secret: Omit & { @@ -809,7 +809,8 @@ export const reshapeBridgeSecret = ( ) => ({ secretKey: secret.key, secretPath, - workspace: workspaceId, + workspace: projectId, + projectId: projectId, environment, secretComment: secret.comment || "", version: secret.version, diff --git a/backend/src/services/webhook/webhook-fns.ts b/backend/src/services/webhook/webhook-fns.ts index d7e07ae28..98c84cd86 100644 --- a/backend/src/services/webhook/webhook-fns.ts +++ b/backend/src/services/webhook/webhook-fns.ts @@ -94,6 +94,7 @@ export const getWebhookPayload = (event: TWebhookPayloads) => { event: event.type, project: { workspaceId: projectId, + projectId, projectName, environment, secretPath @@ -147,6 +148,7 @@ export const getWebhookPayload = (event: TWebhookPayloads) => { event: event.type, project: { workspaceId: projectId, + projectId: projectId, projectName, environment, secretPath, diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx index 67404f878..d423264b5 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretDetailSidebar.tsx @@ -47,7 +47,8 @@ import { ProjectPermissionActions, ProjectPermissionSub, useProject, - useProjectPermission + useProjectPermission, + useSubscription } from "@app/context"; import { ProjectPermissionSecretActions } from "@app/context/ProjectPermissionContext/types"; import { getProjectBaseURL } from "@app/helpers/project"; @@ -252,11 +253,12 @@ export const SecretDetailSidebar = ({ secretId: secret?.id }); + const { subscription } = useSubscription(); const { data: secretAccessList, isPending } = useGetSecretAccessList({ projectId: currentProject.id, environment, secretPath, - secretKey + secretKey: subscription?.secretAccessInsights ? secretKey : "" }); const handleTagSelect = (tag: WsTag) => { From 5ae0120327999412e6912820cede4f8a6719c8db Mon Sep 17 00:00:00 2001 From: = Date: Thu, 25 Sep 2025 16:07:56 +0530 Subject: [PATCH 2/3] feat: added instantUpdate option in k8s doc --- .../kubernetes/infisical-secret-crd.mdx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/integrations/platforms/kubernetes/infisical-secret-crd.mdx b/docs/integrations/platforms/kubernetes/infisical-secret-crd.mdx index 5368aeb3f..d7fb6249a 100644 --- a/docs/integrations/platforms/kubernetes/infisical-secret-crd.mdx +++ b/docs/integrations/platforms/kubernetes/infisical-secret-crd.mdx @@ -68,6 +68,22 @@ When `hostAPI` is not defined the operator fetches secrets from Infisical Cloud. available on paid plans. Default re-sync interval is every 1 minute. + + This property enables instant updates from Infisical. When set to true, + changes made to secrets in Infisical will be immediately pushed to the + operator, triggering a configuration update. This reduces the need for + periodic re-syncs. + + + Note that `Instant Updates` is a paid feature. + + If you're using Infisical Cloud, then it is available under the **Pro**, + and **Enterprise Tier** with varying retention periods. If you're self-hosting Infisical, + then you should contact sales@infisical.com to purchase an enterprise license to use it. + + + + This block defines the TLS settings to use for connecting to the Infisical instance. From 7b7d18f362d8b4b6eda5d8cc5aca556b2fed2dd5 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 25 Sep 2025 19:38:06 +0530 Subject: [PATCH 3/3] feat: lint fix --- .../redis-credentials/redis-credentials-rotation-fns.ts | 2 +- .../acme/acme-certificate-authority-fns.ts | 2 +- .../azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts | 2 +- .../internal/internal-certificate-authority-fns.ts | 2 +- backend/src/services/pki-subscriber/pki-subscriber-service.ts | 2 +- backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts | 2 +- backend/src/services/webhook/webhook-fns.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/src/ee/services/secret-rotation-v2/redis-credentials/redis-credentials-rotation-fns.ts b/backend/src/ee/services/secret-rotation-v2/redis-credentials/redis-credentials-rotation-fns.ts index 154b4359f..41e23a617 100644 --- a/backend/src/ee/services/secret-rotation-v2/redis-credentials/redis-credentials-rotation-fns.ts +++ b/backend/src/ee/services/secret-rotation-v2/redis-credentials/redis-credentials-rotation-fns.ts @@ -10,12 +10,12 @@ import { } from "@app/ee/services/secret-rotation-v2/secret-rotation-v2-types"; import { BadRequestError } from "@app/lib/errors"; +import { verifyHostInputValidity } from "../../dynamic-secret/dynamic-secret-fns"; import { DEFAULT_PASSWORD_REQUIREMENTS, generatePassword } from "../shared/utils"; import { TRedisCredentialsRotationGeneratedCredentials, TRedisCredentialsRotationWithConnection } from "./redis-credentials-rotation-types"; -import { verifyHostInputValidity } from "../../dynamic-secret/dynamic-secret-fns"; const redactPasswords = (e: unknown, credentials: TRedisCredentialsRotationGeneratedCredentials) => { const error = e as Error; diff --git a/backend/src/services/certificate-authority/acme/acme-certificate-authority-fns.ts b/backend/src/services/certificate-authority/acme/acme-certificate-authority-fns.ts index 521092497..0dea986d6 100644 --- a/backend/src/services/certificate-authority/acme/acme-certificate-authority-fns.ts +++ b/backend/src/services/certificate-authority/acme/acme-certificate-authority-fns.ts @@ -24,8 +24,8 @@ import { import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { TPkiSubscriberDALFactory } from "@app/services/pki-subscriber/pki-subscriber-dal"; import { TPkiSyncDALFactory } from "@app/services/pki-sync/pki-sync-dal"; -import { triggerAutoSyncForSubscriber } from "@app/services/pki-sync/pki-sync-utils"; import { TPkiSyncQueueFactory } from "@app/services/pki-sync/pki-sync-queue"; +import { triggerAutoSyncForSubscriber } from "@app/services/pki-sync/pki-sync-utils"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { getProjectKmsCertificateKeyId } from "@app/services/project/project-fns"; diff --git a/backend/src/services/certificate-authority/azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts b/backend/src/services/certificate-authority/azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts index 69feed40e..4937a5331 100644 --- a/backend/src/services/certificate-authority/azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts +++ b/backend/src/services/certificate-authority/azure-ad-cs/azure-ad-cs-certificate-authority-fns.ts @@ -27,8 +27,8 @@ import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { TPkiSubscriberDALFactory } from "@app/services/pki-subscriber/pki-subscriber-dal"; import { TPkiSubscriberProperties } from "@app/services/pki-subscriber/pki-subscriber-types"; import { TPkiSyncDALFactory } from "@app/services/pki-sync/pki-sync-dal"; -import { triggerAutoSyncForSubscriber } from "@app/services/pki-sync/pki-sync-utils"; import { TPkiSyncQueueFactory } from "@app/services/pki-sync/pki-sync-queue"; +import { triggerAutoSyncForSubscriber } from "@app/services/pki-sync/pki-sync-utils"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { getProjectKmsCertificateKeyId } from "@app/services/project/project-fns"; diff --git a/backend/src/services/certificate-authority/internal/internal-certificate-authority-fns.ts b/backend/src/services/certificate-authority/internal/internal-certificate-authority-fns.ts index f1dc372b1..6f730fd72 100644 --- a/backend/src/services/certificate-authority/internal/internal-certificate-authority-fns.ts +++ b/backend/src/services/certificate-authority/internal/internal-certificate-authority-fns.ts @@ -20,8 +20,8 @@ import { } from "@app/services/certificate/certificate-types"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { TPkiSyncDALFactory } from "@app/services/pki-sync/pki-sync-dal"; -import { triggerAutoSyncForSubscriber } from "@app/services/pki-sync/pki-sync-utils"; import { TPkiSyncQueueFactory } from "@app/services/pki-sync/pki-sync-queue"; +import { triggerAutoSyncForSubscriber } from "@app/services/pki-sync/pki-sync-utils"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { getProjectKmsCertificateKeyId } from "@app/services/project/project-fns"; diff --git a/backend/src/services/pki-subscriber/pki-subscriber-service.ts b/backend/src/services/pki-subscriber/pki-subscriber-service.ts index 4e00acec6..ebb1ef599 100644 --- a/backend/src/services/pki-subscriber/pki-subscriber-service.ts +++ b/backend/src/services/pki-subscriber/pki-subscriber-service.ts @@ -38,8 +38,8 @@ import { TCertificateAuthoritySecretDALFactory } from "@app/services/certificate import { TKmsServiceFactory } from "@app/services/kms/kms-service"; import { TPkiSubscriberDALFactory } from "@app/services/pki-subscriber/pki-subscriber-dal"; import { TPkiSyncDALFactory } from "@app/services/pki-sync/pki-sync-dal"; -import { triggerAutoSyncForSubscriber } from "@app/services/pki-sync/pki-sync-utils"; import { TPkiSyncQueueFactory } from "@app/services/pki-sync/pki-sync-queue"; +import { triggerAutoSyncForSubscriber } from "@app/services/pki-sync/pki-sync-utils"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { getProjectKmsCertificateKeyId } from "@app/services/project/project-fns"; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index afcc53c18..6b284ddee 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -810,7 +810,7 @@ export const reshapeBridgeSecret = ( secretKey: secret.key, secretPath, workspace: projectId, - projectId: projectId, + projectId, environment, secretComment: secret.comment || "", version: secret.version, diff --git a/backend/src/services/webhook/webhook-fns.ts b/backend/src/services/webhook/webhook-fns.ts index 98c84cd86..e04b5097b 100644 --- a/backend/src/services/webhook/webhook-fns.ts +++ b/backend/src/services/webhook/webhook-fns.ts @@ -148,7 +148,7 @@ export const getWebhookPayload = (event: TWebhookPayloads) => { event: event.type, project: { workspaceId: projectId, - projectId: projectId, + projectId, projectName, environment, secretPath,