From e5e15d26bf456f4e09fd0966ef1ed6c17d7a20a8 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Sun, 9 Apr 2023 18:19:53 +0300 Subject: [PATCH 01/11] Begin foundation for secrets v3 --- backend/src/controllers/v3/index.ts | 5 ++ .../src/controllers/v3/secretsController.ts | 66 +++++++++++++++++++ backend/src/routes/v3/secrets.ts | 42 +++++++++++- 3 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 backend/src/controllers/v3/index.ts create mode 100644 backend/src/controllers/v3/secretsController.ts diff --git a/backend/src/controllers/v3/index.ts b/backend/src/controllers/v3/index.ts new file mode 100644 index 000000000..dba8067f7 --- /dev/null +++ b/backend/src/controllers/v3/index.ts @@ -0,0 +1,5 @@ +import * as secretsController from './secretsController'; + +export { + secretsController +} \ No newline at end of file diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts new file mode 100644 index 000000000..de0212e33 --- /dev/null +++ b/backend/src/controllers/v3/secretsController.ts @@ -0,0 +1,66 @@ +import { Request, Response } from 'express'; +import { + Secret +} from '../../models'; + +/** + * Get secrets for workspace with id [workspaceId] and environment + * [environment] + * @param req + * @param res + */ +export const getSecrets = async (req: Request, res: Response) => { + return res.status(200).send({ + + }); +} + +/** + * Return secret with name [secretName] for workspace with id [workspaceId] + * and environment [environment] + * @param req + * @param res + */ +export const getSecretByName = async (req: Request, res: Response) => { + return res.status(200).send({ + + }); +} + +/** + * Create secret for workspace with id [workspaceId] and + * environment [environment] + * @param req + * @param res + */ +export const createSecret = async (req: Request, res: Response) => { + const { workspaceId } = req.params; + + return res.status(200).send({ + + }); +} + +/** + * Update secret with name [secretName] in workspace with id [workspaceId] + * @param req + * @param res + */ +export const updateSecretByName = async (req: Request, res: Response) => { + + return res.status(200).send({ + + }); +} + +/** + * Delete secret with name [secretName] in workspace with id [workspaceId] + * @param req + * @param res + */ +export const deleteSecretByName = async (req: Request, res: Response) => { + + return res.status(200).send({ + + }); +} \ No newline at end of file diff --git a/backend/src/routes/v3/secrets.ts b/backend/src/routes/v3/secrets.ts index b415139a9..1ed5848af 100644 --- a/backend/src/routes/v3/secrets.ts +++ b/backend/src/routes/v3/secrets.ts @@ -3,6 +3,46 @@ const router = express.Router(); import { requireAuth, validateRequest } from '../../middleware'; -import { body } from 'express-validator'; +import { body, param, query } from 'express-validator'; +import { secretsController } from '../../controllers/v3'; + +// note: future endpoints pending brainstorm + implementation + +router.post( + '/', + body('workspaceId').exists().isString().trim(), + body('environment').exists().isString().trim(), + secretsController.createSecret +); + +router.get( + '/', + query('workspaceId').exists().isString().trim(), + query('environment').exists().isString().trim(), + query('tagSlugs'), + secretsController.getSecrets +); + +router.get( + '/:secretName', + param('secretName').exists().isString().trim(), + secretsController.getSecretByName +); + +router.patch( + '/:secretName', + param('secretName').exists().isString().trim(), + query('workspaceId').exists().isString().trim(), + validateRequest, + secretsController.updateSecretByName +); + +router.delete( + '/:secretName', + param('secretName').exists().isString().trim(), + query('workspaceId').exists().isString().trim(), + validateRequest, + secretsController.deleteSecretByName +); export default router; \ No newline at end of file From 3eb810b9792c5ffa7297a7b57c21df218d064021 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Sat, 15 Apr 2023 11:02:56 +0300 Subject: [PATCH 02/11] Checkpoint --- backend/package-lock.json | 85 ++++++++++++++----- backend/package.json | 1 + .../src/controllers/v3/secretsController.ts | 22 ++++- backend/src/routes/v3/secrets.ts | 24 ++++-- 4 files changed, 102 insertions(+), 30 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index ab41b74b0..c95722331 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -16,6 +16,7 @@ "@sentry/tracing": "^7.39.0", "@types/crypto-js": "^4.1.1", "@types/libsodium-wrappers": "^0.7.10", + "argon2": "^0.30.3", "await-to-js": "^3.0.0", "aws-sdk": "^2.1331.0", "axios": "^1.1.3", @@ -3250,6 +3251,14 @@ "@octokit/openapi-types": "^16.0.0" } }, + "node_modules/@phc/format": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", + "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==", + "engines": { + "node": ">=10" + } + }, "node_modules/@posthog/plugin-scaffold": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@posthog/plugin-scaffold/-/plugin-scaffold-1.4.2.tgz", @@ -4324,6 +4333,20 @@ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, + "node_modules/argon2": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.30.3.tgz", + "integrity": "sha512-DoH/kv8c9127ueJSBxAVJXinW9+EuPA3EMUxoV2sAY1qDE5H9BjTyVF/aD2XyHqbqUWabgBkIfcP3ZZuGhbJdg==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.10", + "@phc/format": "^1.0.0", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -4396,9 +4419,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1331.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1331.0.tgz", - "integrity": "sha512-zrA1ymbt/D4GtieF7FuiZacv1fp9BBp9qnHUmy0YbPd9dwH5iwPIFkzdGTABbQ+F3a6b//AjtTpcF/JGVjCtTw==", + "version": "2.1358.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1358.0.tgz", + "integrity": "sha512-ZolqFlnm0mDNgub7FGrVi7r5A1rw+58zZziKhlis3IxOtIpHdx4BQU5pH4htAMuD0Ct557p/dC/wmnZH/1Rc9Q==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -4409,7 +4432,7 @@ "url": "0.10.3", "util": "^0.12.4", "uuid": "8.0.0", - "xml2js": "0.4.19" + "xml2js": "0.5.0" }, "engines": { "node": ">= 10.0.0" @@ -12715,18 +12738,21 @@ "dev": true }, "node_modules/xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dependencies": { "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, "node_modules/xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "engines": { "node": ">=4.0" } @@ -15283,6 +15309,11 @@ "@octokit/openapi-types": "^16.0.0" } }, + "@phc/format": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", + "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==" + }, "@posthog/plugin-scaffold": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@posthog/plugin-scaffold/-/plugin-scaffold-1.4.2.tgz", @@ -16128,6 +16159,16 @@ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, + "argon2": { + "version": "0.30.3", + "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.30.3.tgz", + "integrity": "sha512-DoH/kv8c9127ueJSBxAVJXinW9+EuPA3EMUxoV2sAY1qDE5H9BjTyVF/aD2XyHqbqUWabgBkIfcP3ZZuGhbJdg==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.10", + "@phc/format": "^1.0.0", + "node-addon-api": "^5.0.0" + } + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -16182,9 +16223,9 @@ "integrity": "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==" }, "aws-sdk": { - "version": "2.1331.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1331.0.tgz", - "integrity": "sha512-zrA1ymbt/D4GtieF7FuiZacv1fp9BBp9qnHUmy0YbPd9dwH5iwPIFkzdGTABbQ+F3a6b//AjtTpcF/JGVjCtTw==", + "version": "2.1358.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1358.0.tgz", + "integrity": "sha512-ZolqFlnm0mDNgub7FGrVi7r5A1rw+58zZziKhlis3IxOtIpHdx4BQU5pH4htAMuD0Ct557p/dC/wmnZH/1Rc9Q==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -16195,7 +16236,7 @@ "url": "0.10.3", "util": "^0.12.4", "uuid": "8.0.0", - "xml2js": "0.4.19" + "xml2js": "0.5.0" }, "dependencies": { "uuid": { @@ -22282,18 +22323,18 @@ "dev": true }, "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "requires": { "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" + "xmlbuilder": "~11.0.0" } }, "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==" + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" }, "y18n": { "version": "5.0.8", diff --git a/backend/package.json b/backend/package.json index ef6e348b7..8971c6c70 100644 --- a/backend/package.json +++ b/backend/package.json @@ -7,6 +7,7 @@ "@sentry/tracing": "^7.39.0", "@types/crypto-js": "^4.1.1", "@types/libsodium-wrappers": "^0.7.10", + "argon2": "^0.30.3", "await-to-js": "^3.0.0", "aws-sdk": "^2.1331.0", "axios": "^1.1.3", diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index de0212e33..14e0a1462 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -3,6 +3,9 @@ import { Secret } from '../../models'; +// TODO: modularize argon2id +import * as argon2 from 'argon2'; + /** * Get secrets for workspace with id [workspaceId] and environment * [environment] @@ -22,6 +25,10 @@ export const getSecrets = async (req: Request, res: Response) => { * @param res */ export const getSecretByName = async (req: Request, res: Response) => { + const { secretName } = req.params; + const workspaceId = req.query.workspaceId as string; + const environment = req.query.workspaceId as string; + return res.status(200).send({ }); @@ -34,7 +41,19 @@ export const getSecretByName = async (req: Request, res: Response) => { * @param res */ export const createSecret = async (req: Request, res: Response) => { - const { workspaceId } = req.params; + // TODO: the middleware should've prevalidated that the + // workspace with id [workspaceId] has disabled E2EE + const { secretName } = req.params; + const { + workspaceId, + environment, + value + } = req.body; + + // + // use bot to encrypt value + // BotService.encryptSymmetric(value) + return res.status(200).send({ @@ -47,6 +66,7 @@ export const createSecret = async (req: Request, res: Response) => { * @param res */ export const updateSecretByName = async (req: Request, res: Response) => { + const { secretName } = req.params; return res.status(200).send({ diff --git a/backend/src/routes/v3/secrets.ts b/backend/src/routes/v3/secrets.ts index 1ed5848af..7ed47365c 100644 --- a/backend/src/routes/v3/secrets.ts +++ b/backend/src/routes/v3/secrets.ts @@ -8,13 +8,6 @@ import { secretsController } from '../../controllers/v3'; // note: future endpoints pending brainstorm + implementation -router.post( - '/', - body('workspaceId').exists().isString().trim(), - body('environment').exists().isString().trim(), - secretsController.createSecret -); - router.get( '/', query('workspaceId').exists().isString().trim(), @@ -23,9 +16,25 @@ router.get( secretsController.getSecrets ); +router.post( + '/:secretName', + body('workspaceId').exists().isString().trim(), + body('environment').exists().isString().trim(), + body('value').exists().isString().trim(), + body('secretKeyCiphertext').optional().isString().trim(), + body('secretKeyIV').optional().isString().trim(), + body('secretKeyTag').optional().isString().trim(), + body('secretValueCiphertext').optional().isString().trim(), + body('secretValueIV').optional().isString().trim(), + body('secretValueTag').optional().isString().trim(), + secretsController.createSecret +); + router.get( '/:secretName', param('secretName').exists().isString().trim(), + query('workspaceId').exists().isString().trim(), + query('environment').exists().isString().trim(), secretsController.getSecretByName ); @@ -33,6 +42,7 @@ router.patch( '/:secretName', param('secretName').exists().isString().trim(), query('workspaceId').exists().isString().trim(), + query('environment').exists().isString().trim(), validateRequest, secretsController.updateSecretByName ); From fcb677d99029571fdaf64444cc9f16812b58ea78 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Sat, 15 Apr 2023 15:21:44 +0300 Subject: [PATCH 03/11] Checkpoint argon2id test to generate blind index --- .../src/controllers/v3/secretsController.ts | 29 ++++++++++++++++--- backend/src/index.ts | 10 +++++-- backend/src/models/index.ts | 3 ++ backend/src/models/secret.ts | 6 +++- backend/src/models/secretBlindIndexData.ts | 25 ++++++++++++++++ backend/src/routes/v3/index.ts | 5 ++++ backend/src/routes/v3/secrets.ts | 14 ++++----- backend/src/services/SecretService.ts | 26 +++++++++++++++++ 8 files changed, 104 insertions(+), 14 deletions(-) create mode 100644 backend/src/models/secretBlindIndexData.ts create mode 100644 backend/src/routes/v3/index.ts create mode 100644 backend/src/services/SecretService.ts diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index 14e0a1462..7c390fab3 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -1,7 +1,9 @@ import { Request, Response } from 'express'; +import { Types } from 'mongoose'; import { Secret } from '../../models'; +import crypto from 'crypto'; // TODO: modularize argon2id import * as argon2 from 'argon2'; @@ -47,13 +49,32 @@ export const createSecret = async (req: Request, res: Response) => { const { workspaceId, environment, - value + value, + type } = req.body; - // - // use bot to encrypt value - // BotService.encryptSymmetric(value) + // use workspace salt + const randomBytes = crypto.randomBytes(16); + // generate blind index + // TODO 1: abstract away into create blind index function + // TODO 2: create a get blind index function + const secretBlindIndex = (await argon2.hash(secretName, { + type: argon2.argon2id, + salt: randomBytes, + saltLength: 16, // default 16 bytes + memoryCost: 65536, // default pool of 64 MiB per thread. + hashLength: 32, + parallelism: 1, + raw: true + })).toString('base64'); + + // const secret = await new Secret({ + // workspace: new Types.ObjectId(workspaceId), + // environment, + // type, + // secretBlindIndex + // }).save(); return res.status(200).send({ diff --git a/backend/src/index.ts b/backend/src/index.ts index 912d39177..dcf66ffd6 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -61,6 +61,9 @@ import { environment as v2EnvironmentRouter, tags as v2TagsRouter, } from './routes/v2'; +import { + secrets as v3SecretsRouter +} from './routes/v3'; import { healthCheck } from './routes/status'; import { getLogger } from './utils/logger'; import { RouteNotFoundError } from './utils/errors'; @@ -121,7 +124,7 @@ const main = async () => { app.use('/api/v1/workspace', eeWorkspaceRouter); app.use('/api/v1/action', eeActionRouter); - // v1 routes + // v1 routes (default) app.use('/api/v1/signup', v1SignupRouter); app.use('/api/v1/auth', v1AuthRouter); app.use('/api/v1/bot', v1BotRouter); @@ -140,7 +143,7 @@ const main = async () => { app.use('/api/v1/integration', v1IntegrationRouter); app.use('/api/v1/integration-auth', v1IntegrationAuthRouter); - // v2 routes + // v2 routes (improvements) app.use('/api/v2/signup', v2SignupRouter); app.use('/api/v2/auth', v2AuthRouter); app.use('/api/v2/users', v2UsersRouter); @@ -153,6 +156,9 @@ const main = async () => { app.use('/api/v2/service-token', v2ServiceTokenDataRouter); // TODO: turn into plural route app.use('/api/v2/service-accounts', v2ServiceAccountsRouter); // new app.use('/api/v2/api-key', v2APIKeyDataRouter); + + // v3 routes (experimental) + app.use('/api/v3/secrets', v3SecretsRouter); // api docs app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerFile)) diff --git a/backend/src/models/index.ts b/backend/src/models/index.ts index 886f7fec6..6cd6a01da 100644 --- a/backend/src/models/index.ts +++ b/backend/src/models/index.ts @@ -9,6 +9,7 @@ import Membership, { IMembership } from './membership'; import MembershipOrg, { IMembershipOrg } from './membershipOrg'; import Organization, { IOrganization } from './organization'; import Secret, { ISecret } from './secret'; +import SecretBlindIndexData, { ISecretBlindIndexData } from './secretBlindIndexData'; import ServiceToken, { IServiceToken } from './serviceToken'; import ServiceAccount, { IServiceAccount } from './serviceAccount'; // new import ServiceAccountKey, { IServiceAccountKey } from './serviceAccountKey'; // new @@ -45,6 +46,8 @@ export { IOrganization, Secret, ISecret, + SecretBlindIndexData, + ISecretBlindIndexData, ServiceToken, IServiceToken, ServiceAccount, diff --git a/backend/src/models/secret.ts b/backend/src/models/secret.ts index 463ed50fd..d3184b5e1 100644 --- a/backend/src/models/secret.ts +++ b/backend/src/models/secret.ts @@ -1,4 +1,4 @@ -import { Schema, model, Types } from 'mongoose'; +import { Schema, model, Types, Document } from 'mongoose'; import { SECRET_SHARED, SECRET_PERSONAL, @@ -11,6 +11,7 @@ export interface ISecret { type: string; user: Types.ObjectId; environment: string; + secretBlindIndex?: string; secretKeyCiphertext: string; secretKeyIV: string; secretKeyTag: string; @@ -57,6 +58,9 @@ const secretSchema = new Schema( type: String, required: true }, + secretBlindIndex: { + type: String + }, secretKeyCiphertext: { type: String, required: true diff --git a/backend/src/models/secretBlindIndexData.ts b/backend/src/models/secretBlindIndexData.ts new file mode 100644 index 000000000..9d0842ba4 --- /dev/null +++ b/backend/src/models/secretBlindIndexData.ts @@ -0,0 +1,25 @@ +import { Schema, model, Types, Document } from 'mongoose'; + +export interface ISecretBlindIndexData { + _id: Types.ObjectId; + workspace: Types.ObjectId; + encryptedSalt: string; +} + +const secretBlindIndexDataSchema = new Schema( + { + workspace: { + type: Schema.Types.ObjectId, + ref: 'Workspace', + required: true + }, + encryptedSalt: { + type: String, + required: true + } + } +); + +const SecretBlindIndexData = model('SecretBlindIndexData', secretBlindIndexDataSchema); + +export default SecretBlindIndexData; \ No newline at end of file diff --git a/backend/src/routes/v3/index.ts b/backend/src/routes/v3/index.ts new file mode 100644 index 000000000..fffd60b49 --- /dev/null +++ b/backend/src/routes/v3/index.ts @@ -0,0 +1,5 @@ +import secrets from './secrets'; + +export { + secrets +} \ No newline at end of file diff --git a/backend/src/routes/v3/secrets.ts b/backend/src/routes/v3/secrets.ts index 7ed47365c..92bc2d9a3 100644 --- a/backend/src/routes/v3/secrets.ts +++ b/backend/src/routes/v3/secrets.ts @@ -20,13 +20,13 @@ router.post( '/:secretName', body('workspaceId').exists().isString().trim(), body('environment').exists().isString().trim(), - body('value').exists().isString().trim(), - body('secretKeyCiphertext').optional().isString().trim(), - body('secretKeyIV').optional().isString().trim(), - body('secretKeyTag').optional().isString().trim(), - body('secretValueCiphertext').optional().isString().trim(), - body('secretValueIV').optional().isString().trim(), - body('secretValueTag').optional().isString().trim(), + 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(), + validateRequest, secretsController.createSecret ); diff --git a/backend/src/services/SecretService.ts b/backend/src/services/SecretService.ts new file mode 100644 index 000000000..21ecf1124 --- /dev/null +++ b/backend/src/services/SecretService.ts @@ -0,0 +1,26 @@ +// WIP +import { Types } from 'mongoose'; + +class SecretService { + static async createSecretBlindIndex({ + secretName, + workspaceId, + }: { + secretName: string; + workspaceId: Types.ObjectId; + }) { + // TODO + return; + } + + static async getSecretBlindIndex({ + secretName, + workspaceId + }: { + secretName: string; + workspaceId: Types.ObjectId; + }) { + // TODO + return; + } +} \ No newline at end of file From d9afe9088573b0c22af66c5dd2149380da3cc1b1 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Sat, 15 Apr 2023 17:39:30 +0300 Subject: [PATCH 04/11] Begin frontend for blinded indices --- .../src/controllers/v3/secretsController.ts | 51 +++++++++---- backend/src/helpers/secrets.ts | 75 ++++++++++++++++++- backend/src/models/workspace.ts | 15 ++++ backend/src/services/SecretService.ts | 34 +++++++-- backend/src/services/index.ts | 6 +- backend/src/variables/index.ts | 10 ++- backend/src/variables/workspace.ts | 9 +++ .../ProjectSettingsPage.tsx | 5 +- .../ProjectEncryptionModeSection.tsx | 8 ++ .../ProjectEncryptionModeSection/index.tsx | 1 + .../ProjectSettingsPage/components/index.tsx | 1 + 11 files changed, 186 insertions(+), 29 deletions(-) create mode 100644 backend/src/variables/workspace.ts create mode 100644 frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx create mode 100644 frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/index.tsx diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index 7c390fab3..b10e98cbc 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -4,6 +4,8 @@ import { Secret } from '../../models'; import crypto from 'crypto'; +import { SecretService } from '../../services'; + // TODO: modularize argon2id import * as argon2 from 'argon2'; @@ -50,30 +52,47 @@ export const createSecret = async (req: Request, res: Response) => { workspaceId, environment, value, - type + type, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag } = req.body; - // use workspace salt - const randomBytes = crypto.randomBytes(16); + const secretBlindIndex = await SecretService.createSecretBlindIndex({ + secretName, + workspaceId: new Types.ObjectId(workspaceId) + }); - // generate blind index - // TODO 1: abstract away into create blind index function - // TODO 2: create a get blind index function - const secretBlindIndex = (await argon2.hash(secretName, { - type: argon2.argon2id, - salt: randomBytes, - saltLength: 16, // default 16 bytes - memoryCost: 65536, // default pool of 64 MiB per thread. - hashLength: 32, - parallelism: 1, - raw: true - })).toString('base64'); + // // use workspace salt + // const randomBytes = crypto.randomBytes(16); + + // // generate blind index + // // TODO 1: abstract away into create blind index function + // // TODO 2: create a get blind index function + // const secretBlindIndex = (await argon2.hash(secretName, { + // type: argon2.argon2id, + // salt: randomBytes, + // saltLength: 16, // default 16 bytes + // memoryCost: 65536, // default pool of 64 MiB per thread. + // hashLength: 32, + // parallelism: 1, + // raw: true + // })).toString('base64'); // const secret = await new Secret({ // workspace: new Types.ObjectId(workspaceId), // environment, // type, - // secretBlindIndex + // secretBlindIndex, + // secretKeyCiphertext, + // secretKeyIV, + // secretKeyTag, + // secretValueCiphertext, + // secretValueIV, + // secretValueTag // }).save(); return res.status(200).send({ diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index 7d3e54105..f48855aef 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -7,7 +7,8 @@ import { ServiceTokenData, IServiceTokenData, Secret, - ISecret + ISecret, + SecretBlindIndexData, } from '../models'; import { validateMembership @@ -34,6 +35,9 @@ import { AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_API_KEY } from '../variables'; +import crypto from 'crypto'; +import * as argon2 from 'argon2'; + /** * Validate authenticated clients for secrets with id [secretId] based @@ -192,7 +196,74 @@ const validateClientForSecrets = async ({ }); } +/** + * Create and return blind index for secret with + * name [name] part of workspace with id [workspaceId] + * @param {Object} obj + * @param {Object} obj.secretName - name of secret to generate blind index for + * @param {Object} obj.workspaceId - id of workspace that secret belongs to + */ +const createSecretBlindIndexHelper = async ({ + secretName, + workspaceId +}: { + secretName: string; + workspaceId: Types.ObjectId; +}) => { + + // check if workspace blind index data exists + // const secretBlindIndexData = await SecretBlindIndexData.findOne({ + // workspace: workspaceId + // }); + + // if (!secretBlindIndexData) { + // // case: workspace blind index data has not been enabled + // } + + // TODO: randomBytes should come from the decrypted secretBlindIndexData + const randomBytes = crypto.randomBytes(16); + + const secretBlindIndex = (await argon2.hash(secretName, { + type: argon2.argon2id, + salt: randomBytes, + saltLength: 16, // default 16 bytes + memoryCost: 65536, // default pool of 64 MiB per thread. + hashLength: 32, + parallelism: 1, + raw: true + })).toString('base64'); + + return secretBlindIndex; +} + +/** + * Return the blind index for the secret with + * name [name] part of workspace with id [workspaceId] + * @param {Object} obj + * @param {Object} obj.secretName - name of secret to generate blind index for + * @param {Object} obj.workspaceId - id of workspace that secret belongs to + */ +const getSecretBlindIndexHelper = async ({ + secretName, + workspaceId +}: { + secretName: string; + workspaceId: Types.ObjectId; +}) => { + + // check if workspace blind index data exists + const secretBlindIndexData = await SecretBlindIndexData.findOne({ + workspace: workspaceId + }); + + if (!secretBlindIndexData) { + // case: workspace blind index data has not been enabled + } +} + export { validateClientForSecret, - validateClientForSecrets + validateClientForSecrets, + createSecretBlindIndexHelper, + getSecretBlindIndexHelper } \ No newline at end of file diff --git a/backend/src/models/workspace.ts b/backend/src/models/workspace.ts index d68ae9416..e6f1a69d3 100644 --- a/backend/src/models/workspace.ts +++ b/backend/src/models/workspace.ts @@ -1,8 +1,14 @@ import { Schema, model, Types } from 'mongoose'; +import { + WORKSPACE_ENCRYPTION_MODE_E2EE, + WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, + WORKSPACE_ENCRYPTION_MODE_NOT_E2EE +} from '../variables'; export interface IWorkspace { _id: Types.ObjectId; name: string; + encryptionMode: string; organization: Types.ObjectId; environments: Array<{ name: string; @@ -16,6 +22,15 @@ const workspaceSchema = new Schema({ type: String, required: true }, + encryptionMode: { + type: String, + default: 'e2ee', + enum: [ + WORKSPACE_ENCRYPTION_MODE_E2EE, + WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, + WORKSPACE_ENCRYPTION_MODE_NOT_E2EE + ] + }, autoCapitalization: { type: Boolean, default: true, diff --git a/backend/src/services/SecretService.ts b/backend/src/services/SecretService.ts index 21ecf1124..0c7132327 100644 --- a/backend/src/services/SecretService.ts +++ b/backend/src/services/SecretService.ts @@ -1,7 +1,18 @@ // WIP import { Types } from 'mongoose'; +import { + createSecretBlindIndexHelper, + getSecretBlindIndexHelper +} from '../helpers/secrets'; class SecretService { + /** + * Create and return blind index for secret with + * name [name] part of workspace with id [workspaceId] + * @param {Object} obj + * @param {Object} obj.secretName - name of secret to generate blind index for + * @param {Object} obj.workspaceId - id of workspace that secret belongs to + */ static async createSecretBlindIndex({ secretName, workspaceId, @@ -9,10 +20,19 @@ class SecretService { secretName: string; workspaceId: Types.ObjectId; }) { - // TODO - return; + return await createSecretBlindIndexHelper({ + secretName, + workspaceId + }); } + /** + * Return the blind index for the secret with + * name [name] part of workspace with id [workspaceId] + * @param {Object} obj + * @param {Object} obj.secretName - name of secret to generate blind index for + * @param {Object} obj.workspaceId - id of workspace that secret belongs to + */ static async getSecretBlindIndex({ secretName, workspaceId @@ -20,7 +40,11 @@ class SecretService { secretName: string; workspaceId: Types.ObjectId; }) { - // TODO - return; + return await getSecretBlindIndexHelper({ + secretName, + workspaceId + }); } -} \ No newline at end of file +} + +export default SecretService; \ No newline at end of file diff --git a/backend/src/services/index.ts b/backend/src/services/index.ts index f93f45f58..db0bd39a3 100644 --- a/backend/src/services/index.ts +++ b/backend/src/services/index.ts @@ -5,14 +5,14 @@ import BotService from './BotService'; import EventService from './EventService'; import IntegrationService from './IntegrationService'; import TokenService from './TokenService'; +import SecretService from './SecretService'; export { TelemetryService, - // logTelemetryMessage, - // getPostHogClient, DatabaseService, BotService, EventService, IntegrationService, - TokenService + TokenService, + SecretService } \ No newline at end of file diff --git a/backend/src/variables/index.ts b/backend/src/variables/index.ts index 979de21ab..92f76ac8e 100644 --- a/backend/src/variables/index.ts +++ b/backend/src/variables/index.ts @@ -77,6 +77,11 @@ import { AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_API_KEY } from './authentication'; +import { + WORKSPACE_ENCRYPTION_MODE_E2EE, + WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, + WORKSPACE_ENCRYPTION_MODE_NOT_E2EE +} from './workspace'; export { OWNER, @@ -148,5 +153,8 @@ export { AUTH_MODE_JWT, AUTH_MODE_SERVICE_ACCOUNT, AUTH_MODE_SERVICE_TOKEN, - AUTH_MODE_API_KEY + AUTH_MODE_API_KEY, + WORKSPACE_ENCRYPTION_MODE_E2EE, + WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, + WORKSPACE_ENCRYPTION_MODE_NOT_E2EE }; diff --git a/backend/src/variables/workspace.ts b/backend/src/variables/workspace.ts new file mode 100644 index 000000000..c0be34fcb --- /dev/null +++ b/backend/src/variables/workspace.ts @@ -0,0 +1,9 @@ +const WORKSPACE_ENCRYPTION_MODE_E2EE = 'e2ee'; +const WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE = 'blind-indexed-e2ee'; +const WORKSPACE_ENCRYPTION_MODE_NOT_E2EE = 'not-e2ee'; + +export { + WORKSPACE_ENCRYPTION_MODE_E2EE, + WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, + WORKSPACE_ENCRYPTION_MODE_NOT_E2EE +} \ No newline at end of file diff --git a/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx b/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx index af812c6aa..1684f6c1a 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx @@ -39,9 +39,9 @@ import { CreateUpdateEnvFormData, CreateWsTag, EnvironmentSection, + ProjectEncryptionModeSection, ProjectNameChangeSection, - ServiceTokenSection -} from './components'; + ServiceTokenSection} from './components'; export const ProjectSettingsPage = () => { const { t } = useTranslation(); @@ -349,6 +349,7 @@ export const ProjectSettingsPage = () => { workspaceAutoCapitalization={currentWorkspace?.autoCapitalization} onAutoCapitalizationChange={onAutoCapitalizationToggle} /> +

{t('settings-project:danger-zone')}

{t('settings-project:danger-zone-note')}

diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx new file mode 100644 index 000000000..94c1f2037 --- /dev/null +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx @@ -0,0 +1,8 @@ + +export const ProjectEncryptionModeSection = () => { + return ( +
+ Project encryption mode section +
+ ); +} \ No newline at end of file diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/index.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/index.tsx new file mode 100644 index 000000000..981819f70 --- /dev/null +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/index.tsx @@ -0,0 +1 @@ +export { ProjectEncryptionModeSection } from './ProjectEncryptionModeSection'; \ No newline at end of file diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/index.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/index.tsx index 98160b5b7..83a4b3a95 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/index.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/index.tsx @@ -1,6 +1,7 @@ export { CopyProjectIDSection } from './CopyProjectIDSection'; export { EnvironmentSection } from './EnvironmentSection'; export type { CreateUpdateEnvFormData } from './EnvironmentSection/EnvironmentSection'; +export { ProjectEncryptionModeSection } from './ProjectEncryptionModeSection'; export { ProjectNameChangeSection } from './ProjectNameChangeSection'; export type { CreateWsTag } from './SecretTagsSection/SecretTagsSection'; export { ServiceTokenSection } from './ServiceTokenSection'; From df83e8ceb9eeda5025e53bcc7fbecc8f45a36e95 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Mon, 17 Apr 2023 11:09:45 +0300 Subject: [PATCH 05/11] Complete first iteration of CRUD secrets operations by name --- backend/src/controllers/v1/botController.ts | 3 +- .../src/controllers/v2/secretsController.ts | 34 +- .../src/controllers/v3/secretsController.ts | 229 +++++-- .../src/ee/controllers/v1/secretController.ts | 2 +- .../ee/controllers/v1/workspaceController.ts | 2 +- backend/src/ee/helpers/log.ts | 1 + backend/src/ee/helpers/secret.ts | 6 +- backend/src/ee/models/secretVersion.ts | 9 +- backend/src/ee/services/EESecretService.ts | 2 +- backend/src/helpers/bot.ts | 2 +- backend/src/helpers/secret.ts | 21 +- backend/src/helpers/secrets.ts | 577 ++++++++++++++++-- backend/src/helpers/workspace.ts | 47 +- backend/src/interfaces/middleware/index.ts | 12 + .../services/SecretService/index.ts | 49 ++ backend/src/middleware/requireAuth.ts | 5 +- .../src/middleware/requireWorkspaceAuth.ts | 7 +- backend/src/models/secret.ts | 5 +- backend/src/models/secretBlindIndexData.ts | 14 +- backend/src/models/workspace.ts | 22 +- backend/src/routes/v3/secrets.ts | 81 ++- backend/src/services/SecretService.ts | 173 +++++- backend/src/services/TelemetryService.ts | 3 + backend/src/types/express/index.d.ts | 8 +- backend/src/utils/auth.ts | 26 + backend/src/utils/errors.ts | 10 + backend/src/variables/index.ts | 10 +- backend/src/variables/workspace.ts | 9 - .../ProjectEncryptionModeSection.tsx | 91 ++- 29 files changed, 1231 insertions(+), 229 deletions(-) create mode 100644 backend/src/interfaces/middleware/index.ts create mode 100644 backend/src/interfaces/services/SecretService/index.ts create mode 100644 backend/src/utils/auth.ts diff --git a/backend/src/controllers/v1/botController.ts b/backend/src/controllers/v1/botController.ts index ab86897cb..0fdce2cd9 100644 --- a/backend/src/controllers/v1/botController.ts +++ b/backend/src/controllers/v1/botController.ts @@ -1,4 +1,5 @@ import { Request, Response } from 'express'; +import { Types } from 'mongoose'; import * as Sentry from '@sentry/node'; import { Bot, BotKey } from '../../models'; import { createBot } from '../../helpers/bot'; @@ -29,7 +30,7 @@ export const getBotByWorkspaceId = async (req: Request, res: Response) => { // -> create a new bot and return it bot = await createBot({ name: 'Infisical Bot', - workspaceId + workspaceId: new Types.ObjectId(workspaceId) }); } } catch (err) { diff --git a/backend/src/controllers/v2/secretsController.ts b/backend/src/controllers/v2/secretsController.ts index 82b16edd6..c7d586d85 100644 --- a/backend/src/controllers/v2/secretsController.ts +++ b/backend/src/controllers/v2/secretsController.ts @@ -2,7 +2,7 @@ import to from 'await-to-js'; import { Types } from 'mongoose'; import { Request, Response } from 'express'; import { ISecret, Secret } from '../../models'; -import { IAction } from '../../ee/models'; +import { IAction, SecretVersion } from '../../ee/models'; import { SECRET_PERSONAL, SECRET_SHARED, @@ -33,6 +33,7 @@ import { * @param res */ export const batchSecrets = async (req: Request, res: Response) => { + const channel = getChannelFromUserAgent(req.headers['user-agent']); const postHogClient = TelemetryService.getPostHogClient(); @@ -146,7 +147,7 @@ export const batchSecrets = async (req: Request, res: Response) => { await Secret.bulkWrite(updateOperations); - const secretVersions = updateSecrets.map((u) => ({ + const secretVersions = updateSecrets.map((u) => new SecretVersion({ secret: new Types.ObjectId(u._id), version: listedSecretsObj[u._id.toString()].version, workspace: new Types.ObjectId(workspaceId), @@ -253,7 +254,7 @@ export const batchSecrets = async (req: Request, res: Response) => { // (EE) take a secret snapshot await EESecretService.takeSecretSnapshot({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId) }); const resObj: { [key: string]: ISecret[] | string[] } = {} @@ -422,13 +423,8 @@ export const createSecrets = async (req: Request, res: Response) => { secretKeyTag, secretValueCiphertext, secretValueIV, - secretValueTag, - secretCommentCiphertext, - secretCommentIV, - secretCommentTag, - tags - }) => ({ - _id: new Types.ObjectId(), + secretValueTag + }) => new SecretVersion({ secret: _id, version, workspace, @@ -441,11 +437,7 @@ export const createSecrets = async (req: Request, res: Response) => { secretKeyTag, secretValueCiphertext, secretValueIV, - secretValueTag, - secretCommentCiphertext, - secretCommentIV, - secretCommentTag, - tags + secretValueTag })) }); @@ -471,7 +463,7 @@ export const createSecrets = async (req: Request, res: Response) => { // (EE) take a secret snapshot await EESecretService.takeSecretSnapshot({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId) }); const postHogClient = TelemetryService.getPostHogClient(); @@ -872,7 +864,7 @@ export const updateSecrets = async (req: Request, res: Response) => { // (EE) take a secret snapshot await EESecretService.takeSecretSnapshot({ - workspaceId: key + workspaceId: new Types.ObjectId(key) }) const postHogClient = TelemetryService.getPostHogClient(); @@ -955,10 +947,6 @@ export const deleteSecrets = async (req: Request, res: Response) => { } */ - return res.status(200).send({ - message: 'delete secrets!!' - }); - const channel = getChannelFromUserAgent(req.headers['user-agent']) const toDelete = req.secrets.map((s: any) => s._id); @@ -1012,8 +1000,8 @@ export const deleteSecrets = async (req: Request, res: Response) => { // (EE) take a secret snapshot await EESecretService.takeSecretSnapshot({ - workspaceId: key - }) + workspaceId: new Types.ObjectId(key) + }); const postHogClient = TelemetryService.getPostHogClient(); if (postHogClient) { diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index b10e98cbc..0df6b961c 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -1,14 +1,8 @@ import { Request, Response } from 'express'; import { Types } from 'mongoose'; -import { - Secret -} from '../../models'; -import crypto from 'crypto'; -import { SecretService } from '../../services'; - - -// TODO: modularize argon2id -import * as argon2 from 'argon2'; +import { SecretService, TelemetryService } from '../../services'; +import { getAuthDataPayloadIdObj } from '../../utils/auth'; +import { BadRequestError } from '../../utils/errors'; /** * Get secrets for workspace with id [workspaceId] and environment @@ -17,41 +11,92 @@ import * as argon2 from 'argon2'; * @param res */ export const getSecrets = async (req: Request, res: Response) => { - return res.status(200).send({ + const workspaceId = req.query.workspaceId as string; + const environment = req.query.environment as string; + const secrets = await SecretService.getSecrets({ + workspaceId: new Types.ObjectId(workspaceId), + environment, + authData: req.authData + }); + + const postHogClient = TelemetryService.getPostHogClient(); + if (postHogClient) { + postHogClient.capture({ + event: 'secrets pulled', + distinctId: TelemetryService.getDistinctId({ + user: req.user, + serviceAccount: req.serviceAccount, + serviceTokenData: req.serviceTokenData + }), + properties: { + numberOfSecrets: secrets.length, + environment, + workspaceId, + channel: req.authData.authChannel, + userAgent: req.headers?.['user-agent'] + } + }); + } + + return res.status(200).send({ + secrets }); } /** - * Return secret with name [secretName] for workspace with id [workspaceId] - * and environment [environment] + * Get secret with name [secretName] * @param req * @param res */ export const getSecretByName = async (req: Request, res: Response) => { const { secretName } = req.params; const workspaceId = req.query.workspaceId as string; - const environment = req.query.workspaceId as string; + const environment = req.query.environment as string; + const type = req.query.type as 'shared' | 'personal' | undefined; + + const secret = await SecretService.getSecret({ + secretName, + workspaceId: new Types.ObjectId(workspaceId), + environment, + type, + authData: req.authData + }); + + const postHogClient = TelemetryService.getPostHogClient(); + if (postHogClient) { + postHogClient.capture({ + event: 'secrets pull', + distinctId: TelemetryService.getDistinctId({ + user: req.user, + serviceAccount: req.serviceAccount, + serviceTokenData: req.serviceTokenData + }), + properties: { + numberOfSecrets: 1, + environment, + workspaceId, + channel: req.authData.authChannel, + userAgent: req.headers?.['user-agent'] + } + }); + } return res.status(200).send({ - + secret }); } /** - * Create secret for workspace with id [workspaceId] and - * environment [environment] + * Create secret with name [secretName] * @param req * @param res */ export const createSecret = async (req: Request, res: Response) => { - // TODO: the middleware should've prevalidated that the - // workspace with id [workspaceId] has disabled E2EE const { secretName } = req.params; const { workspaceId, environment, - value, type, secretKeyCiphertext, secretKeyIV, @@ -61,66 +106,140 @@ export const createSecret = async (req: Request, res: Response) => { secretValueTag } = req.body; - const secretBlindIndex = await SecretService.createSecretBlindIndex({ + const secret = await SecretService.createSecret({ secretName, - workspaceId: new Types.ObjectId(workspaceId) + workspaceId: new Types.ObjectId(workspaceId), + environment, + type, + authData: req.authData, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag }); - - // // use workspace salt - // const randomBytes = crypto.randomBytes(16); - - // // generate blind index - // // TODO 1: abstract away into create blind index function - // // TODO 2: create a get blind index function - // const secretBlindIndex = (await argon2.hash(secretName, { - // type: argon2.argon2id, - // salt: randomBytes, - // saltLength: 16, // default 16 bytes - // memoryCost: 65536, // default pool of 64 MiB per thread. - // hashLength: 32, - // parallelism: 1, - // raw: true - // })).toString('base64'); - - // const secret = await new Secret({ - // workspace: new Types.ObjectId(workspaceId), - // environment, - // type, - // secretBlindIndex, - // secretKeyCiphertext, - // secretKeyIV, - // secretKeyTag, - // secretValueCiphertext, - // secretValueIV, - // secretValueTag - // }).save(); + + const postHogClient = TelemetryService.getPostHogClient(); + if (postHogClient) { + postHogClient.capture({ + event: 'secrets added', + distinctId: TelemetryService.getDistinctId({ + user: req.user, + serviceAccount: req.serviceAccount, + serviceTokenData: req.serviceTokenData + }), + properties: { + numberOfSecrets: 1, + environment, + workspaceId, + channel: req.authData.authChannel, + userAgent: req.headers?.['user-agent'] + } + }); + } + + const secretWithoutBlindIndex = secret.toObject(); + delete secretWithoutBlindIndex.secretBlindIndex; return res.status(200).send({ - + secret: secretWithoutBlindIndex }); } /** - * Update secret with name [secretName] in workspace with id [workspaceId] + * Update secret with name [secretName] * @param req * @param res */ export const updateSecretByName = async (req: Request, res: Response) => { const { secretName } = req.params; + const { + workspaceId, + environment, + type, + secretValueCiphertext, + secretValueIV, + secretValueTag + } = req.body; + + const secret = await SecretService.updateSecret({ + secretName, + workspaceId, + environment, + type, + authData: req.authData, + secretValueCiphertext, + secretValueIV, + secretValueTag + }); + + + const postHogClient = TelemetryService.getPostHogClient(); + if (postHogClient) { + postHogClient.capture({ + event: 'secrets modified', + distinctId: TelemetryService.getDistinctId({ + user: req.user, + serviceAccount: req.serviceAccount, + serviceTokenData: req.serviceTokenData + }), + properties: { + numberOfSecrets: 1, + environment, + workspaceId, + channel: req.authData.authChannel, + userAgent: req.headers?.['user-agent'] + } + }); + } return res.status(200).send({ - + secret }); } /** - * Delete secret with name [secretName] in workspace with id [workspaceId] + * Delete secret with name [secretName] * @param req * @param res */ export const deleteSecretByName = async (req: Request, res: Response) => { + const { secretName } = req.params; + const { + workspaceId, + environment, + type + } = req.body; + const { secret, secrets } = await SecretService.deleteSecret({ + secretName, + workspaceId, + environment, + type, + authData: req.authData + }); + + const postHogClient = TelemetryService.getPostHogClient(); + if (postHogClient) { + postHogClient.capture({ + event: 'secrets deleted', + distinctId: TelemetryService.getDistinctId({ + user: req.user, + serviceAccount: req.serviceAccount, + serviceTokenData: req.serviceTokenData + }), + properties: { + numberOfSecrets: secrets.length, + environment, + workspaceId, + channel: req.authData.authChannel, + userAgent: req.headers?.['user-agent'] + } + }); + } + return res.status(200).send({ - + secret }); } \ No newline at end of file diff --git a/backend/src/ee/controllers/v1/secretController.ts b/backend/src/ee/controllers/v1/secretController.ts index e1aca670f..92503d772 100644 --- a/backend/src/ee/controllers/v1/secretController.ts +++ b/backend/src/ee/controllers/v1/secretController.ts @@ -207,7 +207,7 @@ export const rollbackSecretVersion = async (req: Request, res: Response) => { // take secret snapshot await EESecretService.takeSecretSnapshot({ - workspaceId: secret.workspace.toString() + workspaceId: secret.workspace }); } catch (err) { diff --git a/backend/src/ee/controllers/v1/workspaceController.ts b/backend/src/ee/controllers/v1/workspaceController.ts index 5a18ae08e..3c4ad111d 100644 --- a/backend/src/ee/controllers/v1/workspaceController.ts +++ b/backend/src/ee/controllers/v1/workspaceController.ts @@ -304,7 +304,7 @@ export const rollbackWorkspaceSecretSnapshot = async (req: Request, res: Respons // take secret snapshot await EESecretService.takeSecretSnapshot({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId) }); } catch (err) { Sentry.setUser({ email: req.user.email }); diff --git a/backend/src/ee/helpers/log.ts b/backend/src/ee/helpers/log.ts index 77d280ee1..077d5fe5a 100644 --- a/backend/src/ee/helpers/log.ts +++ b/backend/src/ee/helpers/log.ts @@ -4,6 +4,7 @@ import { Log, IAction } from '../models'; + /** * Create an (audit) log * @param {Object} obj diff --git a/backend/src/ee/helpers/secret.ts b/backend/src/ee/helpers/secret.ts index 7edee915f..a642859ef 100644 --- a/backend/src/ee/helpers/secret.ts +++ b/backend/src/ee/helpers/secret.ts @@ -2,7 +2,7 @@ import { Types } from 'mongoose'; import * as Sentry from '@sentry/node'; import { Secret, - ISecret + ISecret, } from '../../models'; import { SecretSnapshot, @@ -21,7 +21,7 @@ import { const takeSecretSnapshotHelper = async ({ workspaceId }: { - workspaceId: string; + workspaceId: Types.ObjectId; }) => { let secretSnapshot; @@ -143,7 +143,7 @@ const initSecretVersioningHelper = async () => { if (unversionedSecrets.length > 0) { await addSecretVersionsHelper({ - secretVersions: unversionedSecrets.map((s, idx) => ({ + secretVersions: unversionedSecrets.map((s, idx) => new SecretVersion({ ...s, secret: s._id, version: s.version ? s.version : 1, diff --git a/backend/src/ee/models/secretVersion.ts b/backend/src/ee/models/secretVersion.ts index 3095b52fb..63c7d936a 100644 --- a/backend/src/ee/models/secretVersion.ts +++ b/backend/src/ee/models/secretVersion.ts @@ -5,6 +5,7 @@ import { } from '../../variables'; export interface ISecretVersion { + _id: Types.ObjectId; secret: Types.ObjectId; version: number; workspace: Types.ObjectId; // new @@ -18,7 +19,6 @@ export interface ISecretVersion { secretValueCiphertext: string; secretValueIV: string; secretValueTag: string; - tags?: string[]; } const secretVersionSchema = new Schema( @@ -80,12 +80,7 @@ const secretVersionSchema = new Schema( secretValueTag: { type: String, // symmetric required: true - }, - tags: { - ref: 'Tag', - type: [Schema.Types.ObjectId], - default: [] - }, + } }, { timestamps: true diff --git a/backend/src/ee/services/EESecretService.ts b/backend/src/ee/services/EESecretService.ts index cea614c96..e408e848e 100644 --- a/backend/src/ee/services/EESecretService.ts +++ b/backend/src/ee/services/EESecretService.ts @@ -25,7 +25,7 @@ class EESecretService { static async takeSecretSnapshot({ workspaceId }: { - workspaceId: string; + workspaceId: Types.ObjectId; }) { if (!EELicenseService.isLicenseValid) return; return await takeSecretSnapshotHelper({ workspaceId }); diff --git a/backend/src/helpers/bot.ts b/backend/src/helpers/bot.ts index 1e242778d..7b7c773ea 100644 --- a/backend/src/helpers/bot.ts +++ b/backend/src/helpers/bot.ts @@ -112,7 +112,7 @@ const createBot = async ({ workspaceId, }: { name: string; - workspaceId: string; + workspaceId: Types.ObjectId; }) => { let bot; try { diff --git a/backend/src/helpers/secret.ts b/backend/src/helpers/secret.ts index 7a7979357..d9e9f807b 100644 --- a/backend/src/helpers/secret.ts +++ b/backend/src/helpers/secret.ts @@ -10,7 +10,8 @@ import { EELogService } from '../ee/services'; import { - IAction + IAction, + SecretVersion } from '../ee/models'; import { SECRET_SHARED, @@ -189,8 +190,7 @@ const v1PushSecrets = async ({ secretKeyHash, }) => { const newSecret = newSecretsObj[`${type}-${secretKeyHash}`]; - return ({ - _id: new Types.ObjectId(), + return new SecretVersion({ secret: _id, version: version ? version + 1 : 1, workspace: new Types.ObjectId(workspaceId), @@ -261,8 +261,7 @@ const v1PushSecrets = async ({ secretValueIV, secretValueTag, secretValueHash - }) => ({ - _id: new Types.ObjectId(), + }) => new SecretVersion({ secret: _id, version, workspace, @@ -284,7 +283,7 @@ const v1PushSecrets = async ({ // (EE) take a secret snapshot await EESecretService.takeSecretSnapshot({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId) }); } catch (err) { Sentry.setUser(null); @@ -475,12 +474,12 @@ const v2PushSecrets = async ({ // (EE) add secret versions for new secrets EESecretService.addSecretVersions({ - secretVersions: newSecrets.map((secretDocument) => { - return { - ...secretDocument.toObject(), + secretVersions: newSecrets.map((secretDocument: ISecret) => { + return new SecretVersion({ + ...secretDocument, secret: secretDocument._id, isDeleted: false - } + }) }) }); @@ -495,7 +494,7 @@ const v2PushSecrets = async ({ // (EE) take a secret snapshot await EESecretService.takeSecretSnapshot({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId) }) // (EE) create (audit) log diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index f48855aef..fa8af5c19 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -1,4 +1,11 @@ import { Types } from 'mongoose'; +import { + CreateSecretParams, + GetSecretsParams, + GetSecretParams, + UpdateSecretParams, + DeleteSecretParams +} from '../interfaces/services/SecretService'; import { User, IUser, @@ -10,6 +17,10 @@ import { ISecret, SecretBlindIndexData, } from '../models'; +import { + IAction, + SecretVersion +} from '../ee/models'; import { validateMembership } from '../helpers/membership'; @@ -27,17 +38,32 @@ import { import { BadRequestError, UnauthorizedRequestError, - SecretNotFoundError + SecretNotFoundError, + SecretBlindIndexDataNotFoundError } from '../utils/errors'; import { AUTH_MODE_JWT, AUTH_MODE_SERVICE_ACCOUNT, AUTH_MODE_SERVICE_TOKEN, - AUTH_MODE_API_KEY + AUTH_MODE_API_KEY, + SECRET_PERSONAL, + SECRET_SHARED, + ACTION_ADD_SECRETS, + ACTION_READ_SECRETS, + ACTION_UPDATE_SECRETS, + ACTION_DELETE_SECRETS } from '../variables'; import crypto from 'crypto'; import * as argon2 from 'argon2'; - +import { decryptSymmetric } from '../utils/crypto'; +import { getEncryptionKey } from '../config'; +import { + EESecretService, + EELogService +} from '../ee/services'; +import { + getAuthDataPayloadIdObj +} from '../utils/auth'; /** * Validate authenticated clients for secrets with id [secretId] based @@ -197,53 +223,13 @@ const validateClientForSecrets = async ({ } /** - * Create and return blind index for secret with - * name [name] part of workspace with id [workspaceId] + * Generate blind index for secret with name [secretName] + * for workspace with id [workspaceId] * @param {Object} obj * @param {Object} obj.secretName - name of secret to generate blind index for * @param {Object} obj.workspaceId - id of workspace that secret belongs to */ -const createSecretBlindIndexHelper = async ({ - secretName, - workspaceId -}: { - secretName: string; - workspaceId: Types.ObjectId; -}) => { - - // check if workspace blind index data exists - // const secretBlindIndexData = await SecretBlindIndexData.findOne({ - // workspace: workspaceId - // }); - - // if (!secretBlindIndexData) { - // // case: workspace blind index data has not been enabled - // } - - // TODO: randomBytes should come from the decrypted secretBlindIndexData - const randomBytes = crypto.randomBytes(16); - - const secretBlindIndex = (await argon2.hash(secretName, { - type: argon2.argon2id, - salt: randomBytes, - saltLength: 16, // default 16 bytes - memoryCost: 65536, // default pool of 64 MiB per thread. - hashLength: 32, - parallelism: 1, - raw: true - })).toString('base64'); - - return secretBlindIndex; -} - -/** - * Return the blind index for the secret with - * name [name] part of workspace with id [workspaceId] - * @param {Object} obj - * @param {Object} obj.secretName - name of secret to generate blind index for - * @param {Object} obj.workspaceId - id of workspace that secret belongs to - */ -const getSecretBlindIndexHelper = async ({ +const generateSecretBlindIndexHelper = async ({ secretName, workspaceId }: { @@ -256,14 +242,505 @@ const getSecretBlindIndexHelper = async ({ workspace: workspaceId }); - if (!secretBlindIndexData) { - // case: workspace blind index data has not been enabled + if (!secretBlindIndexData) throw SecretBlindIndexDataNotFoundError(); + + // decrypt workspace salt + const salt = decryptSymmetric({ + ciphertext: secretBlindIndexData.encryptedSaltCiphertext, + iv: secretBlindIndexData.saltIV, + tag: secretBlindIndexData.saltTag, + key: getEncryptionKey() + }); + + // generate secret blind index + const secretBlindIndex = (await argon2.hash(secretName, { + type: argon2.argon2id, + salt: Buffer.from(salt, 'base64'), + saltLength: 16, // default 16 bytes + memoryCost: 65536, // default pool of 64 MiB per thread. + hashLength: 32, + parallelism: 1, + raw: true + })).toString('base64'); + + return secretBlindIndex; +} + +/** + * Create secret with name [secretName] + * @param {Object} obj + * @param {String} obj.secretName - name of secret to create + * @param {Types.ObjectId} obj.workspaceId - id of workspace to create secret for + * @param {String} obj.environment - environment in workspace to create secret for + * @param {'shared' | 'personal'} obj.type - type of secret + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ +const createSecretHelper = async ({ + secretName, + workspaceId, + environment, + type, + authData, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag +}: CreateSecretParams) => { + // preliminary OK + // pending check for other types of clients + + const secretBlindIndex = await generateSecretBlindIndexHelper({ + secretName, + workspaceId: new Types.ObjectId(workspaceId) + }); + + const exists = await Secret.exists({ + secretBlindIndex, + workspace: new Types.ObjectId(workspaceId), + type + }); + + if (exists) throw BadRequestError({ + message: 'Failed to create secret that already exists' + }); + + if (type === SECRET_PERSONAL) { + // case: secret type is personal -> check if a corresponding shared secret + // with the same blind index [secretBlindIndex] exists + + const exists = await Secret.exists({ + secretBlindIndex, + workspace: new Types.ObjectId(workspaceId), + type: SECRET_SHARED + }); + + if (!exists) throw BadRequestError({ + message: 'Failed to create personal secret override for no corresponding shared secret' + }); + + // TODO: adapt to other client types + + if (!(authData.authPayload instanceof User)) throw BadRequestError({ + message: 'Failed to create personal secret override for no specified user' + }); } + + // create secret + const secret = await new Secret({ + version: 1, + workspace: new Types.ObjectId(workspaceId), + environment, + type, + ...(type === SECRET_PERSONAL && (authData.authPayload instanceof User) ? { + user: authData.authPayload._id + } : {}), + secretBlindIndex, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag + }).save(); + + const secretVersion = new SecretVersion({ + secret: secret._id, + version: secret.version, + workspace: secret.workspace, + type, + ...(type === SECRET_PERSONAL && authData.authPayload instanceof User ? { + user: authData.authPayload._id + } : {}), + environment: secret.environment, + isDeleted: false, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag + }); + + // // (EE) add version for new secret + await EESecretService.addSecretVersions({ + secretVersions: [secretVersion] + }); + + // (EE) create (audit) log + const action = await EELogService.createAction({ + name: ACTION_ADD_SECRETS, + ...getAuthDataPayloadIdObj(authData), + workspaceId, + secretIds: [secret._id] + }); + + action && await EELogService.createLog({ + ...getAuthDataPayloadIdObj(authData), + workspaceId, + actions: [action], + channel: authData.authChannel, + ipAddress: authData.authIP + }); + + // (EE) take a secret snapshot + await EESecretService.takeSecretSnapshot({ + workspaceId + }); + + return secret; +} + +/** + * Get secrets for workspace with id [workspaceId] and environment [environment] + * @param {Object} obj + * @param {Types.ObjectId} obj.workspaceId - id of workspace + * @param {String} obj.environment - environment in workspace + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ +const getSecretsHelper = async ({ + workspaceId, + environment, + authData +}: GetSecretsParams) => { + // preliminary OK + // pending check for other types of clients + + let secrets: ISecret[] = []; + + if (authData.authPayload instanceof User) { + // case: get personal secrets first + secrets = await Secret.find({ + workspace: new Types.ObjectId(workspaceId), + environment, + type: SECRET_PERSONAL, + user: authData.authPayload._id + }); + } + + secrets = secrets.concat(await Secret.find({ + workspace: new Types.ObjectId(workspaceId), + environment, + type: SECRET_SHARED, + secretBlindIndex: { + $nin: secrets.map((secret) => secret.secretBlindIndex) + } + })); + + const action = await EELogService.createAction({ + name: ACTION_READ_SECRETS, + ...getAuthDataPayloadIdObj(authData), + workspaceId, + secretIds: secrets.map((secret) => secret._id) + }); + + action && await EELogService.createLog({ + ...getAuthDataPayloadIdObj(authData), + workspaceId, + actions: [action], + channel: authData.authChannel, + ipAddress: authData.authIP + }); + + return secrets; +} + +/** + * Get secret with name [secretName] + * @param {Object} obj + * @param {String} obj.secretName - name of secret to get + * @param {Types.ObjectId} obj.workspaceId - id of workspace that secret belongs to + * @param {String} obj.environment - environment in workspace that secret belongs to + * @param {'shared' | 'personal'} obj.type - type of secret + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ +const getSecretHelper = async ({ + secretName, + workspaceId, + environment, + type, + authData +}: GetSecretParams) => { + // preliminary OK + // pending check for other types of clients + + const secretBlindIndex = await generateSecretBlindIndexHelper({ + secretName, + workspaceId: new Types.ObjectId(workspaceId) + }); + + let secret; + + if (authData.authPayload instanceof User) { + // case: find any personal secret matching criteria + secret = await Secret.findOne({ + secretBlindIndex, + workspace: new Types.ObjectId(workspaceId), + environment, + type: type ?? SECRET_PERSONAL, + ...(type === SECRET_PERSONAL ? { + user: authData.authPayload._id + } : {}) + }); + + if (!secret) { + // case: failed to find personal secret matching criteria + // -> find shared secret matching criteria + secret = await Secret.findOne({ + secretBlindIndex, + workspace: new Types.ObjectId(workspaceId), + environment, + type: SECRET_SHARED + }); + } + } + + if (!secret) throw SecretNotFoundError(); + + const action = await EELogService.createAction({ + name: ACTION_READ_SECRETS, + ...getAuthDataPayloadIdObj(authData), + workspaceId, + secretIds: [secret._id] + }); + + action && await EELogService.createLog({ + ...getAuthDataPayloadIdObj(authData), + workspaceId, + actions: [action], + channel: authData.authChannel, + ipAddress: authData.authIP + }); + + return secret; +} + +/** + * Update secret with name [secretName] + * @param {Object} obj + * @param {String} obj.secretName - name of secret to update + * @param {Types.ObjectId} obj.workspaceId - id of workspace that secret belongs to + * @param {String} obj.environment - environment in workspace that secret belongs to + * @param {'shared' | 'personal'} obj.type - type of secret + * @param {String} obj.secretValueCiphertext - ciphertext of secret value + * @param {String} obj.secretValueIV - IV of secret value + * @param {String} obj.secretValueTag - tag of secret value + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ +const updateSecretHelper = async ({ + secretName, + workspaceId, + environment, + type, + authData, + secretValueCiphertext, + secretValueIV, + secretValueTag +}: UpdateSecretParams) => { + // preliminary OK + // pending check for other types of clients + const secretBlindIndex = await generateSecretBlindIndexHelper({ + secretName, + workspaceId: new Types.ObjectId(workspaceId) + }); + + let secret: ISecret | null = null; + + if (type === SECRET_SHARED) { + secret = await Secret.findOneAndUpdate( + { + secretBlindIndex, + workspace: new Types.ObjectId(workspaceId), + environment, + type + }, + { + secretValueCiphertext, + secretValueIV, + secretValueTag, + $inc: { version: 1 } + }, + { + new: true + } + ); + } else if (type === SECRET_PERSONAL && authData.authPayload instanceof User) { + secret = await Secret.findOneAndUpdate( + { + secretBlindIndex, + workspace: new Types.ObjectId(workspaceId), + environment, + type, + user: authData.authPayload._id + }, + { + secretValueCiphertext, + secretValueIV, + secretValueTag, + $inc: { version: 1 } + }, + { + new: true + } + ); + } + + if (!secret) throw SecretNotFoundError(); + + const secretVersion = new SecretVersion({ + secret: secret._id, + version: secret.version, + workspace: secret.workspace, + type, + ...(type === SECRET_PERSONAL && authData.authPayload instanceof User ? { + user: authData.authPayload._id + } : {}), + environment: secret.environment, + isDeleted: false, + secretKeyCiphertext: secret.secretKeyCiphertext, + secretKeyIV: secret.secretKeyIV, + secretKeyTag: secret.secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag + }); + + // // (EE) add version for new secret + await EESecretService.addSecretVersions({ + secretVersions: [secretVersion] + }); + + // (EE) create (audit) log + const action = await EELogService.createAction({ + name: ACTION_UPDATE_SECRETS, + ...getAuthDataPayloadIdObj(authData), + workspaceId, + secretIds: [secret._id] + }); + + action && await EELogService.createLog({ + ...getAuthDataPayloadIdObj(authData), + workspaceId, + actions: [action], + channel: authData.authChannel, + ipAddress: authData.authIP + }); + + // (EE) take a secret snapshot + await EESecretService.takeSecretSnapshot({ + workspaceId + }); + + return secret; +} + +/** + * Delete secret with name [secretName] + * @param {Object} obj + * @param {String} obj.secretName - name of secret to delete + * @param {Types.ObjectId} obj.workspaceId - id of workspace that secret belongs to + * @param {String} obj.environment - environment in workspace that secret belongs to + * @param {'shared' | 'personal'} obj.type - type of secret + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ +const deleteSecretHelper = async ({ + secretName, + workspaceId, + environment, + type, + authData +}: DeleteSecretParams) => { + // preliminary OK + // pending check for other types of clients + + const secretBlindIndex = await generateSecretBlindIndexHelper({ + secretName, + workspaceId: new Types.ObjectId(workspaceId) + }); + + let secrets: ISecret[] = []; + let secret: ISecret | null = null; + + if (type === SECRET_SHARED) { + secrets = await Secret.find({ + secretBlindIndex, + workspaceId: new Types.ObjectId(workspaceId), + environment + }); + + secret = await Secret.findOneAndDelete({ + secretBlindIndex, + workspaceId: new Types.ObjectId(workspaceId), + environment, + type + }); + + await Secret.deleteMany({ + secretBlindIndex, + workspaceId: new Types.ObjectId(workspaceId), + environment + }); + } else if (type === SECRET_PERSONAL && authData.authPayload instanceof User) { + secret = await Secret.findOneAndDelete({ + secretBlindIndex, + workspaceId: new Types.ObjectId(workspaceId), + environment, + type, + user: authData.authPayload._id + }); + + if (secret) { + secrets = [secret]; + } + } + + if (!secret) throw SecretNotFoundError(); + + await EESecretService.markDeletedSecretVersions({ + secretIds: secrets.map((secret) => secret._id) + }); + + // (EE) create (audit) log + const action = await EELogService.createAction({ + name: ACTION_DELETE_SECRETS, + ...getAuthDataPayloadIdObj(authData), + workspaceId, + secretIds: secrets.map((secret) => secret._id) + }); + + // (EE) take a secret snapshot + action && await EELogService.createLog({ + ...getAuthDataPayloadIdObj(authData), + workspaceId, + actions: [action], + channel: authData.authChannel, + ipAddress: authData.authIP + }); + + // (EE) take a secret snapshot + await EESecretService.takeSecretSnapshot({ + workspaceId + }); + + return ({ + secrets, + secret + }); } export { validateClientForSecret, validateClientForSecrets, - createSecretBlindIndexHelper, - getSecretBlindIndexHelper + generateSecretBlindIndexHelper, + createSecretHelper, + getSecretsHelper, + getSecretHelper, + updateSecretHelper, + deleteSecretHelper } \ No newline at end of file diff --git a/backend/src/helpers/workspace.ts b/backend/src/helpers/workspace.ts index f3b27bf10..220102eff 100644 --- a/backend/src/helpers/workspace.ts +++ b/backend/src/helpers/workspace.ts @@ -1,4 +1,5 @@ import * as Sentry from '@sentry/node'; +import crypto from 'crypto'; import { Types } from 'mongoose'; import { Workspace, @@ -13,6 +14,7 @@ import { IServiceAccount, ServiceTokenData, IServiceTokenData, + SecretBlindIndexData } from '../models'; import { createBot } from '../helpers/bot'; import { validateUserClientForWorkspace } from '../helpers/user'; @@ -26,6 +28,8 @@ import { AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_API_KEY } from '../variables'; +import { getEncryptionKey } from '../config'; +import { encryptSymmetric } from '../utils/crypto'; /** * Validate authenticated clients for workspace with id [workspaceId] based @@ -42,7 +46,8 @@ const validateClientForWorkspace = async ({ workspaceId, environment, acceptedRoles, - requiredPermissions + requiredPermissions, + requireBlindIndicesEnabled }: { authData: { authMode: string; @@ -52,6 +57,7 @@ const validateClientForWorkspace = async ({ environment?: string; acceptedRoles: Array<'admin' | 'member'>; requiredPermissions?: string[]; + requireBlindIndicesEnabled: boolean; }) => { const workspace = await Workspace.findById(workspaceId); @@ -60,6 +66,16 @@ const validateClientForWorkspace = async ({ message: 'Failed to find workspace' }); + if (requireBlindIndicesEnabled && !workspace.isBlindedIndicesEnabled) { + // case: blind indices are not enabled for secrets in this workspace + // (i.e. workspace was created before blind indices were introduced + // and no admin has enabled it) + + throw UnauthorizedRequestError({ + message: 'Failed workspace authorization due to blind indices not being enabled' + }); + } + if (authData.authMode === AUTH_MODE_JWT && authData.authPayload instanceof User) { const membership = await validateUserClientForWorkspace({ user: authData.authPayload, @@ -130,13 +146,36 @@ const createWorkspace = async ({ // create workspace workspace = await new Workspace({ name, - organization: organizationId + organization: organizationId, + autoCapitalization: true, + isBlindedIndicesEnabled: true }).save(); - const bot = await createBot({ + // initialize bot for workspace + await createBot({ name: 'Infisical Bot', - workspaceId: workspace._id.toString() + workspaceId: workspace._id }); + + // initialize blind index salt for workspace + const salt = crypto.randomBytes(16).toString('base64'); + + const { + ciphertext: encryptedSaltCiphertext, + iv: saltIV, + tag: saltTag + } = encryptSymmetric({ + plaintext: salt, + key: getEncryptionKey() + }); + + await new SecretBlindIndexData({ + workspace: workspace._id, + encryptedSaltCiphertext, + saltIV, + saltTag + }).save(); + } catch (err) { Sentry.setUser(null); Sentry.captureException(err); diff --git a/backend/src/interfaces/middleware/index.ts b/backend/src/interfaces/middleware/index.ts new file mode 100644 index 000000000..4b54399ce --- /dev/null +++ b/backend/src/interfaces/middleware/index.ts @@ -0,0 +1,12 @@ +import { + IUser, + IServiceAccount, + IServiceTokenData +} from '../../models'; + +export interface AuthData { + authMode: string; + authPayload: IUser | IServiceAccount | IServiceTokenData; + authChannel: string; + authIP: string; +} \ No newline at end of file diff --git a/backend/src/interfaces/services/SecretService/index.ts b/backend/src/interfaces/services/SecretService/index.ts new file mode 100644 index 000000000..64da16beb --- /dev/null +++ b/backend/src/interfaces/services/SecretService/index.ts @@ -0,0 +1,49 @@ +import { Types } from 'mongoose'; +import { AuthData } from '../../middleware'; + +export interface CreateSecretParams { + secretName: string; + workspaceId: Types.ObjectId; + environment: string; + type: 'shared' | 'personal'; + authData: AuthData; + secretKeyCiphertext: string; + secretKeyIV: string; + secretKeyTag: string; + secretValueCiphertext: string; + secretValueIV: string; + secretValueTag: string; +} + +export interface GetSecretsParams { + workspaceId: Types.ObjectId; + environment: string; + authData: AuthData; +} + +export interface GetSecretParams { + secretName: string; + workspaceId: Types.ObjectId; + environment: string; + type?: 'shared' | 'personal'; + authData: AuthData; +} + +export interface UpdateSecretParams { + secretName: string; + workspaceId: Types.ObjectId; + environment: string; + type: 'shared' | 'personal', + authData: AuthData + secretValueCiphertext: string; + secretValueIV: string; + secretValueTag: string; +} + +export interface DeleteSecretParams { + secretName: string; + workspaceId: Types.ObjectId; + environment: string; + type: 'shared' | 'personal'; + authData: AuthData; +} \ No newline at end of file diff --git a/backend/src/middleware/requireAuth.ts b/backend/src/middleware/requireAuth.ts index 16191d607..508248b19 100644 --- a/backend/src/middleware/requireAuth.ts +++ b/backend/src/middleware/requireAuth.ts @@ -21,6 +21,7 @@ import { AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_API_KEY } from '../variables'; +import { getChannelFromUserAgent } from '../utils/posthog'; declare module 'jsonwebtoken' { export interface UserIDJwtPayload extends jwt.JwtPayload { @@ -88,7 +89,9 @@ const requireAuth = ({ req.authData = { authMode, - authPayload // User, ServiceAccount, ServiceTokenData + authPayload, // User, ServiceAccount, ServiceTokenData + authChannel: getChannelFromUserAgent(req.headers['user-agent']), + authIP: req.ip } return next(); diff --git a/backend/src/middleware/requireWorkspaceAuth.ts b/backend/src/middleware/requireWorkspaceAuth.ts index 5d094f972..76f723df2 100644 --- a/backend/src/middleware/requireWorkspaceAuth.ts +++ b/backend/src/middleware/requireWorkspaceAuth.ts @@ -17,12 +17,14 @@ const requireWorkspaceAuth = ({ acceptedRoles, locationWorkspaceId, locationEnvironment = undefined, - requiredPermissions = [] + requiredPermissions = [], + requireBlindIndicesEnabled = false }: { acceptedRoles: Array<'admin' | 'member'>; locationWorkspaceId: req; locationEnvironment?: req | undefined; requiredPermissions?: string[]; + requireBlindIndicesEnabled?: boolean; }) => { return async (req: Request, res: Response, next: NextFunction) => { const workspaceId = req[locationWorkspaceId]?.workspaceId; @@ -34,7 +36,8 @@ const requireWorkspaceAuth = ({ workspaceId: new Types.ObjectId(workspaceId), environment, acceptedRoles, - requiredPermissions + requiredPermissions, + requireBlindIndicesEnabled }); if (membership) { diff --git a/backend/src/models/secret.ts b/backend/src/models/secret.ts index d3184b5e1..725741ccf 100644 --- a/backend/src/models/secret.ts +++ b/backend/src/models/secret.ts @@ -1,4 +1,4 @@ -import { Schema, model, Types, Document } from 'mongoose'; +import { Schema, model, Types } from 'mongoose'; import { SECRET_SHARED, SECRET_PERSONAL, @@ -59,7 +59,8 @@ const secretSchema = new Schema( required: true }, secretBlindIndex: { - type: String + type: String, + select: false }, secretKeyCiphertext: { type: String, diff --git a/backend/src/models/secretBlindIndexData.ts b/backend/src/models/secretBlindIndexData.ts index 9d0842ba4..aeaa3f027 100644 --- a/backend/src/models/secretBlindIndexData.ts +++ b/backend/src/models/secretBlindIndexData.ts @@ -3,7 +3,9 @@ import { Schema, model, Types, Document } from 'mongoose'; export interface ISecretBlindIndexData { _id: Types.ObjectId; workspace: Types.ObjectId; - encryptedSalt: string; + encryptedSaltCiphertext: string; + saltIV: string; + saltTag: string; } const secretBlindIndexDataSchema = new Schema( @@ -13,7 +15,15 @@ const secretBlindIndexDataSchema = new Schema( ref: 'Workspace', required: true }, - encryptedSalt: { + encryptedSaltCiphertext: { + type: String, + required: true + }, + saltIV: { + type: String, + required: true + }, + saltTag: { type: String, required: true } diff --git a/backend/src/models/workspace.ts b/backend/src/models/workspace.ts index e6f1a69d3..c31542b3a 100644 --- a/backend/src/models/workspace.ts +++ b/backend/src/models/workspace.ts @@ -1,20 +1,15 @@ import { Schema, model, Types } from 'mongoose'; -import { - WORKSPACE_ENCRYPTION_MODE_E2EE, - WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, - WORKSPACE_ENCRYPTION_MODE_NOT_E2EE -} from '../variables'; export interface IWorkspace { _id: Types.ObjectId; name: string; - encryptionMode: string; organization: Types.ObjectId; environments: Array<{ name: string; slug: string; }>; autoCapitalization: boolean; + isBlindedIndicesEnabled: boolean; } const workspaceSchema = new Schema({ @@ -22,19 +17,14 @@ const workspaceSchema = new Schema({ type: String, required: true }, - encryptionMode: { - type: String, - default: 'e2ee', - enum: [ - WORKSPACE_ENCRYPTION_MODE_E2EE, - WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, - WORKSPACE_ENCRYPTION_MODE_NOT_E2EE - ] - }, autoCapitalization: { type: Boolean, default: true, }, + isBlindedIndicesEnabled: { + type: Boolean, + required: true + }, organization: { type: Schema.Types.ObjectId, ref: 'Organization', @@ -70,4 +60,4 @@ const workspaceSchema = new Schema({ const Workspace = model('Workspace', workspaceSchema); -export default Workspace; +export default Workspace; \ No newline at end of file diff --git a/backend/src/routes/v3/secrets.ts b/backend/src/routes/v3/secrets.ts index 92bc2d9a3..f40c0f332 100644 --- a/backend/src/routes/v3/secrets.ts +++ b/backend/src/routes/v3/secrets.ts @@ -1,18 +1,38 @@ import express from 'express'; const router = express.Router(); import { - requireAuth, validateRequest + requireAuth, + requireWorkspaceAuth, + validateRequest } from '../../middleware'; import { body, param, query } from 'express-validator'; import { secretsController } from '../../controllers/v3'; - -// note: future endpoints pending brainstorm + implementation +import { + AUTH_MODE_JWT, + AUTH_MODE_API_KEY, + ADMIN, + MEMBER, + PERMISSION_WRITE_SECRETS, + SECRET_SHARED, + SECRET_PERSONAL, + PERMISSION_READ_SECRETS +} from '../../variables'; router.get( '/', query('workspaceId').exists().isString().trim(), query('environment').exists().isString().trim(), query('tagSlugs'), + requireAuth({ + acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + }), + requireWorkspaceAuth({ + acceptedRoles: [ADMIN, MEMBER], + locationWorkspaceId: 'query', + locationEnvironment: 'query', + requiredPermissions: [PERMISSION_READ_SECRETS], + requireBlindIndicesEnabled: true, + }), secretsController.getSecrets ); @@ -20,6 +40,7 @@ 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(), @@ -27,6 +48,16 @@ router.post( body('secretValueIV').exists().isString().trim(), body('secretValueTag').exists().isString().trim(), validateRequest, + requireAuth({ + acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + }), + requireWorkspaceAuth({ + acceptedRoles: [ADMIN, MEMBER], + locationWorkspaceId: 'body', + locationEnvironment: 'body', + requiredPermissions: [PERMISSION_WRITE_SECRETS], + requireBlindIndicesEnabled: true, + }), secretsController.createSecret ); @@ -35,23 +66,61 @@ router.get( param('secretName').exists().isString().trim(), query('workspaceId').exists().isString().trim(), query('environment').exists().isString().trim(), + query('type').optional().isIn([SECRET_SHARED, SECRET_PERSONAL]), + validateRequest, + requireAuth({ + acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + }), + requireWorkspaceAuth({ + acceptedRoles: [ADMIN, MEMBER], + locationWorkspaceId: 'query', + locationEnvironment: 'query', + requiredPermissions: [PERMISSION_READ_SECRETS], + requireBlindIndicesEnabled: true, + }), secretsController.getSecretByName ); router.patch( '/:secretName', param('secretName').exists().isString().trim(), - query('workspaceId').exists().isString().trim(), - query('environment').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(), validateRequest, + requireAuth({ + acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + }), + requireWorkspaceAuth({ + acceptedRoles: [ADMIN, MEMBER], + locationWorkspaceId: 'body', + locationEnvironment: 'body', + requiredPermissions: [PERMISSION_WRITE_SECRETS], + requireBlindIndicesEnabled: true, + }), secretsController.updateSecretByName ); router.delete( '/:secretName', param('secretName').exists().isString().trim(), - query('workspaceId').exists().isString().trim(), + body('workspaceId').exists().isString().trim(), + body('environment').exists().isString().trim(), + body('type').exists().isIn([SECRET_SHARED, SECRET_PERSONAL]), validateRequest, + requireAuth({ + acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + }), + requireWorkspaceAuth({ + acceptedRoles: [ADMIN, MEMBER], + locationWorkspaceId: 'body', + locationEnvironment: 'body', + requiredPermissions: [PERMISSION_WRITE_SECRETS], + requireBlindIndicesEnabled: true, + }), secretsController.deleteSecretByName ); diff --git a/backend/src/services/SecretService.ts b/backend/src/services/SecretService.ts index 0c7132327..0275b2cfb 100644 --- a/backend/src/services/SecretService.ts +++ b/backend/src/services/SecretService.ts @@ -1,48 +1,187 @@ // WIP import { Types } from 'mongoose'; +import { + ISecret +} from '../models'; +import { + CreateSecretParams, + GetSecretsParams, + GetSecretParams, + UpdateSecretParams, + DeleteSecretParams +} from '../interfaces/services/SecretService'; import { - createSecretBlindIndexHelper, - getSecretBlindIndexHelper + generateSecretBlindIndexHelper, + createSecretHelper, + getSecretsHelper, + getSecretHelper, + updateSecretHelper, + deleteSecretHelper } from '../helpers/secrets'; class SecretService { /** * Create and return blind index for secret with - * name [name] part of workspace with id [workspaceId] + * name [secretName] part of workspace with id [workspaceId] * @param {Object} obj * @param {Object} obj.secretName - name of secret to generate blind index for * @param {Object} obj.workspaceId - id of workspace that secret belongs to */ - static async createSecretBlindIndex({ + static async generateSecretBlindIndex({ secretName, workspaceId, }: { secretName: string; workspaceId: Types.ObjectId; }) { - return await createSecretBlindIndexHelper({ + return await generateSecretBlindIndexHelper({ secretName, workspaceId }); } + + /** + * Create secret with name [secretName] + * @param {Object} obj + * @param {String} obj.secretName - name of secret to create + * @param {Types.ObjectId} obj.workspaceId - id of workspace to create secret for + * @param {String} obj.environment - environment in workspace to create secret for + * @param {'shared' | 'personal'} obj.type - type of secret + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ + static async createSecret({ + secretName, + workspaceId, + environment, + type, + authData, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag + }: CreateSecretParams) { + return await createSecretHelper({ + secretName, + workspaceId, + environment, + type, + authData, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag + }); + } /** - * Return the blind index for the secret with - * name [name] part of workspace with id [workspaceId] + * Get secrets for workspace with id [workspaceId] and environment [environment] * @param {Object} obj - * @param {Object} obj.secretName - name of secret to generate blind index for - * @param {Object} obj.workspaceId - id of workspace that secret belongs to + * @param {Types.ObjectId} obj.workspaceId - id of workspace + * @param {String} obj.environment - environment in workspace + * @param {AuthData} obj.authData - authentication data on request + * @returns */ - static async getSecretBlindIndex({ + static async getSecrets({ + workspaceId, + environment, + authData + }: GetSecretsParams) { + return await getSecretsHelper({ + workspaceId, + environment, + authData + }); + } + + /** + * Get secret with name [secretName] + * @param {Object} obj + * @param {String} obj.secretName - name of secret to get + * @param {Types.ObjectId} obj.workspaceId - id of workspace that secret belongs to + * @param {String} obj.environment - environment in workspace that secret belongs to + * @param {'shared' | 'personal'} obj.type - type of secret + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ + static async getSecret({ secretName, - workspaceId - }: { - secretName: string; - workspaceId: Types.ObjectId; - }) { - return await getSecretBlindIndexHelper({ + workspaceId, + environment, + type, + authData + }: GetSecretParams) { + return await getSecretHelper({ secretName, - workspaceId + workspaceId, + environment, + type, + authData + }); + } + + /** + * Update secret with name [secretName] + * @param {Object} obj + * @param {String} obj.secretName - name of secret to update + * @param {Types.ObjectId} obj.workspaceId - id of workspace that secret belongs to + * @param {String} obj.environment - environment in workspace that secret belongs to + * @param {'shared' | 'personal'} obj.type - type of secret + * @param {String} obj.secretValueCiphertext - ciphertext of secret value + * @param {String} obj.secretValueIV - IV of secret value + * @param {String} obj.secretValueTag - tag of secret value + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ + static async updateSecret({ + secretName, + workspaceId, + environment, + type, + secretValueCiphertext, + secretValueIV, + secretValueTag, + authData + }: UpdateSecretParams) { + return await updateSecretHelper({ + secretName, + workspaceId, + environment, + type, + authData, + secretValueCiphertext, + secretValueIV, + secretValueTag + }); + } + + /** + * Delete secret with name [secretName] + * @param {Object} obj + * @param {String} obj.secretName - name of secret to delete + * @param {Types.ObjectId} obj.workspaceId - id of workspace that secret belongs to + * @param {String} obj.environment - environment in workspace that secret belongs to + * @param {'shared' | 'personal'} obj.type - type of secret + * @param {AuthData} obj.authData - authentication data on request + * @returns + */ + static async deleteSecret({ + secretName, + workspaceId, + environment, + type, + authData + }: DeleteSecretParams) { + return await deleteSecretHelper({ + secretName, + workspaceId, + environment, + type, + authData }); } } diff --git a/backend/src/services/TelemetryService.ts b/backend/src/services/TelemetryService.ts index 248ad3633..6e35a403f 100644 --- a/backend/src/services/TelemetryService.ts +++ b/backend/src/services/TelemetryService.ts @@ -60,6 +60,9 @@ class Telemetry { serviceAccount?: IServiceAccount; serviceTokenData?: any; // TODO: fix (it's ServiceTokenData with user populated) }) => { + + // TODO: modify to accept authData instead + let distinctId = ''; if (user) { diff --git a/backend/src/types/express/index.d.ts b/backend/src/types/express/index.d.ts index bff5e96c3..6d2acd606 100644 --- a/backend/src/types/express/index.d.ts +++ b/backend/src/types/express/index.d.ts @@ -5,6 +5,9 @@ import { IServiceTokenData, ISecret } from '../../models'; +import { + AuthData +} from '../../interfaces/middleware'; // TODO: fix (any) types declare global { @@ -29,10 +32,7 @@ declare global { serviceTokenData: any; apiKeyData: any; query?: any; - authData: { - authMode: string; - authPayload: IUser | IServiceAccount | IServiceTokenData; - }; + authData: AuthData; requestData: { [key: string]: string }; diff --git a/backend/src/utils/auth.ts b/backend/src/utils/auth.ts new file mode 100644 index 000000000..ce2961d70 --- /dev/null +++ b/backend/src/utils/auth.ts @@ -0,0 +1,26 @@ +import { AuthData } from '../interfaces/middleware'; +import { + User, + ServiceAccount, + ServiceTokenData +} from '../models'; + +const getAuthDataPayloadIdObj = (authData: AuthData) => { + if (authData.authPayload instanceof User) { + return { userId: authData.authPayload._id }; + } + + if (authData.authPayload instanceof ServiceAccount) { + return { serviceAccountId: authData.authPayload._id }; + } + + if (authData.authPayload instanceof ServiceTokenData) { + return { serviceTokenDataId: authData.authPayload._id }; + } + + return {}; +}; + +export { + getAuthDataPayloadIdObj +} \ No newline at end of file diff --git a/backend/src/utils/errors.ts b/backend/src/utils/errors.ts index 987215091..4b698bee3 100644 --- a/backend/src/utils/errors.ts +++ b/backend/src/utils/errors.ts @@ -153,6 +153,16 @@ export const SecretNotFoundError = (error?: Partial) => new stack: error?.stack }); +//* ----->[SECRET BLIND INDEX DATA ERRORS]<----- +export const SecretBlindIndexDataNotFoundError = (error?: Partial) => new RequestError({ + logLevel: error?.logLevel ?? LogLevel.ERROR, + statusCode: error?.statusCode ?? 404, + type: error?.type ?? 'secret_blind_index_data_not_found_error', + message: error?.message ?? 'The requested secret was not found', + context: error?.context, + stack: error?.stack +}); + //* ----->[SECRET SNAPSHOT ERRORS]<----- export const SecretSnapshotNotFoundError = (error?: Partial) => new RequestError({ logLevel: error?.logLevel ?? LogLevel.ERROR, diff --git a/backend/src/variables/index.ts b/backend/src/variables/index.ts index 92f76ac8e..979de21ab 100644 --- a/backend/src/variables/index.ts +++ b/backend/src/variables/index.ts @@ -77,11 +77,6 @@ import { AUTH_MODE_SERVICE_TOKEN, AUTH_MODE_API_KEY } from './authentication'; -import { - WORKSPACE_ENCRYPTION_MODE_E2EE, - WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, - WORKSPACE_ENCRYPTION_MODE_NOT_E2EE -} from './workspace'; export { OWNER, @@ -153,8 +148,5 @@ export { AUTH_MODE_JWT, AUTH_MODE_SERVICE_ACCOUNT, AUTH_MODE_SERVICE_TOKEN, - AUTH_MODE_API_KEY, - WORKSPACE_ENCRYPTION_MODE_E2EE, - WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, - WORKSPACE_ENCRYPTION_MODE_NOT_E2EE + AUTH_MODE_API_KEY }; diff --git a/backend/src/variables/workspace.ts b/backend/src/variables/workspace.ts index c0be34fcb..e69de29bb 100644 --- a/backend/src/variables/workspace.ts +++ b/backend/src/variables/workspace.ts @@ -1,9 +0,0 @@ -const WORKSPACE_ENCRYPTION_MODE_E2EE = 'e2ee'; -const WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE = 'blind-indexed-e2ee'; -const WORKSPACE_ENCRYPTION_MODE_NOT_E2EE = 'not-e2ee'; - -export { - WORKSPACE_ENCRYPTION_MODE_E2EE, - WORKSPACE_ENCRYPTION_MODE_BLIND_INDEXED_E2EE, - WORKSPACE_ENCRYPTION_MODE_NOT_E2EE -} \ No newline at end of file diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx index 94c1f2037..47630effb 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx @@ -1,8 +1,93 @@ +import { useEffect } from 'react'; +import { + Controller, + useForm +} from 'react-hook-form'; +import { faCheck } from '@fortawesome/free-solid-svg-icons'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { yupResolver } from '@hookform/resolvers/yup'; +import * as yup from 'yup'; + +import { + Button, + FormControl, + Select, + SelectItem +} from '@app/components/v2'; + +// TODO: modify in accordance with what was discussed with +// Maidul + +// Do with select for now them replace. + +const items = [ + { value: 'e2ee', label: 'E2EE' }, + { value: 'blind-indexed-e2ee', label: 'Blind Indexed E2EE' } +]; + +const formSchema = yup.object({ + mode: yup.string().required().label('Project Mode') +}); + +type FormData = yup.InferType; export const ProjectEncryptionModeSection = () => { + const { + handleSubmit, + control, + reset, + formState: { isDirty, isSubmitting } + } = useForm({ resolver: yupResolver(formSchema) }); + + useEffect(() => { + reset({ mode: 'blind-indexed-e2ee' }); + }, []); + + const onFormSubmit = async ({ mode }: FormData) => { + console.log('onFormSubmit'); + console.log('mode: ', mode); + }; + return ( -
- Project encryption mode section -
+
+

Encryption Mode

+
+ { + console.log('field: ', field); + return ( + + + + ); + }} + control={control} + name="mode" + /> +
+ +
); } \ No newline at end of file From 763ec1aa0f5d66f083d5c08c38d8bb582472a98d Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Mon, 17 Apr 2023 14:23:56 +0300 Subject: [PATCH 06/11] And workspace-environment specific integrations syncs to secrets v3 endpoints, add PostHog --- .../controllers/v1/integrationController.ts | 6 +- .../src/controllers/v1/secretController.ts | 4 +- .../src/controllers/v2/secretsController.ts | 24 +-- .../src/controllers/v2/workspaceController.ts | 3 +- .../src/controllers/v3/secretsController.ts | 120 +++----------- backend/src/events/secret.ts | 8 +- backend/src/helpers/bot.ts | 8 +- backend/src/helpers/event.ts | 14 +- backend/src/helpers/integration.ts | 23 ++- backend/src/helpers/secrets.ts | 155 ++++++++++++++++-- backend/src/helpers/workspace.ts | 19 +-- backend/src/interfaces/middleware/index.ts | 1 + backend/src/middleware/requireAuth.ts | 3 +- backend/src/services/BotService.ts | 7 +- backend/src/services/EventService.ts | 4 +- backend/src/services/IntegrationService.ts | 6 +- backend/src/services/SecretService.ts | 115 ++++--------- backend/src/services/TelemetryService.ts | 55 +++---- 18 files changed, 281 insertions(+), 294 deletions(-) diff --git a/backend/src/controllers/v1/integrationController.ts b/backend/src/controllers/v1/integrationController.ts index 6b633fc2c..060f89b33 100644 --- a/backend/src/controllers/v1/integrationController.ts +++ b/backend/src/controllers/v1/integrationController.ts @@ -56,7 +56,8 @@ export const createIntegration = async (req: Request, res: Response) => { // trigger event - push secrets EventService.handleEvent({ event: eventPushSecrets({ - workspaceId: integration.workspace.toString() + workspaceId: integration.workspace, + environment: sourceEnvironment }) }); } @@ -117,7 +118,8 @@ export const updateIntegration = async (req: Request, res: Response) => { // trigger event - push secrets EventService.handleEvent({ event: eventPushSecrets({ - workspaceId: integration.workspace.toString(), + workspaceId: integration.workspace, + environment }), }); } diff --git a/backend/src/controllers/v1/secretController.ts b/backend/src/controllers/v1/secretController.ts index 4b377ec72..3ec69122a 100644 --- a/backend/src/controllers/v1/secretController.ts +++ b/backend/src/controllers/v1/secretController.ts @@ -1,5 +1,6 @@ import { Request, Response } from 'express'; import * as Sentry from '@sentry/node'; +import { Types } from 'mongoose'; import { Key, Secret } from '../../models'; import { v1PushSecrets as push, @@ -84,7 +85,8 @@ export const pushSecrets = async (req: Request, res: Response) => { // trigger event - push secrets EventService.handleEvent({ event: eventPushSecrets({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId), + environment }) }); diff --git a/backend/src/controllers/v2/secretsController.ts b/backend/src/controllers/v2/secretsController.ts index c7d586d85..e05e758ed 100644 --- a/backend/src/controllers/v2/secretsController.ts +++ b/backend/src/controllers/v2/secretsController.ts @@ -248,7 +248,7 @@ export const batchSecrets = async (req: Request, res: Response) => { // // trigger event - push secrets await EventService.handleEvent({ event: eventPushSecrets({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId) }) }); @@ -404,7 +404,7 @@ export const createSecrets = async (req: Request, res: Response) => { // trigger event - push secrets await EventService.handleEvent({ event: eventPushSecrets({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId) }) }); }, 5000); @@ -471,9 +471,7 @@ export const createSecrets = async (req: Request, res: Response) => { postHogClient.capture({ event: 'secrets added', distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData + authData: req.authData }), properties: { numberOfSecrets: listOfSecretsToCreate.length, @@ -648,9 +646,7 @@ export const getSecrets = async (req: Request, res: Response) => { postHogClient.capture({ event: 'secrets pulled', distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData + authData: req.authData }), properties: { numberOfSecrets: secrets.length, @@ -837,7 +833,7 @@ export const updateSecrets = async (req: Request, res: Response) => { setTimeout(async () => { await EventService.handleEvent({ event: eventPushSecrets({ - workspaceId: key + workspaceId: new Types.ObjectId(key) }) }); }, 10000); @@ -872,9 +868,7 @@ export const updateSecrets = async (req: Request, res: Response) => { postHogClient.capture({ event: 'secrets modified', distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData + authData: req.authData }), properties: { numberOfSecrets: workspaceSecretObj[key].length, @@ -975,7 +969,7 @@ export const deleteSecrets = async (req: Request, res: Response) => { // trigger event - push secrets await EventService.handleEvent({ event: eventPushSecrets({ - workspaceId: key + workspaceId: new Types.ObjectId(key) }) }); const deleteAction = await EELogService.createAction({ @@ -1008,9 +1002,7 @@ export const deleteSecrets = async (req: Request, res: Response) => { postHogClient.capture({ event: 'secrets deleted', distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData + authData: req.authData }), properties: { numberOfSecrets: workspaceSecretObj[key].length, diff --git a/backend/src/controllers/v2/workspaceController.ts b/backend/src/controllers/v2/workspaceController.ts index ec32dcbaf..3605656c3 100644 --- a/backend/src/controllers/v2/workspaceController.ts +++ b/backend/src/controllers/v2/workspaceController.ts @@ -95,7 +95,8 @@ export const pushWorkspaceSecrets = async (req: Request, res: Response) => { // trigger event - push secrets EventService.handleEvent({ event: eventPushSecrets({ - workspaceId + workspaceId: new Types.ObjectId(workspaceId), + environment }) }); diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index 0df6b961c..35575b7b4 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -1,6 +1,11 @@ import { Request, Response } from 'express'; import { Types } from 'mongoose'; -import { SecretService, TelemetryService } from '../../services'; +import { + SecretService, + TelemetryService, + EventService +} from '../../services'; +import { eventPushSecrets } from '../../events'; import { getAuthDataPayloadIdObj } from '../../utils/auth'; import { BadRequestError } from '../../utils/errors'; @@ -20,25 +25,6 @@ export const getSecrets = async (req: Request, res: Response) => { authData: req.authData }); - const postHogClient = TelemetryService.getPostHogClient(); - if (postHogClient) { - postHogClient.capture({ - event: 'secrets pulled', - distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData - }), - properties: { - numberOfSecrets: secrets.length, - environment, - workspaceId, - channel: req.authData.authChannel, - userAgent: req.headers?.['user-agent'] - } - }); - } - return res.status(200).send({ secrets }); @@ -62,25 +48,6 @@ export const getSecretByName = async (req: Request, res: Response) => { type, authData: req.authData }); - - const postHogClient = TelemetryService.getPostHogClient(); - if (postHogClient) { - postHogClient.capture({ - event: 'secrets pull', - distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData - }), - properties: { - numberOfSecrets: 1, - environment, - workspaceId, - channel: req.authData.authChannel, - userAgent: req.headers?.['user-agent'] - } - }); - } return res.status(200).send({ secret @@ -120,24 +87,12 @@ export const createSecret = async (req: Request, res: Response) => { secretValueTag }); - const postHogClient = TelemetryService.getPostHogClient(); - if (postHogClient) { - postHogClient.capture({ - event: 'secrets added', - distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData - }), - properties: { - numberOfSecrets: 1, - environment, - workspaceId, - channel: req.authData.authChannel, - userAgent: req.headers?.['user-agent'] - } - }); - } + await EventService.handleEvent({ + event: eventPushSecrets({ + workspaceId: new Types.ObjectId(workspaceId), + environment + }) + }); const secretWithoutBlindIndex = secret.toObject(); delete secretWithoutBlindIndex.secretBlindIndex; @@ -173,26 +128,13 @@ export const updateSecretByName = async (req: Request, res: Response) => { secretValueIV, secretValueTag }); - - - const postHogClient = TelemetryService.getPostHogClient(); - if (postHogClient) { - postHogClient.capture({ - event: 'secrets modified', - distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData - }), - properties: { - numberOfSecrets: 1, - environment, - workspaceId, - channel: req.authData.authChannel, - userAgent: req.headers?.['user-agent'] - } - }); - } + + await EventService.handleEvent({ + event: eventPushSecrets({ + workspaceId: new Types.ObjectId(workspaceId), + environment + }) + }); return res.status(200).send({ secret @@ -220,24 +162,12 @@ export const deleteSecretByName = async (req: Request, res: Response) => { authData: req.authData }); - const postHogClient = TelemetryService.getPostHogClient(); - if (postHogClient) { - postHogClient.capture({ - event: 'secrets deleted', - distinctId: TelemetryService.getDistinctId({ - user: req.user, - serviceAccount: req.serviceAccount, - serviceTokenData: req.serviceTokenData - }), - properties: { - numberOfSecrets: secrets.length, - environment, - workspaceId, - channel: req.authData.authChannel, - userAgent: req.headers?.['user-agent'] - } - }); - } + await EventService.handleEvent({ + event: eventPushSecrets({ + workspaceId: new Types.ObjectId(workspaceId), + environment + }) + }); return res.status(200).send({ secret diff --git a/backend/src/events/secret.ts b/backend/src/events/secret.ts index 479255a31..6007dd682 100644 --- a/backend/src/events/secret.ts +++ b/backend/src/events/secret.ts @@ -1,3 +1,4 @@ +import { Types } from 'mongoose'; import { EVENT_PUSH_SECRETS, EVENT_PULL_SECRETS @@ -22,13 +23,16 @@ interface PushSecret { * @returns */ const eventPushSecrets = ({ - workspaceId + workspaceId, + environment }: { - workspaceId: string; + workspaceId: Types.ObjectId; + environment?: string; }) => { return ({ name: EVENT_PUSH_SECRETS, workspaceId, + environment, payload: { } diff --git a/backend/src/helpers/bot.ts b/backend/src/helpers/bot.ts index 7b7c773ea..ff55a5e2c 100644 --- a/backend/src/helpers/bot.ts +++ b/backend/src/helpers/bot.ts @@ -151,7 +151,7 @@ const getSecretsHelper = async ({ workspaceId, environment }: { - workspaceId: string; + workspaceId: Types.ObjectId; environment: string; }) => { const content = {} as any; @@ -196,7 +196,7 @@ const getSecretsHelper = async ({ * @param {String} obj.workspaceId - id of workspace * @returns {String} key - decrypted workspace key */ -const getKey = async ({ workspaceId }: { workspaceId: string }) => { +const getKey = async ({ workspaceId }: { workspaceId: Types.ObjectId }) => { let key; try { const botKey = await BotKey.findOne({ @@ -245,7 +245,7 @@ const encryptSymmetricHelper = async ({ workspaceId, plaintext }: { - workspaceId: string; + workspaceId: Types.ObjectId; plaintext: string; }) => { @@ -282,7 +282,7 @@ const decryptSymmetricHelper = async ({ iv, tag }: { - workspaceId: string; + workspaceId: Types.ObjectId; ciphertext: string; iv: string; tag: string; diff --git a/backend/src/helpers/event.ts b/backend/src/helpers/event.ts index 4128752e5..43375814d 100644 --- a/backend/src/helpers/event.ts +++ b/backend/src/helpers/event.ts @@ -1,11 +1,13 @@ -import { Bot, IBot } from '../models'; +import { Types } from 'mongoose'; import * as Sentry from '@sentry/node'; +import { Bot, IBot } from '../models'; import { EVENT_PUSH_SECRETS } from '../variables'; import { IntegrationService } from '../services'; interface Event { name: string; - workspaceId: string; + workspaceId: Types.ObjectId; + environment?: string; payload: any; } @@ -22,7 +24,10 @@ const handleEventHelper = async ({ }: { event: Event; }) => { - const { workspaceId } = event; + const { + workspaceId, + environment + } = event; // TODO: moduralize bot check into separate function const bot = await Bot.findOne({ @@ -36,7 +41,8 @@ const handleEventHelper = async ({ switch (event.name) { case EVENT_PUSH_SECRETS: IntegrationService.syncIntegrations({ - workspaceId + workspaceId, + environment }); break; } diff --git a/backend/src/helpers/integration.ts b/backend/src/helpers/integration.ts index fbbc2f807..4d2666de4 100644 --- a/backend/src/helpers/integration.ts +++ b/backend/src/helpers/integration.ts @@ -217,14 +217,19 @@ const handleOAuthExchangeHelper = async ({ * @param {Object} obj.workspaceId - id of workspace */ const syncIntegrationsHelper = async ({ - workspaceId + workspaceId, + environment }: { - workspaceId: string; + workspaceId: Types.ObjectId; + environment?: string; }) => { let integrations; try { integrations = await Integration.find({ workspace: workspaceId, + ...(environment ? { + environment + } : {}), isActive: true, app: { $ne: null } }); @@ -234,7 +239,7 @@ const syncIntegrationsHelper = async ({ for await (const integration of integrations) { // get workspace, environment (shared) secrets const secrets = await BotService.getSecrets({ // issue here? - workspaceId: integration.workspace.toString(), + workspaceId: integration.workspace, environment: integration.environment }); @@ -281,7 +286,7 @@ const syncIntegrationsHelper = async ({ if (!integrationAuth) throw UnauthorizedRequestError({message: 'Failed to locate Integration Authentication credentials'}); refreshToken = await BotService.decryptSymmetric({ - workspaceId: integrationAuth.workspace.toString(), + workspaceId: integrationAuth.workspace, ciphertext: integrationAuth.refreshCiphertext as string, iv: integrationAuth.refreshIV as string, tag: integrationAuth.refreshTag as string @@ -318,7 +323,7 @@ const getIntegrationAuthAccessHelper = async ({ integrationAuthId }: { integrati if (!integrationAuth) throw UnauthorizedRequestError({message: 'Failed to locate Integration Authentication credentials'}); accessToken = await BotService.decryptSymmetric({ - workspaceId: integrationAuth.workspace.toString(), + workspaceId: integrationAuth.workspace, ciphertext: integrationAuth.accessCiphertext as string, iv: integrationAuth.accessIV as string, tag: integrationAuth.accessTag as string @@ -340,7 +345,7 @@ const getIntegrationAuthAccessHelper = async ({ integrationAuthId }: { integrati if (integrationAuth?.accessIdCiphertext && integrationAuth?.accessIdIV && integrationAuth?.accessIdTag) { accessId = await BotService.decryptSymmetric({ - workspaceId: integrationAuth.workspace.toString(), + workspaceId: integrationAuth.workspace, ciphertext: integrationAuth.accessIdCiphertext as string, iv: integrationAuth.accessIdIV as string, tag: integrationAuth.accessIdTag as string @@ -386,7 +391,7 @@ const setIntegrationAuthRefreshHelper = async ({ if (!integrationAuth) throw new Error('Failed to find integration auth'); const obj = await BotService.encryptSymmetric({ - workspaceId: integrationAuth.workspace.toString(), + workspaceId: integrationAuth.workspace, plaintext: refreshToken }); @@ -435,14 +440,14 @@ const setIntegrationAuthAccessHelper = async ({ if (!integrationAuth) throw new Error('Failed to find integration auth'); const encryptedAccessTokenObj = await BotService.encryptSymmetric({ - workspaceId: integrationAuth.workspace.toString(), + workspaceId: integrationAuth.workspace, plaintext: accessToken }); let encryptedAccessIdObj; if (accessId) { encryptedAccessIdObj = await BotService.encryptSymmetric({ - workspaceId: integrationAuth.workspace.toString(), + workspaceId: integrationAuth.workspace, plaintext: accessId }); } diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index fa8af5c19..f900fb70b 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -6,21 +6,18 @@ import { UpdateSecretParams, DeleteSecretParams } from '../interfaces/services/SecretService'; +import { + AuthData +} from '../interfaces/middleware'; import { User, - IUser, ServiceAccount, - IServiceAccount, ServiceTokenData, - IServiceTokenData, Secret, ISecret, SecretBlindIndexData, } from '../models'; -import { - IAction, - SecretVersion -} from '../ee/models'; +import { SecretVersion } from '../ee/models'; import { validateMembership } from '../helpers/membership'; @@ -55,8 +52,12 @@ import { } from '../variables'; import crypto from 'crypto'; import * as argon2 from 'argon2'; -import { decryptSymmetric } from '../utils/crypto'; +import { + encryptSymmetric, + decryptSymmetric +} from '../utils/crypto'; import { getEncryptionKey } from '../config'; +import { TelemetryService } from '../services'; import { EESecretService, EELogService @@ -80,10 +81,7 @@ const validateClientForSecret = async ({ acceptedRoles, requiredPermissions }: { - authData: { - authMode: string; - authPayload: IUser | IServiceAccount | IServiceTokenData; - }, + authData: AuthData; secretId: Types.ObjectId; acceptedRoles: Array<'admin' | 'member'>; requiredPermissions: string[]; @@ -157,10 +155,7 @@ const validateClientForSecrets = async ({ secretIds, requiredPermissions }: { - authData: { - authMode: string; - authPayload: IUser | IServiceAccount | IServiceTokenData; - }, + authData: AuthData; secretIds: Types.ObjectId[]; requiredPermissions: string[]; }) => { @@ -222,6 +217,39 @@ const validateClientForSecrets = async ({ }); } +/** + * Create secret blind index data containing encrypted blind index salt + * for workspace with id [workspaceId] + * @param {Object} obj + * @param {Types.ObjectId} obj.workspaceId + */ +const createSecretBlindIndexDataHelper = async ({ + workspaceId +}: { + workspaceId: Types.ObjectId; +}) => { + // initialize random blind index salt for workspace + const salt = crypto.randomBytes(16).toString('base64'); + + const { + ciphertext: encryptedSaltCiphertext, + iv: saltIV, + tag: saltTag + } = encryptSymmetric({ + plaintext: salt, + key: getEncryptionKey() + }); + + const secretBlindIndexData = await new SecretBlindIndexData({ + workspace: workspaceId, + encryptedSaltCiphertext, + saltIV, + saltTag + }).save(); + + return secretBlindIndexData; +} + /** * Generate blind index for secret with name [secretName] * for workspace with id [workspaceId] @@ -389,6 +417,24 @@ const createSecretHelper = async ({ await EESecretService.takeSecretSnapshot({ workspaceId }); + + const postHogClient = TelemetryService.getPostHogClient(); + + if (postHogClient) { + postHogClient.capture({ + event: 'secrets added', + distinctId: TelemetryService.getDistinctId({ + authData + }), + properties: { + numberOfSecrets: 1, + environment, + workspaceId, + channel: authData.authChannel, + userAgent: authData.authUserAgent + } + }); + } return secret; } @@ -430,6 +476,7 @@ const getSecretsHelper = async ({ } })); + // (EE) create (audit) log const action = await EELogService.createAction({ name: ACTION_READ_SECRETS, ...getAuthDataPayloadIdObj(authData), @@ -445,6 +492,24 @@ const getSecretsHelper = async ({ ipAddress: authData.authIP }); + const postHogClient = TelemetryService.getPostHogClient(); + + if (postHogClient) { + postHogClient.capture({ + event: 'secrets pulled', + distinctId: TelemetryService.getDistinctId({ + authData + }), + properties: { + numberOfSecrets: secrets.length, + environment, + workspaceId, + channel: authData.authChannel, + userAgent: authData.authUserAgent + } + }); + } + return secrets; } @@ -501,6 +566,7 @@ const getSecretHelper = async ({ if (!secret) throw SecretNotFoundError(); + // (EE) create (audit) log const action = await EELogService.createAction({ name: ACTION_READ_SECRETS, ...getAuthDataPayloadIdObj(authData), @@ -516,6 +582,24 @@ const getSecretHelper = async ({ ipAddress: authData.authIP }); + const postHogClient = TelemetryService.getPostHogClient(); + + if (postHogClient) { + postHogClient.capture({ + event: 'secrets pull', + distinctId: TelemetryService.getDistinctId({ + authData + }), + properties: { + numberOfSecrets: 1, + environment, + workspaceId, + channel: authData.authChannel, + userAgent: authData.authUserAgent + } + }); + } + return secret; } @@ -610,7 +694,7 @@ const updateSecretHelper = async ({ secretValueTag }); - // // (EE) add version for new secret + // (EE) add version for new secret await EESecretService.addSecretVersions({ secretVersions: [secretVersion] }); @@ -636,6 +720,24 @@ const updateSecretHelper = async ({ workspaceId }); + const postHogClient = TelemetryService.getPostHogClient(); + + if (postHogClient) { + postHogClient.capture({ + event: 'secrets modified', + distinctId: TelemetryService.getDistinctId({ + authData + }), + properties: { + numberOfSecrets: 1, + environment, + workspaceId, + channel: authData.authChannel, + userAgent: authData.authUserAgent + } + }); + } + return secret; } @@ -728,6 +830,24 @@ const deleteSecretHelper = async ({ workspaceId }); + const postHogClient = TelemetryService.getPostHogClient(); + + if (postHogClient) { + postHogClient.capture({ + event: 'secrets deleted', + distinctId: TelemetryService.getDistinctId({ + authData + }), + properties: { + numberOfSecrets: secrets.length, + environment, + workspaceId, + channel: authData.authChannel, + userAgent: authData.authUserAgent + } + }); + } + return ({ secrets, secret @@ -737,6 +857,7 @@ const deleteSecretHelper = async ({ export { validateClientForSecret, validateClientForSecrets, + createSecretBlindIndexDataHelper, generateSecretBlindIndexHelper, createSecretHelper, getSecretsHelper, diff --git a/backend/src/helpers/workspace.ts b/backend/src/helpers/workspace.ts index 220102eff..e6be64f8c 100644 --- a/backend/src/helpers/workspace.ts +++ b/backend/src/helpers/workspace.ts @@ -30,6 +30,7 @@ import { } from '../variables'; import { getEncryptionKey } from '../config'; import { encryptSymmetric } from '../utils/crypto'; +import { SecretService } from '../services'; /** * Validate authenticated clients for workspace with id [workspaceId] based @@ -158,23 +159,9 @@ const createWorkspace = async ({ }); // initialize blind index salt for workspace - const salt = crypto.randomBytes(16).toString('base64'); - - const { - ciphertext: encryptedSaltCiphertext, - iv: saltIV, - tag: saltTag - } = encryptSymmetric({ - plaintext: salt, - key: getEncryptionKey() + await SecretService.createSecretBlindIndexData({ + workspaceId: workspace._id }); - - await new SecretBlindIndexData({ - workspace: workspace._id, - encryptedSaltCiphertext, - saltIV, - saltTag - }).save(); } catch (err) { Sentry.setUser(null); diff --git a/backend/src/interfaces/middleware/index.ts b/backend/src/interfaces/middleware/index.ts index 4b54399ce..34230de05 100644 --- a/backend/src/interfaces/middleware/index.ts +++ b/backend/src/interfaces/middleware/index.ts @@ -9,4 +9,5 @@ export interface AuthData { authPayload: IUser | IServiceAccount | IServiceTokenData; authChannel: string; authIP: string; + authUserAgent: string; } \ No newline at end of file diff --git a/backend/src/middleware/requireAuth.ts b/backend/src/middleware/requireAuth.ts index 508248b19..86ebf416c 100644 --- a/backend/src/middleware/requireAuth.ts +++ b/backend/src/middleware/requireAuth.ts @@ -91,7 +91,8 @@ const requireAuth = ({ authMode, authPayload, // User, ServiceAccount, ServiceTokenData authChannel: getChannelFromUserAgent(req.headers['user-agent']), - authIP: req.ip + authIP: req.ip, + authUserAgent: req.headers['user-agent'] ?? 'other' } return next(); diff --git a/backend/src/services/BotService.ts b/backend/src/services/BotService.ts index 792bd8e35..4e8118fbe 100644 --- a/backend/src/services/BotService.ts +++ b/backend/src/services/BotService.ts @@ -1,3 +1,4 @@ +import { Types } from 'mongoose'; import { getSecretsHelper, encryptSymmetricHelper, @@ -21,7 +22,7 @@ class BotService { workspaceId, environment }: { - workspaceId: string; + workspaceId: Types.ObjectId; environment: string; }) { return await getSecretsHelper({ @@ -41,7 +42,7 @@ class BotService { workspaceId, plaintext }: { - workspaceId: string; + workspaceId: Types.ObjectId; plaintext: string; }) { return await encryptSymmetricHelper({ @@ -65,7 +66,7 @@ class BotService { iv, tag }: { - workspaceId: string; + workspaceId: Types.ObjectId; ciphertext: string; iv: string; tag: string; diff --git a/backend/src/services/EventService.ts b/backend/src/services/EventService.ts index 9f982bf75..160086be8 100644 --- a/backend/src/services/EventService.ts +++ b/backend/src/services/EventService.ts @@ -1,8 +1,10 @@ +import { Types } from 'mongoose'; import { handleEventHelper } from '../helpers/event'; interface Event { name: string; - workspaceId: string; + workspaceId: Types.ObjectId; + environment?: string; payload: any; } diff --git a/backend/src/services/IntegrationService.ts b/backend/src/services/IntegrationService.ts index 0fd634c33..1e7409ad0 100644 --- a/backend/src/services/IntegrationService.ts +++ b/backend/src/services/IntegrationService.ts @@ -52,9 +52,11 @@ class IntegrationService { * @param {Object} obj.workspaceId - id of workspace */ static async syncIntegrations({ - workspaceId + workspaceId, + environment }: { - workspaceId: string; + workspaceId: Types.ObjectId; + environment?: string; }) { return await syncIntegrationsHelper({ workspaceId diff --git a/backend/src/services/SecretService.ts b/backend/src/services/SecretService.ts index 0275b2cfb..3682c0543 100644 --- a/backend/src/services/SecretService.ts +++ b/backend/src/services/SecretService.ts @@ -11,6 +11,7 @@ import { DeleteSecretParams } from '../interfaces/services/SecretService'; import { + createSecretBlindIndexDataHelper, generateSecretBlindIndexHelper, createSecretHelper, getSecretsHelper, @@ -20,12 +21,28 @@ import { } from '../helpers/secrets'; class SecretService { + /** + * Create secret blind index data containing encrypted blind index salt + * for workspace with id [workspaceId] + * @param {Object} obj + * @param {Types.ObjectId} obj.workspaceId + */ + static async createSecretBlindIndexData({ + workspaceId + }: { + workspaceId: Types.ObjectId; + }) { + return await createSecretBlindIndexDataHelper({ + workspaceId + }); + } + /** * Create and return blind index for secret with * name [secretName] part of workspace with id [workspaceId] * @param {Object} obj - * @param {Object} obj.secretName - name of secret to generate blind index for - * @param {Object} obj.workspaceId - id of workspace that secret belongs to + * @param {String} obj.secretName - name of secret to generate blind index for + * @param {Types.ObjectId} obj.workspaceId - id of workspace that secret belongs to */ static async generateSecretBlindIndex({ secretName, @@ -50,32 +67,8 @@ class SecretService { * @param {AuthData} obj.authData - authentication data on request * @returns */ - static async createSecret({ - secretName, - workspaceId, - environment, - type, - authData, - secretKeyCiphertext, - secretKeyIV, - secretKeyTag, - secretValueCiphertext, - secretValueIV, - secretValueTag - }: CreateSecretParams) { - return await createSecretHelper({ - secretName, - workspaceId, - environment, - type, - authData, - secretKeyCiphertext, - secretKeyIV, - secretKeyTag, - secretValueCiphertext, - secretValueIV, - secretValueTag - }); + static async createSecret(createSecretParams: CreateSecretParams) { + return await createSecretHelper(createSecretParams); } /** @@ -86,16 +79,8 @@ class SecretService { * @param {AuthData} obj.authData - authentication data on request * @returns */ - static async getSecrets({ - workspaceId, - environment, - authData - }: GetSecretsParams) { - return await getSecretsHelper({ - workspaceId, - environment, - authData - }); + static async getSecrets(getSecretsParams: GetSecretsParams) { + return await getSecretsHelper(getSecretsParams); } /** @@ -108,20 +93,8 @@ class SecretService { * @param {AuthData} obj.authData - authentication data on request * @returns */ - static async getSecret({ - secretName, - workspaceId, - environment, - type, - authData - }: GetSecretParams) { - return await getSecretHelper({ - secretName, - workspaceId, - environment, - type, - authData - }); + static async getSecret(getSecretParams: GetSecretParams) { + return await getSecretHelper(getSecretParams); } /** @@ -137,26 +110,8 @@ class SecretService { * @param {AuthData} obj.authData - authentication data on request * @returns */ - static async updateSecret({ - secretName, - workspaceId, - environment, - type, - secretValueCiphertext, - secretValueIV, - secretValueTag, - authData - }: UpdateSecretParams) { - return await updateSecretHelper({ - secretName, - workspaceId, - environment, - type, - authData, - secretValueCiphertext, - secretValueIV, - secretValueTag - }); + static async updateSecret(updateSecretParams: UpdateSecretParams) { + return await updateSecretHelper(updateSecretParams); } /** @@ -169,20 +124,8 @@ class SecretService { * @param {AuthData} obj.authData - authentication data on request * @returns */ - static async deleteSecret({ - secretName, - workspaceId, - environment, - type, - authData - }: DeleteSecretParams) { - return await deleteSecretHelper({ - secretName, - workspaceId, - environment, - type, - authData - }); + static async deleteSecret(deleteSecretParams: DeleteSecretParams) { + return await deleteSecretHelper(deleteSecretParams); } } diff --git a/backend/src/services/TelemetryService.ts b/backend/src/services/TelemetryService.ts index 6e35a403f..be9857d99 100644 --- a/backend/src/services/TelemetryService.ts +++ b/backend/src/services/TelemetryService.ts @@ -1,5 +1,6 @@ import { PostHog } from 'posthog-node'; import { getLogger } from '../utils/logger'; +import { AuthData } from '../interfaces/middleware'; import { getNodeEnv, getTelemetryEnabled, @@ -11,7 +12,8 @@ import { User, IServiceAccount, ServiceAccount, - IServiceTokenData + IServiceTokenData, + ServiceTokenData } from '../models'; import { BadRequestError @@ -48,42 +50,27 @@ class Telemetry { return postHogClient; } - /** - * Return a distinct id for client to be used for logging telemetry - */ - static getDistinctId = ({ - user, - serviceAccount, - serviceTokenData + static getDistinctId ({ + authData }: { - user?: IUser; - serviceAccount?: IServiceAccount; - serviceTokenData?: any; // TODO: fix (it's ServiceTokenData with user populated) - }) => { - - // TODO: modify to accept authData instead - - let distinctId = ''; - - if (user) { - distinctId = user.email; + authData: AuthData; + }) { + let distinctId: any = ''; + if (authData.authPayload instanceof User) { + distinctId = authData.authPayload.email; + } else if (authData.authPayload instanceof ServiceAccount) { + distinctId = `sa.${authData.authPayload._id.toString()}`; + } else if (authData.authPayload instanceof ServiceTokenData) { + if (authData.authPayload.user instanceof User) { + distinctId = authData.authPayload?.user.email; + } else if (authData.authPayload?.serviceAccount) { + distinctId = distinctId = `sa.${authData.authPayload.serviceAccount.toString()}`; + } } - if (serviceAccount) { - distinctId = `sa.${serviceAccount._id.toString()}`; - } - - if (serviceTokenData?.user && serviceTokenData?.user instanceof User) { - distinctId = serviceTokenData.user.email; - } else if (serviceTokenData?.serviceAccount && serviceTokenData?.serviceAccount instanceof ServiceAccount) { - distinctId = `sa.${serviceTokenData.serviceAccount._id.toString()}`; - } - - if (distinctId === '') { - throw BadRequestError({ - message: 'Failed to obtain distinct id for logging telemetry' - }); - } + if (distinctId === '') throw BadRequestError({ + message: 'Failed to obtain distinct id for logging telemetry' + }); return distinctId; } From b62ea41e0281d508e876d7eb119a09caedf28320 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Mon, 17 Apr 2023 23:48:48 +0300 Subject: [PATCH 07/11] Add workspaces v3 endpoints for blind-index naming/labeling --- backend/src/controllers/v3/index.ts | 4 +- .../controllers/v3/workspacesController.ts | 94 +++++++++++++++++++ backend/src/helpers/secrets.ts | 76 ++++++++++++--- backend/src/helpers/workspace.ts | 11 ++- backend/src/index.ts | 4 +- backend/src/models/secretBlindIndexData.ts | 2 +- backend/src/models/workspace.ts | 5 - backend/src/routes/v3/index.ts | 4 +- backend/src/routes/v3/secrets.ts | 1 + backend/src/routes/v3/workspaces.ts | 80 ++++++++++++++++ backend/src/services/SecretService.ts | 41 +++++++- 11 files changed, 297 insertions(+), 25 deletions(-) create mode 100644 backend/src/controllers/v3/workspacesController.ts create mode 100644 backend/src/routes/v3/workspaces.ts diff --git a/backend/src/controllers/v3/index.ts b/backend/src/controllers/v3/index.ts index dba8067f7..1cbb36595 100644 --- a/backend/src/controllers/v3/index.ts +++ b/backend/src/controllers/v3/index.ts @@ -1,5 +1,7 @@ import * as secretsController from './secretsController'; +import * as workspacesController from './workspacesController'; export { - secretsController + secretsController, + workspacesController } \ No newline at end of file diff --git a/backend/src/controllers/v3/workspacesController.ts b/backend/src/controllers/v3/workspacesController.ts new file mode 100644 index 000000000..61079e6b4 --- /dev/null +++ b/backend/src/controllers/v3/workspacesController.ts @@ -0,0 +1,94 @@ +import { Request, Response } from 'express'; +import { Types } from 'mongoose'; +import { Secret, Workspace, SecretBlindIndexData } from '../../models'; +import { SecretService } from'../../services'; +import { BadRequestError } from '../../utils/errors'; +import { decryptSymmetric } from '../../utils/crypto'; +import { getEncryptionKey } from '../../config'; +import * as argon2 from 'argon2'; + +/** + * Return whether or not all secrets in workspace with id [workspaceId] + * are blind-indexed + * @param req + * @param res + * @returns + */ +export const getWorkspaceBlindIndexStatus = async (req: Request, res: Response) => { + const { workspaceId } = req.params; + + const secretsWithoutBlindIndex = await Secret.countDocuments({ + workspace: new Types.ObjectId(workspaceId) + }); + + const isBlindIndexed = secretsWithoutBlindIndex === 0; + + return res.status(200).send(isBlindIndexed); +} + +/** + * Get all secrets for workspace with id [workspaceId] + */ +export const getWorkspaceSecrets = async (req: Request, res: Response) => { + const { workspaceId } = req.params; + + const secrets = await Secret.find({ + workspace: new Types.ObjectId (workspaceId) + }); + + return res.status(200).send({ + secrets + }); +} + +/** + * Update blind indices for secrets in workspace with id [workspaceId] + * @param req + * @param res + */ +export const nameWorkspaceSecrets = async (req: Request, res: Response) => { + + interface SecretToUpdate { + secretName: string; + _id: string; + } + + const { workspaceId } = req.params; + const { + secretsToUpdate + }: { + secretsToUpdate: SecretToUpdate[]; + } = req.body; + + // get secret blind index salt + const salt = await SecretService.getSecretBlindIndexSalt({ + workspaceId: new Types.ObjectId(workspaceId) + }); + + // update secret blind indices + const operations = await Promise.all( + secretsToUpdate.map(async (secretToUpdate: SecretToUpdate) => { + const secretBlindIndex = await SecretService.generateSecretBlindIndexWithSalt({ + secretName: secretToUpdate.secretName, + salt + }); + + return ({ + updateOne: { + filter: { + _id: new Types.ObjectId(secretToUpdate._id) + }, + update: { + secretBlindIndex + } + } + }); + }) + ); + + await Secret.bulkWrite(operations); + + return res.status(200).send({ + operations + }); +} \ No newline at end of file diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index f900fb70b..0eb39da2d 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -218,7 +218,7 @@ const validateClientForSecrets = async ({ } /** - * Create secret blind index data containing encrypted blind index salt + * Create secret blind index data containing encrypted blind index [salt] * for workspace with id [workspaceId] * @param {Object} obj * @param {Types.ObjectId} obj.workspaceId @@ -250,6 +250,64 @@ const createSecretBlindIndexDataHelper = async ({ return secretBlindIndexData; } +/** + * Get secret blind index salt for workspace with id [workspaceId] + * @param {Object} obj + * @param {Types.ObjectId} obj.workspaceId - id of workspace to get salt for + * @returns + */ +const getSecretBlindIndexSaltHelper = async ({ + workspaceId +}: { + workspaceId: Types.ObjectId; +}) => { + // check if workspace blind index data exists + const secretBlindIndexData = await SecretBlindIndexData.findOne({ + workspace: workspaceId + }); + + if (!secretBlindIndexData) throw SecretBlindIndexDataNotFoundError(); + + // decrypt workspace salt + const salt = decryptSymmetric({ + ciphertext: secretBlindIndexData.encryptedSaltCiphertext, + iv: secretBlindIndexData.saltIV, + tag: secretBlindIndexData.saltTag, + key: getEncryptionKey() + }); + + return salt; +} + +/** + * Generate blind index for secret with name [secretName] + * and salt [salt] + * @param {Object} obj + * @param {Object} obj.secretName - name of secret to generate blind index for + * @param {String} obj.salt - base64-salt + */ + const generateSecretBlindIndexWithSaltHelper = async ({ + secretName, + salt +}: { + secretName: string; + salt: string; +}) => { + + // generate secret blind index + const secretBlindIndex = (await argon2.hash(secretName, { + type: argon2.argon2id, + salt: Buffer.from(salt, 'base64'), + saltLength: 16, // default 16 bytes + memoryCost: 65536, // default pool of 64 MiB per thread. + hashLength: 32, + parallelism: 1, + raw: true + })).toString('base64'); + + return secretBlindIndex; +} + /** * Generate blind index for secret with name [secretName] * for workspace with id [workspaceId] @@ -280,16 +338,10 @@ const generateSecretBlindIndexHelper = async ({ key: getEncryptionKey() }); - // generate secret blind index - const secretBlindIndex = (await argon2.hash(secretName, { - type: argon2.argon2id, - salt: Buffer.from(salt, 'base64'), - saltLength: 16, // default 16 bytes - memoryCost: 65536, // default pool of 64 MiB per thread. - hashLength: 32, - parallelism: 1, - raw: true - })).toString('base64'); + const secretBlindIndex = await generateSecretBlindIndexWithSaltHelper({ + secretName, + salt + }); return secretBlindIndex; } @@ -858,6 +910,8 @@ export { validateClientForSecret, validateClientForSecrets, createSecretBlindIndexDataHelper, + getSecretBlindIndexSaltHelper, + generateSecretBlindIndexWithSaltHelper, generateSecretBlindIndexHelper, createSecretHelper, getSecretsHelper, diff --git a/backend/src/helpers/workspace.ts b/backend/src/helpers/workspace.ts index e6be64f8c..bb002176b 100644 --- a/backend/src/helpers/workspace.ts +++ b/backend/src/helpers/workspace.ts @@ -67,12 +67,16 @@ const validateClientForWorkspace = async ({ message: 'Failed to find workspace' }); - if (requireBlindIndicesEnabled && !workspace.isBlindedIndicesEnabled) { + if (requireBlindIndicesEnabled) { // case: blind indices are not enabled for secrets in this workspace // (i.e. workspace was created before blind indices were introduced // and no admin has enabled it) - throw UnauthorizedRequestError({ + const secretBlindIndexData = await SecretBlindIndexData.exists({ + workspace: new Types.ObjectId(workspaceId) + }); + + if (!secretBlindIndexData) throw UnauthorizedRequestError({ message: 'Failed workspace authorization due to blind indices not being enabled' }); } @@ -148,8 +152,7 @@ const createWorkspace = async ({ workspace = await new Workspace({ name, organization: organizationId, - autoCapitalization: true, - isBlindedIndicesEnabled: true + autoCapitalization: true }).save(); // initialize bot for workspace diff --git a/backend/src/index.ts b/backend/src/index.ts index dcf66ffd6..022031d7c 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -62,7 +62,8 @@ import { tags as v2TagsRouter, } from './routes/v2'; import { - secrets as v3SecretsRouter + secrets as v3SecretsRouter, + workspaces as v3WorkspacesRouter } from './routes/v3'; import { healthCheck } from './routes/status'; import { getLogger } from './utils/logger'; @@ -159,6 +160,7 @@ const main = async () => { // v3 routes (experimental) app.use('/api/v3/secrets', v3SecretsRouter); + app.use('/api/v3/workspaces', v3WorkspacesRouter); // api docs app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerFile)) diff --git a/backend/src/models/secretBlindIndexData.ts b/backend/src/models/secretBlindIndexData.ts index aeaa3f027..47649dde4 100644 --- a/backend/src/models/secretBlindIndexData.ts +++ b/backend/src/models/secretBlindIndexData.ts @@ -1,6 +1,6 @@ import { Schema, model, Types, Document } from 'mongoose'; -export interface ISecretBlindIndexData { +export interface ISecretBlindIndexData extends Document { _id: Types.ObjectId; workspace: Types.ObjectId; encryptedSaltCiphertext: string; diff --git a/backend/src/models/workspace.ts b/backend/src/models/workspace.ts index c31542b3a..94a086e82 100644 --- a/backend/src/models/workspace.ts +++ b/backend/src/models/workspace.ts @@ -9,7 +9,6 @@ export interface IWorkspace { slug: string; }>; autoCapitalization: boolean; - isBlindedIndicesEnabled: boolean; } const workspaceSchema = new Schema({ @@ -21,10 +20,6 @@ const workspaceSchema = new Schema({ type: Boolean, default: true, }, - isBlindedIndicesEnabled: { - type: Boolean, - required: true - }, organization: { type: Schema.Types.ObjectId, ref: 'Organization', diff --git a/backend/src/routes/v3/index.ts b/backend/src/routes/v3/index.ts index fffd60b49..e66723133 100644 --- a/backend/src/routes/v3/index.ts +++ b/backend/src/routes/v3/index.ts @@ -1,5 +1,7 @@ import secrets from './secrets'; +import workspaces from './workspaces'; export { - secrets + secrets, + workspaces } \ No newline at end of file diff --git a/backend/src/routes/v3/secrets.ts b/backend/src/routes/v3/secrets.ts index f40c0f332..fe346b0de 100644 --- a/backend/src/routes/v3/secrets.ts +++ b/backend/src/routes/v3/secrets.ts @@ -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] }), diff --git a/backend/src/routes/v3/workspaces.ts b/backend/src/routes/v3/workspaces.ts new file mode 100644 index 000000000..ad02e9a4c --- /dev/null +++ b/backend/src/routes/v3/workspaces.ts @@ -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; \ No newline at end of file diff --git a/backend/src/services/SecretService.ts b/backend/src/services/SecretService.ts index 3682c0543..6d0ec0e07 100644 --- a/backend/src/services/SecretService.ts +++ b/backend/src/services/SecretService.ts @@ -12,6 +12,8 @@ import { } from '../interfaces/services/SecretService'; import { createSecretBlindIndexDataHelper, + getSecretBlindIndexSaltHelper, + generateSecretBlindIndexWithSaltHelper, generateSecretBlindIndexHelper, createSecretHelper, getSecretsHelper, @@ -25,10 +27,11 @@ class SecretService { * Create secret blind index data containing encrypted blind index salt * for workspace with id [workspaceId] * @param {Object} obj + * @param {Buffer} obj.salt - 16-byte random salt * @param {Types.ObjectId} obj.workspaceId */ static async createSecretBlindIndexData({ - workspaceId + workspaceId, }: { workspaceId: Types.ObjectId; }) { @@ -37,6 +40,42 @@ class SecretService { }); } + /** + * Get secret blind index salt for workspace with id [workspaceId] + * @param {Object} obj + * @param {Types.ObjectId} obj.workspaceId - id of workspace to get salt for + * @returns + */ + static async getSecretBlindIndexSalt({ + workspaceId + }: { + workspaceId: Types.ObjectId; + }) { + return await getSecretBlindIndexSaltHelper({ + workspaceId + }); + } + + /** + * Generate blind index for secret with name [secretName] + * and salt [salt] + * @param {Object} obj + * @param {Object} obj.secretName - name of secret to generate blind index for + * @param {String} obj.salt - base64-salt + */ + static async generateSecretBlindIndexWithSalt({ + secretName, + salt + }: { + secretName: string; + salt: string; + }) { + return await generateSecretBlindIndexWithSaltHelper({ + secretName, + salt + }); + } + /** * Create and return blind index for secret with * name [secretName] part of workspace with id [workspaceId] From acb90ee0f7e5843ce7bf8ff7c83e77d9ecaa2941 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Tue, 18 Apr 2023 12:43:06 +0300 Subject: [PATCH 08/11] Add frontend migration support for existing project to be blind-indexed --- .../src/controllers/v2/secretsController.ts | 34 +++++-- .../controllers/v3/workspacesController.ts | 18 ++-- .../v1/secretSnapshotController.ts | 10 +- .../ee/controllers/v1/workspaceController.ts | 4 + backend/src/ee/models/secretVersion.ts | 5 + backend/src/routes/v3/workspaces.ts | 16 ++-- backend/src/types/secret/index.d.ts | 1 + .../utilities/secrets/encryptSecrets.ts | 2 + frontend/src/hooks/api/workspace/index.tsx | 6 +- frontend/src/hooks/api/workspace/queries.tsx | 53 +++++++++++ frontend/src/hooks/api/workspace/types.ts | 8 ++ frontend/src/pages/dashboard/[id].tsx | 2 + .../ProjectSettingsPage.tsx | 62 +++++++++++-- .../ProjectEncryptionModeSection.tsx | 93 ------------------- .../ProjectEncryptionModeSection/index.tsx | 1 - .../ProjectIndexSecretsSection.tsx | 32 +++++++ .../ProjectIndexSecretsSection/index.tsx | 1 + .../ProjectSettingsPage/components/index.tsx | 2 +- 18 files changed, 212 insertions(+), 138 deletions(-) delete mode 100644 frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx delete mode 100644 frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/index.tsx create mode 100644 frontend/src/views/Settings/ProjectSettingsPage/components/ProjectIndexSecretsSection/ProjectIndexSecretsSection.tsx create mode 100644 frontend/src/views/Settings/ProjectSettingsPage/components/ProjectIndexSecretsSection/index.tsx diff --git a/backend/src/controllers/v2/secretsController.ts b/backend/src/controllers/v2/secretsController.ts index e05e758ed..89aa1d76e 100644 --- a/backend/src/controllers/v2/secretsController.ts +++ b/backend/src/controllers/v2/secretsController.ts @@ -15,7 +15,7 @@ import { UnauthorizedRequestError, ValidationError } from '../../utils/errors'; import { EventService } from '../../services'; import { eventPushSecrets } from '../../events'; import { EESecretService, EELogService } from '../../ee/services'; -import { TelemetryService } from '../../services'; +import { TelemetryService, SecretService } from '../../services'; import { getChannelFromUserAgent } from '../../utils/posthog'; import { PERMISSION_WRITE_SECRETS } from '../../variables'; import { userHasNoAbility, userHasWorkspaceAccess, userHasWriteOnlyAbility } from '../../ee/helpers/checkMembershipPermissions'; @@ -51,29 +51,47 @@ export const batchSecrets = async (req: Request, res: Response) => { const updateSecrets: BatchSecret[] = []; const deleteSecrets: Types.ObjectId[] = []; const actions: IAction[] = []; + + // get secret blind index salt + const salt = await SecretService.getSecretBlindIndexSalt({ + workspaceId: new Types.ObjectId(workspaceId) + }); - requests.forEach((request) => { + for await (const request of requests) { + let secretBlindIndex = ''; switch (request.method) { case 'POST': + secretBlindIndex = await SecretService.generateSecretBlindIndexWithSalt({ + secretName: request.secret.secretName, + salt + }); + createSecrets.push({ ...request.secret, version: 1, user: request.secret.type === SECRET_PERSONAL ? req.user : undefined, environment, - workspace: new Types.ObjectId(workspaceId) + workspace: new Types.ObjectId(workspaceId), + secretBlindIndex }); break; case 'PATCH': + secretBlindIndex = await SecretService.generateSecretBlindIndexWithSalt({ + secretName: request.secret.secretName, + salt + }); + updateSecrets.push({ ...request.secret, - _id: new Types.ObjectId(request.secret._id) + _id: new Types.ObjectId(request.secret._id), + secretBlindIndex }); break; case 'DELETE': deleteSecrets.push(new Types.ObjectId(request.secret._id)); break; } - }); + } // handle create secrets let createdSecrets: ISecret[] = []; @@ -134,7 +152,10 @@ export const batchSecrets = async (req: Request, res: Response) => { const updateOperations = updateSecrets.map((u) => ({ updateOne: { - filter: { _id: new Types.ObjectId(u._id) }, + filter: { + _id: new Types.ObjectId(u._id), + workspace: new Types.ObjectId(workspaceId) + }, update: { $inc: { version: 1 @@ -154,6 +175,7 @@ export const batchSecrets = async (req: Request, res: Response) => { type: listedSecretsObj[u._id.toString()].type, environment, isDeleted: false, + secretBlindIndex: u.secretBlindIndex, secretKeyCiphertext: u.secretKeyCiphertext, secretKeyIV: u.secretKeyIV, secretKeyTag: u.secretKeyTag, diff --git a/backend/src/controllers/v3/workspacesController.ts b/backend/src/controllers/v3/workspacesController.ts index 61079e6b4..aac6682d7 100644 --- a/backend/src/controllers/v3/workspacesController.ts +++ b/backend/src/controllers/v3/workspacesController.ts @@ -1,11 +1,7 @@ import { Request, Response } from 'express'; import { Types } from 'mongoose'; -import { Secret, Workspace, SecretBlindIndexData } from '../../models'; +import { Secret } from '../../models'; import { SecretService } from'../../services'; -import { BadRequestError } from '../../utils/errors'; -import { decryptSymmetric } from '../../utils/crypto'; -import { getEncryptionKey } from '../../config'; -import * as argon2 from 'argon2'; /** * Return whether or not all secrets in workspace with id [workspaceId] @@ -18,12 +14,13 @@ export const getWorkspaceBlindIndexStatus = async (req: Request, res: Response) const { workspaceId } = req.params; const secretsWithoutBlindIndex = await Secret.countDocuments({ - workspace: new Types.ObjectId(workspaceId) + workspace: new Types.ObjectId(workspaceId), + secretBlindIndex: { + $exists: false + } }); - const isBlindIndexed = secretsWithoutBlindIndex === 0; - - return res.status(200).send(isBlindIndexed); + return res.status(200).send(secretsWithoutBlindIndex === 0); } /** @@ -47,7 +44,6 @@ export const getWorkspaceSecrets = async (req: Request, res: Response) => { * @param res */ export const nameWorkspaceSecrets = async (req: Request, res: Response) => { - interface SecretToUpdate { secretName: string; _id: string; @@ -89,6 +85,6 @@ export const nameWorkspaceSecrets = async (req: Request, res: Response) => { await Secret.bulkWrite(operations); return res.status(200).send({ - operations + message: 'Successfully named workspace secrets' }); } \ No newline at end of file diff --git a/backend/src/ee/controllers/v1/secretSnapshotController.ts b/backend/src/ee/controllers/v1/secretSnapshotController.ts index ae3af7958..15b346f98 100644 --- a/backend/src/ee/controllers/v1/secretSnapshotController.ts +++ b/backend/src/ee/controllers/v1/secretSnapshotController.ts @@ -15,16 +15,10 @@ export const getSecretSnapshot = async (req: Request, res: Response) => { secretSnapshot = await SecretSnapshot .findById(secretSnapshotId) - .populate({ - path: 'secretVersions', - populate: { - path: 'tags', - model: 'Tag', - } - }); + .populate('secretVersions'); if (!secretSnapshot) throw new Error('Failed to find secret snapshot'); - + } catch (err) { Sentry.setUser({ email: req.user.email }); Sentry.captureException(err); diff --git a/backend/src/ee/controllers/v1/workspaceController.ts b/backend/src/ee/controllers/v1/workspaceController.ts index 3c4ad111d..9dd7a0ca6 100644 --- a/backend/src/ee/controllers/v1/workspaceController.ts +++ b/backend/src/ee/controllers/v1/workspaceController.ts @@ -222,6 +222,7 @@ export const rollbackWorkspaceSecretSnapshot = async (req: Request, res: Respons type, user, environment, + secretBlindIndex, secretKeyCiphertext, secretKeyIV, secretKeyTag, @@ -240,6 +241,7 @@ export const rollbackWorkspaceSecretSnapshot = async (req: Request, res: Respons type, user, environment, + secretBlindIndex: secretBlindIndex ?? undefined, secretKeyCiphertext, secretKeyIV, secretKeyTag, @@ -265,6 +267,7 @@ export const rollbackWorkspaceSecretSnapshot = async (req: Request, res: Respons type, user, environment, + secretBlindIndex, secretKeyCiphertext, secretKeyIV, secretKeyTag, @@ -282,6 +285,7 @@ export const rollbackWorkspaceSecretSnapshot = async (req: Request, res: Respons user, environment, isDeleted: false, + secretBlindIndex: secretBlindIndex ?? undefined, secretKeyCiphertext, secretKeyIV, secretKeyTag, diff --git a/backend/src/ee/models/secretVersion.ts b/backend/src/ee/models/secretVersion.ts index 63c7d936a..a430834a9 100644 --- a/backend/src/ee/models/secretVersion.ts +++ b/backend/src/ee/models/secretVersion.ts @@ -13,6 +13,7 @@ export interface ISecretVersion { user?: Types.ObjectId; // new environment: string; // new isDeleted: boolean; + secretBlindIndex?: string; secretKeyCiphertext: string; secretKeyIV: string; secretKeyTag: string; @@ -57,6 +58,10 @@ const secretVersionSchema = new Schema( default: false, required: true }, + secretBlindIndex: { + type: String, + select: false + }, secretKeyCiphertext: { type: String, required: true diff --git a/backend/src/routes/v3/workspaces.ts b/backend/src/routes/v3/workspaces.ts index ad02e9a4c..fdd734cf9 100644 --- a/backend/src/routes/v3/workspaces.ts +++ b/backend/src/routes/v3/workspaces.ts @@ -19,13 +19,13 @@ router.get( '/:workspaceId/secrets/blind-index-status', param('workspaceId').exists().isString().trim(), validateRequest, - // requireAuth({ - // acceptedAuthModes: [AUTH_MODE_JWT] - // }), - // requireWorkspaceAuth({ - // acceptedRoles: [ADMIN], - // locationWorkspaceId: 'params', - // }), + requireAuth({ + acceptedAuthModes: [AUTH_MODE_JWT] + }), + requireWorkspaceAuth({ + acceptedRoles: [ADMIN], + locationWorkspaceId: 'params', + }), workspacesController.getWorkspaceBlindIndexStatus ); @@ -52,7 +52,7 @@ router.post( // allow admins to name all workspace secrets (part of blind indice .withMessage('secretsToUpdate must be an array') .customSanitizer((value) => { return value.map((secret: any) => ({ - secretName: secret.name, + secretName: secret.secretName, _id: secret._id })); }), diff --git a/backend/src/types/secret/index.d.ts b/backend/src/types/secret/index.d.ts index 257038f60..7a6ec7a5a 100644 --- a/backend/src/types/secret/index.d.ts +++ b/backend/src/types/secret/index.d.ts @@ -24,6 +24,7 @@ export interface BatchSecretRequest { export interface BatchSecret { _id: string; type: 'shared' | 'personal', + secretBlindIndex: string; secretKeyCiphertext: string; secretKeyIV: string; secretKeyTag: string; diff --git a/frontend/src/components/utilities/secrets/encryptSecrets.ts b/frontend/src/components/utilities/secrets/encryptSecrets.ts index 7b678a494..afaf27ab5 100644 --- a/frontend/src/components/utilities/secrets/encryptSecrets.ts +++ b/frontend/src/components/utilities/secrets/encryptSecrets.ts @@ -10,6 +10,7 @@ interface EncryptedSecretProps { id: string; createdAt: string; environment: string; + secretName: string; secretCommentCiphertext: string; secretCommentIV: string; secretCommentTag: string; @@ -94,6 +95,7 @@ const encryptSecrets = async ({ id: secret.id, createdAt: '', environment: env, + secretName: secret.key, secretKeyCiphertext, secretKeyIV, secretKeyTag, diff --git a/frontend/src/hooks/api/workspace/index.tsx b/frontend/src/hooks/api/workspace/index.tsx index 622c5196c..3a9d8fd2f 100644 --- a/frontend/src/hooks/api/workspace/index.tsx +++ b/frontend/src/hooks/api/workspace/index.tsx @@ -7,7 +7,9 @@ export { useGetUserWorkspaces, useGetUserWsEnvironments, useGetWorkspaceById, + useGetWorkspaceIndexStatus, + useGetWorkspaceSecrets, + useNameWorkspaceSecrets, useRenameWorkspace, useToggleAutoCapitalization, - useUpdateWsEnvironment -} from './queries'; + useUpdateWsEnvironment} from './queries'; diff --git a/frontend/src/hooks/api/workspace/queries.tsx b/frontend/src/hooks/api/workspace/queries.tsx index 4736da076..d2d7a4cde 100644 --- a/frontend/src/hooks/api/workspace/queries.tsx +++ b/frontend/src/hooks/api/workspace/queries.tsx @@ -2,12 +2,16 @@ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { apiRequest } from '@app/config/request'; +import { + EncryptedSecret +} from '../secrets/types'; import { CreateEnvironmentDTO, CreateWorkspaceDTO, DeleteEnvironmentDTO, DeleteWorkspaceDTO, GetWsEnvironmentDTO, + NameWorkspaceSecretsDTO, RenameWorkspaceDTO, ToggleAutoCapitalizationDTO, UpdateEnvironmentDTO, @@ -17,6 +21,8 @@ import { const workspaceKeys = { getWorkspaceById: (workspaceId: string) => [{ workspaceId }, 'workspace'] as const, + getWorkspaceSecrets: (workspaceId: string) => [{ workspaceId }, 'workspace-secrets'] as const, + getWorkspaceIndexStatus: (workspaceId: string) => [{ workspaceId}, 'workspace-index-status'] as const, getWorkspaceMemberships: (orgId: string) => [{ orgId }, 'workspace-memberships'], getAllUserWorkspace: ['workspaces'] as const, getUserWsEnvironments: (workspaceId: string) => ['workspace-env', { workspaceId }] as const @@ -26,14 +32,47 @@ const fetchWorkspaceById = async (workspaceId: string) => { const { data } = await apiRequest.get<{ workspace: Workspace }>( `/api/v1/workspace/${workspaceId}` ); + return data.workspace; }; +const fetchWorkspaceIndexStatus = async (workspaceId: string) => { + const { data } = await apiRequest.get( + `/api/v3/workspaces/${workspaceId}/secrets/blind-index-status` + ); + + return data; +} + +const fetchWorkspaceSecrets = async (workspaceId: string) => { + const { data: { secrets } } = await apiRequest.get<{ secrets: EncryptedSecret[] }>( + `/api/v3/workspaces/${workspaceId}/secrets` + ); + + return secrets; +} + const fetchUserWorkspaces = async () => { const { data } = await apiRequest.get<{ workspaces: Workspace[] }>('/api/v1/workspace'); return data.workspaces; }; +export const useGetWorkspaceIndexStatus = (workspaceId: string) => { + return useQuery({ + queryKey: workspaceKeys.getWorkspaceIndexStatus(workspaceId), + queryFn: () => fetchWorkspaceIndexStatus(workspaceId), + enabled: true + }); +} + +export const useGetWorkspaceSecrets = (workspaceId: string) => { + return useQuery({ + queryKey: workspaceKeys.getWorkspaceSecrets(workspaceId), + queryFn: () => fetchWorkspaceSecrets(workspaceId), + enabled: true + }) +} + export const useGetWorkspaceById = (workspaceId: string) => { return useQuery({ queryKey: workspaceKeys.getWorkspaceById(workspaceId), @@ -75,6 +114,20 @@ export const useGetUserWorkspaceMemberships = (orgId: string) => enabled: Boolean(orgId) }); +export const useNameWorkspaceSecrets = () => { + const queryClient = useQueryClient(); + + return useMutation<{}, {}, NameWorkspaceSecretsDTO>({ + mutationFn: async ({ workspaceId, secretsToUpdate }) => + apiRequest.post(`/api/v3/workspaces/${workspaceId}/secrets/names`, { + secretsToUpdate + }), + onSuccess: (_, variables) => { + queryClient.invalidateQueries(workspaceKeys.getWorkspaceIndexStatus(variables.workspaceId)); + } + }); +} + // mutation export const useCreateWorkspace = () => { const queryClient = useQueryClient(); diff --git a/frontend/src/hooks/api/workspace/types.ts b/frontend/src/hooks/api/workspace/types.ts index 44d4c4322..3f58f39b9 100644 --- a/frontend/src/hooks/api/workspace/types.ts +++ b/frontend/src/hooks/api/workspace/types.ts @@ -16,6 +16,14 @@ export type WorkspaceEnv = { export type WorkspaceTag = { _id: string; name: string; slug: string }; +export type NameWorkspaceSecretsDTO = { + workspaceId: string; + secretsToUpdate: { + secretName: string; + _id: string; + }[]; +} + // mutation dto export type CreateWorkspaceDTO = { workspaceName: string; diff --git a/frontend/src/pages/dashboard/[id].tsx b/frontend/src/pages/dashboard/[id].tsx index 8aa480c81..defd46f34 100644 --- a/frontend/src/pages/dashboard/[id].tsx +++ b/frontend/src/pages/dashboard/[id].tsx @@ -586,6 +586,7 @@ export default function Dashboard() { method: 'POST', secret: { type: secret.type, + secretName: secret.secretName, secretKeyCiphertext: secret.secretKeyCiphertext, secretKeyIV: secret.secretKeyIV, secretKeyTag: secret.secretKeyTag, @@ -614,6 +615,7 @@ export default function Dashboard() { secret: { _id: secret.id, type: secret.type, + secretName: secret.secretName, secretKeyCiphertext: secret.secretKeyCiphertext, secretKeyIV: secret.secretKeyIV, secretKeyTag: secret.secretKeyTag, diff --git a/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx b/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx index 1684f6c1a..3ba5bc956 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/ProjectSettingsPage.tsx @@ -9,8 +9,8 @@ import NavHeader from '@app/components/navigation/NavHeader'; // TODO(akhilmhdh):Refactor this into a better utility module package import { decryptAssymmetric, - encryptSymmetric -} from '@app/components/utilities/cryptography/crypto'; + decryptSymmetric, + encryptSymmetric} from '@app/components/utilities/cryptography/crypto'; import { Button, FormControl, Input } from '@app/components/v2'; import { plans } from '@app/const'; import { useSubscription, useWorkspace } from '@app/context'; @@ -25,11 +25,13 @@ import { useDeleteWsTag, useGetUserWsKey, useGetUserWsServiceTokens, + useGetWorkspaceIndexStatus, + useGetWorkspaceSecrets, useGetWsTags, + useNameWorkspaceSecrets, useRenameWorkspace, useToggleAutoCapitalization, - useUpdateWsEnvironment -} from '@app/hooks/api'; + useUpdateWsEnvironment} from '@app/hooks/api'; import { AutoCapitalizationSection } from './components/AutoCapitalizationSection/AutoCapitalizationSection'; import { SecretTagsSection } from './components/SecretTagsSection'; @@ -39,9 +41,10 @@ import { CreateUpdateEnvFormData, CreateWsTag, EnvironmentSection, - ProjectEncryptionModeSection, + ProjectIndexSecretsSection, ProjectNameChangeSection, - ServiceTokenSection} from './components'; + ServiceTokenSection +} from './components'; export const ProjectSettingsPage = () => { const { t } = useTranslation(); @@ -55,6 +58,7 @@ export const ProjectSettingsPage = () => { const [isDeleting, setIsDeleting] = useToggle(); const renameWorkspace = useRenameWorkspace(); + const nameWorkspaceSecrets = useNameWorkspaceSecrets(); const toggleAutoCapitalization = useToggleAutoCapitalization(); const deleteWorkspace = useDeleteWorkspace(); @@ -63,11 +67,16 @@ export const ProjectSettingsPage = () => { const updateWsEnv = useUpdateWsEnvironment(); const deleteWsEnv = useDeleteWsEnvironment(); + const { data: isBlindIndexed, isLoading: isBlindIndexedLoading } = useGetWorkspaceIndexStatus(workspaceID); + // service token const { data: serviceTokens, isLoading: isServiceTokenLoading } = useGetUserWsServiceTokens({ workspaceID: currentWorkspace?._id || '' }); + const { data: latestFileKey } = useGetUserWsKey(workspaceID); + const { data: encryptedSecrets } = useGetWorkspaceSecrets(workspaceID); + const createServiceToken = useCreateServiceToken(); const deleteServiceToken = useDeleteServiceToken(); @@ -207,14 +216,15 @@ export const ProjectSettingsPage = () => { // type guard if (!latestFileKey) return ''; try { - // crypo calculation to generate the key const key = decryptAssymmetric({ ciphertext: latestFileKey.encryptedKey, nonce: latestFileKey.nonce, publicKey: latestFileKey.sender.publicKey, privateKey: localStorage.getItem('PRIVATE_KEY') as string }); + const randomBytes = crypto.randomBytes(16).toString('hex'); + const { ciphertext, iv, tag } = encryptSymmetric({ plaintext: key, key: randomBytes @@ -303,6 +313,38 @@ export const ProjectSettingsPage = () => { } }; + const onEnableBlindIndices = async () => { + if (!currentWorkspace?._id) return; + if (!encryptedSecrets) return; + if (!latestFileKey) return; + + const key = decryptAssymmetric({ + ciphertext: latestFileKey.encryptedKey, + nonce: latestFileKey.nonce, + publicKey: latestFileKey.sender.publicKey, + privateKey: localStorage.getItem('PRIVATE_KEY') as string + }); + + const secretsToUpdate = encryptedSecrets.map((encryptedSecret) => { + const secretName = decryptSymmetric({ + ciphertext: encryptedSecret.secretKeyCiphertext, + iv: encryptedSecret.secretKeyIV, + tag: encryptedSecret.secretKeyTag, + key + }); + + return ({ + secretName, + _id: encryptedSecret._id + }); + }); + + await nameWorkspaceSecrets.mutateAsync({ + workspaceId: currentWorkspace._id, + secretsToUpdate + }); + } + return (
{/* TODO(akhilmhdh): Remove this right when layout is refactored */} @@ -349,7 +391,11 @@ export const ProjectSettingsPage = () => { workspaceAutoCapitalization={currentWorkspace?.autoCapitalization} onAutoCapitalizationChange={onAutoCapitalizationToggle} /> - + {!isBlindIndexedLoading && !isBlindIndexed && ( + + )}

{t('settings-project:danger-zone')}

{t('settings-project:danger-zone-note')}

diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx deleted file mode 100644 index 47630effb..000000000 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/ProjectEncryptionModeSection.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import { useEffect } from 'react'; -import { - Controller, - useForm -} from 'react-hook-form'; -import { faCheck } from '@fortawesome/free-solid-svg-icons'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { yupResolver } from '@hookform/resolvers/yup'; -import * as yup from 'yup'; - -import { - Button, - FormControl, - Select, - SelectItem -} from '@app/components/v2'; - -// TODO: modify in accordance with what was discussed with -// Maidul - -// Do with select for now them replace. - -const items = [ - { value: 'e2ee', label: 'E2EE' }, - { value: 'blind-indexed-e2ee', label: 'Blind Indexed E2EE' } -]; - -const formSchema = yup.object({ - mode: yup.string().required().label('Project Mode') -}); - -type FormData = yup.InferType; - -export const ProjectEncryptionModeSection = () => { - const { - handleSubmit, - control, - reset, - formState: { isDirty, isSubmitting } - } = useForm({ resolver: yupResolver(formSchema) }); - - useEffect(() => { - reset({ mode: 'blind-indexed-e2ee' }); - }, []); - - const onFormSubmit = async ({ mode }: FormData) => { - console.log('onFormSubmit'); - console.log('mode: ', mode); - }; - - return ( -
-

Encryption Mode

-
- { - console.log('field: ', field); - return ( - - - - ); - }} - control={control} - name="mode" - /> -
- -
- ); -} \ No newline at end of file diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/index.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/index.tsx deleted file mode 100644 index 981819f70..000000000 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectEncryptionModeSection/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { ProjectEncryptionModeSection } from './ProjectEncryptionModeSection'; \ No newline at end of file diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectIndexSecretsSection/ProjectIndexSecretsSection.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectIndexSecretsSection/ProjectIndexSecretsSection.tsx new file mode 100644 index 000000000..d1ca4f265 --- /dev/null +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectIndexSecretsSection/ProjectIndexSecretsSection.tsx @@ -0,0 +1,32 @@ +import { Button } from '@app/components/v2'; + +// TODO: add check so that this only shows up if user is +// an admin in the workspace + +type Props = { + onEnableBlindIndices: () => Promise; +} + +export const ProjectIndexSecretsSection = ({ + onEnableBlindIndices +}: Props) => { + return ( +
+

Blind Indices

+

+ Your project, created before the introduction of blind indexing, contains unindexed secrets. To access individual secrets by name through the SDK and public API, please enable blind indexing. +

+

+ Learn more about it here. +

+ +
+ ); +} \ No newline at end of file diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectIndexSecretsSection/index.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectIndexSecretsSection/index.tsx new file mode 100644 index 000000000..cd8252f7d --- /dev/null +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/ProjectIndexSecretsSection/index.tsx @@ -0,0 +1 @@ +export { ProjectIndexSecretsSection } from './ProjectIndexSecretsSection'; \ No newline at end of file diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/index.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/index.tsx index 83a4b3a95..a59111447 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/index.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/index.tsx @@ -1,7 +1,7 @@ export { CopyProjectIDSection } from './CopyProjectIDSection'; export { EnvironmentSection } from './EnvironmentSection'; export type { CreateUpdateEnvFormData } from './EnvironmentSection/EnvironmentSection'; -export { ProjectEncryptionModeSection } from './ProjectEncryptionModeSection'; +export { ProjectIndexSecretsSection } from './ProjectIndexSecretsSection'; export { ProjectNameChangeSection } from './ProjectNameChangeSection'; export type { CreateWsTag } from './SecretTagsSection/SecretTagsSection'; export { ServiceTokenSection } from './ServiceTokenSection'; From ad5852fe3ac0d3a852a7b914eeaaff3270dd66a9 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Wed, 19 Apr 2023 15:38:13 +0300 Subject: [PATCH 09/11] Enable all auth clients for secrets v3, remove serviceTokenData .populate in middleware, make secret versions and rollbacks compatible with blind indexing --- .../src/controllers/v2/secretController.ts | 11 +- .../src/controllers/v2/secretsController.ts | 72 +++++--- .../v2/serviceTokenDataController.ts | 14 +- .../src/controllers/v2/workspaceController.ts | 2 +- .../src/controllers/v3/secretsController.ts | 12 +- .../src/ee/controllers/v1/secretController.ts | 5 +- .../ee/controllers/v1/workspaceController.ts | 8 +- backend/src/helpers/auth.ts | 2 +- backend/src/helpers/database.ts | 2 + backend/src/helpers/secrets.ts | 170 ++++++++++-------- backend/src/helpers/serviceTokenData.ts | 1 - .../services/SecretService/index.ts | 3 + backend/src/models/serviceTokenData.ts | 3 +- backend/src/routes/v3/secrets.ts | 40 ++++- backend/src/services/SecretService.ts | 12 ++ backend/src/services/TelemetryService.ts | 16 +- backend/src/utils/auth.ts | 36 +++- docs/security/data-model.mdx | 17 +- docs/security/mechanics.mdx | 17 ++ docs/security/overview.mdx | 2 +- frontend/src/helpers/project.ts | 1 + 21 files changed, 313 insertions(+), 133 deletions(-) diff --git a/backend/src/controllers/v2/secretController.ts b/backend/src/controllers/v2/secretController.ts index 91328ea7b..d551e8aa4 100644 --- a/backend/src/controllers/v2/secretController.ts +++ b/backend/src/controllers/v2/secretController.ts @@ -8,6 +8,8 @@ import { BadRequestError, InternalServerError, UnauthorizedRequestError, Validat import { AnyBulkWriteOperation } from 'mongodb'; import { SECRET_PERSONAL, SECRET_SHARED } from "../../variables"; import { TelemetryService } from '../../services'; +import { User } from "../../models"; +import { AccountNotFoundError } from '../../utils/errors'; /** * Create secret for workspace with id [workspaceId] and environment [environment] @@ -340,15 +342,18 @@ export const getSecrets = async (req: Request, res: Response) => { const { workspaceId } = req.params; let userId: Types.ObjectId | undefined = undefined // used for getting personal secrets for user - let userEmail: Types.ObjectId | undefined = undefined // used for posthog + let userEmail: string | undefined = undefined // used for posthog if (req.user) { userId = req.user._id; userEmail = req.user.email; } if (req.serviceTokenData) { - userId = req.serviceTokenData.user._id - userEmail = req.serviceTokenData.user.email; + userId = req.serviceTokenData.user; + + const user = await User.findById(req.serviceTokenData.user, 'email'); + if (!user) throw AccountNotFoundError(); + userEmail = user.email; } const [err, secrets] = await to(Secret.find( diff --git a/backend/src/controllers/v2/secretsController.ts b/backend/src/controllers/v2/secretsController.ts index 89aa1d76e..f7b8349ff 100644 --- a/backend/src/controllers/v2/secretsController.ts +++ b/backend/src/controllers/v2/secretsController.ts @@ -374,8 +374,14 @@ export const createSecrets = async (req: Request, res: Response) => { listOfSecretsToCreate = [req.body.secrets]; } + // get secret blind index salt + const salt = await SecretService.getSecretBlindIndexSalt({ + workspaceId: new Types.ObjectId(workspaceId) + }); + type secretsToCreateType = { type: string; + secretName?: string; secretKeyCiphertext: string; secretKeyIV: string; secretKeyTag: string; @@ -388,25 +394,10 @@ export const createSecrets = async (req: Request, res: Response) => { tags: string[] } - const secretsToInsert: ISecret[] = listOfSecretsToCreate.map(({ - type, - secretKeyCiphertext, - secretKeyIV, - secretKeyTag, - secretValueCiphertext, - secretValueIV, - secretValueTag, - secretCommentCiphertext, - secretCommentIV, - secretCommentTag, - tags - }: secretsToCreateType) => { - return ({ - version: 1, - workspace: new Types.ObjectId(workspaceId), + const secretsToInsert: ISecret[] = await Promise.all( + listOfSecretsToCreate.map(async ({ type, - user: (req.user && type === SECRET_PERSONAL) ? req.user : undefined, - environment, + secretName, secretKeyCiphertext, secretKeyIV, secretKeyTag, @@ -417,11 +408,38 @@ export const createSecrets = async (req: Request, res: Response) => { secretCommentIV, secretCommentTag, tags - }); - }); + }: secretsToCreateType) => { + let secretBlindIndex; + if (secretName) { + secretBlindIndex = await SecretService.generateSecretBlindIndexWithSalt({ + secretName, + salt + }); + } + return ({ + version: 1, + workspace: new Types.ObjectId(workspaceId), + type, + ...(secretBlindIndex ? { secretBlindIndex } : {}), + user: (req.user && type === SECRET_PERSONAL) ? req.user : undefined, + environment, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag, + secretCommentCiphertext, + secretCommentIV, + secretCommentTag, + tags + }); + }) + ); + const newlyCreatedSecrets: ISecret[] = (await Secret.insertMany(secretsToInsert)).map((insertedSecret) => insertedSecret.toObject()); - + setTimeout(async () => { // trigger event - push secrets await EventService.handleEvent({ @@ -440,6 +458,7 @@ export const createSecrets = async (req: Request, res: Response) => { type, user, environment, + secretBlindIndex, secretKeyCiphertext, secretKeyIV, secretKeyTag, @@ -453,6 +472,7 @@ export const createSecrets = async (req: Request, res: Response) => { type, user, environment, + secretBlindIndex, isDeleted: false, secretKeyCiphertext, secretKeyIV, @@ -492,7 +512,7 @@ export const createSecrets = async (req: Request, res: Response) => { if (postHogClient) { postHogClient.capture({ event: 'secrets added', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData: req.authData }), properties: { @@ -607,7 +627,7 @@ export const getSecrets = async (req: Request, res: Response) => { // case: client authorization is via service token if (req.serviceTokenData) { - const userId = req.serviceTokenData.user._id + const userId = req.serviceTokenData.user; const secretQuery: any = { workspace: workspaceId, @@ -667,7 +687,7 @@ export const getSecrets = async (req: Request, res: Response) => { if (postHogClient) { postHogClient.capture({ event: 'secrets pulled', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData: req.authData }), properties: { @@ -889,7 +909,7 @@ export const updateSecrets = async (req: Request, res: Response) => { if (postHogClient) { postHogClient.capture({ event: 'secrets modified', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData: req.authData }), properties: { @@ -1023,7 +1043,7 @@ export const deleteSecrets = async (req: Request, res: Response) => { if (postHogClient) { postHogClient.capture({ event: 'secrets deleted', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData: req.authData }), properties: { diff --git a/backend/src/controllers/v2/serviceTokenDataController.ts b/backend/src/controllers/v2/serviceTokenDataController.ts index a8f438b85..c425ecfc4 100644 --- a/backend/src/controllers/v2/serviceTokenDataController.ts +++ b/backend/src/controllers/v2/serviceTokenDataController.ts @@ -11,9 +11,11 @@ import { userHasWorkspaceAccess } from '../../ee/helpers/checkMembershipPermissi import { PERMISSION_READ_SECRETS, AUTH_MODE_JWT, - AUTH_MODE_SERVICE_ACCOUNT + AUTH_MODE_SERVICE_ACCOUNT, + AUTH_MODE_SERVICE_TOKEN } from '../../variables'; import { getSaltRounds } from '../../config'; +import { BadRequestError } from '../../utils/errors'; /** * Return service token data associated with service token on request @@ -48,7 +50,15 @@ export const getServiceTokenData = async (req: Request, res: Response) => { } */ - return res.status(200).json(req.serviceTokenData); + if (!(req.authData.authPayload instanceof ServiceTokenData)) throw BadRequestError({ + message: 'Failed accepted client validation for service token data' + }); + + const serviceTokenData = await ServiceTokenData + .findById(req.authData.authPayload._id) + .populate('user'); + + return res.status(200).json(serviceTokenData); } /** diff --git a/backend/src/controllers/v2/workspaceController.ts b/backend/src/controllers/v2/workspaceController.ts index 3605656c3..dd0efe91f 100644 --- a/backend/src/controllers/v2/workspaceController.ts +++ b/backend/src/controllers/v2/workspaceController.ts @@ -132,7 +132,7 @@ export const pullSecrets = async (req: Request, res: Response) => { if (req.user) { userId = req.user._id.toString(); } else if (req.serviceTokenData) { - userId = req.serviceTokenData.user._id + userId = req.serviceTokenData.user.toString(); } // validate environment const workspaceEnvs = req.membership.workspace.environments; diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index 35575b7b4..80329e04a 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -70,7 +70,10 @@ export const createSecret = async (req: Request, res: Response) => { secretKeyTag, secretValueCiphertext, secretValueIV, - secretValueTag + secretValueTag, + secretCommentCiphertext, + secretCommentIV, + secretCommentTag } = req.body; const secret = await SecretService.createSecret({ @@ -84,7 +87,12 @@ export const createSecret = async (req: Request, res: Response) => { secretKeyTag, secretValueCiphertext, secretValueIV, - secretValueTag + secretValueTag, + ...((secretCommentCiphertext && secretCommentIV && secretCommentTag) ? { + secretCommentCiphertext, + secretCommentIV, + secretCommentTag + } : {}) }); await EventService.handleEvent({ diff --git a/backend/src/ee/controllers/v1/secretController.ts b/backend/src/ee/controllers/v1/secretController.ts index 92503d772..cfdd93cf3 100644 --- a/backend/src/ee/controllers/v1/secretController.ts +++ b/backend/src/ee/controllers/v1/secretController.ts @@ -146,7 +146,7 @@ export const rollbackSecretVersion = async (req: Request, res: Response) => { const oldSecretVersion = await SecretVersion.findOne({ secret: secretId, version - }); + }).select('+secretBlindIndex') if (!oldSecretVersion) throw new Error('Failed to find secret version'); @@ -155,6 +155,7 @@ export const rollbackSecretVersion = async (req: Request, res: Response) => { type, user, environment, + secretBlindIndex, secretKeyCiphertext, secretKeyIV, secretKeyTag, @@ -174,6 +175,7 @@ export const rollbackSecretVersion = async (req: Request, res: Response) => { type, user, environment, + ...(secretBlindIndex ? { secretBlindIndex } : {}), secretKeyCiphertext, secretKeyIV, secretKeyTag, @@ -197,6 +199,7 @@ export const rollbackSecretVersion = async (req: Request, res: Response) => { user, environment, isDeleted: false, + ...(secretBlindIndex ? { secretBlindIndex } : {}), secretKeyCiphertext, secretKeyIV, secretKeyTag, diff --git a/backend/src/ee/controllers/v1/workspaceController.ts b/backend/src/ee/controllers/v1/workspaceController.ts index 9dd7a0ca6..e3f46eb71 100644 --- a/backend/src/ee/controllers/v1/workspaceController.ts +++ b/backend/src/ee/controllers/v1/workspaceController.ts @@ -173,6 +173,7 @@ export const rollbackWorkspaceSecretSnapshot = async (req: Request, res: Respons } } */ + let secrets; try { const { workspaceId } = req.params; @@ -182,7 +183,10 @@ export const rollbackWorkspaceSecretSnapshot = async (req: Request, res: Respons const secretSnapshot = await SecretSnapshot.findOne({ workspace: workspaceId, version - }).populate<{ secretVersions: ISecretVersion[]}>('secretVersions'); + }).populate<{ secretVersions: ISecretVersion[]}>({ + path: 'secretVersions', + select: '+secretBlindIndex' + }); if (!secretSnapshot) throw new Error('Failed to find secret snapshot'); @@ -259,7 +263,7 @@ export const rollbackWorkspaceSecretSnapshot = async (req: Request, res: Respons ); // add secret versions - await SecretVersion.insertMany( + const secretV = await SecretVersion.insertMany( secrets.map(({ _id, version, diff --git a/backend/src/helpers/auth.ts b/backend/src/helpers/auth.ts index 9cbe82e34..47b1ef9b1 100644 --- a/backend/src/helpers/auth.ts +++ b/backend/src/helpers/auth.ts @@ -157,7 +157,7 @@ const getAuthSTDPayload = async ({ }, { new: true }) - .select('+encryptedKey +iv +tag').populate('user serviceAccount'); + .select('+encryptedKey +iv +tag'); if (!serviceTokenData) throw ServiceTokenDataNotFoundError({ message: 'Failed to find service token data' }); diff --git a/backend/src/helpers/database.ts b/backend/src/helpers/database.ts index 9d128ea47..aa29f7e46 100644 --- a/backend/src/helpers/database.ts +++ b/backend/src/helpers/database.ts @@ -1,5 +1,6 @@ import mongoose from 'mongoose'; import { EESecretService } from '../ee/services'; +import { SecretService } from '../services'; import { getLogger } from '../utils/logger'; /** @@ -22,6 +23,7 @@ const initDatabaseHelper = async ({ getLogger("database").info("Database connection established"); await EESecretService.initSecretVersioning(); + await SecretService.initSecretBlindIndexDataHelper(); } catch (err) { getLogger("database").error(`Unable to establish Database connection due to the error.\n${err}`); } diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index 0eb39da2d..d3a158640 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -11,6 +11,7 @@ import { } from '../interfaces/middleware'; import { User, + Workspace, ServiceAccount, ServiceTokenData, Secret, @@ -26,7 +27,8 @@ import { validateUserClientForSecrets } from '../helpers/user'; import { - validateServiceTokenDataClientForSecrets, validateServiceTokenDataClientForWorkspace + validateServiceTokenDataClientForSecrets, + validateServiceTokenDataClientForWorkspace } from '../helpers/serviceTokenData'; import { validateServiceAccountClientForSecrets, @@ -63,7 +65,8 @@ import { EELogService } from '../ee/services'; import { - getAuthDataPayloadIdObj + getAuthDataPayloadIdObj, + getAuthDataPayloadUserObj } from '../utils/auth'; /** @@ -217,6 +220,46 @@ const validateClientForSecrets = async ({ }); } +/** + * Initialize secret blind index data by setting previously + * un-initialized projects to have secret blind index data + * (Ensures that all projects have associated blind index data) + */ +const initSecretBlindIndexDataHelper = async () => { + const workspaceIdsBlindIndexed = await SecretBlindIndexData.distinct('workspace'); + const workspaceIdsToBlindIndex = await Workspace.distinct('_id', { + _id: { + $nin: workspaceIdsBlindIndexed + } + }); + + const secretBlindIndexDataToInsert = workspaceIdsToBlindIndex.map((workspaceToBlindIndex) => { + const salt = crypto.randomBytes(16).toString('base64'); + + const { + ciphertext: encryptedSaltCiphertext, + iv: saltIV, + tag: saltTag + } = encryptSymmetric({ + plaintext: salt, + key: getEncryptionKey() + }); + + const secretBlindIndexData = new SecretBlindIndexData({ + workspace: workspaceToBlindIndex, + encryptedSaltCiphertext, + saltIV, + saltTag + }) + + return secretBlindIndexData; + }); + + if (secretBlindIndexDataToInsert.length > 0) { + await SecretBlindIndexData.insertMany(secretBlindIndexDataToInsert); + } +} + /** * Create secret blind index data containing encrypted blind index [salt] * for workspace with id [workspaceId] @@ -283,7 +326,7 @@ const getSecretBlindIndexSaltHelper = async ({ * Generate blind index for secret with name [secretName] * and salt [salt] * @param {Object} obj - * @param {Object} obj.secretName - name of secret to generate blind index for + * @param {String} obj.secretName - name of secret to generate blind index for * @param {String} obj.salt - base64-salt */ const generateSecretBlindIndexWithSaltHelper = async ({ @@ -312,8 +355,8 @@ const getSecretBlindIndexSaltHelper = async ({ * Generate blind index for secret with name [secretName] * for workspace with id [workspaceId] * @param {Object} obj - * @param {Object} obj.secretName - name of secret to generate blind index for - * @param {Object} obj.workspaceId - id of workspace that secret belongs to + * @param {Stringj} obj.secretName - name of secret to generate blind index for + * @param {Types.ObjectId} obj.workspaceId - id of workspace that secret belongs to */ const generateSecretBlindIndexHelper = async ({ secretName, @@ -367,11 +410,11 @@ const createSecretHelper = async ({ secretKeyTag, secretValueCiphertext, secretValueIV, - secretValueTag + secretValueTag, + secretCommentCiphertext, + secretCommentIV, + secretCommentTag }: CreateSecretParams) => { - // preliminary OK - // pending check for other types of clients - const secretBlindIndex = await generateSecretBlindIndexHelper({ secretName, workspaceId: new Types.ObjectId(workspaceId) @@ -380,7 +423,8 @@ const createSecretHelper = async ({ const exists = await Secret.exists({ secretBlindIndex, workspace: new Types.ObjectId(workspaceId), - type + type, + ...(type === SECRET_PERSONAL ? getAuthDataPayloadUserObj(authData) : {}) }); if (exists) throw BadRequestError({ @@ -400,12 +444,6 @@ const createSecretHelper = async ({ if (!exists) throw BadRequestError({ message: 'Failed to create personal secret override for no corresponding shared secret' }); - - // TODO: adapt to other client types - - if (!(authData.authPayload instanceof User)) throw BadRequestError({ - message: 'Failed to create personal secret override for no specified user' - }); } // create secret @@ -414,16 +452,17 @@ const createSecretHelper = async ({ workspace: new Types.ObjectId(workspaceId), environment, type, - ...(type === SECRET_PERSONAL && (authData.authPayload instanceof User) ? { - user: authData.authPayload._id - } : {}), + ...(type === SECRET_PERSONAL ? getAuthDataPayloadUserObj(authData) : {}), secretBlindIndex, secretKeyCiphertext, secretKeyIV, secretKeyTag, secretValueCiphertext, secretValueIV, - secretValueTag + secretValueTag, + secretCommentCiphertext, + secretCommentIV, + secretCommentTag }).save(); const secretVersion = new SecretVersion({ @@ -431,11 +470,10 @@ const createSecretHelper = async ({ version: secret.version, workspace: secret.workspace, type, - ...(type === SECRET_PERSONAL && authData.authPayload instanceof User ? { - user: authData.authPayload._id - } : {}), + ...(type === SECRET_PERSONAL ? getAuthDataPayloadUserObj(authData) : {}), environment: secret.environment, isDeleted: false, + secretBlindIndex, secretKeyCiphertext, secretKeyIV, secretKeyTag, @@ -475,7 +513,7 @@ const createSecretHelper = async ({ if (postHogClient) { postHogClient.capture({ event: 'secrets added', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData }), properties: { @@ -504,21 +542,17 @@ const getSecretsHelper = async ({ environment, authData }: GetSecretsParams) => { - // preliminary OK - // pending check for other types of clients - let secrets: ISecret[] = []; - if (authData.authPayload instanceof User) { - // case: get personal secrets first - secrets = await Secret.find({ - workspace: new Types.ObjectId(workspaceId), - environment, - type: SECRET_PERSONAL, - user: authData.authPayload._id - }); - } + // get personal secrets first + secrets = await Secret.find({ + workspace: new Types.ObjectId(workspaceId), + environment, + type: SECRET_PERSONAL, + ...getAuthDataPayloadUserObj(authData) + }); + // concat with shared secrets secrets = secrets.concat(await Secret.find({ workspace: new Types.ObjectId(workspaceId), environment, @@ -549,7 +583,7 @@ const getSecretsHelper = async ({ if (postHogClient) { postHogClient.capture({ event: 'secrets pulled', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData }), properties: { @@ -582,38 +616,31 @@ const getSecretHelper = async ({ type, authData }: GetSecretParams) => { - // preliminary OK - // pending check for other types of clients - const secretBlindIndex = await generateSecretBlindIndexHelper({ secretName, workspaceId: new Types.ObjectId(workspaceId) }); - let secret; + let secret: ISecret | null = null; - if (authData.authPayload instanceof User) { - // case: find any personal secret matching criteria + // try getting personal secret first (if exists) + secret = await Secret.findOne({ + secretBlindIndex, + workspace: new Types.ObjectId(workspaceId), + environment, + type: type ?? SECRET_PERSONAL, + ...(type === SECRET_PERSONAL ? getAuthDataPayloadUserObj(authData) : {}) + }); + + if (!secret) { + // case: failed to find personal secret matching criteria + // -> find shared secret matching criteria secret = await Secret.findOne({ secretBlindIndex, workspace: new Types.ObjectId(workspaceId), environment, - type: type ?? SECRET_PERSONAL, - ...(type === SECRET_PERSONAL ? { - user: authData.authPayload._id - } : {}) + type: SECRET_SHARED }); - - if (!secret) { - // case: failed to find personal secret matching criteria - // -> find shared secret matching criteria - secret = await Secret.findOne({ - secretBlindIndex, - workspace: new Types.ObjectId(workspaceId), - environment, - type: SECRET_SHARED - }); - } } if (!secret) throw SecretNotFoundError(); @@ -639,7 +666,7 @@ const getSecretHelper = async ({ if (postHogClient) { postHogClient.capture({ event: 'secrets pull', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData }), properties: { @@ -678,8 +705,6 @@ const updateSecretHelper = async ({ secretValueIV, secretValueTag }: UpdateSecretParams) => { - // preliminary OK - // pending check for other types of clients const secretBlindIndex = await generateSecretBlindIndexHelper({ secretName, workspaceId: new Types.ObjectId(workspaceId) @@ -688,6 +713,7 @@ const updateSecretHelper = async ({ let secret: ISecret | null = null; if (type === SECRET_SHARED) { + // case: update shared secret secret = await Secret.findOneAndUpdate( { secretBlindIndex, @@ -705,14 +731,15 @@ const updateSecretHelper = async ({ new: true } ); - } else if (type === SECRET_PERSONAL && authData.authPayload instanceof User) { + } else { + // case: update personal secret secret = await Secret.findOneAndUpdate( { secretBlindIndex, workspace: new Types.ObjectId(workspaceId), environment, type, - user: authData.authPayload._id + ...getAuthDataPayloadUserObj(authData) }, { secretValueCiphertext, @@ -733,11 +760,10 @@ const updateSecretHelper = async ({ version: secret.version, workspace: secret.workspace, type, - ...(type === SECRET_PERSONAL && authData.authPayload instanceof User ? { - user: authData.authPayload._id - } : {}), + ...(type === SECRET_PERSONAL ? getAuthDataPayloadUserObj(authData) : {}), environment: secret.environment, isDeleted: false, + secretBlindIndex, secretKeyCiphertext: secret.secretKeyCiphertext, secretKeyIV: secret.secretKeyIV, secretKeyTag: secret.secretKeyTag, @@ -777,7 +803,7 @@ const updateSecretHelper = async ({ if (postHogClient) { postHogClient.capture({ event: 'secrets modified', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData }), properties: { @@ -810,9 +836,6 @@ const deleteSecretHelper = async ({ type, authData }: DeleteSecretParams) => { - // preliminary OK - // pending check for other types of clients - const secretBlindIndex = await generateSecretBlindIndexHelper({ secretName, workspaceId: new Types.ObjectId(workspaceId) @@ -840,13 +863,13 @@ const deleteSecretHelper = async ({ workspaceId: new Types.ObjectId(workspaceId), environment }); - } else if (type === SECRET_PERSONAL && authData.authPayload instanceof User) { + } else { secret = await Secret.findOneAndDelete({ secretBlindIndex, workspaceId: new Types.ObjectId(workspaceId), environment, type, - user: authData.authPayload._id + ...getAuthDataPayloadUserObj(authData) }); if (secret) { @@ -887,7 +910,7 @@ const deleteSecretHelper = async ({ if (postHogClient) { postHogClient.capture({ event: 'secrets deleted', - distinctId: TelemetryService.getDistinctId({ + distinctId: await TelemetryService.getDistinctId({ authData }), properties: { @@ -909,6 +932,7 @@ const deleteSecretHelper = async ({ export { validateClientForSecret, validateClientForSecrets, + initSecretBlindIndexDataHelper, createSecretBlindIndexDataHelper, getSecretBlindIndexSaltHelper, generateSecretBlindIndexWithSaltHelper, diff --git a/backend/src/helpers/serviceTokenData.ts b/backend/src/helpers/serviceTokenData.ts index 9a8bb1288..ecf46a4d1 100644 --- a/backend/src/helpers/serviceTokenData.ts +++ b/backend/src/helpers/serviceTokenData.ts @@ -111,7 +111,6 @@ const validateClientForServiceTokenData = async ({ environment?: string; requiredPermissions?: string[]; }) => { - if (!serviceTokenData.workspace.equals(workspaceId)) { // case: invalid workspaceId passed throw UnauthorizedRequestError({ diff --git a/backend/src/interfaces/services/SecretService/index.ts b/backend/src/interfaces/services/SecretService/index.ts index 64da16beb..b72068b90 100644 --- a/backend/src/interfaces/services/SecretService/index.ts +++ b/backend/src/interfaces/services/SecretService/index.ts @@ -13,6 +13,9 @@ export interface CreateSecretParams { secretValueCiphertext: string; secretValueIV: string; secretValueTag: string; + secretCommentCiphertext?: string; + secretCommentIV?: string; + secretCommentTag?: string; } export interface GetSecretsParams { diff --git a/backend/src/models/serviceTokenData.ts b/backend/src/models/serviceTokenData.ts index 86f0e44b3..36a63c094 100644 --- a/backend/src/models/serviceTokenData.ts +++ b/backend/src/models/serviceTokenData.ts @@ -33,7 +33,8 @@ const serviceTokenDataSchema = new Schema( }, user: { type: Schema.Types.ObjectId, - ref: 'User' + ref: 'User', + required: true }, serviceAccount: { type: Schema.Types.ObjectId, diff --git a/backend/src/routes/v3/secrets.ts b/backend/src/routes/v3/secrets.ts index fe346b0de..cd3e08e46 100644 --- a/backend/src/routes/v3/secrets.ts +++ b/backend/src/routes/v3/secrets.ts @@ -10,6 +10,8 @@ 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, @@ -25,7 +27,12 @@ router.get( query('tagSlugs'), validateRequest, requireAuth({ - acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + acceptedAuthModes: [ + AUTH_MODE_JWT, + AUTH_MODE_API_KEY, + AUTH_MODE_SERVICE_TOKEN, + AUTH_MODE_SERVICE_ACCOUNT + ] }), requireWorkspaceAuth({ acceptedRoles: [ADMIN, MEMBER], @@ -48,9 +55,17 @@ router.post( 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(), validateRequest, requireAuth({ - acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + acceptedAuthModes: [ + AUTH_MODE_JWT, + AUTH_MODE_API_KEY, + AUTH_MODE_SERVICE_TOKEN, + AUTH_MODE_SERVICE_ACCOUNT + ] }), requireWorkspaceAuth({ acceptedRoles: [ADMIN, MEMBER], @@ -70,7 +85,12 @@ router.get( query('type').optional().isIn([SECRET_SHARED, SECRET_PERSONAL]), validateRequest, requireAuth({ - acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + acceptedAuthModes: [ + AUTH_MODE_JWT, + AUTH_MODE_API_KEY, + AUTH_MODE_SERVICE_TOKEN, + AUTH_MODE_SERVICE_ACCOUNT + ] }), requireWorkspaceAuth({ acceptedRoles: [ADMIN, MEMBER], @@ -93,7 +113,12 @@ router.patch( body('secretValueTag').exists().isString().trim(), validateRequest, requireAuth({ - acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + acceptedAuthModes: [ + AUTH_MODE_JWT, + AUTH_MODE_API_KEY, + AUTH_MODE_SERVICE_TOKEN, + AUTH_MODE_SERVICE_ACCOUNT + ] }), requireWorkspaceAuth({ acceptedRoles: [ADMIN, MEMBER], @@ -113,7 +138,12 @@ router.delete( body('type').exists().isIn([SECRET_SHARED, SECRET_PERSONAL]), validateRequest, requireAuth({ - acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY] + acceptedAuthModes: [ + AUTH_MODE_JWT, + AUTH_MODE_API_KEY, + AUTH_MODE_SERVICE_TOKEN, + AUTH_MODE_SERVICE_ACCOUNT + ] }), requireWorkspaceAuth({ acceptedRoles: [ADMIN, MEMBER], diff --git a/backend/src/services/SecretService.ts b/backend/src/services/SecretService.ts index 6d0ec0e07..c215431f1 100644 --- a/backend/src/services/SecretService.ts +++ b/backend/src/services/SecretService.ts @@ -11,6 +11,7 @@ import { DeleteSecretParams } from '../interfaces/services/SecretService'; import { + initSecretBlindIndexDataHelper, createSecretBlindIndexDataHelper, getSecretBlindIndexSaltHelper, generateSecretBlindIndexWithSaltHelper, @@ -23,6 +24,17 @@ import { } from '../helpers/secrets'; class SecretService { + + /** + * + * @param param0 h + * @returns + */ + + static async initSecretBlindIndexDataHelper() { + return await initSecretBlindIndexDataHelper(); + } + /** * Create secret blind index data containing encrypted blind index salt * for workspace with id [workspaceId] diff --git a/backend/src/services/TelemetryService.ts b/backend/src/services/TelemetryService.ts index be9857d99..578b5292d 100644 --- a/backend/src/services/TelemetryService.ts +++ b/backend/src/services/TelemetryService.ts @@ -16,6 +16,7 @@ import { ServiceTokenData } from '../models'; import { + AccountNotFoundError, BadRequestError } from '../utils/errors'; @@ -50,20 +51,23 @@ class Telemetry { return postHogClient; } - static getDistinctId ({ + static getDistinctId = async ({ authData }: { authData: AuthData; - }) { - let distinctId: any = ''; + }) => { + let distinctId = ''; if (authData.authPayload instanceof User) { distinctId = authData.authPayload.email; } else if (authData.authPayload instanceof ServiceAccount) { distinctId = `sa.${authData.authPayload._id.toString()}`; } else if (authData.authPayload instanceof ServiceTokenData) { - if (authData.authPayload.user instanceof User) { - distinctId = authData.authPayload?.user.email; - } else if (authData.authPayload?.serviceAccount) { + + if (authData.authPayload.user) { + const user = await User.findById(authData.authPayload.user, 'email'); + if (!user) throw AccountNotFoundError(); + distinctId = user.email; + } else if (authData.authPayload.serviceAccount) { distinctId = distinctId = `sa.${authData.authPayload.serviceAccount.toString()}`; } } diff --git a/backend/src/utils/auth.ts b/backend/src/utils/auth.ts index ce2961d70..bfb51e6d2 100644 --- a/backend/src/utils/auth.ts +++ b/backend/src/utils/auth.ts @@ -2,9 +2,17 @@ import { AuthData } from '../interfaces/middleware'; import { User, ServiceAccount, - ServiceTokenData + ServiceTokenData, + ServiceToken } from '../models'; +// TODO: find a more optimal folder structure to store these types of functions + +/** + * Returns an object containing the id of the authentication data payload + * @param {AuthData} authData - authentication data object + * @returns + */ const getAuthDataPayloadIdObj = (authData: AuthData) => { if (authData.authPayload instanceof User) { return { userId: authData.authPayload._id }; @@ -17,10 +25,30 @@ const getAuthDataPayloadIdObj = (authData: AuthData) => { if (authData.authPayload instanceof ServiceTokenData) { return { serviceTokenDataId: authData.authPayload._id }; } - - return {}; }; + +/** + * Returns an object containing the user associated with the authentication data payload + * @param {AuthData} authData - authentication data object + * @returns + */ +const getAuthDataPayloadUserObj = (authData: AuthData) => { + + if (authData.authPayload instanceof User) { + return { user: authData.authPayload._id }; + } + + if (authData.authPayload instanceof ServiceAccount) { + return { user: authData.authPayload.user }; + } + + if (authData.authPayload instanceof ServiceTokenData) { + return { user: authData.authPayload.user }; + } +} + export { - getAuthDataPayloadIdObj + getAuthDataPayloadIdObj, + getAuthDataPayloadUserObj } \ No newline at end of file diff --git a/docs/security/data-model.mdx b/docs/security/data-model.mdx index 9f79cd254..af4adeb24 100644 --- a/docs/security/data-model.mdx +++ b/docs/security/data-model.mdx @@ -21,21 +21,30 @@ Infisical makes a usability-security tradeoff that is to give users convenient a ## Secrets -The `Secret` model includes the fields `workspace`, `type`, `user`, `environment`, `secretKeyCiphertext`, `secretKeyIV`, `secretKeyTag`, `secretValueCiphertext`, `secretValueIV`, and `secretValueTag`. +The `Secret` model includes the fields `workspace`, `type`, `user`, `environment`, `secretBlindIndex`, `secretKeyCiphertext`, `secretKeyIV`, `secretKeyTag`, `secretValueCiphertext`, `secretValueIV`, and `secretValueTag`. -Each secret is symmetrically encrypted by the key of the project that it belongs to; that key's encrypted copies are stored in a separate `Key` collection. +Each secret consists of a key name and value pair and is symmetrically encrypted by the key of the project that it belongs to; that key's encrypted copies are stored in a separate `Key` collection. + +The `secretBlindIndex` enables users to query secrets by their names; it is a blind index computed by applying `argon2id` with a 128-bit random salt (unique to each project) and the name of the secret. The salt itself is symmetrically encrypted under the server key and stored in the `SecretBlindIndexData` collection. + +## Blind Index Data + +The `SecretBlindIndexData` model includes the fields `workspace`, `encryptedSaltCiphertext`, `saltIV`, and `saltTag`. + +Infisical stores salts (unique to each project) symmetrically encrypted under the server key. The salts are used to compute blind indices for secrets that enable +users to query secrets by name. ## Project Keys The `Key` model includes the fields `encryptedKey`, `nonce`, `sender`, `receiver`, and `workspace`. -Infisical stores copies of project keys, one for each member of a project, encrypted under each member's public key. +Infisical stores copies of project keys, one for each member of a project, asymmetrically encrypted under each member's public key. ## Bots The `Bot` model contains the fields `name`, `workspace`, `isActive`, `publicKey`, `encryptedPrivateKey`, `iv`, and `tag`. -Each project comes with a bot that has its own public-private key pair; its private key is encrypted by the server's symmetric key. If needed, a user can opt-in to share their project key with the bot (i.e. Infisical) to give the platform access to the project's secrets. +Each project comes with a bot that has its own public-private key pair; its private key is symmetrically encrypted by the server's key. If needed, a user can opt-in to share their project key with the bot (i.e. Infisical) to give the platform access to the project's secrets. Sharing secrets with Infisical so they can be synced to integrations like diff --git a/docs/security/mechanics.mdx b/docs/security/mechanics.mdx index 325224f90..97cd570f1 100644 --- a/docs/security/mechanics.mdx +++ b/docs/security/mechanics.mdx @@ -27,3 +27,20 @@ After signing up, a user can invite other users to their organization to partake To push secrets, a sender randomly-generates a symmetric encryption key, uses that key to encrypt their secret keys and values separately, asymmetrically encrypts the key with the receivers’ public keys, and uploads the encrypted secrets and keys to the server. To pull secrets, a receiver obtains encrypted secret keys and values and their encrypted copy of the project key to decrypt the secrets from the server — they asymmetrically decrypt the key using their private key and use the decrypted key to decrypt the secrets. This public-key mechanism prevents the server-side from reading any secrets. + +When dealing with individual secrets (e.g. pulling one secret by name) or creating new secrets, a user passes the name of the secret to the server which is then converted to a blind index by applying `argon2id` with the name of the secret and a 128-bit random salt unique to each project; the salt itself is encrypted by the server key and stored in the database. + + + Infisical ensures that the name of any secret is never stored in plaintext and instead only a blind index generated from the name. It is infeasible to reverse back a blind index to the name of a secret without knowledge of the server key. + + +## Bot + +To use some features like integrations, users must opt out of E2EE (this means sharing access to secrets with Infisical). + +Infisical employs the concept of a bot which is a cryptographic abstraction for how Infisical interacts with secrets when users opt out of E2EE. In this model, each project is assigned a bot with its own public-private key pair where each bot's private key is stored symmetrically encrypted under the server key. When a user opts out of E2EE, they share the project key with the bot by encrypting a copy of it under the public key of the bot. + +When users wish to sync secrets from a project and environment Infisical to other platform integrations like Vercel or GitHub, Infisical decrypts the intended secrets and uses the integration platform's APIs to send secrets over. It should be noted that opting out of E2EE is optional and it is entirely possible to use Infisical to manage secrets across your team and infrastructure without opting out of E2EE. + + + diff --git a/docs/security/overview.mdx b/docs/security/overview.mdx index 643a54b38..bddff608b 100644 --- a/docs/security/overview.mdx +++ b/docs/security/overview.mdx @@ -5,7 +5,7 @@ description: "Infisical's security statement." ## Summary -Infisical uses end-to-end encryption (E2EE) whenever possible to securely store and share secrets. It uses secure remote password (SRP) to handle authentication and public-key cryptography for secret sharing and syncing; secrets are symmetrically encrypted at rest by keys decryptable only by members of the project. +Infisical uses end-to-end encryption (E2EE) whenever possible to securely store and share secret values. It uses secure remote password (SRP) to handle authentication and public-key cryptography for secret sharing and syncing; secrets are symmetrically encrypted by keys decryptable only by members of the project. Infisical uses AES256-GCM for symmetric encryption and x25519-xsalsa20-poly1305 for asymmetric encryption operations mentioned in this brief; key generation and asymmetric algorithms are implemented with the [TweetNaCl.js](https://tweetnacl.js.org/#/) library which has been well-audited and recommended for use by cybersecurity firm Cure53. Lastly, the secure remote password (SRP) implementation uses [jsrp](https://github.com/alax/jsrp) package for user authentication. As part of our commitment to user privacy and security, we aim to conduct formal security and compliance audits in the following year. diff --git a/frontend/src/helpers/project.ts b/frontend/src/helpers/project.ts index 8f6d02102..971aa73ca 100644 --- a/frontend/src/helpers/project.ts +++ b/frontend/src/helpers/project.ts @@ -93,6 +93,7 @@ const initProjectHelper = async ({ }) => { let project; try { + // create new project project = await createWorkspace({ workspaceName: projectName, From 9f944135b98cad616aa48697dfd40261a54dcd9f Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Wed, 19 Apr 2023 18:15:35 +0300 Subject: [PATCH 10/11] Update docs for blind indices and secrets v3 endpoints --- backend/spec.json | 660 +++++++++++++++++- backend/swagger/index.ts | 2 +- .../endpoints/secrets/create.mdx | 4 +- .../endpoints/secrets/delete.mdx | 2 +- .../endpoints/secrets/read-one.mdx | 11 + docs/api-reference/endpoints/secrets/read.mdx | 6 +- .../endpoints/secrets/update.mdx | 4 +- docs/api-reference/overview/blind-indices.mdx | 18 + .../{create-secrets.mdx => create-secret.mdx} | 82 +-- .../overview/examples/delete-secret.mdx | 94 +++ .../overview/examples/delete-secrets.mdx | 70 -- .../overview/examples/retrieve-secret.mdx | 180 +++++ .../overview/examples/retrieve-secrets.mdx | 16 +- .../{update-secrets.mdx => update-secret.mdx} | 93 ++- docs/api-reference/overview/introduction.mdx | 6 +- .../images/project-settings-blind-indices.png | Bin 0 -> 792433 bytes docs/mint.json | 11 +- docs/spec.yaml | 399 ++++++++++- 18 files changed, 1449 insertions(+), 209 deletions(-) create mode 100644 docs/api-reference/endpoints/secrets/read-one.mdx create mode 100644 docs/api-reference/overview/blind-indices.mdx rename docs/api-reference/overview/examples/{create-secrets.mdx => create-secret.mdx} (75%) create mode 100644 docs/api-reference/overview/examples/delete-secret.mdx delete mode 100644 docs/api-reference/overview/examples/delete-secrets.mdx create mode 100644 docs/api-reference/overview/examples/retrieve-secret.mdx rename docs/api-reference/overview/examples/{update-secrets.mdx => update-secret.mdx} (71%) create mode 100644 docs/images/project-settings-blind-indices.png diff --git a/backend/spec.json b/backend/spec.json index f0af8d903..013b5fd4d 100644 --- a/backend/spec.json +++ b/backend/spec.json @@ -1532,7 +1532,15 @@ "/api/v1/invite-org/signup": { "post": { "description": "", - "parameters": [], + "parameters": [ + { + "name": "host", + "in": "header", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "OK" @@ -2071,6 +2079,15 @@ "targetEnvironment": { "example": "any" }, + "targetEnvironmentId": { + "example": "any" + }, + "targetService": { + "example": "any" + }, + "targetServiceId": { + "example": "any" + }, "owner": { "example": "any" }, @@ -2297,6 +2314,13 @@ "schema": { "type": "string" } + }, + { + "name": "teamId", + "in": "query", + "schema": { + "type": "string" + } } ], "responses": { @@ -2309,6 +2333,107 @@ } } }, + "/api/v1/integration-auth/{integrationAuthId}/teams": { + "get": { + "description": "", + "parameters": [ + { + "name": "integrationAuthId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/integration-auth/{integrationAuthId}/vercel/branches": { + "get": { + "description": "", + "parameters": [ + { + "name": "integrationAuthId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/integration-auth/{integrationAuthId}/railway/environments": { + "get": { + "description": "", + "parameters": [ + { + "name": "integrationAuthId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/integration-auth/{integrationAuthId}/railway/services": { + "get": { + "description": "", + "parameters": [ + { + "name": "integrationAuthId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/api/v2/signup/complete-account/signup": { "post": { "description": "", @@ -2870,9 +2995,6 @@ } } } - }, - "400": { - "description": "Bad Request" } }, "security": [ @@ -2882,6 +3004,26 @@ ] } }, + "/api/v2/organizations/{organizationId}/service-accounts": { + "get": { + "description": "", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/api/v2/workspace/{workspaceId}/environments": { "post": { "description": "", @@ -4018,9 +4160,6 @@ "responses": { "200": { "description": "OK" - }, - "400": { - "description": "Bad Request" } }, "requestBody": { @@ -4073,6 +4212,138 @@ } } ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v2/service-accounts/me": { + "get": { + "description": "", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v2/service-accounts/{serviceAccountId}": { + "get": { + "description": "", + "parameters": [ + { + "name": "serviceAccountId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "description": "", + "parameters": [ + { + "name": "serviceAccountId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v2/service-accounts/": { + "post": { + "description": "", + "parameters": [], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v2/service-accounts/{serviceAccountId}/name": { + "patch": { + "description": "", + "parameters": [ + { + "name": "serviceAccountId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "example": "any" + } + } + } + } + } + } + } + }, + "/api/v2/service-accounts/{serviceAccountId}/permissions/workspace": { + "get": { + "description": "", + "parameters": [ + { + "name": "serviceAccountId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "description": "", + "parameters": [ + { + "name": "serviceAccountId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "OK" @@ -4080,6 +4351,90 @@ "400": { "description": "Bad Request" } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "environment": { + "example": "any" + }, + "workspaceId": { + "example": "any" + }, + "read": { + "example": "any" + }, + "write": { + "example": "any" + }, + "encryptedKey": { + "example": "any" + }, + "nonce": { + "example": "any" + } + } + } + } + } + } + } + }, + "/api/v2/service-accounts/{serviceAccountId}/permissions/workspace/{serviceAccountWorkspacePermissionId}": { + "delete": { + "description": "", + "parameters": [ + { + "name": "serviceAccountId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "serviceAccountWorkspacePermissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v2/service-accounts/{serviceAccountId}/keys": { + "get": { + "description": "", + "parameters": [ + { + "name": "serviceAccountId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "workspaceId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } } } }, @@ -4149,6 +4504,297 @@ } } }, + "/api/v3/secrets/": { + "get": { + "description": "", + "parameters": [ + { + "name": "workspaceId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "environment", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v3/secrets/{secretName}": { + "post": { + "description": "", + "parameters": [ + { + "name": "secretName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "workspaceId": { + "example": "any" + }, + "environment": { + "example": "any" + }, + "type": { + "example": "any" + }, + "secretKeyCiphertext": { + "example": "any" + }, + "secretKeyIV": { + "example": "any" + }, + "secretKeyTag": { + "example": "any" + }, + "secretValueCiphertext": { + "example": "any" + }, + "secretValueIV": { + "example": "any" + }, + "secretValueTag": { + "example": "any" + }, + "secretCommentCiphertext": { + "example": "any" + }, + "secretCommentIV": { + "example": "any" + }, + "secretCommentTag": { + "example": "any" + } + } + } + } + } + } + }, + "get": { + "description": "", + "parameters": [ + { + "name": "secretName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "workspaceId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "environment", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "patch": { + "description": "", + "parameters": [ + { + "name": "secretName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "workspaceId": { + "example": "any" + }, + "environment": { + "example": "any" + }, + "type": { + "example": "any" + }, + "secretValueCiphertext": { + "example": "any" + }, + "secretValueIV": { + "example": "any" + }, + "secretValueTag": { + "example": "any" + } + } + } + } + } + } + }, + "delete": { + "description": "", + "parameters": [ + { + "name": "secretName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "workspaceId": { + "example": "any" + }, + "environment": { + "example": "any" + }, + "type": { + "example": "any" + } + } + } + } + } + } + } + }, + "/api/v3/workspaces/{workspaceId}/secrets/blind-index-status": { + "get": { + "description": "", + "parameters": [ + { + "name": "workspaceId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v3/workspaces/{workspaceId}/secrets": { + "get": { + "description": "", + "parameters": [ + { + "name": "workspaceId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v3/workspaces/{workspaceId}/secrets/names": { + "post": { + "description": "", + "parameters": [ + { + "name": "workspaceId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "secretsToUpdate": { + "example": "any" + } + } + } + } + } + } + } + }, "/api/status": { "get": { "description": "", diff --git a/backend/swagger/index.ts b/backend/swagger/index.ts index 195a8198c..051f9d64f 100644 --- a/backend/swagger/index.ts +++ b/backend/swagger/index.ts @@ -220,7 +220,7 @@ const generateOpenAPISpec = async () => { const outputJSONFile = '../spec.json'; const outputYAMLFile = '../docs/spec.yaml'; - const endpointsFiles = ['../src/app.ts']; + const endpointsFiles = ['../src/index.ts']; const spec = await swaggerAutogen(outputJSONFile, endpointsFiles, doc); await fs.writeFile(outputYAMLFile, yaml.dump(spec.data)); diff --git a/docs/api-reference/endpoints/secrets/create.mdx b/docs/api-reference/endpoints/secrets/create.mdx index 2fba642a7..85d8ed350 100644 --- a/docs/api-reference/endpoints/secrets/create.mdx +++ b/docs/api-reference/endpoints/secrets/create.mdx @@ -1,11 +1,11 @@ --- title: "Create" -openapi: "POST /api/v2/secrets/" +openapi: "POST /api/v3/secrets/{secretName}" --- Using this route requires understanding Infisical's system and cryptography. It may be helpful to read through the [introduction](/api-reference/overview/introduction) and [guide for creating - secrets](/api-reference/overview/examples/create-secrets). + secrets](/api-reference/overview/examples/create-secret). diff --git a/docs/api-reference/endpoints/secrets/delete.mdx b/docs/api-reference/endpoints/secrets/delete.mdx index af87e7120..d4084a465 100644 --- a/docs/api-reference/endpoints/secrets/delete.mdx +++ b/docs/api-reference/endpoints/secrets/delete.mdx @@ -1,4 +1,4 @@ --- title: "Delete" -openapi: "DELETE /api/v2/secrets/" +openapi: "DELETE /api/v3/secrets/{secretName}" --- diff --git a/docs/api-reference/endpoints/secrets/read-one.mdx b/docs/api-reference/endpoints/secrets/read-one.mdx new file mode 100644 index 000000000..6dbbcd726 --- /dev/null +++ b/docs/api-reference/endpoints/secrets/read-one.mdx @@ -0,0 +1,11 @@ +--- +title: "Retrieve" +openapi: "GET /api/v3/secrets/{secretName}" +--- + + + Using this route requires understanding Infisical's system and cryptography. + It may be helpful to read through the + [introduction](/api-reference/overview/introduction) and [guide for retrieving + secrets](/api-reference/overview/examples/retrieve-secret). + diff --git a/docs/api-reference/endpoints/secrets/read.mdx b/docs/api-reference/endpoints/secrets/read.mdx index bc30ec8f2..ab258bdba 100644 --- a/docs/api-reference/endpoints/secrets/read.mdx +++ b/docs/api-reference/endpoints/secrets/read.mdx @@ -1,11 +1,11 @@ --- -title: "Retrieve" -openapi: "GET /api/v2/secrets/" +title: "Retrieve All" +openapi: "GET /api/v3/secrets/" --- Using this route requires understanding Infisical's system and cryptography. It may be helpful to read through the [introduction](/api-reference/overview/introduction) and [guide for retrieving - secrets](/api-reference/overview/examples/retrieve-secrets). + secrets](/api-reference/overview/examples/retrieve-secret). diff --git a/docs/api-reference/endpoints/secrets/update.mdx b/docs/api-reference/endpoints/secrets/update.mdx index c77a9de12..594d8201c 100644 --- a/docs/api-reference/endpoints/secrets/update.mdx +++ b/docs/api-reference/endpoints/secrets/update.mdx @@ -1,11 +1,11 @@ --- title: "Update" -openapi: "PATCH /api/v2/secrets/" +openapi: "PATCH /api/v3/secrets/{secretName}" --- Using this route requires understanding Infisical's system and cryptography. It may be helpful to read through the [introduction](/api-reference/overview/introduction) and [guide for updating - secrets](/api-reference/overview/examples/update-secrets). + secrets](/api-reference/overview/examples/update-secret). diff --git a/docs/api-reference/overview/blind-indices.mdx b/docs/api-reference/overview/blind-indices.mdx new file mode 100644 index 000000000..755ba682f --- /dev/null +++ b/docs/api-reference/overview/blind-indices.mdx @@ -0,0 +1,18 @@ +--- +title: "Blind Indices" +--- + +In April 2023, we added the capability for users to query for secrets by name to improve the user experience of Infisical. Previously, it was only possible to query by id of the secret or fetch all secrets belonging to a project and environment. + +Blind indexing must be enabled for projects created prior to April 2023 to take effect. If your project can be blind indexed, then you'll see a section in your project settings appear as shown below: + +![project enable blind indices](../../images/project-settings-blind-indices.png) + + +It works using virtually irreversible blind indices generated by applying `argon2id` to the name of each secret and a random 128-bit salt assigned to each project on the server. We continue to keep the values of secrets E2EE by default. + +You can read more about it [here](/security/mechanics). + + + As previously mentioned, all projects made after April 2023 are automatically blind indexed. If you created a project before this date, you have to enable it manually in your project settings. + \ No newline at end of file diff --git a/docs/api-reference/overview/examples/create-secrets.mdx b/docs/api-reference/overview/examples/create-secret.mdx similarity index 75% rename from docs/api-reference/overview/examples/create-secrets.mdx rename to docs/api-reference/overview/examples/create-secret.mdx index a20e9f2e3..8979c0c51 100644 --- a/docs/api-reference/overview/examples/create-secrets.mdx +++ b/docs/api-reference/overview/examples/create-secret.mdx @@ -1,21 +1,21 @@ --- -title: "Create secrets" +title: "Create secret" +description: "How to add a secret using an Infisical Token scoped to a project and environment" --- -In this example, we demonstrate how to add secrets to a project and environment using an Infisical Token. - Prerequisites: -- Set up and add envars to [Infisical Cloud](https://app.infisical.com) -- Create an [Infisical Token](../../../getting-started/dashboard/token) for your project and environment. +- Set up and add envars to [Infisical Cloud](https://app.infisical.com). +- Create an [Infisical Token](../../../getting-started/dashboard/token) for your project and environment with write access enabled. - Grasp a basic understanding of the system and its underlying cryptography [here](/api-reference/overview/introduction). +- [Ensure that your project is blind-indexed](../blind-indices). ## Flow 1. [Get your Infisical Token data](/api-reference/endpoints/service-tokens/get) including a (encrypted) project key. 2. Decrypt the (encrypted) project key with the key from your Infisical Token. -3. Encrypt your secret(s) with the project key -4. [Send (encrypted) secret(s) to Infical](/api-reference/endpoints/secrets/create) +3. Encrypt your secret with the project key +4. [Send (encrypted) secret to Infisical](/api-reference/endpoints/secrets/create) ## Example @@ -84,7 +84,7 @@ const createSecrets = async () => { secret: serviceTokenSecret }); - // 3. Encrypt your secret(s) with the project key + // 3. Encrypt your secret with the project key const { ciphertext: secretKeyCiphertext, iv: secretKeyIV, @@ -111,27 +111,23 @@ const createSecrets = async () => { text: secretComment, secret: projectKey }); - - const secret = { - type: secretType, - secretKeyCiphertext, - secretKeyIV, - secretKeyTag, - secretValueCiphertext, - secretValueIV, - secretValueTag, - secretCommentCiphertext, - secretCommentIV, - secretCommentTag - } - // 4. Send (encrypted) secret(s) to Infisical + // 4. Send (encrypted) secret to Infisical await axios.post( - `${BASE_URL}/api/v2/secrets`, + `${BASE_URL}/api/v3/secrets/${secretKey}`, { workspaceId: serviceTokenData.workspace, environment: serviceTokenData.environment, - secrets: [secret] + type: secretType, + secretKeyCiphertext, + secretKeyIV, + secretKeyTag, + secretValueCiphertext, + secretValueIV, + secretValueTag, + secretCommentCiphertext, + secretCommentIV, + secretCommentTag }, { headers: { @@ -204,31 +200,27 @@ def create_secrets(): secret=service_token_secret, ) - # 3. Encrypt your secret(s) with the project key + # 3. Encrypt your secret with the project key encrypted_key_data = encrypt(text=secret_key, secret=project_key) encrypted_value_data = encrypt(text=secret_value, secret=project_key) encrypted_comment_data = encrypt(text=secret_comment, secret=project_key) - secret = { - "type": secret_type, - "secretKeyCiphertext": encrypted_key_data["ciphertext"], - "secretKeyIV": encrypted_key_data["iv"], - "secretKeyTag": encrypted_key_data["tag"], - "secretValueCiphertext": encrypted_value_data["ciphertext"], - "secretValueIV": encrypted_value_data["iv"], - "secretValueTag": encrypted_value_data["tag"], - "secretCommentCiphertext": encrypted_comment_data["ciphertext"], - "secretCommentIV": encrypted_comment_data["iv"], - "secretCommentTag": encrypted_comment_data["tag"], - } - - # 4. Send (encrypted) secret (s) to Infisical + # 4. Send (encrypted) secret to Infisical requests.post( - f"{BASE_URL}/api/v2/secrets", + f"{BASE_URL}/api/v3/secrets/{secret_key}", json={ "workspaceId": service_token_data["workspace"], "environment": service_token_data["environment"], - "secrets": [secret], + "type": secret_type, + "secretKeyCiphertext": encrypted_key_data["ciphertext"], + "secretKeyIV": encrypted_key_data["iv"], + "secretKeyTag": encrypted_key_data["tag"], + "secretValueCiphertext": encrypted_value_data["ciphertext"], + "secretValueIV": encrypted_value_data["iv"], + "secretValueTag": encrypted_value_data["tag"], + "secretCommentCiphertext": encrypted_comment_data["ciphertext"], + "secretCommentIV": encrypted_comment_data["iv"], + "secretCommentTag": encrypted_comment_data["tag"] }, headers={"Authorization": f"Bearer {service_token}"}, ) @@ -238,10 +230,4 @@ create_secrets() ``` - - - - This example uses [TweetNaCl.js](https://tweetnacl.js.org/#/), a port of - TweetNacl/Nacl, to perform asymmeric decryption of the project key but there - are ports of NaCl available in every major language. - \ No newline at end of file + \ No newline at end of file diff --git a/docs/api-reference/overview/examples/delete-secret.mdx b/docs/api-reference/overview/examples/delete-secret.mdx new file mode 100644 index 000000000..f66cd0b69 --- /dev/null +++ b/docs/api-reference/overview/examples/delete-secret.mdx @@ -0,0 +1,94 @@ +--- +title: "Delete secret" +description: "How to delete a secret using an Infisical Token scoped to a project and environment" +--- + +Prerequisites: + +- Set up and add envars to [Infisical Cloud](https://app.infisical.com). +- Create either an [API Key](/api-reference/overview/authentication) or [Infisical Token](../../../getting-started/dashboard/token) for your project and environment with write access enabled. +- Grasp a basic understanding of the system and its underlying cryptography [here](/api-reference/overview/introduction). +- [Ensure that your project is blind-indexed](../blind-indices). + +## Example + + + +```js +const axios = require('axios'); +const BASE_URL = 'https://app.infisical.com'; + +const deleteSecrets = async () => { + const serviceToken = 'your_service_token'; + const secretType = 'shared' // 'shared' or 'personal' + const secretKey = 'some_key' + + // 1. Get your Infisical Token data + const { data: serviceTokenData } = await axios.get( + `${BASE_URL}/api/v2/service-token`, + { + headers: { + Authorization: `Bearer ${serviceToken}` + } + } + ); + + // 2. Delete secret from Infisical + await axios.delete( + `${BASE_URL}/api/v3/secrets/${secretKey}`, + { + workspaceId: serviceTokenData.workspace, + environment: serviceTokenData.environment, + type: secretType + }, + { + headers: { + Authorization: `Bearer ${serviceToken}` + }, + } + ); +}; + +deleteSecrets(); +``` + + + +```Python +import requests + +BASE_URL = "https://app.infisical.com" + + +def delete_secrets(): + service_token = "" + secret_type = "shared" # "shared" or "personal" + secret_key = "some_key" + + # 1. Get your Infisical Token data + service_token_data = requests.get( + f"{BASE_URL}/api/v2/service-token", + headers={"Authorization": f"Bearer {service_token}"}, + ).json() + + # 2. Delete secret from Infisical + requests.delete( + f"{BASE_URL}/api/v2/secrets/{secret_key}", + json={ + "workspaceId": service_token_data["workspace"], + "environment": service_token_data["environment"], + "type": secret_type + }, + headers={"Authorization": f"Bearer {service_token}"}, + ) + + +delete_secrets() + +``` + + + + If using an `API_KEY` to authenticate with the Infisical API, then you should include it in the `X_API_KEY` header. + + diff --git a/docs/api-reference/overview/examples/delete-secrets.mdx b/docs/api-reference/overview/examples/delete-secrets.mdx deleted file mode 100644 index 766f674ca..000000000 --- a/docs/api-reference/overview/examples/delete-secrets.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Delete secrets" ---- - -In this example, we demonstrate how to delete secrets - -Prerequisites: - -- Set up and add envars to [Infisical Cloud](https://app.infisical.com) -- Create either an [API Key](/api-reference/overview/authentication) or [Infisical Token](../../../getting-started/dashboard/token) for your project and environment. -- Grasp a basic understanding of the system and its underlying cryptography [here](/api-reference/overview/introduction). - -## Example - - - -```js -const axios = require('axios'); -const BASE_URL = 'https://app.infisical.com'; - -const deleteSecrets = async () => { - const serviceToken = 'your_service_token'; - const secretId = 'id_of_secret_to_delete'; - - // 6. Send ID(s) of secret(s) to delete to the Infisical API - await axios.delete( - `${BASE_URL}/api/v2/secrets`, - { - secretIds: [secretId], - }, - { - headers: { - Authorization: `Bearer ${serviceToken}` - }, - } - ); -}; - -deleteSecrets(); -``` - - - -```Python -import requests - -BASE_URL = "https://app.infisical.com" - - -def delete_secrets(): - service_token = "" - secret_id = "id_of_secret_to_delete" - - # Send ID(s) of secret(s) to delete to the Infisical API - requests.delete( - f"{BASE_URL}/api/v2/secrets", - json={"secretIds": [secret_id]}, - headers={"Authorization": f"Bearer {service_token}"}, - ) - - -delete_secrets() - -``` - - - - If using an `API_KEY` to authenticate with the Infisical API, then you should include it in the `X_API_KEY` header. - - diff --git a/docs/api-reference/overview/examples/retrieve-secret.mdx b/docs/api-reference/overview/examples/retrieve-secret.mdx new file mode 100644 index 000000000..af20fed1b --- /dev/null +++ b/docs/api-reference/overview/examples/retrieve-secret.mdx @@ -0,0 +1,180 @@ +--- +title: "Retrieve secret" +description: "How to get a secret using an Infisical Token scoped to a project and environment" +--- + +Prerequisites: + +- Set up and add envars to [Infisical Cloud](https://app.infisical.com). +- Create an [Infisical Token](../../../getting-started/dashboard/token) for your project and environment. +- Grasp a basic understanding of the system and its underlying cryptography [here](/api-reference/overview/introduction). +- [Ensure that your project is blind-indexed](../blind-indices). + +## Flow + +1. [Get your Infisical Token data](/api-reference/endpoints/service-tokens/get) including a (encrypted) project key. +2. [Get the secret from your project and environment](/api-reference/endpoints/secrets/read-one). +3. Decrypt the (encrypted) project key with the key from your Infisical Token. +4. Decrypt the (encrypted) secret + +## Example + + + +```js +const crypto = require('crypto'); +const axios = require('axios'); + +const BASE_URL = 'https://app.infisical.com'; +const ALGORITHM = 'aes-256-gcm'; + +const decrypt = ({ ciphertext, iv, tag, secret}) => { + const decipher = crypto.createDecipheriv( + ALGORITHM, + secret, + Buffer.from(iv, 'base64') + ); + decipher.setAuthTag(Buffer.from(tag, 'base64')); + + let cleartext = decipher.update(ciphertext, 'base64', 'utf8'); + cleartext += decipher.final('utf8'); + + return cleartext; +} + +const getSecret = async () => { + const serviceToken = 'your_service_token'; + const serviceTokenSecret = serviceToken.substring(serviceToken.lastIndexOf('.') + 1); + + const secretType = 'shared' // 'shared' or 'personal' + const secretKey = 'some_key'; + + // 1. Get your Infisical Token data + const { data: serviceTokenData } = await axios.get( + `${BASE_URL}/api/v2/service-token`, + { + headers: { + Authorization: `Bearer ${serviceToken}` + } + } + ); + + // 2. Get the secret from your project and environment + const { data } = await axios.get( + `${BASE_URL}/api/v3/secrets/${secretKey}?${new URLSearchParams({ + environment: serviceTokenData.environment, + workspaceId: serviceTokenData.workspace, + type: secretType // optional, defaults to 'shared' + })}`, + { + headers: { + Authorization: `Bearer ${serviceToken}` + } + } + ); + + const encryptedSecret = data.secret; + + // 3. Decrypt the (encrypted) project key with the key from your Infisical Token + const projectKey = decrypt({ + ciphertext: serviceTokenData.encryptedKey, + iv: serviceTokenData.iv, + tag: serviceTokenData.tag, + secret: serviceTokenSecret + }); + + // 4. Decrypt the (encrypted) secret value + + const secretValue = decrypt({ + ciphertext: encryptedSecret.secretValueCiphertext, + iv: encryptedSecret.secretValueIV, + tag: encryptedSecret.secretValueTag, + secret: projectKey + }); + + console.log('secret: ', ({ + secretKey, + secretValue + })); +} + +getSecret(); + +``` + + + +```Python +import requests +import base64 +from Cryptodome.Cipher import AES + + +BASE_URL = "http://app.infisical.com" + + +def decrypt(ciphertext, iv, tag, secret): + secret = bytes(secret, "utf-8") + iv = base64.standard_b64decode(iv) + tag = base64.standard_b64decode(tag) + ciphertext = base64.standard_b64decode(ciphertext) + + cipher = AES.new(secret, AES.MODE_GCM, iv) + cipher.update(tag) + cleartext = cipher.decrypt(ciphertext).decode("utf-8") + return cleartext + + +def get_secret(): + service_token = "your_service_token" + service_token_secret = service_token[service_token.rindex(".") + 1 :] + + secret_type = "shared" # "shared" or "personal" + secret_key = "some_key" + + # 1. Get your Infisical Token data + service_token_data = requests.get( + f"{BASE_URL}/api/v2/service-token", + headers={"Authorization": f"Bearer {service_token}"}, + ).json() + + # 2. Get secret from your project and environment + data = requests.get( + f"{BASE_URL}/api/v3/secrets/{secret_key}", + params={ + "environment": service_token_data["environment"], + "workspaceId": service_token_data["workspace"], + "type": secret_type # optional, defaults to "shared" + }, + headers={"Authorization": f"Bearer {service_token}"}, + ).json() + + encrypted_secret = data["secret"] + + # 3. Decrypt the (encrypted) project key with the key from your Infisical Token + project_key = decrypt( + ciphertext=service_token_data["encryptedKey"], + iv=service_token_data["iv"], + tag=service_token_data["tag"], + secret=service_token_secret, + ) + + # 4. Decrypt the (encrypted) secret value + secret_value = decrypt( + ciphertext=encrypted_secret["secretValueCiphertext"], + iv=encrypted_secret["secretValueIV"], + tag=encrypted_secret["secretValueTag"], + secret=project_key, + ) + + print("secret: ", { + "secret_key": secret_key, + "secret_value": secret_value + }) + + +get_secret() + +``` + + \ No newline at end of file diff --git a/docs/api-reference/overview/examples/retrieve-secrets.mdx b/docs/api-reference/overview/examples/retrieve-secrets.mdx index 794f76d7a..f561a7579 100644 --- a/docs/api-reference/overview/examples/retrieve-secrets.mdx +++ b/docs/api-reference/overview/examples/retrieve-secrets.mdx @@ -1,14 +1,14 @@ --- title: "Retrieve secrets" +description: "How to get all secrets using an Infisical Token scoped to a project and environment" --- -In this example, we demonstrate how to retrieve secrets from a project and environment using an Infisical Token. - Prerequisites: - Set up and add envars to [Infisical Cloud](https://app.infisical.com). - Create an [Infisical Token](../../../getting-started/dashboard/token) for your project and environment. - Grasp a basic understanding of the system and its underlying cryptography [here](/api-reference/overview/introduction). +- [Ensure that your project is blind-indexed](../blind-indices). ## Flow @@ -58,7 +58,7 @@ const getSecrets = async () => { // 2. Get secrets for your project and environment const { data } = await axios.get( - `${BASE_URL}/api/v2/secrets?${new URLSearchParams({ + `${BASE_URL}/api/v3/secrets?${new URLSearchParams({ environment: serviceTokenData.environment, workspaceId: serviceTokenData.workspace })}`, @@ -143,7 +143,7 @@ def get_secrets(): # 2. Get secrets for your project and environment data = requests.get( - f"{BASE_URL}/api/v2/secrets", + f"{BASE_URL}/api/v3/secrets", params={ "environment": service_token_data["environment"], "workspaceId": service_token_data["workspace"], @@ -192,10 +192,4 @@ get_secrets() ``` - - - - This example uses [TweetNaCl.js](https://tweetnacl.js.org/#/), a port of - TweetNacl/Nacl, to perform asymmeric decryption of the project key but there - are ports of NaCl available in every major language. - \ No newline at end of file + \ No newline at end of file diff --git a/docs/api-reference/overview/examples/update-secrets.mdx b/docs/api-reference/overview/examples/update-secret.mdx similarity index 71% rename from docs/api-reference/overview/examples/update-secrets.mdx rename to docs/api-reference/overview/examples/update-secret.mdx index 13bc4ee3e..73e744331 100644 --- a/docs/api-reference/overview/examples/update-secrets.mdx +++ b/docs/api-reference/overview/examples/update-secret.mdx @@ -1,21 +1,21 @@ --- -title: "Update secrets" +title: "Update secret" +description: "How to update a secret using an Infisical Token scoped to a project and environment" --- -In this example, we demonstrate how to update secrets using an Infisical Token. - Prerequisites: -- Set up and add envars to [Infisical Cloud](https://app.infisical.com) -- Create an [Infisical Token](../../../getting-started/dashboard/token) for your project and environment. +- Set up and add envars to [Infisical Cloud](https://app.infisical.com). +- Create an [Infisical Token](../../../getting-started/dashboard/token) for your project and environment with write access enabled. - Grasp a basic understanding of the system and its underlying cryptography [here](/api-reference/overview/introduction). +- [Ensure that your project is blind-indexed](../blind-indices). ## Flow 1. [Get your Infisical Token data](/api-reference/endpoints/service-tokens/get) including a (encrypted) project key. 2. Decrypt the (encrypted) project key with the key from your Infisical Token. -3. Encrypt your updated secret(s) with the project key -4. [Send (encrypted) updated secret(s) to Infical](/api-reference/endpoints/secrets/update) +3. Encrypt your updated secret with the project key +4. [Send (encrypted) updated secret to Infical](/api-reference/endpoints/secrets/update) ## Example @@ -60,7 +60,7 @@ const updateSecrets = async () => { const serviceToken = 'your_service_token'; const serviceTokenSecret = serviceToken.substring(serviceToken.lastIndexOf('.') + 1); - const secretId = 'id_of_secret_to_update'; + const secretType = 'shared' // 'shared' or 'personal' const secretKey = 'some_key'; const secretValue = 'updated_value'; const secretComment = 'updated_comment'; @@ -83,7 +83,7 @@ const updateSecrets = async () => { secret: serviceTokenSecret }); - // 3. Encrypt your updated secret(s) with the project key + // 3. Encrypt your updated secret with the project key const { ciphertext: secretKeyCiphertext, iv: secretKeyIV, @@ -110,27 +110,20 @@ const updateSecrets = async () => { text: secretComment, secret: projectKey }); - - const secret = { - id: secretId, - workspace: serviceTokenData.workspace, - environment: serviceTokenData.environment, - secretKeyCiphertext, - secretKeyIV, - secretKeyTag, - secretValueCiphertext, - secretValueIV, - secretValueTag, - secretCommentCiphertext, - secretCommentIV, - secretCommentTag - } - // 4. Send (encrypted) updated secret(s) to Infisical + // 4. Send (encrypted) updated secret to Infisical await axios.patch( - `${BASE_URL}/api/v2/secrets`, + `${BASE_URL}/api/v3/secrets/${secretKey}`, { - secrets: [secret] + workspaceId: serviceTokenData.workspace, + environment: serviceTokenData.environment, + type: secretType, + secretValueCiphertext, + secretValueIV, + secretValueTag, + secretCommentCiphertext, + secretCommentIV, + secretCommentTag }, { headers: { @@ -184,7 +177,7 @@ def update_secret(): service_token = "your_service_token" service_token_secret = service_token[service_token.rindex(".") + 1 :] - secret_id = "id_of_secret_to_update" + secret_type = "shared" # "shared" or "personal" secret_key = "some_key" secret_value = "updated_value" secret_comment = "updated_comment" @@ -203,30 +196,28 @@ def update_secret(): secret=service_token_secret, ) - # 3. Encrypt your updated secret(s) with the project key + # 3. Encrypt your updated secret with the project key encrypted_key_data = encrypt(text=secret_key, secret=project_key) encrypted_value_data = encrypt(text=secret_value, secret=project_key) encrypted_comment_data = encrypt(text=secret_comment, secret=project_key) - secret = { - "id": secret_id, - "workspace": service_token_data["workspace"], - "environment": service_token_data["environment"], - "secretKeyCiphertext": encrypted_key_data["ciphertext"], - "secretKeyIV": encrypted_key_data["iv"], - "secretKeyTag": encrypted_key_data["tag"], - "secretValueCiphertext": encrypted_value_data["ciphertext"], - "secretValueIV": encrypted_value_data["iv"], - "secretValueTag": encrypted_value_data["tag"], - "secretCommentCiphertext": encrypted_comment_data["ciphertext"], - "secretCommentIV": encrypted_comment_data["iv"], - "secretCommentTag": encrypted_comment_data["tag"], - } - - # 4. Send (encrypted) updated secret(s) to Infisical + # 4. Send (encrypted) updated secret to Infisical requests.patch( - f"{BASE_URL}/api/v2/secrets", - json={"secrets": [secret]}, + f"{BASE_URL}/api/v3/secrets/{secret_key}", + json={ + "workspaceId": service_token_data["workspace"], + "environment": service_token_data["environment"], + "type": secret_type, + "secretKeyCiphertext": encrypted_key_data["ciphertext"], + "secretKeyIV": encrypted_key_data["iv"], + "secretKeyTag": encrypted_key_data["tag"], + "secretValueCiphertext": encrypted_value_data["ciphertext"], + "secretValueIV": encrypted_value_data["iv"], + "secretValueTag": encrypted_value_data["tag"], + "secretCommentCiphertext": encrypted_comment_data["ciphertext"], + "secretCommentIV": encrypted_comment_data["iv"], + "secretCommentTag": encrypted_comment_data["tag"] + }, headers={"Authorization": f"Bearer {service_token}"}, ) @@ -235,10 +226,4 @@ update_secret() ``` - - - - This example uses [TweetNaCl.js](https://tweetnacl.js.org/#/), a port of - TweetNacl/Nacl, to perform asymmeric decryption of the project key but there - are ports of NaCl available in every major language. - \ No newline at end of file + \ No newline at end of file diff --git a/docs/api-reference/overview/introduction.mdx b/docs/api-reference/overview/introduction.mdx index 585abc8f0..5199256e5 100644 --- a/docs/api-reference/overview/introduction.mdx +++ b/docs/api-reference/overview/introduction.mdx @@ -14,9 +14,13 @@ With the Public API, users can create, read, update, and delete secrets, as well If you decide to make your own requests using the API reference instead, be prepared for a steeper learning curve and more manual work. + + In April 2023, we added the capability for users to query for secrets by name to improve the user experience of Infisical. If your project was created prior to April 2023, please read and follow the section on [blind indices](./blind-indices) and how to enable them for better usage of Infisical. + + ## Concepts -Using Infisical's API to manage secrets requires a basic understanding of the system and its underlying cryptography detailed [here](/security/overview). +Using Infisical's API to manage secrets requires a basic understanding of the system and its underlying cryptography detailed [here](/security/overview). A few key points: - Each user has a public/private key pair that is stored with the platform; private keys are encrypted locally by protected keys that are encrypted by keys derived from Argon2id applied to the user's password before being sent off to the server during the account signup process. - Each (encrypted) secret belongs to a project and environment. diff --git a/docs/images/project-settings-blind-indices.png b/docs/images/project-settings-blind-indices.png new file mode 100644 index 0000000000000000000000000000000000000000..d52936ffef31f53beec0fb1991f2484b6e89ce7d GIT binary patch literal 792433 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 Go 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 z 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

XQAlD0Wuq_)04 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∈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�j|78!Bq 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 literal 0 HcmV?d00001 diff --git a/docs/mint.json b/docs/mint.json index 850809a4f..c8fbe31dc 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -205,13 +205,15 @@ "pages": [ "api-reference/overview/introduction", "api-reference/overview/authentication", + "api-reference/overview/blind-indices", { "group": "Examples", "pages": [ - "api-reference/overview/examples/create-secrets", "api-reference/overview/examples/retrieve-secrets", - "api-reference/overview/examples/update-secrets", - "api-reference/overview/examples/delete-secrets" + "api-reference/overview/examples/create-secret", + "api-reference/overview/examples/retrieve-secret", + "api-reference/overview/examples/update-secret", + "api-reference/overview/examples/delete-secret" ] } ] @@ -250,8 +252,9 @@ { "group": "Secrets", "pages": [ - "api-reference/endpoints/secrets/create", "api-reference/endpoints/secrets/read", + "api-reference/endpoints/secrets/create", + "api-reference/endpoints/secrets/read-one", "api-reference/endpoints/secrets/update", "api-reference/endpoints/secrets/delete", "api-reference/endpoints/secrets/versions", diff --git a/docs/spec.yaml b/docs/spec.yaml index b57caf89a..89f01e8da 100644 --- a/docs/spec.yaml +++ b/docs/spec.yaml @@ -940,7 +940,11 @@ paths: /api/v1/invite-org/signup: post: description: '' - parameters: [] + parameters: + - name: host + in: header + schema: + type: string responses: '200': description: OK @@ -1277,6 +1281,12 @@ paths: example: any targetEnvironment: example: any + targetEnvironmentId: + example: any + targetService: + example: any + targetServiceId: + example: any owner: example: any path: @@ -1415,11 +1425,75 @@ paths: required: true schema: type: string + - name: teamId + in: query + schema: + type: string responses: '200': description: OK '400': description: Bad Request + /api/v1/integration-auth/{integrationAuthId}/teams: + get: + description: '' + parameters: + - name: integrationAuthId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + /api/v1/integration-auth/{integrationAuthId}/vercel/branches: + get: + description: '' + parameters: + - name: integrationAuthId + in: path + required: true + schema: + type: string + - name: appId + in: query + schema: + type: string + responses: + '200': + description: OK + /api/v1/integration-auth/{integrationAuthId}/railway/environments: + get: + description: '' + parameters: + - name: integrationAuthId + in: path + required: true + schema: + type: string + - name: appId + in: query + schema: + type: string + responses: + '200': + description: OK + /api/v1/integration-auth/{integrationAuthId}/railway/services: + get: + description: '' + parameters: + - name: integrationAuthId + in: path + required: true + schema: + type: string + - name: appId + in: query + schema: + type: string + responses: + '200': + description: OK /api/v2/signup/complete-account/signup: post: description: '' @@ -1771,10 +1845,20 @@ paths: items: $ref: '#/components/schemas/Project' description: Projects of organization - '400': - description: Bad Request security: - apiKeyAuth: [] + /api/v2/organizations/{organizationId}/service-accounts: + get: + description: '' + parameters: + - name: organizationId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK /api/v2/workspace/{workspaceId}/environments: post: description: '' @@ -2467,8 +2551,6 @@ paths: responses: '200': description: OK - '400': - description: Bad Request requestBody: content: application/json: @@ -2503,8 +2585,139 @@ paths: responses: '200': description: OK + /api/v2/service-accounts/me: + get: + description: '' + parameters: [] + responses: + '200': + description: OK + /api/v2/service-accounts/{serviceAccountId}: + get: + description: '' + parameters: + - name: serviceAccountId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + delete: + description: '' + parameters: + - name: serviceAccountId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + /api/v2/service-accounts/: + post: + description: '' + parameters: [] + responses: + '200': + description: OK + /api/v2/service-accounts/{serviceAccountId}/name: + patch: + description: '' + parameters: + - name: serviceAccountId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + example: any + /api/v2/service-accounts/{serviceAccountId}/permissions/workspace: + get: + description: '' + parameters: + - name: serviceAccountId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + post: + description: '' + parameters: + - name: serviceAccountId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK '400': description: Bad Request + requestBody: + content: + application/json: + schema: + type: object + properties: + environment: + example: any + workspaceId: + example: any + read: + example: any + write: + example: any + encryptedKey: + example: any + nonce: + example: any + /api/v2/service-accounts/{serviceAccountId}/permissions/workspace/{serviceAccountWorkspacePermissionId}: + delete: + description: '' + parameters: + - name: serviceAccountId + in: path + required: true + schema: + type: string + - name: serviceAccountWorkspacePermissionId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + /api/v2/service-accounts/{serviceAccountId}/keys: + get: + description: '' + parameters: + - name: serviceAccountId + in: path + required: true + schema: + type: string + - name: workspaceId + in: query + schema: + type: string + responses: + '200': + description: OK /api/v2/api-key/: get: description: '' @@ -2546,6 +2759,182 @@ paths: description: OK '400': description: Bad Request + /api/v3/secrets/: + get: + description: '' + parameters: + - name: workspaceId + in: query + schema: + type: string + - name: environment + in: query + schema: + type: string + responses: + '200': + description: OK + /api/v3/secrets/{secretName}: + post: + description: '' + parameters: + - name: secretName + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + requestBody: + content: + application/json: + schema: + type: object + properties: + workspaceId: + example: any + environment: + example: any + type: + example: any + secretKeyCiphertext: + example: any + secretKeyIV: + example: any + secretKeyTag: + example: any + secretValueCiphertext: + example: any + secretValueIV: + example: any + secretValueTag: + example: any + secretCommentCiphertext: + example: any + secretCommentIV: + example: any + secretCommentTag: + example: any + get: + description: '' + parameters: + - name: secretName + in: path + required: true + schema: + type: string + - name: workspaceId + in: query + schema: + type: string + - name: environment + in: query + schema: + type: string + - name: type + in: query + schema: + type: string + responses: + '200': + description: OK + patch: + description: '' + parameters: + - name: secretName + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + requestBody: + content: + application/json: + schema: + type: object + properties: + workspaceId: + example: any + environment: + example: any + type: + example: any + secretValueCiphertext: + example: any + secretValueIV: + example: any + secretValueTag: + example: any + delete: + description: '' + parameters: + - name: secretName + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + requestBody: + content: + application/json: + schema: + type: object + properties: + workspaceId: + example: any + environment: + example: any + type: + example: any + /api/v3/workspaces/{workspaceId}/secrets/blind-index-status: + get: + description: '' + parameters: + - name: workspaceId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + /api/v3/workspaces/{workspaceId}/secrets: + get: + description: '' + parameters: + - name: workspaceId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + /api/v3/workspaces/{workspaceId}/secrets/names: + post: + description: '' + parameters: + - name: workspaceId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK + requestBody: + content: + application/json: + schema: + type: object + properties: + secretsToUpdate: + example: any /api/status: get: description: '' From e0d5644b3ad549d75a5c0531827a844484bcc61c Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Sat, 22 Apr 2023 11:47:23 +0300 Subject: [PATCH 11/11] Add back service token data select fields for GET endpoint --- backend/src/controllers/v2/serviceTokenDataController.ts | 1 + backend/src/controllers/v3/secretsController.ts | 2 +- backend/src/helpers/secrets.ts | 2 +- backend/src/routes/v3/secrets.ts | 1 - 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/controllers/v2/serviceTokenDataController.ts b/backend/src/controllers/v2/serviceTokenDataController.ts index c425ecfc4..332e7e34a 100644 --- a/backend/src/controllers/v2/serviceTokenDataController.ts +++ b/backend/src/controllers/v2/serviceTokenDataController.ts @@ -56,6 +56,7 @@ export const getServiceTokenData = async (req: Request, res: Response) => { const serviceTokenData = await ServiceTokenData .findById(req.authData.authPayload._id) + .select('+encryptedKey +iv +tag') .populate('user'); return res.status(200).json(serviceTokenData); diff --git a/backend/src/controllers/v3/secretsController.ts b/backend/src/controllers/v3/secretsController.ts index 80329e04a..dac41b53d 100644 --- a/backend/src/controllers/v3/secretsController.ts +++ b/backend/src/controllers/v3/secretsController.ts @@ -40,7 +40,7 @@ export const getSecretByName = async (req: Request, res: Response) => { const workspaceId = req.query.workspaceId as string; const environment = req.query.environment as string; const type = req.query.type as 'shared' | 'personal' | undefined; - + const secret = await SecretService.getSecret({ secretName, workspaceId: new Types.ObjectId(workspaceId), diff --git a/backend/src/helpers/secrets.ts b/backend/src/helpers/secrets.ts index d3a158640..6e33b187d 100644 --- a/backend/src/helpers/secrets.ts +++ b/backend/src/helpers/secrets.ts @@ -620,7 +620,6 @@ const getSecretHelper = async ({ secretName, workspaceId: new Types.ObjectId(workspaceId) }); - let secret: ISecret | null = null; // try getting personal secret first (if exists) @@ -733,6 +732,7 @@ const updateSecretHelper = async ({ ); } else { // case: update personal secret + secret = await Secret.findOneAndUpdate( { secretBlindIndex, diff --git a/backend/src/routes/v3/secrets.ts b/backend/src/routes/v3/secrets.ts index cd3e08e46..6a18fdf73 100644 --- a/backend/src/routes/v3/secrets.ts +++ b/backend/src/routes/v3/secrets.ts @@ -24,7 +24,6 @@ router.get( '/', query('workspaceId').exists().isString().trim(), query('environment').exists().isString().trim(), - query('tagSlugs'), validateRequest, requireAuth({ acceptedAuthModes: [