mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 10:28:00 +00:00
303 lines
8.6 KiB
TypeScript
303 lines
8.6 KiB
TypeScript
import express from "express";
|
|
const router = express.Router();
|
|
import {
|
|
requireAuth,
|
|
requireWorkspaceAuth,
|
|
validateRequest,
|
|
} from "../../middleware";
|
|
import { body, param, query } from "express-validator";
|
|
import { secretsController } from "../../controllers/v3";
|
|
import {
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
ADMIN,
|
|
MEMBER,
|
|
PERMISSION_WRITE_SECRETS,
|
|
SECRET_SHARED,
|
|
SECRET_PERSONAL,
|
|
PERMISSION_READ_SECRETS,
|
|
} from "../../variables";
|
|
|
|
router.get(
|
|
"/raw",
|
|
query("workspaceId").exists().isString().trim(),
|
|
query("workspaceId").exists().isString().trim(),
|
|
query("environment").exists().isString().trim(),
|
|
query("secretPath").default("/").isString().trim(),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "query",
|
|
locationEnvironment: "query",
|
|
requiredPermissions: [PERMISSION_READ_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: true
|
|
}),
|
|
secretsController.getSecretsRaw
|
|
);
|
|
|
|
router.get(
|
|
"/raw/:secretName",
|
|
param("secretName").exists().isString().trim(),
|
|
query("workspaceId").exists().isString().trim(),
|
|
query("environment").exists().isString().trim(),
|
|
query("secretPath").default("/").isString().trim(),
|
|
query("type").optional().isIn([SECRET_SHARED, SECRET_PERSONAL]),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "query",
|
|
locationEnvironment: "query",
|
|
requiredPermissions: [PERMISSION_READ_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: true
|
|
}),
|
|
secretsController.getSecretByNameRaw
|
|
);
|
|
|
|
router.post(
|
|
"/raw/:secretName",
|
|
body("workspaceId").exists().isString().trim(),
|
|
body("environment").exists().isString().trim(),
|
|
body("type").exists().isIn([SECRET_SHARED, SECRET_PERSONAL]),
|
|
body("secretValue").exists().isString().trim(),
|
|
body("secretComment").default("").isString().trim(),
|
|
body("secretPath").default("/").isString().trim(),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "body",
|
|
locationEnvironment: "body",
|
|
requiredPermissions: [PERMISSION_WRITE_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: true
|
|
}),
|
|
secretsController.createSecretRaw
|
|
);
|
|
|
|
router.patch(
|
|
"/raw/:secretName",
|
|
param("secretName").exists().isString().trim(),
|
|
body("workspaceId").exists().isString().trim(),
|
|
body("environment").exists().isString().trim(),
|
|
body("type").exists().isIn([SECRET_SHARED, SECRET_PERSONAL]),
|
|
body("secretValue").exists().isString().trim(),
|
|
body("secretPath").default("/").isString().trim(),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "body",
|
|
locationEnvironment: "body",
|
|
requiredPermissions: [PERMISSION_WRITE_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: true
|
|
}),
|
|
secretsController.updateSecretByNameRaw
|
|
);
|
|
|
|
router.delete(
|
|
"/raw/:secretName",
|
|
param("secretName").exists().isString().trim(),
|
|
body("workspaceId").exists().isString().trim(),
|
|
body("environment").exists().isString().trim(),
|
|
body("secretPath").default("/").isString().trim(),
|
|
body("type").exists().isIn([SECRET_SHARED, SECRET_PERSONAL]),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "body",
|
|
locationEnvironment: "body",
|
|
requiredPermissions: [PERMISSION_WRITE_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: true
|
|
}),
|
|
secretsController.deleteSecretByNameRaw
|
|
);
|
|
|
|
router.get(
|
|
"/",
|
|
query("workspaceId").exists().isString().trim(),
|
|
query("environment").exists().isString().trim(),
|
|
query("secretPath").default("/").isString().trim(),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "query",
|
|
locationEnvironment: "query",
|
|
requiredPermissions: [PERMISSION_READ_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: false
|
|
}),
|
|
secretsController.getSecrets
|
|
);
|
|
|
|
router.post(
|
|
"/:secretName",
|
|
body("workspaceId").exists().isString().trim(),
|
|
body("environment").exists().isString().trim(),
|
|
body("type").exists().isIn([SECRET_SHARED, SECRET_PERSONAL]),
|
|
body("secretKeyCiphertext").exists().isString().trim(),
|
|
body("secretKeyIV").exists().isString().trim(),
|
|
body("secretKeyTag").exists().isString().trim(),
|
|
body("secretValueCiphertext").exists().isString().trim(),
|
|
body("secretValueIV").exists().isString().trim(),
|
|
body("secretValueTag").exists().isString().trim(),
|
|
body("secretCommentCiphertext").optional().isString().trim(),
|
|
body("secretCommentIV").optional().isString().trim(),
|
|
body("secretCommentTag").optional().isString().trim(),
|
|
body("secretPath").default("/").isString().trim(),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "body",
|
|
locationEnvironment: "body",
|
|
requiredPermissions: [PERMISSION_WRITE_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: false
|
|
}),
|
|
secretsController.createSecret
|
|
);
|
|
|
|
router.get(
|
|
"/:secretName",
|
|
param("secretName").exists().isString().trim(),
|
|
query("workspaceId").exists().isString().trim(),
|
|
query("environment").exists().isString().trim(),
|
|
query("secretPath").default("/").isString().trim(),
|
|
query("type").optional().isIn([SECRET_SHARED, SECRET_PERSONAL]),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "query",
|
|
locationEnvironment: "query",
|
|
requiredPermissions: [PERMISSION_READ_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
}),
|
|
secretsController.getSecretByName
|
|
);
|
|
|
|
router.patch(
|
|
"/:secretName",
|
|
param("secretName").exists().isString().trim(),
|
|
body("workspaceId").exists().isString().trim(),
|
|
body("environment").exists().isString().trim(),
|
|
body("type").exists().isIn([SECRET_SHARED, SECRET_PERSONAL]),
|
|
body("secretValueCiphertext").exists().isString().trim(),
|
|
body("secretValueIV").exists().isString().trim(),
|
|
body("secretValueTag").exists().isString().trim(),
|
|
body("secretPath").default("/").isString().trim(),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "body",
|
|
locationEnvironment: "body",
|
|
requiredPermissions: [PERMISSION_WRITE_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: false
|
|
}),
|
|
secretsController.updateSecretByName
|
|
);
|
|
|
|
router.delete(
|
|
"/:secretName",
|
|
param("secretName").exists().isString().trim(),
|
|
body("workspaceId").exists().isString().trim(),
|
|
body("environment").exists().isString().trim(),
|
|
body("secretPath").default("/").isString().trim(),
|
|
body("type").exists().isIn([SECRET_SHARED, SECRET_PERSONAL]),
|
|
validateRequest,
|
|
requireAuth({
|
|
acceptedAuthModes: [
|
|
AUTH_MODE_JWT,
|
|
AUTH_MODE_API_KEY,
|
|
AUTH_MODE_SERVICE_TOKEN,
|
|
AUTH_MODE_SERVICE_ACCOUNT,
|
|
],
|
|
}),
|
|
requireWorkspaceAuth({
|
|
acceptedRoles: [ADMIN, MEMBER],
|
|
locationWorkspaceId: "body",
|
|
locationEnvironment: "body",
|
|
requiredPermissions: [PERMISSION_WRITE_SECRETS],
|
|
requireBlindIndicesEnabled: true,
|
|
requireE2EEOff: false
|
|
}),
|
|
secretsController.deleteSecretByName
|
|
);
|
|
|
|
export default router;
|