Small modifications to secret versioning/snapshot

This commit is contained in:
Tuan Dang
2022-12-25 14:30:02 -05:00
parent 890aff813b
commit f37fc9c59d
3 changed files with 50 additions and 3 deletions
+1 -1
View File
@@ -244,7 +244,7 @@ export const getSecretVersions = async (req: Request, res: Response) => {
.limit(limit); .limit(limit);
} catch (err) { } catch (err) {
Sentry.setUser({ email: req.serviceToken.user.email }); Sentry.setUser({ email: req.user.email });
Sentry.captureException(err); Sentry.captureException(err);
return res.status(400).send({ return res.status(400).send({
message: 'Failed to get secret versions' message: 'Failed to get secret versions'
+34 -1
View File
@@ -7,7 +7,8 @@ import {
Integration, Integration,
IntegrationAuth, IntegrationAuth,
IUser, IUser,
ServiceToken ServiceToken,
SecretSnapshot
} from '../models'; } from '../models';
import { import {
createWorkspace as create, createWorkspace as create,
@@ -334,4 +335,36 @@ export const getWorkspaceServiceTokens = async (
return res.status(200).send({ return res.status(200).send({
serviceTokens serviceTokens
}); });
}
/**
* Return secret snapshots for workspace with id [workspaceId]
* @param req
* @param res
*/
export const getWorkspaceSecretSnapshots = async (req: Request, res: Response) => {
let secretSnapshots;
try {
const { workspaceId } = req.params;
const offset: number = parseInt(req.query.offset as string);
const limit: number = parseInt(req.query.limit as string);
secretSnapshots = await SecretSnapshot.find({
workspace: workspaceId
})
.skip(offset)
.limit(limit);
} catch (err) {
Sentry.setUser({ email: req.user.email });
Sentry.captureException(err);
return res.status(400).send({
message: 'Failed to get secret snapshots'
});
}
return res.status(200).send({
secretSnapshots
});
} }
+15 -1
View File
@@ -1,6 +1,6 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { body, param } from 'express-validator'; import { body, param, query } from 'express-validator';
import { import {
requireAuth, requireAuth,
requireWorkspaceAuth, requireWorkspaceAuth,
@@ -130,4 +130,18 @@ router.get(
workspaceController.getWorkspaceServiceTokens workspaceController.getWorkspaceServiceTokens
); );
router.get(
'/:workspaceId/secret-snapshots',
requireAuth,
requireWorkspaceAuth({
acceptedRoles: [ADMIN, MEMBER],
acceptedStatuses: [GRANTED]
}),
param('workspaceId').exists().trim(),
query('offset').exists().isInt(),
query('limit').exists().isInt(),
validateRequest,
workspaceController.getWorkspaceSecretSnapshots
);
export default router; export default router;