mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-19 00:30:56 +00:00
Finish preliminary /v2/secrets routes for batch/single CRUD secrets endpoints
This commit is contained in:
@@ -1,18 +1,21 @@
|
||||
import express, { Request, Response } from 'express';
|
||||
import { requireAuth, requireWorkspaceAuth, validateRequest } from '../../middleware';
|
||||
import express from 'express';
|
||||
import {
|
||||
requireAuth,
|
||||
requireWorkspaceAuth,
|
||||
requireSecretAuth,
|
||||
validateRequest
|
||||
} from '../../middleware';
|
||||
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, fetchSingleSecret } from '../../controllers/v2/secretController';
|
||||
|
||||
// note to devs: stop supporting
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
/**
|
||||
* Create many secrets for a given workspace and environmentName
|
||||
*/
|
||||
router.post(
|
||||
'/batch-create/workspace/:workspaceId/environment/:environmentName',
|
||||
'/batch-create/workspace/:workspaceId/environment/:environment',
|
||||
requireAuth({
|
||||
acceptedAuthModes: ['jwt']
|
||||
}),
|
||||
@@ -20,17 +23,15 @@ router.post(
|
||||
acceptedRoles: [ADMIN, MEMBER]
|
||||
}),
|
||||
param('workspaceId').exists().isMongoId().trim(),
|
||||
param('environmentName').exists().trim(),
|
||||
param('environment').exists().trim(),
|
||||
body('secrets').exists().isArray().custom((value) => value.every((item: CreateSecretRequestBody) => typeof item === 'object')),
|
||||
body('channel'),
|
||||
validateRequest,
|
||||
secretController.batchCreateSecrets
|
||||
secretController.createSecrets
|
||||
);
|
||||
|
||||
/**
|
||||
* Create single secret for a given workspace and environmentName
|
||||
*/
|
||||
router.post(
|
||||
'/workspace/:workspaceId/environment/:environmentName',
|
||||
'/workspace/:workspaceId/environment/:environment',
|
||||
requireAuth({
|
||||
acceptedAuthModes: ['jwt']
|
||||
}),
|
||||
@@ -38,15 +39,13 @@ router.post(
|
||||
acceptedRoles: [ADMIN, MEMBER]
|
||||
}),
|
||||
param('workspaceId').exists().isMongoId().trim(),
|
||||
param('environmentName').exists().trim(),
|
||||
param('environment').exists().trim(),
|
||||
body('secret').exists().isObject(),
|
||||
body('channel'),
|
||||
validateRequest,
|
||||
secretController.createSingleSecret
|
||||
secretController.createSecret
|
||||
);
|
||||
|
||||
/**
|
||||
* Get all secrets for a given environment and workspace id
|
||||
*/
|
||||
router.get(
|
||||
'/workspace/:workspaceId',
|
||||
param('workspaceId').exists().trim(),
|
||||
@@ -57,25 +56,23 @@ router.get(
|
||||
requireWorkspaceAuth({
|
||||
acceptedRoles: [ADMIN, MEMBER]
|
||||
}),
|
||||
query('channel'),
|
||||
validateRequest,
|
||||
fetchAllSecrets
|
||||
secretController.getSecrets
|
||||
);
|
||||
|
||||
/**
|
||||
* Get single secret by id
|
||||
*/
|
||||
router.get(
|
||||
'/:secretId',
|
||||
requireAuth({
|
||||
acceptedAuthModes: ['jwt', 'serviceToken']
|
||||
}),
|
||||
requireSecretAuth({
|
||||
acceptedRoles: [ADMIN, MEMBER]
|
||||
}),
|
||||
validateRequest,
|
||||
fetchSingleSecret
|
||||
secretController.getSecret
|
||||
);
|
||||
|
||||
/**
|
||||
* Batch delete secrets in a given workspace and environment name
|
||||
*/
|
||||
router.delete(
|
||||
'/batch/workspace/:workspaceId/environment/:environmentName',
|
||||
requireAuth({
|
||||
@@ -88,26 +85,22 @@ router.delete(
|
||||
acceptedRoles: [ADMIN, MEMBER]
|
||||
}),
|
||||
validateRequest,
|
||||
secretController.batchDeleteSecrets
|
||||
|
||||
secretController.deleteSecrets
|
||||
);
|
||||
|
||||
/**
|
||||
* delete single secret by id
|
||||
*/
|
||||
router.delete(
|
||||
'/:secretId',
|
||||
requireAuth({
|
||||
acceptedAuthModes: ['jwt']
|
||||
}),
|
||||
requireSecretAuth({
|
||||
acceptedRoles: [ADMIN, MEMBER]
|
||||
}),
|
||||
param('secretId').isMongoId(),
|
||||
validateRequest,
|
||||
secretController.deleteSingleSecret
|
||||
secretController.deleteSecret
|
||||
);
|
||||
|
||||
/**
|
||||
* Apply modifications to many existing secrets in a given workspace and environment
|
||||
*/
|
||||
router.patch(
|
||||
'/batch-modify/workspace/:workspaceId/environment/:environmentName',
|
||||
requireAuth({
|
||||
@@ -120,12 +113,10 @@ router.patch(
|
||||
acceptedRoles: [ADMIN, MEMBER]
|
||||
}),
|
||||
validateRequest,
|
||||
secretController.batchModifySecrets
|
||||
secretController.updateSecrets
|
||||
);
|
||||
|
||||
/**
|
||||
* Apply modifications to single existing secret in a given workspace and environment
|
||||
*/
|
||||
|
||||
router.patch(
|
||||
'/workspace/:workspaceId/environment/:environmentName',
|
||||
requireAuth({
|
||||
@@ -138,7 +129,7 @@ router.patch(
|
||||
acceptedRoles: [ADMIN, MEMBER]
|
||||
}),
|
||||
validateRequest,
|
||||
secretController.modifySingleSecrets
|
||||
secretController.updateSecret
|
||||
);
|
||||
|
||||
export default router;
|
||||
|
||||
Reference in New Issue
Block a user