add typescript types to secret versions

This commit is contained in:
Maidul Islam
2023-02-27 16:32:13 -05:00
parent fb1085744a
commit d948923d95
2 changed files with 37 additions and 37 deletions
+35 -35
View File
@@ -22,7 +22,7 @@ import { userHasNoAbility, userHasWorkspaceAccess, userHasWriteOnlyAbility } fro
import Tag from '../../models/tag'; import Tag from '../../models/tag';
import _ from 'lodash'; import _ from 'lodash';
import { import {
BatchSecretRequest, BatchSecretRequest,
BatchSecret BatchSecret
} from '../../types/secret'; } from '../../types/secret';
@@ -41,13 +41,13 @@ export const batchSecrets = async (req: Request, res: Response) => {
workspaceId: string; workspaceId: string;
environment: string; environment: string;
requests: BatchSecretRequest[]; requests: BatchSecretRequest[];
}= req.body; } = req.body;
const createSecrets: BatchSecret[] = []; const createSecrets: BatchSecret[] = [];
const updateSecrets: BatchSecret[] = []; const updateSecrets: BatchSecret[] = [];
const deleteSecrets: Types.ObjectId[] = []; const deleteSecrets: Types.ObjectId[] = [];
const actions: IAction[] = []; const actions: IAction[] = [];
requests.forEach((request) => { requests.forEach((request) => {
switch (request.method) { switch (request.method) {
case 'POST': case 'POST':
@@ -70,7 +70,7 @@ export const batchSecrets = async (req: Request, res: Response) => {
break; break;
} }
}); });
// handle create secrets // handle create secrets
let createdSecrets: ISecret[] = []; let createdSecrets: ISecret[] = [];
if (createSecrets.length > 0) { if (createSecrets.length > 0) {
@@ -109,18 +109,18 @@ export const batchSecrets = async (req: Request, res: Response) => {
}); });
} }
} }
// handle update secrets // handle update secrets
let updatedSecrets: ISecret[] = []; let updatedSecrets: ISecret[] = [];
if (updateSecrets.length > 0 && req.secrets) { if (updateSecrets.length > 0 && req.secrets) {
// construct object containing all secrets // construct object containing all secrets
let listedSecretsObj: { let listedSecretsObj: {
[key: string]: { [key: string]: {
version: number; version: number;
type: string; type: string;
} }
} = {}; } = {};
listedSecretsObj = req.secrets.reduce((obj: any, secret: ISecret) => ({ listedSecretsObj = req.secrets.reduce((obj: any, secret: ISecret) => ({
...obj, ...obj,
[secret._id.toString()]: secret [secret._id.toString()]: secret
@@ -140,7 +140,7 @@ export const batchSecrets = async (req: Request, res: Response) => {
})); }));
await Secret.bulkWrite(updateOperations); await Secret.bulkWrite(updateOperations);
const secretVersions = updateSecrets.map((u) => ({ const secretVersions = updateSecrets.map((u) => ({
secret: new Types.ObjectId(u._id), secret: new Types.ObjectId(u._id),
version: listedSecretsObj[u._id.toString()].version, version: listedSecretsObj[u._id.toString()].version,
@@ -227,7 +227,7 @@ export const batchSecrets = async (req: Request, res: Response) => {
}); });
} }
} }
if (actions.length > 0) { if (actions.length > 0) {
// (EE) create (audit) log // (EE) create (audit) log
await EELogService.createLog({ await EELogService.createLog({
@@ -250,7 +250,7 @@ export const batchSecrets = async (req: Request, res: Response) => {
await EESecretService.takeSecretSnapshot({ await EESecretService.takeSecretSnapshot({
workspaceId workspaceId
}); });
const resObj: { [key: string]: ISecret[] | string[] } = {} const resObj: { [key: string]: ISecret[] | string[] } = {}
if (createSecrets.length > 0) { if (createSecrets.length > 0) {
@@ -260,11 +260,11 @@ export const batchSecrets = async (req: Request, res: Response) => {
if (updateSecrets.length > 0) { if (updateSecrets.length > 0) {
resObj['updatedSecrets'] = updatedSecrets; resObj['updatedSecrets'] = updatedSecrets;
} }
if (deleteSecrets.length > 0) { if (deleteSecrets.length > 0) {
resObj['deletedSecrets'] = deleteSecrets.map((d) => d.toString()); resObj['deletedSecrets'] = deleteSecrets.map((d) => d.toString());
} }
return res.status(200).send(resObj); return res.status(200).send(resObj);
} }
@@ -358,9 +358,25 @@ export const createSecrets = async (req: Request, res: Response) => {
tags: string[] tags: string[]
} }
const newlyCreatedSecrets = await Secret.insertMany( const secretsToInsert: ISecret[] = listOfSecretsToCreate.map(({
listOfSecretsToCreate.map(({ type,
secretKeyCiphertext,
secretKeyIV,
secretKeyTag,
secretValueCiphertext,
secretValueIV,
secretValueTag,
secretCommentCiphertext,
secretCommentIV,
secretCommentTag,
tags
}: secretsToCreateType) => {
return ({
version: 1,
workspace: new Types.ObjectId(workspaceId),
type, type,
user: type === SECRET_PERSONAL ? req.user : undefined,
environment,
secretKeyCiphertext, secretKeyCiphertext,
secretKeyIV, secretKeyIV,
secretKeyTag, secretKeyTag,
@@ -371,26 +387,10 @@ export const createSecrets = async (req: Request, res: Response) => {
secretCommentIV, secretCommentIV,
secretCommentTag, secretCommentTag,
tags tags
}: secretsToCreateType) => { });
return ({ })
version: 1,
workspace: new Types.ObjectId(workspaceId), const newlyCreatedSecrets: ISecret[] = (await Secret.insertMany(secretsToInsert)).map((insertedSecret) => insertedSecret.toObject());
type,
user: type === SECRET_PERSONAL ? req.user : undefined,
environment,
secretKeyCiphertext,
secretKeyIV,
secretKeyTag,
secretValueCiphertext,
secretValueIV,
secretValueTag,
secretCommentCiphertext,
secretCommentIV,
secretCommentTag,
tags
});
})
);
setTimeout(async () => { setTimeout(async () => {
// trigger event - push secrets // trigger event - push secrets
+2 -2
View File
@@ -267,7 +267,7 @@ const v1PushSecrets = async ({
if (toAdd.length > 0) { if (toAdd.length > 0) {
// add secrets // add secrets
const newSecrets = await Secret.insertMany( const newSecrets: ISecret[] = (await Secret.insertMany(
toAdd.map((s, idx) => { toAdd.map((s, idx) => {
const obj: any = { const obj: any = {
version: 1, version: 1,
@@ -294,7 +294,7 @@ const v1PushSecrets = async ({
return obj; return obj;
}) })
); )).map((insertedSecret) => insertedSecret.toObject());
// (EE) add secret versions for new secrets // (EE) add secret versions for new secrets
EESecretService.addSecretVersions({ EESecretService.addSecretVersions({