diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index bbfc74a52..cd00f0429 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -363,7 +363,7 @@ export const createSecret = async (req: Request, res: Response) => { secretCommentIV, secretCommentTag, secretPath = "/", - source + metadata } = req.body; const secret = await SecretService.createSecret({ @@ -382,7 +382,7 @@ export const createSecret = async (req: Request, res: Response) => { secretCommentCiphertext, secretCommentIV, secretCommentTag, - source + metadata }); await EventService.handleEvent({ diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index a37da47bb..31341d647 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -327,7 +327,7 @@ export const createSecretHelper = async ({ secretCommentIV, secretCommentTag, secretPath = "/", - source + metadata }: CreateSecretParams) => { const secretBlindIndex = await generateSecretBlindIndexHelper({ secretName, @@ -463,8 +463,8 @@ export const createSecretHelper = async ({ }); const postHogClient = await TelemetryService.getPostHogClient(); - - if (postHogClient && source !== "signup") { + + if (postHogClient && (metadata?.source !== "signup")) { postHogClient.capture({ event: "secrets added", distinctId: await TelemetryService.getDistinctId({ diff --git a/backend/src/interfaces/services/SecretService/index.ts b/backend/src/interfaces/services/SecretService/index.ts index 3fd19fd7a..fb3e4442c 100644 --- a/backend/src/interfaces/services/SecretService/index.ts +++ b/backend/src/interfaces/services/SecretService/index.ts @@ -17,7 +17,9 @@ export interface CreateSecretParams { secretCommentIV?: string; secretCommentTag?: string; secretPath: string; - source?: string; + metadata?: { + source?: string; + } } export interface GetSecretsParams { diff --git a/backend/src/routes/v3/secrets.ts b/backend/src/routes/v3/secrets.ts index 224123445..8f8fac9c4 100644 --- a/backend/src/routes/v3/secrets.ts +++ b/backend/src/routes/v3/secrets.ts @@ -180,6 +180,8 @@ router.post( body("secretCommentIV").optional().isString().trim(), body("secretCommentTag").optional().isString().trim(), body("secretPath").default("/").isString().trim(), + body("metadata").optional().isObject().withMessage("Metadata should be an object"), + body("metadata.source").optional().isString().withMessage("Source should be a string"), validateRequest, requireAuth({ acceptedAuthModes: [ diff --git a/frontend/src/helpers/project.ts b/frontend/src/helpers/project.ts index 938d571de..6a1efc135 100644 --- a/frontend/src/helpers/project.ts +++ b/frontend/src/helpers/project.ts @@ -141,7 +141,9 @@ const initProjectHelper = async ({ secretCommentIV: secret.secretCommentIV, secretCommentTag: secret.secretCommentTag, secretPath: "/", - source: "signup" + metadata: { + source: "signup" + } }); }); diff --git a/frontend/src/hooks/api/secrets/types.ts b/frontend/src/hooks/api/secrets/types.ts index a9ad18f65..2bf304f4e 100644 --- a/frontend/src/hooks/api/secrets/types.ts +++ b/frontend/src/hooks/api/secrets/types.ts @@ -165,5 +165,7 @@ export type CreateSecretDTO = { secretCommentIV: string; secretCommentTag: string; secretPath: string; - source?: string; + metadata?: { + source?: string; + } } \ No newline at end of file