Add workspaces v3 endpoints for blind-index naming/labeling

This commit is contained in:
Tuan Dang
2023-04-17 23:48:48 +03:00
parent 763ec1aa0f
commit b62ea41e02
11 changed files with 297 additions and 25 deletions
+3 -1
View File
@@ -1,5 +1,7 @@
import secrets from './secrets';
import workspaces from './workspaces';
export {
secrets
secrets,
workspaces
}
+1
View File
@@ -23,6 +23,7 @@ router.get(
query('workspaceId').exists().isString().trim(),
query('environment').exists().isString().trim(),
query('tagSlugs'),
validateRequest,
requireAuth({
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY]
}),
+80
View File
@@ -0,0 +1,80 @@
import express from 'express';
const router = express.Router();
import {
requireAuth,
requireWorkspaceAuth,
validateRequest
} from '../../middleware';
import { workspacesController } from '../../controllers/v3';
import {
AUTH_MODE_JWT,
ADMIN,
PERMISSION_READ_SECRETS
} from '../../variables';
import { param, body, validationResult } from 'express-validator';
// -- migration to blind indices endpoints
router.get(
'/:workspaceId/secrets/blind-index-status',
param('workspaceId').exists().isString().trim(),
validateRequest,
// requireAuth({
// acceptedAuthModes: [AUTH_MODE_JWT]
// }),
// requireWorkspaceAuth({
// acceptedRoles: [ADMIN],
// locationWorkspaceId: 'params',
// }),
workspacesController.getWorkspaceBlindIndexStatus
);
router.get( // allow admins to get all workspace secrets (part of blind indices migration)
'/:workspaceId/secrets',
param('workspaceId').exists().isString().trim(),
validateRequest,
requireAuth({
acceptedAuthModes: [AUTH_MODE_JWT]
}),
requireWorkspaceAuth({
acceptedRoles: [ADMIN],
locationWorkspaceId: 'params',
}),
workspacesController.getWorkspaceSecrets
);
router.post( // allow admins to name all workspace secrets (part of blind indices migration)
'/:workspaceId/secrets/names',
param('workspaceId').exists().isString().trim(),
body('secretsToUpdate')
.exists()
.isArray()
.withMessage('secretsToUpdate must be an array')
.customSanitizer((value) => {
return value.map((secret: any) => ({
secretName: secret.name,
_id: secret._id
}));
}),
body('secretsToUpdate.*.secretName')
.exists()
.isString()
.withMessage('secretName must be a string'),
body('secretsToUpdate.*._id')
.exists()
.isString()
.withMessage('secretId must be a string'),
validateRequest,
requireAuth({
acceptedAuthModes: [AUTH_MODE_JWT]
}),
requireWorkspaceAuth({
acceptedRoles: [ADMIN],
locationWorkspaceId: 'params'
}),
workspacesController.nameWorkspaceSecrets
);
// --
export default router;