diff --git a/backend/src/server/routes/v4/secret-router.ts b/backend/src/server/routes/v4/secret-router.ts index ead96668c..88cf62902 100644 --- a/backend/src/server/routes/v4/secret-router.ts +++ b/backend/src/server/routes/v4/secret-router.ts @@ -1262,7 +1262,7 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { handler: async (req) => { const { secretName } = req.params; const { secretPath, environment, projectId } = req.query; - const { tree, value } = await server.services.secret.getSecretReferenceTree({ + const { tree, value, secret } = await server.services.secret.getSecretReferenceTree({ actorId: req.permission.id, actor: req.permission.type, actorAuthMethod: req.permission.authMethod, @@ -1273,6 +1273,21 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { environment }); + await server.services.auditLog.createAuditLog({ + projectId, + ...req.auditLogInfo, + event: { + type: EventType.GET_SECRET, + metadata: { + environment, + secretPath, + secretId: secret.id, + secretKey: secretName, + secretVersion: secret.version + } + } + }); + return { tree, value }; } }); diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index 2ed543c81..b3c8d3947 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -2941,7 +2941,7 @@ export const secretV2BridgeServiceFactory = ({ secretKey: secretName }); - return { tree: stackTrace, value: expandedValue }; + return { tree: stackTrace, value: expandedValue, secret }; }; const getAccessibleSecrets = async ({ diff --git a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx index b8f37ff32..4b75e84e8 100644 --- a/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx +++ b/frontend/src/pages/secret-manager/SecretDashboardPage/components/SecretListView/SecretItem.tsx @@ -127,6 +127,7 @@ export const SecretItem = memo( const queryClient = useQueryClient(); const canFetchSecretValue = + // TODO NOTE FOR PR PROGRESS: may need to remove !isPending, messes with key edits not fetching proper value !originalSecret.secretValueHidden && !originalSecret.isEmpty && !isPending; const fetchSecretValueParams = { @@ -201,7 +202,17 @@ export const SecretItem = memo( return secret.valueOverride || ""; }; - const formMethods = useForm({ + const { + handleSubmit, + control, + register, + watch, + setValue, + reset, + getValues, + trigger, + formState: { isDirty, isSubmitting, errors } + } = useForm({ defaultValues: { ...secret, valueOverride: getOverrideDefaultValue(), @@ -215,18 +226,6 @@ export const SecretItem = memo( resolver: zodResolver(formSchema) }); - const { - handleSubmit, - control, - register, - watch, - setValue, - reset, - getValues, - trigger, - formState: { isDirty, isSubmitting, errors } - } = formMethods; - const secretName = watch("key"); const overrideAction = watch("overrideAction"); const hasComment = Boolean(watch("comment"));