From 8b381b2b80487b59eb8f11b107b598b1061ad35c Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Wed, 23 Aug 2023 16:30:42 +0700 Subject: [PATCH] Checkpoint add metadata to secret and secret version data structure --- backend/src/controllers/v2/secretsController.ts | 10 +++++++++- backend/src/ee/models/secretVersion.ts | 6 ++++++ backend/src/helpers/secrets.ts | 10 ++++++---- backend/src/models/secret.ts | 6 ++++++ 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/backend/src/controllers/v2/secretsController.ts b/backend/src/controllers/v2/secretsController.ts index c87b3756a..c513415a6 100644 --- a/backend/src/controllers/v2/secretsController.ts +++ b/backend/src/controllers/v2/secretsController.ts @@ -739,6 +739,7 @@ export const createSecrets = async (req: Request, res: Response) => { * @returns */ export const getSecrets = async (req: Request, res: Response) => { + console.log("getSecrets"); /* #swagger.summary = 'Read secrets' #swagger.description = 'Read secrets from a project and environment' @@ -966,8 +967,13 @@ export const getSecrets = async (req: Request, res: Response) => { ); const postHogClient = await TelemetryService.getPostHogClient(); + + console.log("the fetched secrets: ", secrets); + console.log("postHogClient: ", postHogClient); + if (postHogClient) { - postHogClient.capture({ + console.log("should capture!"); + const test = postHogClient.capture({ event: "secrets pulled", distinctId: await TelemetryService.getDistinctId({ authData: req.authData @@ -981,6 +987,8 @@ export const getSecrets = async (req: Request, res: Response) => { userAgent: req.headers?.["user-agent"] } }); + + console.log("test: ", test); } return res.status(200).send({ diff --git a/backend/src/ee/models/secretVersion.ts b/backend/src/ee/models/secretVersion.ts index d63f05cf7..8fec54515 100644 --- a/backend/src/ee/models/secretVersion.ts +++ b/backend/src/ee/models/secretVersion.ts @@ -28,6 +28,9 @@ export interface ISecretVersion { createdAt: string; folder?: string; tags?: string[]; + metadata?: { + [key: string]: string; + } } const secretVersionSchema = new Schema( @@ -118,6 +121,9 @@ const secretVersionSchema = new Schema( type: [Schema.Types.ObjectId], default: [], }, + metadata: { + type: Schema.Types.Mixed + } }, { timestamps: true, diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index d4544d32b..dc91560fb 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -393,9 +393,10 @@ export const createSecretHelper = async ({ secretCommentTag, folder: folderId, algorithm: ALGORITHM_AES_256_GCM, - keyEncoding: ENCODING_SCHEME_UTF8 + keyEncoding: ENCODING_SCHEME_UTF8, + metadata }).save(); - + const secretVersion = new SecretVersion({ secret: secret._id, version: secret.version, @@ -413,9 +414,10 @@ export const createSecretHelper = async ({ secretValueIV, secretValueTag, algorithm: ALGORITHM_AES_256_GCM, - keyEncoding: ENCODING_SCHEME_UTF8 + keyEncoding: ENCODING_SCHEME_UTF8, + metadata }); - + // (EE) add version for new secret await EESecretService.addSecretVersions({ secretVersions: [secretVersion] diff --git a/backend/src/models/secret.ts b/backend/src/models/secret.ts index 34a4d7501..4ef3de456 100644 --- a/backend/src/models/secret.ts +++ b/backend/src/models/secret.ts @@ -31,6 +31,9 @@ export interface ISecret { keyEncoding: "utf8" | "base64"; tags?: string[]; folder?: string; + metadata?: { + [key: string]: string; + } } const secretSchema = new Schema( @@ -131,6 +134,9 @@ const secretSchema = new Schema( type: String, default: "root", }, + metadata: { + type: Schema.Types.Mixed + } }, { timestamps: true,