Add single secrets v2 operations

This commit is contained in:
Maidul Islam
2023-01-06 18:47:52 -05:00
parent a04fe00563
commit 53273df51f
2 changed files with 181 additions and 12 deletions
+62 -1
View File
@@ -4,7 +4,7 @@ import { body, param, query } from 'express-validator';
import { ADMIN, MEMBER } from '../../variables';
import { CreateSecretRequestBody, ModifySecretRequestBody } from '../../types/secret';
import { secretController } from '../../controllers/v2';
import { fetchAllSecrets } from '../../controllers/v2/secretController';
import { fetchAllSecrets, fetchSingleSecret } from '../../controllers/v2/secretController';
const router = express.Router();
@@ -26,6 +26,24 @@ router.post(
secretController.batchCreateSecrets
);
/**
* Create single secret for a given workspace and environmentName
*/
router.post(
'/workspace/:workspaceId/environment/:environmentName',
requireAuth({
acceptedAuthModes: ['jwt']
}),
requireWorkspaceAuth({
acceptedRoles: [ADMIN, MEMBER]
}),
param('workspaceId').exists().isMongoId().trim(),
param('environmentName').exists().trim(),
body('secret').exists().isObject(),
validateRequest,
secretController.createSingleSecret
);
/**
* Get all secrets for a given environment and workspace id
*/
@@ -43,6 +61,18 @@ router.get(
fetchAllSecrets
);
/**
* Get single secret by id
*/
router.get(
'/:secretId',
requireAuth({
acceptedAuthModes: ['jwt', 'serviceToken']
}),
validateRequest,
fetchSingleSecret
);
/**
* Batch delete secrets in a given workspace and environment name
*/
@@ -62,6 +92,19 @@ router.delete(
);
/**
* delete single secret by id
*/
router.delete(
'/:secretId',
requireAuth({
acceptedAuthModes: ['jwt']
}),
param('secretId').isMongoId(),
validateRequest,
secretController.deleteSingleSecret
);
/**
* Apply modifications to many existing secrets in a given workspace and environment
*/
@@ -80,4 +123,22 @@ router.patch(
secretController.batchModifySecrets
);
/**
* Apply modifications to single existing secret in a given workspace and environment
*/
router.patch(
'/workspace/:workspaceId/environment/:environmentName',
requireAuth({
acceptedAuthModes: ['jwt']
}),
body('secret').isObject(),
param('workspaceId').exists().isMongoId().trim(),
param('environmentName').exists().trim(),
requireWorkspaceAuth({
acceptedRoles: [ADMIN, MEMBER]
}),
validateRequest,
secretController.modifySingleSecrets
);
export default router;