diff --git a/backend/src/ee/controllers/v1/secretSnapshotController.ts b/backend/src/ee/controllers/v1/secretSnapshotController.ts index a6ee2ce4d..ace016afe 100644 --- a/backend/src/ee/controllers/v1/secretSnapshotController.ts +++ b/backend/src/ee/controllers/v1/secretSnapshotController.ts @@ -19,7 +19,13 @@ export const getSecretSnapshot = async (req: Request, res: Response) => { secretSnapshot = await SecretSnapshot.findById(secretSnapshotId) .lean() - .populate<{ secretVersions: ISecretVersion[] }>("secretVersions") + .populate<{ secretVersions: ISecretVersion[] }>({ + path: 'secretVersions', + populate: { + path: 'tags', + model: 'Tag' + } + }) .populate<{ folderVersion: TFolderRootVersionSchema }>("folderVersion"); if (!secretSnapshot) throw new Error("Failed to find secret snapshot"); diff --git a/backend/src/ee/models/secretVersion.ts b/backend/src/ee/models/secretVersion.ts index ea2a9fd2a..b915e640e 100644 --- a/backend/src/ee/models/secretVersion.ts +++ b/backend/src/ee/models/secretVersion.ts @@ -27,6 +27,7 @@ export interface ISecretVersion { keyEncoding: "utf8" | "base64"; createdAt: string; folder?: string; + tags?: string[]; } const secretVersionSchema = new Schema( @@ -112,6 +113,11 @@ const secretVersionSchema = new Schema( type: String, required: true, }, + tags: { + ref: 'Tag', + type: [Schema.Types.ObjectId], + default: [] + }, }, { timestamps: true, diff --git a/backend/src/utils/setup/backfillData.ts b/backend/src/utils/setup/backfillData.ts index 3015de9aa..5886ff776 100644 --- a/backend/src/utils/setup/backfillData.ts +++ b/backend/src/utils/setup/backfillData.ts @@ -348,6 +348,20 @@ export const backfillSecretFolders = async () => { } ); + // Back fill because tags were missing in secret versions + await SecretVersion.updateMany( + { + tags: { + $exists: false, + }, + }, + { + $set: { + tags: [], + }, + } + ); + let secretSnapshots = await SecretSnapshot.find({ environment: { $exists: false,