diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index 4b6c1adab..cd00f0429 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -362,7 +362,8 @@ export const createSecret = async (req: Request, res: Response) => { secretCommentCiphertext, secretCommentIV, secretCommentTag, - secretPath = "/" + secretPath = "/", + metadata } = req.body; const secret = await SecretService.createSecret({ @@ -380,7 +381,8 @@ export const createSecret = async (req: Request, res: Response) => { secretPath, secretCommentCiphertext, secretCommentIV, - secretCommentTag + secretCommentTag, + metadata }); await EventService.handleEvent({ diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index 880e7cee3..31341d647 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -326,7 +326,8 @@ export const createSecretHelper = async ({ secretCommentCiphertext, secretCommentIV, secretCommentTag, - secretPath = "/" + secretPath = "/", + metadata }: CreateSecretParams) => { const secretBlindIndex = await generateSecretBlindIndexHelper({ secretName, @@ -462,8 +463,8 @@ export const createSecretHelper = async ({ }); const postHogClient = await TelemetryService.getPostHogClient(); - - if (postHogClient) { + + 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 678c67711..fb3e4442c 100644 --- a/backend/src/interfaces/services/SecretService/index.ts +++ b/backend/src/interfaces/services/SecretService/index.ts @@ -17,6 +17,9 @@ export interface CreateSecretParams { secretCommentIV?: string; secretCommentTag?: string; secretPath: 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 f0cb8ec4c..6a1efc135 100644 --- a/frontend/src/helpers/project.ts +++ b/frontend/src/helpers/project.ts @@ -140,7 +140,10 @@ const initProjectHelper = async ({ secretCommentCiphertext: secret.secretCommentCiphertext, secretCommentIV: secret.secretCommentIV, secretCommentTag: secret.secretCommentTag, - secretPath: "/" + secretPath: "/", + metadata: { + source: "signup" + } }); }); diff --git a/frontend/src/hooks/api/secrets/types.ts b/frontend/src/hooks/api/secrets/types.ts index 964bac6c2..2bf304f4e 100644 --- a/frontend/src/hooks/api/secrets/types.ts +++ b/frontend/src/hooks/api/secrets/types.ts @@ -165,4 +165,7 @@ export type CreateSecretDTO = { secretCommentIV: string; secretCommentTag: string; secretPath: string; + metadata?: { + source?: string; + } } \ No newline at end of file