From 18aac6508b00db9041a3128ac1b511803b36eb8e Mon Sep 17 00:00:00 2001 From: GLEF1X Date: Mon, 29 Jul 2024 22:38:10 -0400 Subject: [PATCH 001/101] fix(cli): make yaml exporting reliable and standardized --- cli/go.mod | 1 + cli/go.sum | 1 + cli/packages/cmd/export.go | 18 +++++--- cli/packages/cmd/export_test.go | 79 +++++++++++++++++++++++++++++++++ 4 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 cli/packages/cmd/export_test.go diff --git a/cli/go.mod b/cli/go.mod index bcde660ab..3c0a240bb 100644 --- a/cli/go.mod +++ b/cli/go.mod @@ -77,6 +77,7 @@ require ( github.com/muesli/termenv v0.15.2 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/pelletier/go-toml v1.9.3 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/spf13/afero v1.6.0 // indirect diff --git a/cli/go.sum b/cli/go.sum index d6f04aed0..7932bed99 100644 --- a/cli/go.sum +++ b/cli/go.sum @@ -341,6 +341,7 @@ github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/petar-dambovaliev/aho-corasick v0.0.0-20211021192214-5ab2d9280aa9 h1:lL+y4Xv20pVlCGyLzNHRC0I0rIHhIL1lTvHizoS/dU8= github.com/petar-dambovaliev/aho-corasick v0.0.0-20211021192214-5ab2d9280aa9/go.mod h1:EHPiTAKtiFmrMldLUNswFwfZ2eJIYBHktdaUTZxYWRw= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/cli/packages/cmd/export.go b/cli/packages/cmd/export.go index c0fea738e..5ae273fdc 100644 --- a/cli/packages/cmd/export.go +++ b/cli/packages/cmd/export.go @@ -12,8 +12,10 @@ import ( "github.com/Infisical/infisical-merge/packages/models" "github.com/Infisical/infisical-merge/packages/util" + "github.com/pkg/errors" "github.com/rs/zerolog/log" "github.com/spf13/cobra" + "gopkg.in/yaml.v2" ) const ( @@ -188,7 +190,7 @@ func formatEnvs(envs []models.SingleEnvironmentVariable, format string) (string, case FormatCSV: return formatAsCSV(envs), nil case FormatYaml: - return formatAsYaml(envs), nil + return formatAsYaml(envs) default: return "", fmt.Errorf("invalid format type: %s. Available format types are [%s]", format, []string{FormatDotenv, FormatJson, FormatCSV, FormatYaml, FormatDotEnvExport}) } @@ -224,12 +226,18 @@ func formatAsDotEnvExport(envs []models.SingleEnvironmentVariable) string { return dotenv } -func formatAsYaml(envs []models.SingleEnvironmentVariable) string { - var dotenv string +func formatAsYaml(envs []models.SingleEnvironmentVariable) (string, error) { + m := make(map[string]string) for _, env := range envs { - dotenv += fmt.Sprintf("%s: %s\n", env.Key, env.Value) + m[env.Key] = env.Value } - return dotenv + + yamlBytes, err := yaml.Marshal(m) + if err != nil { + return "", errors.Wrap(err, "unable to format env variables as yaml") + } + + return string(yamlBytes), nil } // Format environment variables as a JSON file diff --git a/cli/packages/cmd/export_test.go b/cli/packages/cmd/export_test.go new file mode 100644 index 000000000..d26741165 --- /dev/null +++ b/cli/packages/cmd/export_test.go @@ -0,0 +1,79 @@ +package cmd // Replace with your actual package name + +import ( + "testing" + + "github.com/Infisical/infisical-merge/packages/models" + "github.com/stretchr/testify/assert" + "gopkg.in/yaml.v2" +) + +func TestFormatAsYaml(t *testing.T) { + tests := []struct { + name string + input []models.SingleEnvironmentVariable + expected string + }{ + { + name: "Empty input", + input: []models.SingleEnvironmentVariable{}, + expected: "{}\n", + }, + { + name: "Single environment variable", + input: []models.SingleEnvironmentVariable{ + {Key: "KEY1", Value: "VALUE1"}, + }, + expected: "KEY1: VALUE1\n", + }, + { + name: "Multiple environment variables", + input: []models.SingleEnvironmentVariable{ + {Key: "KEY1", Value: "VALUE1"}, + {Key: "KEY2", Value: "VALUE2"}, + {Key: "KEY3", Value: "VALUE3"}, + }, + expected: "KEY1: VALUE1\nKEY2: VALUE2\nKEY3: VALUE3\n", + }, + { + name: "Overwriting duplicate keys", + input: []models.SingleEnvironmentVariable{ + {Key: "KEY1", Value: "VALUE1"}, + {Key: "KEY1", Value: "VALUE2"}, + }, + expected: "KEY1: VALUE2\n", + }, + { + name: "Special characters in values", + input: []models.SingleEnvironmentVariable{ + {Key: "KEY1", Value: "Value with spaces"}, + {Key: "KEY2", Value: "Value:with:colons"}, + {Key: "KEY3", Value: "Value\nwith\nnewlines"}, + }, + expected: "KEY1: Value with spaces\nKEY2: Value:with:colons\nKEY3: |-\n Value\n with\n newlines\n", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := formatAsYaml(tt.input) + assert.NoError(t, err) + + // Compare the result with the expected output + assert.Equal(t, tt.expected, result) + + // Additionally, parse the result back into a map to ensure it's valid YAML + var resultMap map[string]string + err = yaml.Unmarshal([]byte(result), &resultMap) + assert.NoError(t, err) + + // Create an expected map from the input + expectedMap := make(map[string]string) + for _, env := range tt.input { + expectedMap[env.Key] = env.Value + } + + assert.Equal(t, expectedMap, resultMap) + }) + } +} From 273fd6c98f782764f5b0332c4ecab672cbec5e7b Mon Sep 17 00:00:00 2001 From: GLEF1X Date: Tue, 30 Jul 2024 05:22:45 -0400 Subject: [PATCH 002/101] refactor: remove deprecated errors package - Replace errors.Wrap with fmt.Errorf and %w verb --- cli/go.mod | 1 - cli/go.sum | 1 - cli/packages/cmd/export.go | 3 +-- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/cli/go.mod b/cli/go.mod index 3c0a240bb..bcde660ab 100644 --- a/cli/go.mod +++ b/cli/go.mod @@ -77,7 +77,6 @@ require ( github.com/muesli/termenv v0.15.2 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/pelletier/go-toml v1.9.3 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/spf13/afero v1.6.0 // indirect diff --git a/cli/go.sum b/cli/go.sum index 7932bed99..d6f04aed0 100644 --- a/cli/go.sum +++ b/cli/go.sum @@ -341,7 +341,6 @@ github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/petar-dambovaliev/aho-corasick v0.0.0-20211021192214-5ab2d9280aa9 h1:lL+y4Xv20pVlCGyLzNHRC0I0rIHhIL1lTvHizoS/dU8= github.com/petar-dambovaliev/aho-corasick v0.0.0-20211021192214-5ab2d9280aa9/go.mod h1:EHPiTAKtiFmrMldLUNswFwfZ2eJIYBHktdaUTZxYWRw= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/cli/packages/cmd/export.go b/cli/packages/cmd/export.go index 5ae273fdc..f6b028b7a 100644 --- a/cli/packages/cmd/export.go +++ b/cli/packages/cmd/export.go @@ -12,7 +12,6 @@ import ( "github.com/Infisical/infisical-merge/packages/models" "github.com/Infisical/infisical-merge/packages/util" - "github.com/pkg/errors" "github.com/rs/zerolog/log" "github.com/spf13/cobra" "gopkg.in/yaml.v2" @@ -234,7 +233,7 @@ func formatAsYaml(envs []models.SingleEnvironmentVariable) (string, error) { yamlBytes, err := yaml.Marshal(m) if err != nil { - return "", errors.Wrap(err, "unable to format env variables as yaml") + return "", fmt.Errorf("failed to format environment variables as YAML: %w", err) } return string(yamlBytes), nil From dbe771dba0dcefb4cf8e2eb6e144aa5e9313fe75 Mon Sep 17 00:00:00 2001 From: GLEF1X Date: Tue, 30 Jul 2024 05:30:13 -0400 Subject: [PATCH 003/101] refactor: remove unnecessary comment --- cli/packages/cmd/export_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/packages/cmd/export_test.go b/cli/packages/cmd/export_test.go index d26741165..1be0a7ed2 100644 --- a/cli/packages/cmd/export_test.go +++ b/cli/packages/cmd/export_test.go @@ -1,4 +1,4 @@ -package cmd // Replace with your actual package name +package cmd import ( "testing" From 55a67407143e6c574798e395f708a9eb5c9c7e09 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 2 Aug 2024 21:37:48 +0800 Subject: [PATCH 004/101] misc: moved to plan-based rate limit --- backend/src/@types/fastify.d.ts | 2 ++ .../src/ee/services/license/licence-fns.ts | 12 ++++++- .../src/ee/services/license/license-types.ts | 3 ++ .../services/rate-limit/rate-limit-service.ts | 4 +-- .../services/rate-limit/rate-limit-types.ts | 11 ++++++ backend/src/server/config/rateLimiter.ts | 25 ++++++++----- .../src/server/plugins/inject-rate-limits.ts | 35 +++++++++++++++++++ backend/src/server/routes/index.ts | 2 ++ 8 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 backend/src/server/plugins/inject-rate-limits.ts diff --git a/backend/src/@types/fastify.d.ts b/backend/src/@types/fastify.d.ts index 8ae892560..00bc9e77c 100644 --- a/backend/src/@types/fastify.d.ts +++ b/backend/src/@types/fastify.d.ts @@ -18,6 +18,7 @@ import { TOidcConfigServiceFactory } from "@app/ee/services/oidc/oidc-config-ser import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; import { TProjectUserAdditionalPrivilegeServiceFactory } from "@app/ee/services/project-user-additional-privilege/project-user-additional-privilege-service"; import { TRateLimitServiceFactory } from "@app/ee/services/rate-limit/rate-limit-service"; +import { RateLimitConfiguration } from "@app/ee/services/rate-limit/rate-limit-types"; import { TSamlConfigServiceFactory } from "@app/ee/services/saml-config/saml-config-service"; import { TScimServiceFactory } from "@app/ee/services/scim/scim-service"; import { TSecretApprovalPolicyServiceFactory } from "@app/ee/services/secret-approval-policy/secret-approval-policy-service"; @@ -88,6 +89,7 @@ declare module "fastify" { id: string; orgId: string; }; + rateLimits: RateLimitConfiguration; // passport data passportUser: { isUserCompleted: string; diff --git a/backend/src/ee/services/license/licence-fns.ts b/backend/src/ee/services/license/licence-fns.ts index fc0fb54a7..c7bdd95ac 100644 --- a/backend/src/ee/services/license/licence-fns.ts +++ b/backend/src/ee/services/license/licence-fns.ts @@ -40,7 +40,17 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ secretRotation: true, caCrl: false, instanceUserManagement: false, - externalKms: false + externalKms: false, + rateLimits: { + readLimit: 60, + publicEndpointLimit: 30, + writeLimit: 200, + secretsLimit: 60, + authRateLimit: 60, + inviteUserRateLimit: 30, + mfaRateLimit: 20, + creationLimit: 30 + } }); export const setupLicenceRequestWithStore = (baseURL: string, refreshUrl: string, licenseKey: string) => { diff --git a/backend/src/ee/services/license/license-types.ts b/backend/src/ee/services/license/license-types.ts index df85f008f..262547772 100644 --- a/backend/src/ee/services/license/license-types.ts +++ b/backend/src/ee/services/license/license-types.ts @@ -1,5 +1,7 @@ import { TOrgPermission } from "@app/lib/types"; +import { RateLimitConfiguration } from "../rate-limit/rate-limit-types"; + export enum InstanceType { OnPrem = "self-hosted", EnterpriseOnPrem = "enterprise-self-hosted", @@ -58,6 +60,7 @@ export type TFeatureSet = { caCrl: false; instanceUserManagement: false; externalKms: false; + rateLimits: RateLimitConfiguration; }; export type TOrgPlansTableDTO = { diff --git a/backend/src/ee/services/rate-limit/rate-limit-service.ts b/backend/src/ee/services/rate-limit/rate-limit-service.ts index df90ca03f..b35b02dd4 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-service.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-service.ts @@ -4,9 +4,9 @@ import { logger } from "@app/lib/logger"; import { TLicenseServiceFactory } from "../license/license-service"; import { TRateLimitDALFactory } from "./rate-limit-dal"; -import { TRateLimit, TRateLimitUpdateDTO } from "./rate-limit-types"; +import { RateLimitConfiguration, TRateLimit, TRateLimitUpdateDTO } from "./rate-limit-types"; -let rateLimitMaxConfiguration = { +let rateLimitMaxConfiguration: RateLimitConfiguration = { readLimit: 60, publicEndpointLimit: 30, writeLimit: 200, diff --git a/backend/src/ee/services/rate-limit/rate-limit-types.ts b/backend/src/ee/services/rate-limit/rate-limit-types.ts index 19519aafb..7d5859367 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-types.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-types.ts @@ -14,3 +14,14 @@ export type TRateLimit = { createdAt: Date; updatedAt: Date; } & TRateLimitUpdateDTO; + +export type RateLimitConfiguration = { + readLimit: number; + publicEndpointLimit: number; + writeLimit: number; + secretsLimit: number; + authRateLimit: number; + inviteUserRateLimit: number; + mfaRateLimit: number; + creationLimit: number; +}; diff --git a/backend/src/server/config/rateLimiter.ts b/backend/src/server/config/rateLimiter.ts index 79b709ee6..cfadca9cc 100644 --- a/backend/src/server/config/rateLimiter.ts +++ b/backend/src/server/config/rateLimiter.ts @@ -1,7 +1,6 @@ import type { RateLimitOptions, RateLimitPluginOptions } from "@fastify/rate-limit"; import { Redis } from "ioredis"; -import { getRateLimiterConfig } from "@app/ee/services/rate-limit/rate-limit-service"; import { getConfig } from "@app/lib/config/env"; export const globalRateLimiterCfg = (): RateLimitPluginOptions => { @@ -22,14 +21,16 @@ export const globalRateLimiterCfg = (): RateLimitPluginOptions => { // GET endpoints export const readLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().readLimit, + hook: "preValidation", + max: (req) => req.rateLimits.readLimit, keyGenerator: (req) => req.realIp }; // POST, PATCH, PUT, DELETE endpoints export const writeLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().writeLimit, + hook: "preValidation", + max: (req) => req.rateLimits.writeLimit, keyGenerator: (req) => req.realIp }; @@ -37,25 +38,29 @@ export const writeLimit: RateLimitOptions = { export const secretsLimit: RateLimitOptions = { // secrets, folders, secret imports timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().secretsLimit, + hook: "preValidation", + max: (req) => req.rateLimits.secretsLimit, keyGenerator: (req) => req.realIp }; export const authRateLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().authRateLimit, + hook: "preValidation", + max: (req) => req.rateLimits.authRateLimit, keyGenerator: (req) => req.realIp }; export const inviteUserRateLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().inviteUserRateLimit, + hook: "preValidation", + max: (req) => req.rateLimits.inviteUserRateLimit, keyGenerator: (req) => req.realIp }; export const mfaRateLimit: RateLimitOptions = { timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().mfaRateLimit, + hook: "preValidation", + max: (req) => req.rateLimits.mfaRateLimit, keyGenerator: (req) => { return req.headers.authorization?.split(" ")[1] || req.realIp; } @@ -64,7 +69,8 @@ export const mfaRateLimit: RateLimitOptions = { export const creationLimit: RateLimitOptions = { // identity, project, org timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().creationLimit, + hook: "preValidation", + max: (req) => req.rateLimits.creationLimit, keyGenerator: (req) => req.realIp }; @@ -72,7 +78,8 @@ export const creationLimit: RateLimitOptions = { export const publicEndpointLimit: RateLimitOptions = { // Read Shared Secrets timeWindow: 60 * 1000, - max: () => getRateLimiterConfig().publicEndpointLimit, + hook: "preValidation", + max: (req) => req.rateLimits.publicEndpointLimit, keyGenerator: (req) => req.realIp }; diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts new file mode 100644 index 000000000..74acc8fcb --- /dev/null +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -0,0 +1,35 @@ +import fp from "fastify-plugin"; + +import { getRateLimiterConfig } from "@app/ee/services/rate-limit/rate-limit-service"; + +export const injectRateLimits = fp(async (server) => { + server.decorateRequest("rateLimits", null); + server.addHook("onRequest", async (req) => { + const defaultRateLimiterConfig = getRateLimiterConfig(); + if (!req.auth) { + // for public endpoints + req.rateLimits = defaultRateLimiterConfig; + return; + } + + const plan = await server.services.license.getPlan(req.auth.orgId); + const { rateLimits } = plan; + + if (plan.customRateLimits) { + req.rateLimits = defaultRateLimiterConfig; + return; + } + + // we're using the null coalescing operator in order to handle outdated licenses + req.rateLimits = { + readLimit: rateLimits?.readLimit ?? defaultRateLimiterConfig.readLimit, + publicEndpointLimit: rateLimits?.publicEndpointLimit ?? defaultRateLimiterConfig.publicEndpointLimit, + writeLimit: rateLimits?.writeLimit ?? defaultRateLimiterConfig.writeLimit, + secretsLimit: rateLimits?.secretsLimit ?? defaultRateLimiterConfig.secretsLimit, + authRateLimit: rateLimits?.authRateLimit ?? defaultRateLimiterConfig.authRateLimit, + inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? defaultRateLimiterConfig.inviteUserRateLimit, + mfaRateLimit: rateLimits?.mfaRateLimit ?? defaultRateLimiterConfig.mfaRateLimit, + creationLimit: rateLimits?.creationLimit ?? defaultRateLimiterConfig.creationLimit + }; + }); +}); diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index e8f80f020..d8c6b616d 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -183,6 +183,7 @@ import { webhookServiceFactory } from "@app/services/webhook/webhook-service"; import { injectAuditLogInfo } from "../plugins/audit-log"; import { injectIdentity } from "../plugins/auth/inject-identity"; import { injectPermission } from "../plugins/auth/inject-permission"; +import { injectRateLimits } from "../plugins/inject-rate-limits"; import { registerSecretScannerGhApp } from "../plugins/secret-scanner"; import { registerV1Routes } from "./v1"; import { registerV2Routes } from "./v2"; @@ -1130,6 +1131,7 @@ export const registerRoutes = async ( await server.register(injectIdentity, { userDAL, serviceTokenDAL }); await server.register(injectPermission); + await server.register(injectRateLimits); await server.register(injectAuditLogInfo); server.route({ From 1ad286ca871ab6f8401d93e2b18b1b1b55c0311c Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 2 Aug 2024 22:58:53 +0800 Subject: [PATCH 005/101] misc: name updates and more comments --- .../src/server/plugins/inject-rate-limits.ts | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts index 74acc8fcb..487fdf1a6 100644 --- a/backend/src/server/plugins/inject-rate-limits.ts +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -1,35 +1,40 @@ import fp from "fastify-plugin"; import { getRateLimiterConfig } from "@app/ee/services/rate-limit/rate-limit-service"; +import { getConfig } from "@app/lib/config/env"; export const injectRateLimits = fp(async (server) => { server.decorateRequest("rateLimits", null); server.addHook("onRequest", async (req) => { - const defaultRateLimiterConfig = getRateLimiterConfig(); + const appCfg = getConfig(); + + const instanceRateLimiterConfig = getRateLimiterConfig(); if (!req.auth) { - // for public endpoints - req.rateLimits = defaultRateLimiterConfig; + // for public endpoints, we always use the instance-wide default rate limits + req.rateLimits = instanceRateLimiterConfig; return; } const plan = await server.services.license.getPlan(req.auth.orgId); const { rateLimits } = plan; - if (plan.customRateLimits) { - req.rateLimits = defaultRateLimiterConfig; + if (plan.customRateLimits && !appCfg.isCloud) { + // we do this because for self-hosted/dedicated instances, we want custom rate limits to be based on admin configuration + // note that the syncing of custom rate limit happens on the instanceRateLimiterConfig object + req.rateLimits = instanceRateLimiterConfig; return; } // we're using the null coalescing operator in order to handle outdated licenses req.rateLimits = { - readLimit: rateLimits?.readLimit ?? defaultRateLimiterConfig.readLimit, - publicEndpointLimit: rateLimits?.publicEndpointLimit ?? defaultRateLimiterConfig.publicEndpointLimit, - writeLimit: rateLimits?.writeLimit ?? defaultRateLimiterConfig.writeLimit, - secretsLimit: rateLimits?.secretsLimit ?? defaultRateLimiterConfig.secretsLimit, - authRateLimit: rateLimits?.authRateLimit ?? defaultRateLimiterConfig.authRateLimit, - inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? defaultRateLimiterConfig.inviteUserRateLimit, - mfaRateLimit: rateLimits?.mfaRateLimit ?? defaultRateLimiterConfig.mfaRateLimit, - creationLimit: rateLimits?.creationLimit ?? defaultRateLimiterConfig.creationLimit + readLimit: rateLimits?.readLimit ?? instanceRateLimiterConfig.readLimit, + publicEndpointLimit: rateLimits?.publicEndpointLimit ?? instanceRateLimiterConfig.publicEndpointLimit, + writeLimit: rateLimits?.writeLimit ?? instanceRateLimiterConfig.writeLimit, + secretsLimit: rateLimits?.secretsLimit ?? instanceRateLimiterConfig.secretsLimit, + authRateLimit: rateLimits?.authRateLimit ?? instanceRateLimiterConfig.authRateLimit, + inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? instanceRateLimiterConfig.inviteUserRateLimit, + mfaRateLimit: rateLimits?.mfaRateLimit ?? instanceRateLimiterConfig.mfaRateLimit, + creationLimit: rateLimits?.creationLimit ?? instanceRateLimiterConfig.creationLimit }; }); }); From 33193a47ae99948f687b89407c79180b7ddaaf83 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Sat, 3 Aug 2024 01:52:04 +0800 Subject: [PATCH 006/101] misc: updated default onprem rate limits --- backend/src/ee/services/license/licence-fns.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/ee/services/license/licence-fns.ts b/backend/src/ee/services/license/licence-fns.ts index c7bdd95ac..ad6a98573 100644 --- a/backend/src/ee/services/license/licence-fns.ts +++ b/backend/src/ee/services/license/licence-fns.ts @@ -45,7 +45,7 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ readLimit: 60, publicEndpointLimit: 30, writeLimit: 200, - secretsLimit: 60, + secretsLimit: 40, authRateLimit: 60, inviteUserRateLimit: 30, mfaRateLimit: 20, From 0f23b7e1d3181f6100a5f4337d8548c36ca51a56 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Sat, 3 Aug 2024 02:10:47 +0800 Subject: [PATCH 007/101] misc: added check for undefined orgId --- backend/src/server/plugins/inject-rate-limits.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts index 487fdf1a6..4bd3729b3 100644 --- a/backend/src/server/plugins/inject-rate-limits.ts +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -9,7 +9,7 @@ export const injectRateLimits = fp(async (server) => { const appCfg = getConfig(); const instanceRateLimiterConfig = getRateLimiterConfig(); - if (!req.auth) { + if (!req.auth?.orgId) { // for public endpoints, we always use the instance-wide default rate limits req.rateLimits = instanceRateLimiterConfig; return; From cc689d3178c9de412b71794c64995c52858cc66a Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 01:52:58 +0800 Subject: [PATCH 008/101] feat: added secrets deletion feature on integration removal --- .../ee/services/audit-log/audit-log-types.ts | 1 + backend/src/server/routes/index.ts | 9 +- .../server/routes/v1/integration-router.ts | 12 +- .../integration-delete-secret.ts | 350 ++++++++++++++++++ .../integration/integration-service.ts | 48 ++- .../services/integration/integration-types.ts | 1 + .../DeleteActionModal/DeleteActionModal.tsx | 7 +- .../src/hooks/api/integrations/queries.tsx | 11 +- .../IntegrationsPage/IntegrationsPage.tsx | 10 +- .../IntegrationsSection.tsx | 66 +++- 10 files changed, 493 insertions(+), 22 deletions(-) create mode 100644 backend/src/services/integration-auth/integration-delete-secret.ts diff --git a/backend/src/ee/services/audit-log/audit-log-types.ts b/backend/src/ee/services/audit-log/audit-log-types.ts index bfc1dbf92..07aeb320e 100644 --- a/backend/src/ee/services/audit-log/audit-log-types.ts +++ b/backend/src/ee/services/audit-log/audit-log-types.ts @@ -337,6 +337,7 @@ interface DeleteIntegrationEvent { targetServiceId?: string; path?: string; region?: string; + shouldDeleteIntegrationSecrets?: boolean; }; } diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index e8f80f020..681358193 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -885,8 +885,15 @@ export const registerRoutes = async ( folderDAL, integrationDAL, integrationAuthDAL, - secretQueueService + secretQueueService, + integrationAuthService, + projectBotService, + secretV2BridgeDAL, + secretImportDAL, + secretDAL, + kmsService }); + const serviceTokenService = serviceTokenServiceFactory({ projectEnvDAL, serviceTokenDAL, diff --git a/backend/src/server/routes/v1/integration-router.ts b/backend/src/server/routes/v1/integration-router.ts index 97a7f4d7a..6526dd940 100644 --- a/backend/src/server/routes/v1/integration-router.ts +++ b/backend/src/server/routes/v1/integration-router.ts @@ -170,6 +170,12 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => { params: z.object({ integrationId: z.string().trim().describe(INTEGRATION.DELETE.integrationId) }), + querystring: z.object({ + shouldDeleteIntegrationSecrets: z + .enum(["true", "false"]) + .optional() + .transform((val) => val === "true") + }), response: { 200: z.object({ integration: IntegrationsSchema @@ -183,7 +189,8 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => { actorAuthMethod: req.permission.authMethod, actor: req.permission.type, actorOrgId: req.permission.orgId, - id: req.params.integrationId + id: req.params.integrationId, + shouldDeleteIntegrationSecrets: req.query.shouldDeleteIntegrationSecrets }); await server.services.auditLog.createAuditLog({ @@ -205,7 +212,8 @@ export const registerIntegrationRouter = async (server: FastifyZodProvider) => { targetService: integration.targetService, targetServiceId: integration.targetServiceId, path: integration.path, - region: integration.region + region: integration.region, + shouldDeleteIntegrationSecrets: req.query.shouldDeleteIntegrationSecrets // eslint-disable-next-line }) as any } diff --git a/backend/src/services/integration-auth/integration-delete-secret.ts b/backend/src/services/integration-auth/integration-delete-secret.ts new file mode 100644 index 000000000..2a33677dd --- /dev/null +++ b/backend/src/services/integration-auth/integration-delete-secret.ts @@ -0,0 +1,350 @@ +import { Octokit } from "@octokit/rest"; + +import { TIntegrationAuths, TIntegrations } from "@app/db/schemas"; +import { decryptSymmetric128BitHexKeyUTF8 } from "@app/lib/crypto"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; +import { logger } from "@app/lib/logger"; + +import { IntegrationMetadataSchema } from "../integration/integration-schema"; +import { TKmsServiceFactory } from "../kms/kms-service"; +import { KmsDataKey } from "../kms/kms-types"; +import { TProjectBotServiceFactory } from "../project-bot/project-bot-service"; +import { TSecretDALFactory } from "../secret/secret-dal"; +import { TSecretFolderDALFactory } from "../secret-folder/secret-folder-dal"; +import { TSecretImportDALFactory } from "../secret-import/secret-import-dal"; +import { fnSecretsV2FromImports } from "../secret-import/secret-import-fns"; +import { TSecretV2BridgeDALFactory } from "../secret-v2-bridge/secret-v2-bridge-dal"; +import { TIntegrationAuthServiceFactory } from "./integration-auth-service"; +import { Integrations } from "./integration-list"; + +const MAX_SYNC_SECRET_DEPTH = 5; + +/** + * Return the secrets in a given [folderId] including secrets from + * nested imported folders recursively. + */ +const getIntegrationSecretsV2 = async ( + dto: { + projectId: string; + environment: string; + folderId: string; + depth: number; + decryptor: (value: Buffer | null | undefined) => string; + }, + secretV2BridgeDAL: Pick, + folderDAL: Pick, + secretImportDAL: Pick +) => { + const content: Record = {}; + if (dto.depth > MAX_SYNC_SECRET_DEPTH) { + logger.info( + `getIntegrationSecrets: secret depth exceeded for [projectId=${dto.projectId}] [folderId=${dto.folderId}] [depth=${dto.depth}]` + ); + return content; + } + + // process secrets in current folder + const secrets = await secretV2BridgeDAL.findByFolderId(dto.folderId); + + secrets.forEach((secret) => { + const secretKey = secret.key; + content[secretKey] = true; + }); + + // check if current folder has any imports from other folders + const secretImports = await secretImportDAL.find({ folderId: dto.folderId, isReplication: false }); + + // if no imports then return secrets in the current folder + if (!secretImports.length) return content; + const importedSecrets = await fnSecretsV2FromImports({ + decryptor: dto.decryptor, + folderDAL, + secretDAL: secretV2BridgeDAL, + secretImportDAL, + allowedImports: secretImports + }); + + for (let i = importedSecrets.length - 1; i >= 0; i -= 1) { + for (let j = 0; j < importedSecrets[i].secrets.length; j += 1) { + const importedSecret = importedSecrets[i].secrets[j]; + if (!content[importedSecret.key]) { + content[importedSecret.key] = true; + } + } + } + return content; +}; + +/** + * Return the secrets in a given [folderId] including secrets from + * nested imported folders recursively. + */ +const getIntegrationSecrets = async ( + dto: { + projectId: string; + environment: string; + folderId: string; + key: string; + depth: number; + }, + secretDAL: Pick, + folderDAL: Pick, + secretImportDAL: Pick +) => { + let content: Record = {}; + if (dto.depth > MAX_SYNC_SECRET_DEPTH) { + logger.info( + `getIntegrationSecrets: secret depth exceeded for [projectId=${dto.projectId}] [folderId=${dto.folderId}] [depth=${dto.depth}]` + ); + return content; + } + + // process secrets in current folder + const secrets = await secretDAL.findByFolderId(dto.folderId); + secrets.forEach((secret) => { + const secretKey = decryptSymmetric128BitHexKeyUTF8({ + ciphertext: secret.secretKeyCiphertext, + iv: secret.secretKeyIV, + tag: secret.secretKeyTag, + key: dto.key + }); + + content[secretKey] = true; + }); + + // check if current folder has any imports from other folders + const secretImport = await secretImportDAL.find({ folderId: dto.folderId, isReplication: false }); + + // if no imports then return secrets in the current folder + if (!secretImport) return content; + + const importedFolders = await folderDAL.findByManySecretPath( + secretImport.map(({ importEnv, importPath }) => ({ + envId: importEnv.id, + secretPath: importPath + })) + ); + + for await (const folder of importedFolders) { + if (folder) { + // get secrets contained in each imported folder by recursively calling + // this function against the imported folder + const importedSecrets = await getIntegrationSecrets( + { + environment: dto.environment, + projectId: dto.projectId, + folderId: folder.id, + key: dto.key, + depth: dto.depth + 1 + }, + secretDAL, + folderDAL, + secretImportDAL + ); + + // add the imported secrets to the current folder secrets + content = { ...importedSecrets, ...content }; + } + } + + return content; +}; + +export const deleteGithubSecrets = async ({ + integration, + secrets, + accessToken +}: { + integration: Omit; + secrets: Record; + accessToken: string; +}) => { + interface GitHubSecret { + name: string; + created_at: string; + updated_at: string; + visibility?: "all" | "private" | "selected"; + selected_repositories_url?: string | undefined; + } + + const octokit = new Octokit({ + auth: accessToken + }); + + enum GithubScope { + Repo = "github-repo", + Org = "github-org", + Env = "github-env" + } + + let encryptedSecrets: GitHubSecret[]; + + switch (integration.scope) { + case GithubScope.Org: { + encryptedSecrets = ( + await octokit.request("GET /orgs/{org}/actions/secrets", { + org: integration.owner as string + }) + ).data.secrets; + break; + } + case GithubScope.Env: { + encryptedSecrets = ( + await octokit.request("GET /repositories/{repository_id}/environments/{environment_name}/secrets", { + repository_id: Number(integration.appId), + environment_name: integration.targetEnvironmentId as string + }) + ).data.secrets; + break; + } + default: { + encryptedSecrets = ( + await octokit.request("GET /repos/{owner}/{repo}/actions/secrets", { + owner: integration.owner as string, + repo: integration.app as string + }) + ).data.secrets; + break; + } + } + + for await (const encryptedSecret of encryptedSecrets) { + if (encryptedSecret.name in secrets) { + switch (integration.scope) { + case GithubScope.Org: { + await octokit.request("DELETE /orgs/{org}/actions/secrets/{secret_name}", { + org: integration.owner as string, + secret_name: encryptedSecret.name + }); + break; + } + case GithubScope.Env: { + await octokit.request( + "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}", + { + repository_id: Number(integration.appId), + environment_name: integration.targetEnvironmentId as string, + secret_name: encryptedSecret.name + } + ); + break; + } + default: { + await octokit.request("DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}", { + owner: integration.owner as string, + repo: integration.app as string, + secret_name: encryptedSecret.name + }); + break; + } + } + } + } +}; + +export const deleteIntegrationSecrets = async ({ + integration, + integrationAuth, + integrationAuthService, + projectBotService, + secretV2BridgeDAL, + folderDAL, + secretDAL, + secretImportDAL, + kmsService +}: { + integration: Omit & { + projectId: string; + environment: { + id: string; + name: string; + slug: string; + }; + secretPath: string; + }; + integrationAuth: TIntegrationAuths; + integrationAuthService: Pick; + projectBotService: Pick; + secretV2BridgeDAL: Pick; + folderDAL: Pick; + secretImportDAL: Pick; + secretDAL: Pick; + kmsService: Pick; +}) => { + const { shouldUseSecretV2Bridge, botKey } = await projectBotService.getBotKey(integration.projectId); + const { decryptor: secretManagerDecryptor } = await kmsService.createCipherPairWithDataKey({ + type: KmsDataKey.SecretManager, + projectId: integration.projectId + }); + + const folder = await folderDAL.findBySecretPath( + integration.projectId, + integration.environment.slug, + integration.secretPath + ); + + if (!folder) { + throw new NotFoundError({ + message: "Folder not found." + }); + } + + const { accessToken } = await integrationAuthService.getIntegrationAccessToken( + integrationAuth, + shouldUseSecretV2Bridge, + botKey + ); + + const secrets = shouldUseSecretV2Bridge + ? await getIntegrationSecretsV2( + { + environment: integration.environment.id, + projectId: integration.projectId, + folderId: folder.id, + depth: 1, + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") + }, + secretV2BridgeDAL, + folderDAL, + secretImportDAL + ) + : await getIntegrationSecrets( + { + environment: integration.environment.id, + projectId: integration.projectId, + folderId: folder.id, + key: botKey as string, + depth: 1 + }, + secretDAL, + folderDAL, + secretImportDAL + ); + + const suffixedSecrets: typeof secrets = {}; + const metadata = IntegrationMetadataSchema.parse(integration.metadata); + + if (metadata) { + Object.keys(secrets).forEach((key) => { + const prefix = metadata?.secretPrefix || ""; + const suffix = metadata?.secretSuffix || ""; + const newKey = prefix + key + suffix; + suffixedSecrets[newKey] = secrets[key]; + }); + } + + switch (integration.integration) { + case Integrations.GITHUB: { + await deleteGithubSecrets({ + integration, + accessToken, + secrets: Object.keys(suffixedSecrets).length !== 0 ? suffixedSecrets : secrets + }); + break; + } + default: + throw new BadRequestError({ + message: "Invalid integration" + }); + } +}; diff --git a/backend/src/services/integration/integration-service.ts b/backend/src/services/integration/integration-service.ts index da9cfc71f..02e520c6e 100644 --- a/backend/src/services/integration/integration-service.ts +++ b/backend/src/services/integration/integration-service.ts @@ -6,8 +6,15 @@ import { BadRequestError } from "@app/lib/errors"; import { TProjectPermission } from "@app/lib/types"; import { TIntegrationAuthDALFactory } from "../integration-auth/integration-auth-dal"; +import { TIntegrationAuthServiceFactory } from "../integration-auth/integration-auth-service"; +import { deleteIntegrationSecrets } from "../integration-auth/integration-delete-secret"; +import { TKmsServiceFactory } from "../kms/kms-service"; +import { TProjectBotServiceFactory } from "../project-bot/project-bot-service"; +import { TSecretDALFactory } from "../secret/secret-dal"; import { TSecretQueueFactory } from "../secret/secret-queue"; import { TSecretFolderDALFactory } from "../secret-folder/secret-folder-dal"; +import { TSecretImportDALFactory } from "../secret-import/secret-import-dal"; +import { TSecretV2BridgeDALFactory } from "../secret-v2-bridge/secret-v2-bridge-dal"; import { TIntegrationDALFactory } from "./integration-dal"; import { TCreateIntegrationDTO, @@ -19,9 +26,15 @@ import { type TIntegrationServiceFactoryDep = { integrationDAL: TIntegrationDALFactory; integrationAuthDAL: TIntegrationAuthDALFactory; - folderDAL: Pick; + integrationAuthService: TIntegrationAuthServiceFactory; + folderDAL: Pick; permissionService: Pick; + projectBotService: TProjectBotServiceFactory; secretQueueService: Pick; + secretV2BridgeDAL: Pick; + secretImportDAL: Pick; + kmsService: Pick; + secretDAL: Pick; }; export type TIntegrationServiceFactory = ReturnType; @@ -31,7 +44,13 @@ export const integrationServiceFactory = ({ integrationAuthDAL, folderDAL, permissionService, - secretQueueService + secretQueueService, + integrationAuthService, + projectBotService, + secretV2BridgeDAL, + secretImportDAL, + kmsService, + secretDAL }: TIntegrationServiceFactoryDep) => { const createIntegration = async ({ app, @@ -161,7 +180,14 @@ export const integrationServiceFactory = ({ return updatedIntegration; }; - const deleteIntegration = async ({ actorId, id, actor, actorAuthMethod, actorOrgId }: TDeleteIntegrationDTO) => { + const deleteIntegration = async ({ + actorId, + id, + actor, + actorAuthMethod, + actorOrgId, + shouldDeleteIntegrationSecrets + }: TDeleteIntegrationDTO) => { const integration = await integrationDAL.findById(id); if (!integration) throw new BadRequestError({ message: "Integration auth not found" }); @@ -174,6 +200,22 @@ export const integrationServiceFactory = ({ ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Delete, ProjectPermissionSub.Integrations); + const integrationAuth = await integrationAuthDAL.findById(integration.integrationAuthId); + + if (shouldDeleteIntegrationSecrets) { + await deleteIntegrationSecrets({ + integration, + integrationAuth, + projectBotService, + integrationAuthService, + secretV2BridgeDAL, + folderDAL, + secretImportDAL, + secretDAL, + kmsService + }); + } + const deletedIntegration = await integrationDAL.transaction(async (tx) => { // delete integration const deletedIntegrationResult = await integrationDAL.deleteById(id, tx); diff --git a/backend/src/services/integration/integration-types.ts b/backend/src/services/integration/integration-types.ts index abbccbe90..cfb6d70a4 100644 --- a/backend/src/services/integration/integration-types.ts +++ b/backend/src/services/integration/integration-types.ts @@ -63,6 +63,7 @@ export type TUpdateIntegrationDTO = { export type TDeleteIntegrationDTO = { id: string; + shouldDeleteIntegrationSecrets?: boolean; } & Omit; export type TSyncIntegrationDTO = { diff --git a/frontend/src/components/v2/DeleteActionModal/DeleteActionModal.tsx b/frontend/src/components/v2/DeleteActionModal/DeleteActionModal.tsx index 8e4bcbe71..299b23bb5 100644 --- a/frontend/src/components/v2/DeleteActionModal/DeleteActionModal.tsx +++ b/frontend/src/components/v2/DeleteActionModal/DeleteActionModal.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from "react"; +import { ReactNode, useEffect, useState } from "react"; import { useToggle } from "@app/hooks"; @@ -16,6 +16,7 @@ type Props = { subTitle?: string; onDeleteApproved: () => Promise; buttonText?: string; + children?: ReactNode; }; export const DeleteActionModal = ({ @@ -26,7 +27,8 @@ export const DeleteActionModal = ({ onDeleteApproved, title, subTitle = "This action is irreversible.", - buttonText = "Delete" + buttonText = "Delete", + children }: Props): JSX.Element => { const [inputData, setInputData] = useState(""); const [isLoading, setIsLoading] = useToggle(); @@ -97,6 +99,7 @@ export const DeleteActionModal = ({ placeholder={`Type ${deleteKey} here`} /> + {children} diff --git a/frontend/src/hooks/api/integrations/queries.tsx b/frontend/src/hooks/api/integrations/queries.tsx index 81d0f00ca..de4c1a914 100644 --- a/frontend/src/hooks/api/integrations/queries.tsx +++ b/frontend/src/hooks/api/integrations/queries.tsx @@ -110,8 +110,15 @@ export const useCreateIntegration = () => { export const useDeleteIntegration = () => { const queryClient = useQueryClient(); - return useMutation<{}, {}, { id: string; workspaceId: string }>({ - mutationFn: ({ id }) => apiRequest.delete(`/api/v1/integration/${id}`), + return useMutation< + {}, + {}, + { id: string; workspaceId: string; shouldDeleteIntegrationSecrets: boolean } + >({ + mutationFn: ({ id, shouldDeleteIntegrationSecrets }) => + apiRequest.delete( + `/api/v1/integration/${id}?shouldDeleteIntegrationSecrets=${shouldDeleteIntegrationSecrets}` + ), onSuccess: (_, { workspaceId }) => { queryClient.invalidateQueries(workspaceKeys.getWorkspaceIntegrations(workspaceId)); queryClient.invalidateQueries(workspaceKeys.getWorkspaceAuthorization(workspaceId)); diff --git a/frontend/src/views/IntegrationsPage/IntegrationsPage.tsx b/frontend/src/views/IntegrationsPage/IntegrationsPage.tsx index 5601a7f68..e44fd2539 100644 --- a/frontend/src/views/IntegrationsPage/IntegrationsPage.tsx +++ b/frontend/src/views/IntegrationsPage/IntegrationsPage.tsx @@ -106,9 +106,13 @@ export const IntegrationsPage = withProjectPermission( handleProviderIntegration(provider); }; - const handleIntegrationDelete = async (integrationId: string, cb: () => void) => { + const handleIntegrationDelete = async ( + integrationId: string, + shouldDeleteIntegrationSecrets: boolean, + cb: () => void + ) => { try { - await deleteIntegration({ id: integrationId, workspaceId }); + await deleteIntegration({ id: integrationId, workspaceId, shouldDeleteIntegrationSecrets }); if (cb) cb(); createNotification({ type: "success", @@ -152,7 +156,7 @@ export const IntegrationsPage = withProjectPermission( isLoading={isIntegrationLoading} integrations={integrations} environments={environments} - onIntegrationDelete={({ id }, cb) => handleIntegrationDelete(id, cb)} + onIntegrationDelete={handleIntegrationDelete} workspaceId={workspaceId} /> ; integrations?: TIntegration[]; isLoading?: boolean; - onIntegrationDelete: (integration: TIntegration, cb: () => void) => void; + onIntegrationDelete: ( + integrationId: string, + shouldDeleteIntegrationSecrets: boolean, + cb: () => void + ) => Promise; workspaceId: string; }; @@ -37,10 +42,12 @@ export const IntegrationsSection = ({ workspaceId }: Props) => { const { popUp, handlePopUpOpen, handlePopUpClose, handlePopUpToggle } = usePopUp([ - "deleteConfirmation" + "deleteConfirmation", + "deleteSecretsConfirmation" ] as const); const { mutate: syncIntegration } = useSyncIntegration(); + const [shouldDeleteSecrets, setShouldDeleteSecrets] = useToggle(false); return (
@@ -249,7 +256,10 @@ export const IntegrationsSection = ({
handlePopUpOpen("deleteConfirmation", integration)} + onClick={() => { + setShouldDeleteSecrets.off(); + handlePopUpOpen("deleteConfirmation", integration); + }} ariaLabel="delete" isDisabled={!isAllowed} colorSchema="danger" @@ -281,11 +291,49 @@ export const IntegrationsSection = ({ (popUp?.deleteConfirmation?.data as TIntegration)?.integration || "" } - onDeleteApproved={async () => - onIntegrationDelete(popUp?.deleteConfirmation.data as TIntegration, () => - handlePopUpClose("deleteConfirmation") - ) - } + onDeleteApproved={async () => { + if (shouldDeleteSecrets) { + handlePopUpOpen("deleteSecretsConfirmation"); + return; + } + + await onIntegrationDelete( + (popUp?.deleteConfirmation.data as TIntegration).id, + false, + () => handlePopUpClose("deleteConfirmation") + ); + }} + > + {(popUp?.deleteConfirmation?.data as TIntegration)?.integration === "github" && ( +
+ setShouldDeleteSecrets.toggle()} + > + Delete secrets in destination + +
+ )} + + handlePopUpToggle("deleteSecretsConfirmation", isOpen)} + deleteKey="confirm" + onDeleteApproved={async () => { + await onIntegrationDelete( + (popUp?.deleteConfirmation.data as TIntegration).id, + true, + () => { + handlePopUpClose("deleteSecretsConfirmation"); + handlePopUpClose("deleteConfirmation"); + } + ); + }} />
); From 1070954bdd67e15c1a6b065c1143bc789f616569 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 02:05:13 +0800 Subject: [PATCH 009/101] misc: used destructuring --- backend/src/server/plugins/inject-rate-limits.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts index 4bd3729b3..49b95c761 100644 --- a/backend/src/server/plugins/inject-rate-limits.ts +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -15,10 +15,9 @@ export const injectRateLimits = fp(async (server) => { return; } - const plan = await server.services.license.getPlan(req.auth.orgId); - const { rateLimits } = plan; + const { rateLimits, customRateLimits } = await server.services.license.getPlan(req.auth.orgId); - if (plan.customRateLimits && !appCfg.isCloud) { + if (customRateLimits && !appCfg.isCloud) { // we do this because for self-hosted/dedicated instances, we want custom rate limits to be based on admin configuration // note that the syncing of custom rate limit happens on the instanceRateLimiterConfig object req.rateLimits = instanceRateLimiterConfig; From c5a2b0321fb1d1d247850e8c6fa549a7fc085ad6 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 6 Aug 2024 15:35:00 +0530 Subject: [PATCH 010/101] feat: completed secret v3 raw to support tag based filtering --- backend/src/lib/api-docs/constants.ts | 3 ++- backend/src/server/routes/v3/secret-router.ts | 11 +++++++++-- .../secret-v2-bridge/secret-v2-bridge-service.ts | 10 +++++++--- .../secret-v2-bridge/secret-v2-bridge-types.ts | 1 + backend/src/services/secret/secret-service.ts | 13 +++++++++---- backend/src/services/secret/secret-types.ts | 1 + 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index aa7d2fc51..4ea51df2b 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -596,7 +596,8 @@ export const RAW_SECRETS = { "The slug of the project to list secrets from. This parameter is only applicable by machine identities.", environment: "The slug of the environment to list secrets from.", secretPath: "The secret path to list secrets from.", - includeImports: "Weather to include imported secrets or not." + includeImports: "Weather to include imported secrets or not.", + tagSlugs: "The comma seperated tag slugs to filter secrets" }, CREATE: { secretName: "The name of the secret to create.", diff --git a/backend/src/server/routes/v3/secret-router.ts b/backend/src/server/routes/v3/secret-router.ts index b0776d150..bb2d6d827 100644 --- a/backend/src/server/routes/v3/secret-router.ts +++ b/backend/src/server/routes/v3/secret-router.ts @@ -180,7 +180,13 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { .enum(["true", "false"]) .default("false") .transform((value) => value === "true") - .describe(RAW_SECRETS.LIST.includeImports) + .describe(RAW_SECRETS.LIST.includeImports), + tagSlugs: z + .string() + .describe(RAW_SECRETS.LIST.tagSlugs) + .optional() + // split by comma and trim the strings + .transform((el) => (el ? el.split(",").map((i) => i.trim()) : [])) }), response: { 200: z.object({ @@ -251,7 +257,8 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { projectId: workspaceId, path: secretPath, includeImports: req.query.include_imports, - recursive: req.query.recursive + recursive: req.query.recursive, + tagSlugs: req.query.tagSlugs }); await server.services.auditLog.createAuditLog({ diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index 2cb03cf6d..d98d23823 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -429,6 +429,7 @@ export const secretV2BridgeServiceFactory = ({ actorAuthMethod, includeImports, recursive, + tagSlugs = [], expandSecretReferences: shouldExpandSecretReferences }: TGetSecretsDTO) => { const { permission } = await permissionService.getProjectPermission( @@ -496,6 +497,9 @@ export const secretV2BridgeServiceFactory = ({ : "" }) ); + const filteredSecrets = tagSlugs.length + ? decryptedSecrets.filter((secret) => Boolean(secret.tags?.find((el) => tagSlugs.includes(el.slug)))) + : decryptedSecrets; const expandSecretReferences = expandSecretReferencesFactory({ projectId, folderDAL, @@ -504,7 +508,7 @@ export const secretV2BridgeServiceFactory = ({ }); if (shouldExpandSecretReferences) { - const secretsGroupByPath = groupBy(decryptedSecrets, (i) => i.secretPath); + const secretsGroupByPath = groupBy(filteredSecrets, (i) => i.secretPath); for (const secretPathKey in secretsGroupByPath) { if (Object.hasOwn(secretsGroupByPath, secretPathKey)) { const secretsGroupByKey = secretsGroupByPath[secretPathKey].reduce( @@ -530,7 +534,7 @@ export const secretV2BridgeServiceFactory = ({ if (!includeImports) { return { - secrets: decryptedSecrets + secrets: filteredSecrets }; } @@ -558,7 +562,7 @@ export const secretV2BridgeServiceFactory = ({ }); return { - secrets: decryptedSecrets, + secrets: filteredSecrets, imports: importedSecrets }; }; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts index 1964aac05..8c7a32a7f 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-types.ts @@ -20,6 +20,7 @@ export type TGetSecretsDTO = { environment: string; includeImports?: boolean; recursive?: boolean; + tagSlugs?: string[]; } & TProjectPermission; export type TGetASecretDTO = { diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 3a14f0e30..35c1de312 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -964,7 +964,8 @@ export const secretServiceFactory = ({ environment, includeImports, expandSecretReferences, - recursive + recursive, + tagSlugs = [] }: TGetSecretsRawDTO) => { const { botKey, shouldUseSecretV2Bridge } = await projectBotService.getBotKey(projectId); if (shouldUseSecretV2Bridge) { @@ -978,7 +979,8 @@ export const secretServiceFactory = ({ path, recursive, actorAuthMethod, - includeImports + includeImports, + tagSlugs }); return { secrets, imports }; } @@ -998,6 +1000,9 @@ export const secretServiceFactory = ({ }); const decryptedSecrets = secrets.map((el) => decryptSecretRaw(el, botKey)); + const filteredSecrets = tagSlugs.length + ? decryptedSecrets.filter((secret) => Boolean(secret.tags?.find((el) => tagSlugs.includes(el.slug)))) + : decryptedSecrets; const processedImports = (imports || [])?.map(({ secrets: importedSecrets, ...el }) => { const decryptedImportSecrets = importedSecrets.map((sec) => decryptSecretRaw( @@ -1106,14 +1111,14 @@ export const secretServiceFactory = ({ }; // expand secrets - await batchSecretsExpand(decryptedSecrets); + await batchSecretsExpand(filteredSecrets); // expand imports by batch await Promise.all(processedImports.map((processedImport) => batchSecretsExpand(processedImport.secrets))); } return { - secrets: decryptedSecrets, + secrets: filteredSecrets, imports: processedImports }; }; diff --git a/backend/src/services/secret/secret-types.ts b/backend/src/services/secret/secret-types.ts index 99bde05f2..1686ee488 100644 --- a/backend/src/services/secret/secret-types.ts +++ b/backend/src/services/secret/secret-types.ts @@ -149,6 +149,7 @@ export type TGetSecretsRawDTO = { environment: string; includeImports?: boolean; recursive?: boolean; + tagSlugs?: string[]; } & TProjectPermission; export type TGetASecretRawDTO = { From 8626bce632d5ac685d372aeed60e99074b219dad Mon Sep 17 00:00:00 2001 From: = Date: Tue, 6 Aug 2024 15:36:03 +0530 Subject: [PATCH 011/101] feat: added tag support for secret operation in cli --- cli/packages/api/api.go | 4 ++++ cli/packages/api/model.go | 1 + cli/packages/cmd/agent.go | 2 +- cli/packages/util/secrets.go | 13 +++++++------ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/cli/packages/api/api.go b/cli/packages/api/api.go index 9eab5e759..c6ecd8bcd 100644 --- a/cli/packages/api/api.go +++ b/cli/packages/api/api.go @@ -404,6 +404,10 @@ func CallGetRawSecretsV3(httpClient *resty.Client, request GetRawSecretsV3Reques SetQueryParam("environment", request.Environment). SetQueryParam("secretPath", request.SecretPath) + if request.TagSlugs != "" { + req.SetQueryParam("tagSlugs", request.TagSlugs) + } + if request.IncludeImport { req.SetQueryParam("include_imports", "true") } diff --git a/cli/packages/api/model.go b/cli/packages/api/model.go index dc577bf9d..f954531e2 100644 --- a/cli/packages/api/model.go +++ b/cli/packages/api/model.go @@ -574,6 +574,7 @@ type GetRawSecretsV3Request struct { SecretPath string `json:"secretPath"` IncludeImport bool `json:"include_imports"` Recursive bool `json:"recursive"` + TagSlugs string `json:"tagSlugs,omitempty"` } type GetRawSecretsV3Response struct { diff --git a/cli/packages/cmd/agent.go b/cli/packages/cmd/agent.go index 59e496ec7..0c99377ae 100644 --- a/cli/packages/cmd/agent.go +++ b/cli/packages/cmd/agent.go @@ -312,7 +312,7 @@ func ParseAgentConfig(configFile []byte) (*Config, error) { func secretTemplateFunction(accessToken string, existingEtag string, currentEtag *string) func(string, string, string) ([]models.SingleEnvironmentVariable, error) { return func(projectID, envSlug, secretPath string) ([]models.SingleEnvironmentVariable, error) { - res, err := util.GetPlainTextSecretsV3(accessToken, projectID, envSlug, secretPath, false, false) + res, err := util.GetPlainTextSecretsV3(accessToken, projectID, envSlug, secretPath, false, false, "") if err != nil { return nil, err } diff --git a/cli/packages/util/secrets.go b/cli/packages/util/secrets.go index c51338d61..91daf088e 100644 --- a/cli/packages/util/secrets.go +++ b/cli/packages/util/secrets.go @@ -20,7 +20,7 @@ import ( "github.com/zalando/go-keyring" ) -func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment string, secretPath string, includeImports bool, recursive bool) ([]models.SingleEnvironmentVariable, error) { +func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment string, secretPath string, includeImports bool, recursive bool, tagSlugs string) ([]models.SingleEnvironmentVariable, error) { serviceTokenParts := strings.SplitN(fullServiceToken, ".", 4) if len(serviceTokenParts) < 4 { return nil, fmt.Errorf("invalid service token entered. Please double check your service token and try again") @@ -53,6 +53,7 @@ func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment str SecretPath: secretPath, IncludeImport: includeImports, Recursive: recursive, + TagSlugs: tagSlugs, }) if err != nil { @@ -76,7 +77,7 @@ func GetPlainTextSecretsViaServiceToken(fullServiceToken string, environment str } -func GetPlainTextSecretsV3(accessToken string, workspaceId string, environmentName string, secretsPath string, includeImports bool, recursive bool) (models.PlaintextSecretResult, error) { +func GetPlainTextSecretsV3(accessToken string, workspaceId string, environmentName string, secretsPath string, includeImports bool, recursive bool, tagSlugs string) (models.PlaintextSecretResult, error) { httpClient := resty.New() httpClient.SetAuthToken(accessToken). SetHeader("Accept", "application/json") @@ -86,7 +87,7 @@ func GetPlainTextSecretsV3(accessToken string, workspaceId string, environmentNa Environment: environmentName, IncludeImport: includeImports, Recursive: recursive, - // TagSlugs: tagSlugs, + TagSlugs: tagSlugs, } if secretsPath != "" { @@ -281,7 +282,7 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo } res, err := GetPlainTextSecretsV3(loggedInUserDetails.UserCredentials.JTWToken, infisicalDotJson.WorkspaceId, - params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive) + params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive, params.TagSlugs) log.Debug().Msgf("GetAllEnvironmentVariables: Trying to fetch secrets JTW token [err=%s]", err) if err == nil { @@ -303,7 +304,7 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo } else { if params.InfisicalToken != "" { log.Debug().Msg("Trying to fetch secrets using service token") - secretsToReturn, errorToReturn = GetPlainTextSecretsViaServiceToken(params.InfisicalToken, params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive) + secretsToReturn, errorToReturn = GetPlainTextSecretsViaServiceToken(params.InfisicalToken, params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive, params.TagSlugs) } else if params.UniversalAuthAccessToken != "" { if params.WorkspaceId == "" { @@ -311,7 +312,7 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo } log.Debug().Msg("Trying to fetch secrets using universal auth") - res, err := GetPlainTextSecretsV3(params.UniversalAuthAccessToken, params.WorkspaceId, params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive) + res, err := GetPlainTextSecretsV3(params.UniversalAuthAccessToken, params.WorkspaceId, params.Environment, params.SecretsPath, params.IncludeImport, params.Recursive, params.TagSlugs) errorToReturn = err secretsToReturn = res.Secrets From 216c0732907616aeda7d15143220274a1429f170 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 6 Aug 2024 16:14:25 +0530 Subject: [PATCH 012/101] fix: missing comment key in updated project --- backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts | 4 ++-- .../src/services/secret-v2-bridge/secret-v2-bridge-service.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index 19aef06f3..8bd5c55f3 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -542,8 +542,8 @@ export const reshapeBridgeSecret = ( secretPath, workspace: workspaceId, environment, - secretValue: secret.value, - secretComment: secret.comment, + secretValue: secret.value || "", + secretComment: secret.comment || "", version: secret.version, type: secret.type, _id: secret.id, diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index 2cb03cf6d..03ef8c86a 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -522,7 +522,7 @@ export const secretV2BridgeServiceFactory = ({ await expandSecretReferences(secretsGroupByKey); secretsGroupByPath[secretPathKey].forEach((decryptedSecret) => { // eslint-disable-next-line no-param-reassign - decryptedSecret.secretValue = secretsGroupByKey[decryptedSecret.secretKey].value; + decryptedSecret.secretValue = secretsGroupByKey[decryptedSecret.secretKey].value || ""; }); } } From c1decab91248bb126361a8b73da64f8a0df63846 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 18:58:07 +0800 Subject: [PATCH 013/101] misc: addressed comments --- backend/package-lock.json | 55 +++++++++++++++++-- backend/package.json | 1 + .../integration-delete-secret.ts | 25 ++++++--- 3 files changed, 66 insertions(+), 15 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index ffe9cfcb0..71d994f2e 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -25,6 +25,7 @@ "@fastify/swagger": "^8.14.0", "@fastify/swagger-ui": "^2.1.0", "@node-saml/passport-saml": "^4.0.4", + "@octokit/plugin-retry": "^5.0.5", "@octokit/rest": "^20.0.2", "@octokit/webhooks-types": "^7.3.1", "@peculiar/asn1-schema": "^2.3.8", @@ -7812,19 +7813,45 @@ } }, "node_modules/@octokit/plugin-retry": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", - "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-5.0.5.tgz", + "integrity": "sha512-sB1RWMhSrre02Atv95K6bhESlJ/sPdZkK/wE/w1IdSCe0yM6FxSjksLa6T7aAvxvxlLKzQEC4KIiqpqyov1Tbg==", "dependencies": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", + "@octokit/request-error": "^4.0.1", + "@octokit/types": "^10.0.0", "bottleneck": "^2.15.3" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/openapi-types": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==" + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/request-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-4.0.2.tgz", + "integrity": "sha512-uqwUEmZw3x4I9DGYq9fODVAAvcLsPQv97NRycP6syEFu5916M189VnNBW2zANNwqg3OiligNcAey7P0SET843w==", + "dependencies": { + "@octokit/types": "^10.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", + "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" } }, "node_modules/@octokit/plugin-throttling": { @@ -17396,6 +17423,22 @@ "node": ">=18" } }, + "node_modules/probot/node_modules/@octokit/plugin-retry": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.1.tgz", + "integrity": "sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==", + "dependencies": { + "@octokit/request-error": "^5.0.0", + "@octokit/types": "^12.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=5" + } + }, "node_modules/probot/node_modules/commander": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", diff --git a/backend/package.json b/backend/package.json index 1328db4dd..4ea217808 100644 --- a/backend/package.json +++ b/backend/package.json @@ -121,6 +121,7 @@ "@fastify/swagger": "^8.14.0", "@fastify/swagger-ui": "^2.1.0", "@node-saml/passport-saml": "^4.0.4", + "@octokit/plugin-retry": "^5.0.5", "@octokit/rest": "^20.0.2", "@octokit/webhooks-types": "^7.3.1", "@peculiar/asn1-schema": "^2.3.8", diff --git a/backend/src/services/integration-auth/integration-delete-secret.ts b/backend/src/services/integration-auth/integration-delete-secret.ts index 2a33677dd..5da48fb6e 100644 --- a/backend/src/services/integration-auth/integration-delete-secret.ts +++ b/backend/src/services/integration-auth/integration-delete-secret.ts @@ -1,3 +1,4 @@ +import { retry } from "@octokit/plugin-retry"; import { Octokit } from "@octokit/rest"; import { TIntegrationAuths, TIntegrations } from "@app/db/schemas"; @@ -79,7 +80,7 @@ const getIntegrationSecretsV2 = async ( * Return the secrets in a given [folderId] including secrets from * nested imported folders recursively. */ -const getIntegrationSecrets = async ( +const getIntegrationSecretsV1 = async ( dto: { projectId: string; environment: string; @@ -129,7 +130,7 @@ const getIntegrationSecrets = async ( if (folder) { // get secrets contained in each imported folder by recursively calling // this function against the imported folder - const importedSecrets = await getIntegrationSecrets( + const importedSecrets = await getIntegrationSecretsV1( { environment: dto.environment, projectId: dto.projectId, @@ -167,7 +168,8 @@ export const deleteGithubSecrets = async ({ selected_repositories_url?: string | undefined; } - const octokit = new Octokit({ + const OctokitWithRetry = Octokit.plugin(retry); + const octokit = new OctokitWithRetry({ auth: accessToken }); @@ -177,11 +179,11 @@ export const deleteGithubSecrets = async ({ Env = "github-env" } - let encryptedSecrets: GitHubSecret[]; + let encryptedGithubSecrets: GitHubSecret[]; switch (integration.scope) { case GithubScope.Org: { - encryptedSecrets = ( + encryptedGithubSecrets = ( await octokit.request("GET /orgs/{org}/actions/secrets", { org: integration.owner as string }) @@ -189,7 +191,7 @@ export const deleteGithubSecrets = async ({ break; } case GithubScope.Env: { - encryptedSecrets = ( + encryptedGithubSecrets = ( await octokit.request("GET /repositories/{repository_id}/environments/{environment_name}/secrets", { repository_id: Number(integration.appId), environment_name: integration.targetEnvironmentId as string @@ -198,7 +200,7 @@ export const deleteGithubSecrets = async ({ break; } default: { - encryptedSecrets = ( + encryptedGithubSecrets = ( await octokit.request("GET /repos/{owner}/{repo}/actions/secrets", { owner: integration.owner as string, repo: integration.app as string @@ -208,7 +210,7 @@ export const deleteGithubSecrets = async ({ } } - for await (const encryptedSecret of encryptedSecrets) { + for await (const encryptedSecret of encryptedGithubSecrets) { if (encryptedSecret.name in secrets) { switch (integration.scope) { case GithubScope.Org: { @@ -238,6 +240,11 @@ export const deleteGithubSecrets = async ({ break; } } + + // small delay to prevent hitting API rate limits + await new Promise((resolve) => { + setTimeout(resolve, 50); + }); } } }; @@ -308,7 +315,7 @@ export const deleteIntegrationSecrets = async ({ folderDAL, secretImportDAL ) - : await getIntegrationSecrets( + : await getIntegrationSecretsV1( { environment: integration.environment.id, projectId: integration.projectId, From 26ed8df73c8048bbdb2628d49d016dae9b972447 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 19:14:49 +0800 Subject: [PATCH 014/101] misc: finalized list of license rate limits --- backend/src/ee/services/license/licence-fns.ts | 7 +------ backend/src/ee/services/license/license-types.ts | 8 +++++--- backend/src/ee/services/rate-limit/rate-limit-service.ts | 6 ++---- backend/src/ee/services/rate-limit/rate-limit-types.ts | 1 - backend/src/server/config/rateLimiter.ts | 8 -------- backend/src/server/plugins/inject-rate-limits.ts | 9 ++++----- backend/src/server/routes/v1/identity-router.ts | 4 ++-- backend/src/server/routes/v2/organization-router.ts | 4 ++-- backend/src/server/routes/v2/project-router.ts | 4 ++-- 9 files changed, 18 insertions(+), 33 deletions(-) diff --git a/backend/src/ee/services/license/licence-fns.ts b/backend/src/ee/services/license/licence-fns.ts index ad6a98573..bd40f75cb 100644 --- a/backend/src/ee/services/license/licence-fns.ts +++ b/backend/src/ee/services/license/licence-fns.ts @@ -43,13 +43,8 @@ export const getDefaultOnPremFeatures = (): TFeatureSet => ({ externalKms: false, rateLimits: { readLimit: 60, - publicEndpointLimit: 30, writeLimit: 200, - secretsLimit: 40, - authRateLimit: 60, - inviteUserRateLimit: 30, - mfaRateLimit: 20, - creationLimit: 30 + secretsLimit: 40 } }); diff --git a/backend/src/ee/services/license/license-types.ts b/backend/src/ee/services/license/license-types.ts index 262547772..70db8e4d9 100644 --- a/backend/src/ee/services/license/license-types.ts +++ b/backend/src/ee/services/license/license-types.ts @@ -1,7 +1,5 @@ import { TOrgPermission } from "@app/lib/types"; -import { RateLimitConfiguration } from "../rate-limit/rate-limit-types"; - export enum InstanceType { OnPrem = "self-hosted", EnterpriseOnPrem = "enterprise-self-hosted", @@ -60,7 +58,11 @@ export type TFeatureSet = { caCrl: false; instanceUserManagement: false; externalKms: false; - rateLimits: RateLimitConfiguration; + rateLimits: { + readLimit: number; + writeLimit: number; + secretsLimit: number; + }; }; export type TOrgPlansTableDTO = { diff --git a/backend/src/ee/services/rate-limit/rate-limit-service.ts b/backend/src/ee/services/rate-limit/rate-limit-service.ts index b35b02dd4..208fa8428 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-service.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-service.ts @@ -13,8 +13,7 @@ let rateLimitMaxConfiguration: RateLimitConfiguration = { secretsLimit: 60, authRateLimit: 60, inviteUserRateLimit: 30, - mfaRateLimit: 20, - creationLimit: 30 + mfaRateLimit: 20 }; Object.freeze(rateLimitMaxConfiguration); @@ -67,8 +66,7 @@ export const rateLimitServiceFactory = ({ rateLimitDAL, licenseService }: TRateL secretsLimit: rateLimit.secretsRateLimit, authRateLimit: rateLimit.authRateLimit, inviteUserRateLimit: rateLimit.inviteUserRateLimit, - mfaRateLimit: rateLimit.mfaRateLimit, - creationLimit: rateLimit.creationLimit + mfaRateLimit: rateLimit.mfaRateLimit }; logger.info(`syncRateLimitConfiguration: rate limit configuration: %o`, newRateLimitMaxConfiguration); diff --git a/backend/src/ee/services/rate-limit/rate-limit-types.ts b/backend/src/ee/services/rate-limit/rate-limit-types.ts index 7d5859367..5a0b875a4 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-types.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-types.ts @@ -23,5 +23,4 @@ export type RateLimitConfiguration = { authRateLimit: number; inviteUserRateLimit: number; mfaRateLimit: number; - creationLimit: number; }; diff --git a/backend/src/server/config/rateLimiter.ts b/backend/src/server/config/rateLimiter.ts index cfadca9cc..bdbf80371 100644 --- a/backend/src/server/config/rateLimiter.ts +++ b/backend/src/server/config/rateLimiter.ts @@ -66,14 +66,6 @@ export const mfaRateLimit: RateLimitOptions = { } }; -export const creationLimit: RateLimitOptions = { - // identity, project, org - timeWindow: 60 * 1000, - hook: "preValidation", - max: (req) => req.rateLimits.creationLimit, - keyGenerator: (req) => req.realIp -}; - // Public endpoints to avoid brute force attacks export const publicEndpointLimit: RateLimitOptions = { // Read Shared Secrets diff --git a/backend/src/server/plugins/inject-rate-limits.ts b/backend/src/server/plugins/inject-rate-limits.ts index 49b95c761..1674ea542 100644 --- a/backend/src/server/plugins/inject-rate-limits.ts +++ b/backend/src/server/plugins/inject-rate-limits.ts @@ -27,13 +27,12 @@ export const injectRateLimits = fp(async (server) => { // we're using the null coalescing operator in order to handle outdated licenses req.rateLimits = { readLimit: rateLimits?.readLimit ?? instanceRateLimiterConfig.readLimit, - publicEndpointLimit: rateLimits?.publicEndpointLimit ?? instanceRateLimiterConfig.publicEndpointLimit, writeLimit: rateLimits?.writeLimit ?? instanceRateLimiterConfig.writeLimit, secretsLimit: rateLimits?.secretsLimit ?? instanceRateLimiterConfig.secretsLimit, - authRateLimit: rateLimits?.authRateLimit ?? instanceRateLimiterConfig.authRateLimit, - inviteUserRateLimit: rateLimits?.inviteUserRateLimit ?? instanceRateLimiterConfig.inviteUserRateLimit, - mfaRateLimit: rateLimits?.mfaRateLimit ?? instanceRateLimiterConfig.mfaRateLimit, - creationLimit: rateLimits?.creationLimit ?? instanceRateLimiterConfig.creationLimit + publicEndpointLimit: instanceRateLimiterConfig.publicEndpointLimit, + authRateLimit: instanceRateLimiterConfig.authRateLimit, + inviteUserRateLimit: instanceRateLimiterConfig.inviteUserRateLimit, + mfaRateLimit: instanceRateLimiterConfig.mfaRateLimit }; }); }); diff --git a/backend/src/server/routes/v1/identity-router.ts b/backend/src/server/routes/v1/identity-router.ts index b1cd6cd9d..23aca9625 100644 --- a/backend/src/server/routes/v1/identity-router.ts +++ b/backend/src/server/routes/v1/identity-router.ts @@ -3,7 +3,7 @@ import { z } from "zod"; import { IdentitiesSchema, IdentityOrgMembershipsSchema, OrgMembershipRole, OrgRolesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { IDENTITIES } from "@app/lib/api-docs"; -import { creationLimit, readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -16,7 +16,7 @@ export const registerIdentityRouter = async (server: FastifyZodProvider) => { method: "POST", url: "/", config: { - rateLimit: creationLimit + rateLimit: writeLimit }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), schema: { diff --git a/backend/src/server/routes/v2/organization-router.ts b/backend/src/server/routes/v2/organization-router.ts index 49488776b..e6ea094c3 100644 --- a/backend/src/server/routes/v2/organization-router.ts +++ b/backend/src/server/routes/v2/organization-router.ts @@ -9,7 +9,7 @@ import { UsersSchema } from "@app/db/schemas"; import { ORGANIZATIONS } from "@app/lib/api-docs"; -import { creationLimit, readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { ActorType, AuthMode } from "@app/services/auth/auth-type"; @@ -307,7 +307,7 @@ export const registerOrgRouter = async (server: FastifyZodProvider) => { method: "POST", url: "/", config: { - rateLimit: creationLimit + rateLimit: writeLimit }, schema: { body: z.object({ diff --git a/backend/src/server/routes/v2/project-router.ts b/backend/src/server/routes/v2/project-router.ts index 58ae9e293..8cfb2c19b 100644 --- a/backend/src/server/routes/v2/project-router.ts +++ b/backend/src/server/routes/v2/project-router.ts @@ -4,7 +4,7 @@ import { z } from "zod"; import { CertificateAuthoritiesSchema, CertificatesSchema, ProjectKeysSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { PROJECTS } from "@app/lib/api-docs"; -import { creationLimit, readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -142,7 +142,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { method: "POST", url: "/", config: { - rateLimit: creationLimit + rateLimit: writeLimit }, schema: { description: "Create a new project", From ba9219253771a4170596cda661d878adcdab72c6 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 19:41:09 +0800 Subject: [PATCH 015/101] misc: removed creation limits completely --- ...113425_remove-creation-limit-rate-limit.ts | 21 +++++++++++++++++ backend/src/db/schemas/rate-limit.ts | 1 - backend/src/ee/routes/v1/rate-limit-router.ts | 1 - .../services/rate-limit/rate-limit-types.ts | 1 - frontend/src/hooks/api/rateLimit/types.ts | 1 - .../admin/DashboardPage/RateLimitPanel.tsx | 23 ------------------- 6 files changed, 21 insertions(+), 27 deletions(-) create mode 100644 backend/src/db/migrations/20240806113425_remove-creation-limit-rate-limit.ts diff --git a/backend/src/db/migrations/20240806113425_remove-creation-limit-rate-limit.ts b/backend/src/db/migrations/20240806113425_remove-creation-limit-rate-limit.ts new file mode 100644 index 000000000..d82e4d65d --- /dev/null +++ b/backend/src/db/migrations/20240806113425_remove-creation-limit-rate-limit.ts @@ -0,0 +1,21 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + const hasCreationLimitCol = await knex.schema.hasColumn(TableName.RateLimit, "creationLimit"); + await knex.schema.alterTable(TableName.RateLimit, (t) => { + if (hasCreationLimitCol) { + t.dropColumn("creationLimit"); + } + }); +} + +export async function down(knex: Knex): Promise { + const hasCreationLimitCol = await knex.schema.hasColumn(TableName.RateLimit, "creationLimit"); + await knex.schema.alterTable(TableName.RateLimit, (t) => { + if (!hasCreationLimitCol) { + t.integer("creationLimit").defaultTo(30).notNullable(); + } + }); +} diff --git a/backend/src/db/schemas/rate-limit.ts b/backend/src/db/schemas/rate-limit.ts index 86b8776cc..233f6cdbc 100644 --- a/backend/src/db/schemas/rate-limit.ts +++ b/backend/src/db/schemas/rate-limit.ts @@ -15,7 +15,6 @@ export const RateLimitSchema = z.object({ authRateLimit: z.number().default(60), inviteUserRateLimit: z.number().default(30), mfaRateLimit: z.number().default(20), - creationLimit: z.number().default(30), publicEndpointLimit: z.number().default(30), createdAt: z.date(), updatedAt: z.date() diff --git a/backend/src/ee/routes/v1/rate-limit-router.ts b/backend/src/ee/routes/v1/rate-limit-router.ts index 2b08a0c32..66ea62ece 100644 --- a/backend/src/ee/routes/v1/rate-limit-router.ts +++ b/backend/src/ee/routes/v1/rate-limit-router.ts @@ -58,7 +58,6 @@ export const registerRateLimitRouter = async (server: FastifyZodProvider) => { authRateLimit: z.number(), inviteUserRateLimit: z.number(), mfaRateLimit: z.number(), - creationLimit: z.number(), publicEndpointLimit: z.number() }), response: { diff --git a/backend/src/ee/services/rate-limit/rate-limit-types.ts b/backend/src/ee/services/rate-limit/rate-limit-types.ts index 5a0b875a4..d924dce51 100644 --- a/backend/src/ee/services/rate-limit/rate-limit-types.ts +++ b/backend/src/ee/services/rate-limit/rate-limit-types.ts @@ -5,7 +5,6 @@ export type TRateLimitUpdateDTO = { authRateLimit: number; inviteUserRateLimit: number; mfaRateLimit: number; - creationLimit: number; publicEndpointLimit: number; }; diff --git a/frontend/src/hooks/api/rateLimit/types.ts b/frontend/src/hooks/api/rateLimit/types.ts index 5697fc298..53b075ce4 100644 --- a/frontend/src/hooks/api/rateLimit/types.ts +++ b/frontend/src/hooks/api/rateLimit/types.ts @@ -5,6 +5,5 @@ export type TRateLimit = { authRateLimit: number; inviteUserRateLimit: number; mfaRateLimit: number; - creationLimit: number; publicEndpointLimit: number; }; diff --git a/frontend/src/views/admin/DashboardPage/RateLimitPanel.tsx b/frontend/src/views/admin/DashboardPage/RateLimitPanel.tsx index 3979e002b..c1c987077 100644 --- a/frontend/src/views/admin/DashboardPage/RateLimitPanel.tsx +++ b/frontend/src/views/admin/DashboardPage/RateLimitPanel.tsx @@ -15,7 +15,6 @@ const formSchema = z.object({ authRateLimit: z.number(), inviteUserRateLimit: z.number(), mfaRateLimit: z.number(), - creationLimit: z.number(), publicEndpointLimit: z.number() }); @@ -41,7 +40,6 @@ export const RateLimitPanel = () => { authRateLimit: rateLimit?.authRateLimit ?? 60, inviteUserRateLimit: rateLimit?.inviteUserRateLimit ?? 30, mfaRateLimit: rateLimit?.mfaRateLimit ?? 20, - creationLimit: rateLimit?.creationLimit ?? 30, publicEndpointLimit: rateLimit?.publicEndpointLimit ?? 30 } }); @@ -60,7 +58,6 @@ export const RateLimitPanel = () => { authRateLimit, inviteUserRateLimit, mfaRateLimit, - creationLimit, publicEndpointLimit } = formData; @@ -71,7 +68,6 @@ export const RateLimitPanel = () => { authRateLimit, inviteUserRateLimit, mfaRateLimit, - creationLimit, publicEndpointLimit }); createNotification({ @@ -210,25 +206,6 @@ export const RateLimitPanel = () => { )} /> - ( - - field.onChange(Number(e.target.value))} - /> - - )} - /> Date: Tue, 6 Aug 2024 21:06:14 +0800 Subject: [PATCH 016/101] misc: made local workspace file not required if using auth token --- cli/packages/cmd/secrets.go | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/cli/packages/cmd/secrets.go b/cli/packages/cmd/secrets.go index 2894765ae..1ddfcc135 100644 --- a/cli/packages/cmd/secrets.go +++ b/cli/packages/cmd/secrets.go @@ -155,22 +155,24 @@ var secretsSetCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - util.RequireLocalWorkspaceFile() - - environmentName, _ := cmd.Flags().GetString("env") - if !cmd.Flags().Changed("env") { - environmentFromWorkspace := util.GetEnvFromWorkspaceFile() - if environmentFromWorkspace != "" { - environmentName = environmentFromWorkspace - } - } - token, err := util.GetInfisicalToken(cmd) if err != nil { util.HandleError(err, "Unable to parse flag") } - projectId, err := cmd.Flags().GetString("projectId") + if (token == nil) { + util.RequireLocalWorkspaceFile() + } + + environmentName, _ := cmd.Flags().GetString("env") + if !cmd.Flags().Changed("env") { + environmentFromWorkspace := util.GetEnvFromWorkspaceFile() + if environmentFromWorkspace != "" { + environmentName = environmentFromWorkspace + } + } + + projectId, err := cmd.Flags().GetString("projectId") if err != nil { util.HandleError(err, "Unable to parse flag") } From 14c1b4f07b2c098026d9a0ca3977552d8497897a Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Tue, 6 Aug 2024 21:21:45 +0800 Subject: [PATCH 017/101] misc: hide not found text when flag plain is enabled --- cli/packages/cmd/secrets.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/cli/packages/cmd/secrets.go b/cli/packages/cmd/secrets.go index 1ddfcc135..2addf1c83 100644 --- a/cli/packages/cmd/secrets.go +++ b/cli/packages/cmd/secrets.go @@ -415,11 +415,13 @@ func getSecretsByNames(cmd *cobra.Command, args []string) { if value, ok := secretsMap[secretKeyFromArg]; ok { requestedSecrets = append(requestedSecrets, value) } else { - requestedSecrets = append(requestedSecrets, models.SingleEnvironmentVariable{ - Key: secretKeyFromArg, - Type: "*not found*", - Value: "*not found*", - }) + if !(plainOutput || showOnlyValue) { + requestedSecrets = append(requestedSecrets, models.SingleEnvironmentVariable{ + Key: secretKeyFromArg, + Type: "*not found*", + Value: "*not found*", + }) + } } } From 2a1cfe15b4ee6ecf8ac6f0e20403dc47a77c7890 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 6 Aug 2024 10:07:41 -0400 Subject: [PATCH 018/101] update text when secrets deleted after integ delete --- .../components/IntegrationsSection/IntegrationsSection.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx b/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx index 19f21eb1a..0be10f129 100644 --- a/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx +++ b/frontend/src/views/IntegrationsPage/components/IntegrationsSection/IntegrationsSection.tsx @@ -311,7 +311,7 @@ export const IntegrationsSection = ({ checkIndicatorBg="text-white" onCheckedChange={() => setShouldDeleteSecrets.toggle()} > - Delete secrets in destination + Delete previously synced secrets from the destination
)} @@ -321,7 +321,7 @@ export const IntegrationsSection = ({ title={`Are you sure you also want to delete secrets on ${ (popUp?.deleteConfirmation.data as TIntegration)?.integration }?`} - subTitle="By confirming, all secrets managed by this integration will be deleted in the destination. This action is irreversible." + subTitle="By confirming, you acknowledge that all secrets managed by this integration will be removed from the destination. This action is irreversible." onChange={(isOpen) => handlePopUpToggle("deleteSecretsConfirmation", isOpen)} deleteKey="confirm" onDeleteApproved={async () => { From d1c142e5b121d1cbacfe43a785d65235ee0ad579 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 6 Aug 2024 12:39:06 -0400 Subject: [PATCH 019/101] patch findProjectUserWorkspaceKey --- backend/src/services/project-bot/project-bot-dal.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/services/project-bot/project-bot-dal.ts b/backend/src/services/project-bot/project-bot-dal.ts index 81c177d21..ecb23f78b 100644 --- a/backend/src/services/project-bot/project-bot-dal.ts +++ b/backend/src/services/project-bot/project-bot-dal.ts @@ -46,6 +46,7 @@ export const projectBotDALFactory = (db: TDbClient) => { const doc = await db .replicaNode()(TableName.ProjectMembership) .where(`${TableName.ProjectMembership}.projectId` as "projectId", projectId) + .where(`${TableName.ProjectKeys}.projectId` as "projectId", projectId) .where(`${TableName.Users}.isGhost` as "isGhost", false) .join(TableName.Users, `${TableName.ProjectMembership}.userId`, `${TableName.Users}.id`) .join(TableName.ProjectKeys, `${TableName.ProjectMembership}.userId`, `${TableName.ProjectKeys}.receiverId`) From 6f4be3e25a89a8939982022bb2d31c03591a2adb Mon Sep 17 00:00:00 2001 From: = Date: Wed, 7 Aug 2024 13:14:39 +0530 Subject: [PATCH 020/101] feat: removed name from tag and stricter slugification for tag endpoint --- .../20240806185442_drop-tag-name.ts | 21 +++++++++++++++ backend/src/db/schemas/secret-tags.ts | 1 - .../secret-approval-request-secret-dal.ts | 8 +++--- .../services/secret-snapshot/snapshot-dal.ts | 8 +++--- .../src/server/routes/v1/secret-tag-router.ts | 26 ++++++++++++++----- .../services/secret-tag/secret-tag-service.ts | 20 ++++---------- .../services/secret-tag/secret-tag-types.ts | 2 -- .../secret-v2-bridge/secret-v2-bridge-dal.ts | 22 +++++++--------- backend/src/services/secret/secret-dal.ts | 19 ++++++-------- backend/src/services/secret/secret-fns.ts | 3 +-- backend/src/services/secret/secret-service.ts | 2 +- 11 files changed, 73 insertions(+), 59 deletions(-) create mode 100644 backend/src/db/migrations/20240806185442_drop-tag-name.ts diff --git a/backend/src/db/migrations/20240806185442_drop-tag-name.ts b/backend/src/db/migrations/20240806185442_drop-tag-name.ts new file mode 100644 index 000000000..db85ab216 --- /dev/null +++ b/backend/src/db/migrations/20240806185442_drop-tag-name.ts @@ -0,0 +1,21 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; + +export async function up(knex: Knex): Promise { + const hasNameField = await knex.schema.hasColumn(TableName.SecretTag, "name"); + if (hasNameField) { + await knex.schema.alterTable(TableName.SecretTag, (t) => { + t.dropColumn("name"); + }); + } +} + +export async function down(knex: Knex): Promise { + const hasNameField = await knex.schema.hasColumn(TableName.SecretTag, "name"); + if (!hasNameField) { + await knex.schema.alterTable(TableName.SecretTag, (t) => { + t.string("name"); + }); + } +} diff --git a/backend/src/db/schemas/secret-tags.ts b/backend/src/db/schemas/secret-tags.ts index 04bb7b752..7ba7204a4 100644 --- a/backend/src/db/schemas/secret-tags.ts +++ b/backend/src/db/schemas/secret-tags.ts @@ -9,7 +9,6 @@ import { TImmutableDBKeys } from "./models"; export const SecretTagsSchema = z.object({ id: z.string().uuid(), - name: z.string(), slug: z.string(), color: z.string().nullable().optional(), createdAt: z.date(), diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts index b827f6a21..0f24c75b3 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts @@ -124,9 +124,9 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { { key: "tagJnId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color }) => ({ id, - name, + name: slug, slug, color }) @@ -292,9 +292,9 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { { key: "tagJnId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color }) => ({ id, - name, + name: slug, slug, color }) diff --git a/backend/src/ee/services/secret-snapshot/snapshot-dal.ts b/backend/src/ee/services/secret-snapshot/snapshot-dal.ts index 8e5014fdd..cee2292ad 100644 --- a/backend/src/ee/services/secret-snapshot/snapshot-dal.ts +++ b/backend/src/ee/services/secret-snapshot/snapshot-dal.ts @@ -377,9 +377,9 @@ export const snapshotDALFactory = (db: TDbClient) => { { key: "tagVersionId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ id, - name, + name: slug, slug, color, vId @@ -532,9 +532,9 @@ export const snapshotDALFactory = (db: TDbClient) => { { key: "tagVersionId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ id, - name, + name: slug, slug, color, vId diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index ce92409f6..4786548c6 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -1,3 +1,4 @@ +import slugify from "@sindresorhus/slugify"; import { z } from "zod"; import { SecretTagsSchema } from "@app/db/schemas"; @@ -49,7 +50,8 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaceTag: SecretTagsSchema + // akhilmhdh: for terraform backward compatiability + workspaceTag: SecretTagsSchema.extend({ name: z.string() }) }) } }, @@ -79,7 +81,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - workspaceTag: SecretTagsSchema + workspaceTag: SecretTagsSchema.extend({ name: z.string() }) }) } }, @@ -108,8 +110,14 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { projectId: z.string().trim().describe(SECRET_TAGS.CREATE.projectId) }), body: z.object({ - name: z.string().trim().describe(SECRET_TAGS.CREATE.name), - slug: z.string().trim().describe(SECRET_TAGS.CREATE.slug), + slug: z + .string() + .toLowerCase() + .trim() + .describe(SECRET_TAGS.CREATE.slug) + .refine((v) => slugify(v) === v, { + message: "Invalid slug. Should contain only characters, numbers and hyphen." + }), color: z.string().trim().describe(SECRET_TAGS.CREATE.color) }), response: { @@ -144,8 +152,14 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { tagId: z.string().trim().describe(SECRET_TAGS.UPDATE.tagId) }), body: z.object({ - name: z.string().trim().describe(SECRET_TAGS.UPDATE.name), - slug: z.string().trim().describe(SECRET_TAGS.UPDATE.slug), + slug: z + .string() + .toLowerCase() + .trim() + .describe(SECRET_TAGS.UPDATE.slug) + .refine((v) => slugify(v) === v, { + message: "Invalid slug. Should contain only characters, numbers and hyphen." + }), color: z.string().trim().describe(SECRET_TAGS.UPDATE.color) }), response: { diff --git a/backend/src/services/secret-tag/secret-tag-service.ts b/backend/src/services/secret-tag/secret-tag-service.ts index 76b57dc90..dd595f046 100644 --- a/backend/src/services/secret-tag/secret-tag-service.ts +++ b/backend/src/services/secret-tag/secret-tag-service.ts @@ -22,16 +22,7 @@ type TSecretTagServiceFactoryDep = { export type TSecretTagServiceFactory = ReturnType; export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSecretTagServiceFactoryDep) => { - const createTag = async ({ - name, - slug, - actor, - color, - actorId, - actorOrgId, - actorAuthMethod, - projectId - }: TCreateTagDTO) => { + const createTag = async ({ slug, actor, color, actorId, actorOrgId, actorAuthMethod, projectId }: TCreateTagDTO) => { const { permission } = await permissionService.getProjectPermission( actor, actorId, @@ -46,7 +37,6 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe const newTag = await secretTagDAL.create({ projectId, - name, slug, color, createdBy: actorId, @@ -55,7 +45,7 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe return newTag; }; - const updateTag = async ({ actorId, actor, actorOrgId, actorAuthMethod, id, name, color, slug }: TUpdateTagDTO) => { + const updateTag = async ({ actorId, actor, actorOrgId, actorAuthMethod, id, color, slug }: TUpdateTagDTO) => { const tag = await secretTagDAL.findById(id); if (!tag) throw new BadRequestError({ message: "Tag doesn't exist" }); @@ -73,7 +63,7 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Edit, ProjectPermissionSub.Tags); - const updatedTag = await secretTagDAL.updateById(tag.id, { name, color, slug }); + const updatedTag = await secretTagDAL.updateById(tag.id, { color, slug }); return updatedTag; }; @@ -107,7 +97,7 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Tags); - return tag; + return { ...tag, name: tag.slug }; }; const getTagBySlug = async ({ actorId, actor, actorOrgId, actorAuthMethod, slug, projectId }: TGetTagBySlugDTO) => { @@ -123,7 +113,7 @@ export const secretTagServiceFactory = ({ secretTagDAL, permissionService }: TSe ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Read, ProjectPermissionSub.Tags); - return tag; + return { ...tag, name: tag.slug }; }; const getProjectTags = async ({ actor, actorId, actorOrgId, actorAuthMethod, projectId }: TListProjectTagsDTO) => { diff --git a/backend/src/services/secret-tag/secret-tag-types.ts b/backend/src/services/secret-tag/secret-tag-types.ts index f2ace0901..ede0c55a3 100644 --- a/backend/src/services/secret-tag/secret-tag-types.ts +++ b/backend/src/services/secret-tag/secret-tag-types.ts @@ -1,14 +1,12 @@ import { TProjectPermission } from "@app/lib/types"; export type TCreateTagDTO = { - name: string; color: string; slug: string; } & TProjectPermission; export type TUpdateTagDTO = { id: string; - name?: string; slug?: string; color?: string; } & Omit; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts index b41e2c250..53ad29b17 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts @@ -136,7 +136,6 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")) .orderBy("id", "asc"); const data = sqlNestRelationships({ @@ -147,11 +146,11 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] @@ -169,14 +168,13 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { .where({ [`${TableName.SecretV2}Id` as const]: secretId }) .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) - .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")); + .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")); return tags.map((el) => ({ id: el.tagId, color: el.tagColor, slug: el.tagSlug, - name: el.tagName + name: el.tagSlug })); } catch (error) { throw new DatabaseError({ error, name: "get secret tags" }); @@ -210,7 +208,6 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")) .orderBy("id", "asc"); const data = sqlNestRelationships({ @@ -221,11 +218,11 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] @@ -350,8 +347,7 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { .select(selectAllTableCols(TableName.SecretV2)) .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) - .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")); + .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")); const docs = sqlNestRelationships({ data: rawDocs, key: "id", @@ -360,11 +356,11 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] diff --git a/backend/src/services/secret/secret-dal.ts b/backend/src/services/secret/secret-dal.ts index aac01d393..c3d9eef73 100644 --- a/backend/src/services/secret/secret-dal.ts +++ b/backend/src/services/secret/secret-dal.ts @@ -123,7 +123,6 @@ export const secretDALFactory = (db: TDbClient) => { .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")) .orderBy("id", "asc"); const data = sqlNestRelationships({ data: secs, @@ -133,11 +132,11 @@ export const secretDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] @@ -155,14 +154,13 @@ export const secretDALFactory = (db: TDbClient) => { .where({ [`${TableName.Secret}Id` as const]: secretId }) .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) - .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")); + .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")); return tags.map((el) => ({ id: el.tagId, color: el.tagColor, slug: el.tagSlug, - name: el.tagName + name: el.tagSlug })); } catch (error) { throw new DatabaseError({ error, name: "get secret tags" }); @@ -188,7 +186,6 @@ export const secretDALFactory = (db: TDbClient) => { .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")) .orderBy("id", "asc"); const data = sqlNestRelationships({ data: secs, @@ -198,11 +195,11 @@ export const secretDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] @@ -328,11 +325,11 @@ export const secretDALFactory = (db: TDbClient) => { { key: "tagId", label: "tags" as const, - mapper: ({ tagId: id, tagColor: color, tagSlug: slug, tagName: name }) => ({ + mapper: ({ tagId: id, tagColor: color, tagSlug: slug }) => ({ id, color, slug, - name + name: slug }) } ] diff --git a/backend/src/services/secret/secret-fns.ts b/backend/src/services/secret/secret-fns.ts index 662067645..d41770846 100644 --- a/backend/src/services/secret/secret-fns.ts +++ b/backend/src/services/secret/secret-fns.ts @@ -370,7 +370,6 @@ export const decryptSecretRaw = ( id: string; slug: string; color?: string | null; - name: string; }[]; }, key: string @@ -412,7 +411,7 @@ export const decryptSecretRaw = ( _id: secret.id, id: secret.id, user: secret.userId, - tags: secret.tags, + tags: secret.tags?.map((el) => ({ ...el, name: el.slug })), skipMultilineEncoding: secret.skipMultilineEncoding, secretReminderRepeatDays: secret.secretReminderRepeatDays, secretReminderNote: secret.secretReminderNote, diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 35c1de312..f338d1fda 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -2086,7 +2086,7 @@ export const secretServiceFactory = ({ return { ...updatedSecret[0], - tags: [...existingSecretTags, ...tags].map((t) => ({ id: t.id, slug: t.slug, name: t.name, color: t.color })) + tags: [...existingSecretTags, ...tags].map((t) => ({ id: t.id, slug: t.slug, color: t.color })) }; }; From 15fb01089b4eb43509d45831947ebe0819ffd1b0 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 7 Aug 2024 13:15:53 +0530 Subject: [PATCH 021/101] feat: name removal in tag respective changes in frontend --- .../tags/CreateTagModal/CreateTagModal.tsx | 22 +++++++++------ frontend/src/hooks/api/tags/queries.tsx | 3 +-- frontend/src/hooks/api/tags/types.ts | 2 -- .../SecretApprovalRequestChangeItem.tsx | 12 ++++----- .../components/ActionBar/ActionBar.tsx | 4 +-- .../SecretListView/SecretDetaiSidebar.tsx | 8 +++--- .../components/SecretListView/SecretItem.tsx | 4 +-- .../SecretListView/SecretListView.utils.ts | 1 - .../components/SnapshotView/SecretItem.tsx | 8 +++--- .../SecretTagsSection/AddSecretTagModal.tsx | 27 ++++++++++--------- .../SecretTagsSection/SecretTagsTable.tsx | 8 +++--- 11 files changed, 50 insertions(+), 49 deletions(-) diff --git a/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx b/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx index c65229a86..5eabb093d 100644 --- a/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx +++ b/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx @@ -3,6 +3,7 @@ import { Controller, useForm } from "react-hook-form"; import { faCheck } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { zodResolver } from "@hookform/resolvers/zod"; +import slugify from "@sindresorhus/slugify"; import { z } from "zod"; import { createNotification } from "@app/components/notifications"; @@ -87,7 +88,13 @@ type Props = { }; const createTagSchema = z.object({ - name: z.string().trim(), + slug: z + .string() + .trim() + .toLowerCase() + .refine((v) => slugify(v) === v, { + message: "Invalid slug. Should contain only characters, numbers and hyphen." + }), color: z.string().trim() }); @@ -110,7 +117,7 @@ export const CreateTagModal = ({ isOpen, onToggle }: Props): JSX.Element => { } = useForm({ resolver: zodResolver(createTagSchema) }); - + const { currentWorkspace } = useWorkspace(); const workspaceId = currentWorkspace?.id || ""; @@ -123,13 +130,12 @@ export const CreateTagModal = ({ isOpen, onToggle }: Props): JSX.Element => { if (!isOpen) reset(); }, [isOpen]); - const onFormSubmit = async ({ name, color }: FormData) => { + const onFormSubmit = async ({ slug, color }: FormData) => { try { await createWsTag({ workspaceID: workspaceId, - tagName: name, tagColor: color, - tagSlug: name.replace(" ", "_") + tagSlug: slug }); onToggle(false); reset(); @@ -155,11 +161,11 @@ export const CreateTagModal = ({ isOpen, onToggle }: Props): JSX.Element => {
( - - + + )} /> diff --git a/frontend/src/hooks/api/tags/queries.tsx b/frontend/src/hooks/api/tags/queries.tsx index 311ed0941..d1c4b533d 100644 --- a/frontend/src/hooks/api/tags/queries.tsx +++ b/frontend/src/hooks/api/tags/queries.tsx @@ -28,11 +28,10 @@ export const useCreateWsTag = () => { const queryClient = useQueryClient(); return useMutation({ - mutationFn: async ({ workspaceID, tagName, tagColor, tagSlug }) => { + mutationFn: async ({ workspaceID, tagColor, tagSlug }) => { const { data } = await apiRequest.post<{ workspaceTag: WsTag }>( `/api/v1/workspace/${workspaceID}/tags`, { - name: tagName, color: tagColor || "", slug: tagSlug } diff --git a/frontend/src/hooks/api/tags/types.ts b/frontend/src/hooks/api/tags/types.ts index 9b4f70587..72d710cfa 100644 --- a/frontend/src/hooks/api/tags/types.ts +++ b/frontend/src/hooks/api/tags/types.ts @@ -2,7 +2,6 @@ export type UserWsTags = WsTag[]; export type WsTag = { id: string; - name: string; slug: string; color?: string; projectId: string; @@ -16,7 +15,6 @@ export type WorkspaceTag = { id: string; name: string; slug: string }; export type CreateTagDTO = { workspaceID: string; tagSlug: string; - tagName: string; tagColor: string; }; diff --git a/frontend/src/views/SecretApprovalPage/components/SecretApprovalRequest/components/SecretApprovalRequestChangeItem.tsx b/frontend/src/views/SecretApprovalPage/components/SecretApprovalRequest/components/SecretApprovalRequestChangeItem.tsx index 3fbe4357b..6adf591e7 100644 --- a/frontend/src/views/SecretApprovalPage/components/SecretApprovalRequest/components/SecretApprovalRequestChangeItem.tsx +++ b/frontend/src/views/SecretApprovalPage/components/SecretApprovalRequest/components/SecretApprovalRequestChangeItem.tsx @@ -97,7 +97,7 @@ export const SecretApprovalRequestChangeItem = ({ {secretVersion?.secretComment} - {secretVersion?.tags?.map(({ name, id: tagId, color }) => ( + {secretVersion?.tags?.map(({ slug, id: tagId, color }) => ( -
{name}
+
{slug}
))} @@ -119,7 +119,7 @@ export const SecretApprovalRequestChangeItem = ({ {newVersion?.secretComment} - {newVersion?.tags?.map(({ name, id: tagId, color }) => ( + {newVersion?.tags?.map(({ slug, id: tagId, color }) => ( -
{name}
+
{slug}
))} @@ -157,7 +157,7 @@ export const SecretApprovalRequestChangeItem = ({ {(op === CommitType.CREATE ? newVersion?.tags : secretVersion?.tags)?.map( - ({ name, id: tagId, color }) => ( + ({ slug, id: tagId, color }) => ( -
{name}
+
{slug}
) )} diff --git a/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx b/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx index 705234f63..65cb0389f 100644 --- a/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx +++ b/frontend/src/views/SecretMainPage/components/ActionBar/ActionBar.tsx @@ -327,7 +327,7 @@ export const ActionBar = ({ Apply tags to filter secrets - {tags.map(({ id, name, color }) => ( + {tags.map(({ id, slug, color }) => ( { evt.preventDefault(); @@ -342,7 +342,7 @@ export const ActionBar = ({ className="mr-2 h-2 w-2 rounded-full" style={{ background: color || "#bec2c8" }} /> - {name} + {slug} ))} diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetaiSidebar.tsx b/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetaiSidebar.tsx index 2e983bda6..e2a1c3b87 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetaiSidebar.tsx +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretDetaiSidebar.tsx @@ -254,7 +254,7 @@ export const SecretDetailSidebar = ({ )}
- {fields.map(({ tagColor, id: formId, name, id }) => ( + {fields.map(({ tagColor, id: formId, slug, id }) => ( -
{name}
+
{slug}
))} @@ -296,7 +296,7 @@ export const SecretDetailSidebar = ({ Add tags to this secret {tags.map((tag) => { - const { id: tagId, name, color } = tag; + const { id: tagId, slug, color } = tag; const isSelected = selectedTagsGroupById?.[tagId]; return ( @@ -311,7 +311,7 @@ export const SecretDetailSidebar = ({ className="mr-2 h-2 w-2 rounded-full" style={{ background: color || "#bec2c8" }} /> - {name} + {slug}
); diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx b/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx index 22207cb90..5b62dd526 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretItem.tsx @@ -336,7 +336,7 @@ export const SecretItem = memo( Add tags to this secret {tags.map((tag) => { - const { id: tagId, name, color } = tag; + const { id: tagId, slug, color } = tag; const isTagSelected = selectedTagsGroupById?.[tagId]; return ( @@ -358,7 +358,7 @@ export const SecretItem = memo( className="mr-2 h-2 w-2 rounded-full" style={{ background: color || "#bec2c8" }} /> - {name} + {slug} ); diff --git a/frontend/src/views/SecretMainPage/components/SecretListView/SecretListView.utils.ts b/frontend/src/views/SecretMainPage/components/SecretListView/SecretListView.utils.ts index a3040b43c..eb9e4d195 100644 --- a/frontend/src/views/SecretMainPage/components/SecretListView/SecretListView.utils.ts +++ b/frontend/src/views/SecretMainPage/components/SecretListView/SecretListView.utils.ts @@ -49,7 +49,6 @@ export const formSchema = z.object({ tags: z .object({ id: z.string(), - name: z.string(), slug: z.string(), tagColor: z.string().optional() }) diff --git a/frontend/src/views/SecretMainPage/components/SnapshotView/SecretItem.tsx b/frontend/src/views/SecretMainPage/components/SnapshotView/SecretItem.tsx index 2a7397ec9..d6680bcef 100644 --- a/frontend/src/views/SecretMainPage/components/SnapshotView/SecretItem.tsx +++ b/frontend/src/views/SecretMainPage/components/SnapshotView/SecretItem.tsx @@ -151,7 +151,7 @@ export const SecretItem = ({ mode, preSecret, postSecret }: Props) => { Tags {isModified && ( - {preSecret?.tags?.map(({ name, id: tagId, color }) => ( + {preSecret?.tags?.map(({ slug, id: tagId, color }) => ( { className="h-3 w-3 rounded-full" style={{ backgroundColor: color || "#bec2c8" }} /> -
{name}
+
{slug}
))} )} - {postSecret?.tags?.map(({ name, id: tagId, color }) => ( + {postSecret?.tags?.map(({ slug, id: tagId, color }) => ( { className="h-3 w-3 rounded-full" style={{ backgroundColor: color || "#bec2c8" }} /> -
{name}
+
{slug}
))} diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx index 7cc1a926e..0a2c4856e 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx @@ -1,6 +1,7 @@ import { Controller, useForm } from "react-hook-form"; -import { yupResolver } from "@hookform/resolvers/yup"; -import * as yup from "yup"; +import { zodResolver } from "@hookform/resolvers/zod"; +import slugify from "@sindresorhus/slugify"; +import { z } from "zod"; import { createNotification } from "@app/components/notifications"; import { Button, FormControl, Input, Modal, ModalClose, ModalContent } from "@app/components/v2"; @@ -8,11 +9,13 @@ import { useWorkspace } from "@app/context"; import { useCreateWsTag } from "@app/hooks/api"; import { UsePopUpState } from "@app/hooks/usePopUp"; -const schema = yup.object({ - name: yup.string().required().label("Tag Name") +const schema = z.object({ + slug: z.string().refine((v) => slugify(v) === v, { + message: "Invalid slug. Should contain only characters, numbers and hyphen." + }) }); -export type FormData = yup.InferType; +export type FormData = z.infer; type Props = { popUp: UsePopUpState<["CreateSecretTag", "deleteTagConfirmation"]>; @@ -26,7 +29,6 @@ type Props = { }; export const AddSecretTagModal = ({ popUp, handlePopUpClose, handlePopUpToggle }: Props) => { - const { currentWorkspace } = useWorkspace(); const createWsTag = useCreateWsTag(); const { @@ -35,17 +37,16 @@ export const AddSecretTagModal = ({ popUp, handlePopUpClose, handlePopUpToggle } handleSubmit, formState: { isSubmitting } } = useForm({ - resolver: yupResolver(schema) + resolver: zodResolver(schema) }); - const onFormSubmit = async ({ name }: FormData) => { + const onFormSubmit = async ({ slug }: FormData) => { try { if (!currentWorkspace?.id) return; await createWsTag.mutateAsync({ workspaceID: currentWorkspace?.id, - tagName: name, - tagSlug: name.replace(/\s+/g, " ").replace(" ", "_"), + tagSlug: slug, tagColor: "" }); @@ -80,11 +81,11 @@ export const AddSecretTagModal = ({ popUp, handlePopUpClose, handlePopUpToggle } ( - - + + )} /> diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/SecretTagsTable.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/SecretTagsTable.tsx index d0655f984..cc68b0700 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/SecretTagsTable.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/SecretTagsTable.tsx @@ -40,7 +40,6 @@ export const SecretTagsTable = ({ handlePopUpOpen }: Props) => { - @@ -49,9 +48,8 @@ export const SecretTagsTable = ({ handlePopUpOpen }: Props) => { {isLoading && } {!isLoading && data && - data.map(({ id, name, slug }) => ( - - + data.map(({ id, slug }) => ( +
Tag Slug
{name}
{slug} { handlePopUpOpen("deleteTagConfirmation", { - name, + name: slug, id }) } From c109fbab3ec779267c86ff5b08640b10a89468d1 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 7 Aug 2024 13:24:22 +0530 Subject: [PATCH 022/101] feat: removed tag name used in queries --- .../secret-approval-request-secret-dal.ts | 6 ++---- .../services/secret-snapshot/snapshot-dal.ts | 20 ++++++++----------- backend/src/services/secret/secret-dal.ts | 3 +-- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts index 0f24c75b3..7bd6a3fa0 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts @@ -88,8 +88,7 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretApprovalRequestSecretTag).as("tagJnId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ) .select( db.ref("secretBlindIndex").withSchema(TableName.Secret).as("orgSecBlindIndex"), @@ -269,8 +268,7 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretApprovalRequestSecretTagV2).as("tagJnId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ) .select( db.ref("version").withSchema(TableName.SecretV2).as("orgSecVersion"), diff --git a/backend/src/ee/services/secret-snapshot/snapshot-dal.ts b/backend/src/ee/services/secret-snapshot/snapshot-dal.ts index cee2292ad..e4d341c1a 100644 --- a/backend/src/ee/services/secret-snapshot/snapshot-dal.ts +++ b/backend/src/ee/services/secret-snapshot/snapshot-dal.ts @@ -100,8 +100,7 @@ export const snapshotDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretVersionTag).as("tagVersionId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ); return sqlNestRelationships({ data, @@ -132,9 +131,9 @@ export const snapshotDALFactory = (db: TDbClient) => { { key: "tagVersionId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ id, - name, + name: slug, slug, color, vId @@ -195,8 +194,7 @@ export const snapshotDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretVersionV2Tag).as("tagVersionId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ); return sqlNestRelationships({ data, @@ -227,9 +225,9 @@ export const snapshotDALFactory = (db: TDbClient) => { { key: "tagVersionId", label: "tags" as const, - mapper: ({ tagId: id, tagName: name, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ + mapper: ({ tagId: id, tagSlug: slug, tagColor: color, tagVersionId: vId }) => ({ id, - name, + name: slug, slug, color, vId @@ -353,8 +351,7 @@ export const snapshotDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretVersionTag).as("tagVersionId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ); const formated = sqlNestRelationships({ @@ -508,8 +505,7 @@ export const snapshotDALFactory = (db: TDbClient) => { db.ref("id").withSchema(TableName.SecretTag).as("tagId"), db.ref("id").withSchema(TableName.SecretVersionV2Tag).as("tagVersionId"), db.ref("color").withSchema(TableName.SecretTag).as("tagColor"), - db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug"), - db.ref("name").withSchema(TableName.SecretTag).as("tagName") + db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug") ); const formated = sqlNestRelationships({ diff --git a/backend/src/services/secret/secret-dal.ts b/backend/src/services/secret/secret-dal.ts index c3d9eef73..290a9597a 100644 --- a/backend/src/services/secret/secret-dal.ts +++ b/backend/src/services/secret/secret-dal.ts @@ -315,8 +315,7 @@ export const secretDALFactory = (db: TDbClient) => { .select(selectAllTableCols(TableName.Secret)) .select(db.ref("id").withSchema(TableName.SecretTag).as("tagId")) .select(db.ref("color").withSchema(TableName.SecretTag).as("tagColor")) - .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")) - .select(db.ref("name").withSchema(TableName.SecretTag).as("tagName")); + .select(db.ref("slug").withSchema(TableName.SecretTag).as("tagSlug")); const docs = sqlNestRelationships({ data: rawDocs, key: "id", From 64c8125e4b09e4458eec96dfe78030cf4ff13802 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 11:13:02 -0400 Subject: [PATCH 023/101] add external secrets operator mention in k8s docs --- docs/integrations/platforms/kubernetes.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/integrations/platforms/kubernetes.mdx b/docs/integrations/platforms/kubernetes.mdx index dc76f2584..9ab7347ac 100644 --- a/docs/integrations/platforms/kubernetes.mdx +++ b/docs/integrations/platforms/kubernetes.mdx @@ -1,5 +1,5 @@ --- -title: "Kubernetes" +title: "Kubernetes Operator" description: "How to use Infisical to inject secrets into Kubernetes clusters." --- @@ -9,6 +9,10 @@ The Infisical Secrets Operator is a Kubernetes controller that retrieves secrets It uses an `InfisicalSecret` resource to specify authentication and storage methods. The operator continuously updates secrets and can also reload dependent deployments automatically. + + If you are already using the External Secrets operator, you can you can view the integration documentation for it [here](https://external-secrets.io/latest/provider/infisical/). + + ## Install Operator The operator can be install via [Helm](https://helm.sh) or [kubectl](https://github.com/kubernetes/kubectl) From 1248840dc86d9ae5835ac35ecd68c1fb95c69792 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 7 Aug 2024 21:23:22 +0530 Subject: [PATCH 024/101] fix: resolved replication secret not getting deleted --- .../services/secret-replication/secret-replication-service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/ee/services/secret-replication/secret-replication-service.ts b/backend/src/ee/services/secret-replication/secret-replication-service.ts index 52d10b690..b32d459c5 100644 --- a/backend/src/ee/services/secret-replication/secret-replication-service.ts +++ b/backend/src/ee/services/secret-replication/secret-replication-service.ts @@ -449,7 +449,7 @@ export const secretReplicationServiceFactory = ({ }); } if (locallyDeletedSecrets.length) { - await secretDAL.delete( + await secretV2BridgeDAL.delete( { $in: { id: locallyDeletedSecrets.map(({ id }) => id) From 68e05b7198b6b82bf510fb8604b3496849e0b964 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 14:51:48 -0400 Subject: [PATCH 025/101] add debug log to print keyring error --- cli/packages/util/keyringwrapper.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index cadb72ebd..065271906 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -2,8 +2,10 @@ package util import ( "encoding/base64" + "fmt" "github.com/manifoldco/promptui" + "github.com/rs/zerolog/log" "github.com/zalando/go-keyring" ) @@ -26,6 +28,7 @@ func SetValueInKeyring(key, value string) error { err = keyring.Set(currentVaultBackend, MAIN_KEYRING_SERVICE, key, value) if err != nil { + log.Debug().Msg(fmt.Sprintf("Error while setting default keyring: %v", err)) configFile, _ := GetConfigFile() if configFile.VaultBackendPassphrase == "" { @@ -50,6 +53,7 @@ func SetValueInKeyring(key, value string) error { } err = keyring.Set(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key, value) + log.Debug().Msg(fmt.Sprintf("Error while setting file keyring: %v", err)) } return err From 353d231a4eaa1b62b7ee11e2f1883ee1d333abdc Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 18:35:07 -0400 Subject: [PATCH 026/101] =?UTF-8?q?Patch=20CLI=20auto=20select=20file=20va?= =?UTF-8?q?ult=20#=20Description=20=F0=9F=93=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When we auto select file vault, we also need to set it's type. When we set the type, we don't need to fall back to file vault in the `GetValueInKeyring` and `DeleteValueInKeyring` because `currentVaultBackend` will be `file`. Also rephrased the text asking the user to eneter a passphrase. --- cli/packages/util/keyringwrapper.go | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 065271906..296f6439c 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -32,9 +32,8 @@ func SetValueInKeyring(key, value string) error { configFile, _ := GetConfigFile() if configFile.VaultBackendPassphrase == "" { - PrintWarning("System keyring could not be used, falling back to `file` vault for sensitive data storage.") passphrasePrompt := promptui.Prompt{ - Label: "Enter the passphrase to use for keyring encryption", + Label: "Enter a passphrase to protect your local backup secrets & login access token", } passphrase, err := passphrasePrompt.Run() if err != nil { @@ -43,6 +42,7 @@ func SetValueInKeyring(key, value string) error { encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) configFile.VaultBackendPassphrase = encodedPassphrase + configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE err = WriteConfigFile(&configFile) if err != nil { return err @@ -65,12 +65,7 @@ func GetValueInKeyring(key string) (string, error) { PrintErrorAndExit(1, err, "Unable to get current vault. Tip: run [infisical reset] then try again") } - value, err := keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) - - if err != nil { - value, err = keyring.Get(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) - } - return value, err + return keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) } @@ -80,11 +75,6 @@ func DeleteValueInKeyring(key string) error { return err } - err = keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + return keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) - if err != nil { - err = keyring.Delete(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) - } - - return err } From 942e5f2f65202f3738fb7fc323a3417e25e9f41b Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 18:35:57 -0400 Subject: [PATCH 027/101] update phrase --- cli/packages/util/keyringwrapper.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 296f6439c..3e8dbadba 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -33,7 +33,7 @@ func SetValueInKeyring(key, value string) error { if configFile.VaultBackendPassphrase == "" { passphrasePrompt := promptui.Prompt{ - Label: "Enter a passphrase to protect your local backup secrets & login access token", + Label: "Enter a passphrase to protect your local secret backups & login access token", } passphrase, err := passphrasePrompt.Run() if err != nil { From cd9316537d9b0673f4d397883259e6bdff557aab Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 18:56:15 -0400 Subject: [PATCH 028/101] prevent auto saving passphrase to disk --- cli/packages/util/keyringwrapper.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 3e8dbadba..ecf958296 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -1,8 +1,8 @@ package util import ( - "encoding/base64" "fmt" + "os" "github.com/manifoldco/promptui" "github.com/rs/zerolog/log" @@ -33,23 +33,19 @@ func SetValueInKeyring(key, value string) error { if configFile.VaultBackendPassphrase == "" { passphrasePrompt := promptui.Prompt{ - Label: "Enter a passphrase to protect your local secret backups & login access token", + Label: "Enter a passphrase to encrypt sensitive CLI data at rest", } passphrase, err := passphrasePrompt.Run() if err != nil { return err } - - encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) - configFile.VaultBackendPassphrase = encodedPassphrase configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE err = WriteConfigFile(&configFile) if err != nil { return err } - // We call this function at last to trigger the environment variable to be set - GetConfigFile() + os.Setenv("INFISICAL_VAULT_FILE_PASSPHRASE", passphrase) } err = keyring.Set(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key, value) From bb934ef7b1c47195b2ff65a335712add791cb59c Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 23:02:35 +0000 Subject: [PATCH 029/101] set vault type when auto selection enabled --- cli/packages/util/keyringwrapper.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index ecf958296..4714858ac 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -39,13 +39,15 @@ func SetValueInKeyring(key, value string) error { if err != nil { return err } + encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) + configFile.VaultBackendPassphrase = encodedPassphrase configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE - err = WriteConfigFile(&configFile) if err != nil { return err } - os.Setenv("INFISICAL_VAULT_FILE_PASSPHRASE", passphrase) + // We call this function at last to trigger the environment variable to be set + GetConfigFile() } err = keyring.Set(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key, value) From 79181a1e3d681f24c9cafc498e6e041c4a11b1ef Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 23:03:14 +0000 Subject: [PATCH 030/101] remove os --- cli/packages/util/keyringwrapper.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 4714858ac..24ee0453b 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -2,7 +2,6 @@ package util import ( "fmt" - "os" "github.com/manifoldco/promptui" "github.com/rs/zerolog/log" From 4892eea009ee1ed73c27d783d2dc4e7adc735d11 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 19:06:25 -0400 Subject: [PATCH 031/101] add base64 package --- cli/packages/util/keyringwrapper.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 24ee0453b..4ca5ae98d 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -1,6 +1,7 @@ package util import ( + "encoding/base64" "fmt" "github.com/manifoldco/promptui" From d91fb0db0277c477574d6b354a3bb8ca101cef47 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 22:12:50 -0400 Subject: [PATCH 032/101] Revert "Patch CLI auto select file vault " --- cli/packages/util/keyringwrapper.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 4ca5ae98d..065271906 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -32,16 +32,18 @@ func SetValueInKeyring(key, value string) error { configFile, _ := GetConfigFile() if configFile.VaultBackendPassphrase == "" { + PrintWarning("System keyring could not be used, falling back to `file` vault for sensitive data storage.") passphrasePrompt := promptui.Prompt{ - Label: "Enter a passphrase to encrypt sensitive CLI data at rest", + Label: "Enter the passphrase to use for keyring encryption", } passphrase, err := passphrasePrompt.Run() if err != nil { return err } + encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) configFile.VaultBackendPassphrase = encodedPassphrase - configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE + err = WriteConfigFile(&configFile) if err != nil { return err } @@ -63,7 +65,12 @@ func GetValueInKeyring(key string) (string, error) { PrintErrorAndExit(1, err, "Unable to get current vault. Tip: run [infisical reset] then try again") } - return keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + value, err := keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + + if err != nil { + value, err = keyring.Get(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) + } + return value, err } @@ -73,6 +80,11 @@ func DeleteValueInKeyring(key string) error { return err } - return keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + err = keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) + if err != nil { + err = keyring.Delete(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) + } + + return err } From ba5e877a3b176394f33379cdb16ef8e6de55b713 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 22:12:03 -0400 Subject: [PATCH 033/101] Revert "add base64 package" This reverts commit 4892eea009ee1ed73c27d783d2dc4e7adc735d11. --- cli/packages/util/keyringwrapper.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 065271906..5bcf8830c 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -1,7 +1,6 @@ package util import ( - "encoding/base64" "fmt" "github.com/manifoldco/promptui" From 2739b08e59bd69e616cac444500577f3c14bbe63 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Wed, 7 Aug 2024 22:15:06 -0400 Subject: [PATCH 034/101] revert bb934ef7b1c47195b2ff65a335712add791cb59c --- cli/packages/util/keyringwrapper.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 5bcf8830c..065271906 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -1,6 +1,7 @@ package util import ( + "encoding/base64" "fmt" "github.com/manifoldco/promptui" From bb52e2beb4567eb2eef9972ac90512fad3acb1a1 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 00:31:41 -0400 Subject: [PATCH 035/101] Update secret-tag-router.ts --- backend/src/server/routes/v1/secret-tag-router.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index 4786548c6..9fc08d6c7 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -116,7 +116,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { .trim() .describe(SECRET_TAGS.CREATE.slug) .refine((v) => slugify(v) === v, { - message: "Invalid slug. Should contain only characters, numbers and hyphen." + message: "Invalid slug. Slug can only contain alphanumeric characters and hyphens." }), color: z.string().trim().describe(SECRET_TAGS.CREATE.color) }), From 254446c89520ad821a4e14939996a9b180e81057 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 8 Aug 2024 13:04:33 +0530 Subject: [PATCH 036/101] fix: resolved keyring dataset too big by keeping only the encryption key --- cli/packages/util/constants.go | 4 +- cli/packages/util/secrets.go | 123 ++++++++++++++++++++------------- 2 files changed, 78 insertions(+), 49 deletions(-) diff --git a/cli/packages/util/constants.go b/cli/packages/util/constants.go index 5cd66f50b..432b1cb82 100644 --- a/cli/packages/util/constants.go +++ b/cli/packages/util/constants.go @@ -38,7 +38,9 @@ const ( SERVICE_TOKEN_IDENTIFIER = "service-token" UNIVERSAL_AUTH_TOKEN_IDENTIFIER = "universal-auth-token" - INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" + // akhilmhdh: @depreciated remove in version v0.30 + INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" + INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY = "infisical-backup-secret-encryption-key" ) var ( diff --git a/cli/packages/util/secrets.go b/cli/packages/util/secrets.go index c51338d61..5d528df86 100644 --- a/cli/packages/util/secrets.go +++ b/cli/packages/util/secrets.go @@ -1,14 +1,15 @@ package util import ( + "crypto/rand" "encoding/base64" + "encoding/hex" "encoding/json" "errors" "fmt" "os" "path" "regexp" - "slices" "strings" "unicode" @@ -285,18 +286,25 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo log.Debug().Msgf("GetAllEnvironmentVariables: Trying to fetch secrets JTW token [err=%s]", err) if err == nil { - WriteBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, res.Secrets) + backupEncryptionKey, err := GetBackupEncryptionKey() + if err != nil { + return nil, err + } + WriteBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, backupEncryptionKey, res.Secrets) } secretsToReturn = res.Secrets errorToReturn = err // only attempt to serve cached secrets if no internet connection and if at least one secret cached if !isConnected { - backedSecrets, err := ReadBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath) - if len(backedSecrets) > 0 { - PrintWarning("Unable to fetch latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug") - secretsToReturn = backedSecrets - errorToReturn = err + backupEncryptionKey, _ := GetBackupEncryptionKey() + if backupEncryptionKey != nil { + backedSecrets, err := ReadBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, backupEncryptionKey) + if len(backedSecrets) > 0 { + PrintWarning("Unable to fetch latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug") + secretsToReturn = backedSecrets + errorToReturn = err + } } } @@ -476,71 +484,90 @@ func OverrideSecrets(secrets []models.SingleEnvironmentVariable, secretType stri return secretsToReturn } -func WriteBackupSecrets(workspace string, environment string, secretsPath string, secrets []models.SingleEnvironmentVariable) error { - var backedUpSecrets []models.BackupSecretKeyRing - secretValueInKeyRing, err := GetValueInKeyring(INFISICAL_BACKUP_SECRET) +func GetBackupEncryptionKey() ([]byte, error) { + encryptionKey, err := GetValueInKeyring(INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY) if err != nil { if err == keyring.ErrUnsupportedPlatform { - return errors.New("your OS does not support keyring. Consider using a service token https://infisical.com/docs/documentation/platform/token") - } else if err != keyring.ErrNotFound { - return fmt.Errorf("something went wrong, failed to retrieve value from system keyring [error=%v]", err) + return nil, errors.New("your OS does not support keyring. Consider using a service token https://infisical.com/docs/documentation/platform/token") + } else if err == keyring.ErrNotFound { + // generate a new key + randomizedKey := make([]byte, 16) + rand.Read(randomizedKey) + encryptionKey = hex.EncodeToString(randomizedKey) + if err := SetValueInKeyring(INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY, encryptionKey); err != nil { + return nil, err + } + return []byte(encryptionKey), nil + } else { + return nil, fmt.Errorf("something went wrong, failed to retrieve value from system keyring [error=%v]", err) } } - _ = json.Unmarshal([]byte(secretValueInKeyRing), &backedUpSecrets) + return []byte(encryptionKey), nil +} - backedUpSecrets = slices.DeleteFunc(backedUpSecrets, func(e models.BackupSecretKeyRing) bool { - return e.SecretPath == secretsPath && e.ProjectID == workspace && e.Environment == environment - }) - newBackupSecret := models.BackupSecretKeyRing{ - ProjectID: workspace, - Environment: environment, - SecretPath: secretsPath, - Secrets: secrets, - } - backedUpSecrets = append(backedUpSecrets, newBackupSecret) +func WriteBackupSecrets(workspace string, environment string, secretsPath string, encryptionKey []byte, secrets []models.SingleEnvironmentVariable) error { + formattedPath := strings.ReplaceAll(secretsPath, "/", "-") + fileName := fmt.Sprintf("project_secrets_%s_%s_%s.json", workspace, environment, formattedPath) + secrets_backup_folder_name := "secrets-backup" - listOfSecretsMarshalled, err := json.Marshal(backedUpSecrets) + _, fullConfigFileDirPath, err := GetFullConfigFilePath() if err != nil { - return err + return fmt.Errorf("WriteBackupSecrets: unable to get full config folder path [err=%s]", err) } - err = SetValueInKeyring(INFISICAL_BACKUP_SECRET, string(listOfSecretsMarshalled)) + // create secrets backup directory + fullPathToSecretsBackupFolder := fmt.Sprintf("%s/%s", fullConfigFileDirPath, secrets_backup_folder_name) + if _, err := os.Stat(fullPathToSecretsBackupFolder); errors.Is(err, os.ErrNotExist) { + err := os.Mkdir(fullPathToSecretsBackupFolder, os.ModePerm) + if err != nil { + return err + } + } + marshaledSecrets, _ := json.Marshal(secrets) + result, err := crypto.EncryptSymmetric(marshaledSecrets, encryptionKey) + listOfSecretsMarshalled, _ := json.Marshal(result) + err = os.WriteFile(fmt.Sprintf("%s/%s", fullPathToSecretsBackupFolder, fileName), listOfSecretsMarshalled, 0600) if err != nil { - return fmt.Errorf("StoreUserCredsInKeyRing: unable to store user credentials because [err=%s]", err) + return fmt.Errorf("WriteBackupSecrets: Unable to write backup secrets to file [err=%s]", err) } return nil } -func ReadBackupSecrets(workspace string, environment string, secretsPath string) ([]models.SingleEnvironmentVariable, error) { - secretValueInKeyRing, err := GetValueInKeyring(INFISICAL_BACKUP_SECRET) +func ReadBackupSecrets(workspace string, environment string, secretsPath string, encryptionKey []byte) ([]models.SingleEnvironmentVariable, error) { + formattedPath := strings.ReplaceAll(secretsPath, "/", "-") + fileName := fmt.Sprintf("project_secrets_%s_%s_%s.json", workspace, environment, formattedPath) + secrets_backup_folder_name := "secrets-backup" + + _, fullConfigFileDirPath, err := GetFullConfigFilePath() if err != nil { - if err == keyring.ErrUnsupportedPlatform { - return nil, errors.New("your OS does not support keyring. Consider using a service token https://infisical.com/docs/documentation/platform/token") - } else if err == keyring.ErrNotFound { - return nil, errors.New("credentials not found in system keyring") - } else { - return nil, fmt.Errorf("something went wrong, failed to retrieve value from system keyring [error=%v]", err) - } + return nil, fmt.Errorf("ReadBackupSecrets: unable to write config file because an error occurred when getting config file path [err=%s]", err) } - var backedUpSecrets []models.BackupSecretKeyRing - err = json.Unmarshal([]byte(secretValueInKeyRing), &backedUpSecrets) + fullPathToSecretsBackupFolder := fmt.Sprintf("%s/%s", fullConfigFileDirPath, secrets_backup_folder_name) + if _, err := os.Stat(fullPathToSecretsBackupFolder); errors.Is(err, os.ErrNotExist) { + return nil, nil + } + + encryptedBackupSecretsFilePath := fmt.Sprintf("%s/%s", fullPathToSecretsBackupFolder, fileName) + + encryptedBackupSecretsAsBytes, err := os.ReadFile(encryptedBackupSecretsFilePath) if err != nil { - return nil, fmt.Errorf("getUserCredsFromKeyRing: Something went wrong when unmarshalling user creds [err=%s]", err) + return nil, err } - for _, backupSecret := range backedUpSecrets { - if backupSecret.Environment == environment && backupSecret.ProjectID == workspace && backupSecret.SecretPath == secretsPath { - return backupSecret.Secrets, nil - } - } + var encryptedBackUpSecrets models.SymmetricEncryptionResult + _ = json.Unmarshal(encryptedBackupSecretsAsBytes, &encryptedBackUpSecrets) + result, err := crypto.DecryptSymmetric(encryptionKey, encryptedBackUpSecrets.CipherText, encryptedBackUpSecrets.AuthTag, encryptedBackUpSecrets.Nonce) + + var plainTextSecrets []models.SingleEnvironmentVariable + _ = json.Unmarshal(result, &plainTextSecrets) + + return plainTextSecrets, nil - return nil, nil } func DeleteBackupSecrets() error { - // keeping this logic for now. Need to remove it later as more users migrate keyring would be used and this folder will be removed completely by then secrets_backup_folder_name := "secrets-backup" _, fullConfigFileDirPath, err := GetFullConfigFilePath() @@ -549,8 +576,8 @@ func DeleteBackupSecrets() error { } fullPathToSecretsBackupFolder := fmt.Sprintf("%s/%s", fullConfigFileDirPath, secrets_backup_folder_name) - DeleteValueInKeyring(INFISICAL_BACKUP_SECRET) + DeleteValueInKeyring(INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY) return os.RemoveAll(fullPathToSecretsBackupFolder) } From 809e4eeba1d92a06e6fe181856f6c0e3be50fe99 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 8 Aug 2024 21:23:04 +0530 Subject: [PATCH 037/101] fix: resolved cli failign to get overriden secret in get command --- cli/packages/cmd/secrets.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cli/packages/cmd/secrets.go b/cli/packages/cmd/secrets.go index 2894765ae..daf3eb039 100644 --- a/cli/packages/cmd/secrets.go +++ b/cli/packages/cmd/secrets.go @@ -374,6 +374,11 @@ func getSecretsByNames(cmd *cobra.Command, args []string) { util.HandleError(err, "Unable to parse flag") } + secretOverriding, err := cmd.Flags().GetBool("secret-overriding") + if err != nil { + util.HandleError(err, "Unable to parse flag") + } + request := models.GetAllSecretsParameters{ Environment: environmentName, WorkspaceId: projectId, @@ -394,6 +399,12 @@ func getSecretsByNames(cmd *cobra.Command, args []string) { util.HandleError(err, "To fetch all secrets") } + if secretOverriding { + secrets = util.OverrideSecrets(secrets, util.SECRET_TYPE_PERSONAL) + } else { + secrets = util.OverrideSecrets(secrets, util.SECRET_TYPE_SHARED) + } + if shouldExpand { authParams := models.ExpandSecretsAuthentication{} if token != nil && token.Type == util.SERVICE_TOKEN_IDENTIFIER { @@ -688,6 +699,7 @@ func init() { secretsGetCmd.Flags().Bool("include-imports", true, "Imported linked secrets ") secretsGetCmd.Flags().Bool("expand", true, "Parse shell parameter expansions in your secrets, and process your referenced secrets") secretsGetCmd.Flags().Bool("recursive", false, "Fetch secrets from all sub-folders") + secretsGetCmd.Flags().Bool("secret-overriding", true, "Prioritizes personal secrets, if any, with the same name over shared secrets") secretsCmd.AddCommand(secretsGetCmd) secretsCmd.Flags().Bool("secret-overriding", true, "Prioritizes personal secrets, if any, with the same name over shared secrets") secretsCmd.AddCommand(secretsSetCmd) From 6f56ed547495147a1598b0551e47e6671c78f892 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 13:01:14 -0400 Subject: [PATCH 038/101] add missing error logs on secrets backup --- cli/packages/util/secrets.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/cli/packages/util/secrets.go b/cli/packages/util/secrets.go index 5d528df86..64f32b83a 100644 --- a/cli/packages/util/secrets.go +++ b/cli/packages/util/secrets.go @@ -299,10 +299,10 @@ func GetAllEnvironmentVariables(params models.GetAllSecretsParameters, projectCo if !isConnected { backupEncryptionKey, _ := GetBackupEncryptionKey() if backupEncryptionKey != nil { - backedSecrets, err := ReadBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, backupEncryptionKey) - if len(backedSecrets) > 0 { - PrintWarning("Unable to fetch latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug") - secretsToReturn = backedSecrets + backedUpSecrets, err := ReadBackupSecrets(infisicalDotJson.WorkspaceId, params.Environment, params.SecretsPath, backupEncryptionKey) + if len(backedUpSecrets) > 0 { + PrintWarning("Unable to fetch the latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug") + secretsToReturn = backedUpSecrets errorToReturn = err } } @@ -525,6 +525,9 @@ func WriteBackupSecrets(workspace string, environment string, secretsPath string } marshaledSecrets, _ := json.Marshal(secrets) result, err := crypto.EncryptSymmetric(marshaledSecrets, encryptionKey) + if err != nil { + return fmt.Errorf("WriteBackupSecrets: Unable to encrypt local secret backup to file [err=%s]", err) + } listOfSecretsMarshalled, _ := json.Marshal(result) err = os.WriteFile(fmt.Sprintf("%s/%s", fullPathToSecretsBackupFolder, fileName), listOfSecretsMarshalled, 0600) if err != nil { @@ -557,9 +560,15 @@ func ReadBackupSecrets(workspace string, environment string, secretsPath string, } var encryptedBackUpSecrets models.SymmetricEncryptionResult - _ = json.Unmarshal(encryptedBackupSecretsAsBytes, &encryptedBackUpSecrets) - result, err := crypto.DecryptSymmetric(encryptionKey, encryptedBackUpSecrets.CipherText, encryptedBackUpSecrets.AuthTag, encryptedBackUpSecrets.Nonce) + err = json.Unmarshal(encryptedBackupSecretsAsBytes, &encryptedBackUpSecrets) + if err != nil { + return nil, fmt.Errorf("ReadBackupSecrets: unable to parse encrypted backup secrets. The secrets backup may be malformed [err=%s]", err) + } + result, err := crypto.DecryptSymmetric(encryptionKey, encryptedBackUpSecrets.CipherText, encryptedBackUpSecrets.AuthTag, encryptedBackUpSecrets.Nonce) + if err != nil { + return nil, fmt.Errorf("ReadBackupSecrets: unable to decrypt encrypted backup secrets [err=%s]", err) + } var plainTextSecrets []models.SingleEnvironmentVariable _ = json.Unmarshal(result, &plainTextSecrets) From 281d703cc3a0ba4d4c2d96646d8f6e6daa83ec82 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 13:02:08 -0400 Subject: [PATCH 039/101] removeed vault use command and auto generated passphrase --- cli/packages/cmd/vault.go | 124 ++++++++++++-------------------------- 1 file changed, 37 insertions(+), 87 deletions(-) diff --git a/cli/packages/cmd/vault.go b/cli/packages/cmd/vault.go index 4720e094e..6a92ef960 100644 --- a/cli/packages/cmd/vault.go +++ b/cli/packages/cmd/vault.go @@ -31,37 +31,52 @@ var AvailableVaults = []VaultBackendType{ } var vaultSetCmd = &cobra.Command{ - Example: `infisical vault set file --passphrase `, - Use: "set [file|auto] [flags]", + Example: `infisical vault set file`, + Use: "set [file|auto]", Short: "Used to configure the vault backends", DisableFlagsInUseLine: true, Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - - vaultType := args[0] - - passphrase, err := cmd.Flags().GetString("passphrase") + wantedVaultTypeName := args[0] + currentVaultBackend, err := util.GetCurrentVaultBackend() if err != nil { - util.HandleError(err, "Unable to get passphrase flag") - } - - if vaultType == util.VAULT_BACKEND_FILE_MODE && passphrase != "" { - setFileVaultPassphrase(passphrase) + log.Error().Msgf("Unable to set vault to [%s] because of [err=%s]", wantedVaultTypeName, err) return } - util.PrintWarning("This command has been deprecated. Please use 'infisical vault use [file|auto]' to select which vault to use.\n") - selectVaultTypeCmd(cmd, args) - }, -} + if wantedVaultTypeName == string(currentVaultBackend) { + log.Error().Msgf("You are already on vault backend [%s]", currentVaultBackend) + return + } -var vaultUseCmd = &cobra.Command{ - Example: `infisical vault use [file|auto]`, - Use: "use [file|auto]", - Short: "Used to select the the type of vault backend to store sensitive data securely at rest", - DisableFlagsInUseLine: true, - Args: cobra.MinimumNArgs(1), - Run: selectVaultTypeCmd, + if wantedVaultTypeName == util.VAULT_BACKEND_AUTO_MODE || wantedVaultTypeName == util.VAULT_BACKEND_FILE_MODE { + configFile, err := util.GetConfigFile() + if err != nil { + log.Error().Msgf("Unable to set vault to [%s] because of [err=%s]", wantedVaultTypeName, err) + return + } + + configFile.VaultBackendType = wantedVaultTypeName + configFile.LoggedInUserEmail = "" + configFile.VaultBackendPassphrase = base64.StdEncoding.EncodeToString([]byte(util.GenerateRandomString(10))) + + err = util.WriteConfigFile(&configFile) + if err != nil { + log.Error().Msgf("Unable to set vault to [%s] because an error occurred when saving the config file [err=%s]", wantedVaultTypeName, err) + return + } + + fmt.Printf("\nSuccessfully, switched vault backend from [%s] to [%s]. Please login in again to store your login details in the new vault with [infisical login]\n", currentVaultBackend, wantedVaultTypeName) + + Telemetry.CaptureEvent("cli-command:vault set", posthog.NewProperties().Set("currentVault", currentVaultBackend).Set("wantedVault", wantedVaultTypeName).Set("version", util.CLI_VERSION)) + } else { + var availableVaultsNames []string + for _, vault := range AvailableVaults { + availableVaultsNames = append(availableVaultsNames, vault.Name) + } + log.Error().Msgf("The requested vault type [%s] is not available on this system. Only the following vault backends are available for you system: %s", wantedVaultTypeName, strings.Join(availableVaultsNames, ", ")) + } + }, } // runCmd represents the run command @@ -75,26 +90,6 @@ var vaultCmd = &cobra.Command{ }, } -func setFileVaultPassphrase(passphrase string) { - configFile, err := util.GetConfigFile() - if err != nil { - log.Error().Msgf("Unable to set passphrase for file vault because of [err=%s]", err) - return - } - - // encode with base64 - encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) - configFile.VaultBackendPassphrase = encodedPassphrase - - err = util.WriteConfigFile(&configFile) - if err != nil { - log.Error().Msgf("Unable to set passphrase for file vault because of [err=%s]", err) - return - } - - util.PrintSuccessMessage("\nSuccessfully, set passphrase for file vault.\n") -} - func printAvailableVaultBackends() { fmt.Printf("Vaults are used to securely store your login details locally. Available vaults:") for _, vaultType := range AvailableVaults { @@ -111,53 +106,8 @@ func printAvailableVaultBackends() { fmt.Printf("\n\nYou are currently using [%s] vault to store your login credentials\n", string(currentVaultBackend)) } -func selectVaultTypeCmd(cmd *cobra.Command, args []string) { - wantedVaultTypeName := args[0] - currentVaultBackend, err := util.GetCurrentVaultBackend() - if err != nil { - log.Error().Msgf("Unable to set vault to [%s] because of [err=%s]", wantedVaultTypeName, err) - return - } - - if wantedVaultTypeName == string(currentVaultBackend) { - log.Error().Msgf("You are already on vault backend [%s]", currentVaultBackend) - return - } - - if wantedVaultTypeName == util.VAULT_BACKEND_AUTO_MODE || wantedVaultTypeName == util.VAULT_BACKEND_FILE_MODE { - configFile, err := util.GetConfigFile() - if err != nil { - log.Error().Msgf("Unable to set vault to [%s] because of [err=%s]", wantedVaultTypeName, err) - return - } - - configFile.VaultBackendType = wantedVaultTypeName // save selected vault - configFile.LoggedInUserEmail = "" // reset the logged in user to prompt them to re login - - err = util.WriteConfigFile(&configFile) - if err != nil { - log.Error().Msgf("Unable to set vault to [%s] because an error occurred when saving the config file [err=%s]", wantedVaultTypeName, err) - return - } - - fmt.Printf("\nSuccessfully, switched vault backend from [%s] to [%s]. Please login in again to store your login details in the new vault with [infisical login]\n", currentVaultBackend, wantedVaultTypeName) - - Telemetry.CaptureEvent("cli-command:vault set", posthog.NewProperties().Set("currentVault", currentVaultBackend).Set("wantedVault", wantedVaultTypeName).Set("version", util.CLI_VERSION)) - } else { - var availableVaultsNames []string - for _, vault := range AvailableVaults { - availableVaultsNames = append(availableVaultsNames, vault.Name) - } - log.Error().Msgf("The requested vault type [%s] is not available on this system. Only the following vault backends are available for you system: %s", wantedVaultTypeName, strings.Join(availableVaultsNames, ", ")) - } -} - func init() { - - vaultSetCmd.Flags().StringP("passphrase", "p", "", "Set the passphrase for the file vault") - vaultCmd.AddCommand(vaultSetCmd) - vaultCmd.AddCommand(vaultUseCmd) rootCmd.AddCommand(vaultCmd) } From 385afdfcf8fe21eaa2317307972b8364317b7a55 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 13:03:45 -0400 Subject: [PATCH 040/101] generate random string fn --- cli/packages/util/constants.go | 3 +-- cli/packages/util/helper.go | 11 +++++++++++ cli/packages/util/keyringwrapper.go | 29 ++++------------------------- docs/cli/commands/vault.mdx | 5 +---- 4 files changed, 17 insertions(+), 31 deletions(-) diff --git a/cli/packages/util/constants.go b/cli/packages/util/constants.go index 432b1cb82..1f9ec0c65 100644 --- a/cli/packages/util/constants.go +++ b/cli/packages/util/constants.go @@ -38,8 +38,7 @@ const ( SERVICE_TOKEN_IDENTIFIER = "service-token" UNIVERSAL_AUTH_TOKEN_IDENTIFIER = "universal-auth-token" - // akhilmhdh: @depreciated remove in version v0.30 - INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" + INFISICAL_BACKUP_SECRET = "infisical-backup-secrets" // akhilmhdh: @depreciated remove in version v0.30 INFISICAL_BACKUP_SECRET_ENCRYPTION_KEY = "infisical-backup-secret-encryption-key" ) diff --git a/cli/packages/util/helper.go b/cli/packages/util/helper.go index 9ce8c4a1d..69a310efa 100644 --- a/cli/packages/util/helper.go +++ b/cli/packages/util/helper.go @@ -5,6 +5,7 @@ import ( "crypto/sha256" "encoding/base64" "fmt" + "math/rand" "os" "os/exec" "path" @@ -25,6 +26,8 @@ type DecodedSymmetricEncryptionDetails = struct { Key []byte } +const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + func GetBase64DecodedSymmetricEncryptionDetails(key string, cipher string, IV string, tag string) (DecodedSymmetricEncryptionDetails, error) { cipherx, err := base64.StdEncoding.DecodeString(cipher) if err != nil { @@ -287,3 +290,11 @@ func GetCmdFlagOrEnv(cmd *cobra.Command, flag, envName string) (string, error) { } return value, nil } + +func GenerateRandomString(length int) string { + b := make([]byte, length) + for i := range b { + b[i] = charset[rand.Intn(len(charset))] + } + return string(b) +} diff --git a/cli/packages/util/keyringwrapper.go b/cli/packages/util/keyringwrapper.go index 065271906..9c8211a3c 100644 --- a/cli/packages/util/keyringwrapper.go +++ b/cli/packages/util/keyringwrapper.go @@ -4,7 +4,6 @@ import ( "encoding/base64" "fmt" - "github.com/manifoldco/promptui" "github.com/rs/zerolog/log" "github.com/zalando/go-keyring" ) @@ -32,17 +31,9 @@ func SetValueInKeyring(key, value string) error { configFile, _ := GetConfigFile() if configFile.VaultBackendPassphrase == "" { - PrintWarning("System keyring could not be used, falling back to `file` vault for sensitive data storage.") - passphrasePrompt := promptui.Prompt{ - Label: "Enter the passphrase to use for keyring encryption", - } - passphrase, err := passphrasePrompt.Run() - if err != nil { - return err - } - - encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(passphrase)) + encodedPassphrase := base64.StdEncoding.EncodeToString([]byte(GenerateRandomString(10))) // generate random passphrase configFile.VaultBackendPassphrase = encodedPassphrase + configFile.VaultBackendType = VAULT_BACKEND_FILE_MODE err = WriteConfigFile(&configFile) if err != nil { return err @@ -64,13 +55,7 @@ func GetValueInKeyring(key string) (string, error) { if err != nil { PrintErrorAndExit(1, err, "Unable to get current vault. Tip: run [infisical reset] then try again") } - - value, err := keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) - - if err != nil { - value, err = keyring.Get(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) - } - return value, err + return keyring.Get(currentVaultBackend, MAIN_KEYRING_SERVICE, key) } @@ -80,11 +65,5 @@ func DeleteValueInKeyring(key string) error { return err } - err = keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) - - if err != nil { - err = keyring.Delete(VAULT_BACKEND_FILE_MODE, MAIN_KEYRING_SERVICE, key) - } - - return err + return keyring.Delete(currentVaultBackend, MAIN_KEYRING_SERVICE, key) } diff --git a/docs/cli/commands/vault.mdx b/docs/cli/commands/vault.mdx index 803af127f..b09513c34 100644 --- a/docs/cli/commands/vault.mdx +++ b/docs/cli/commands/vault.mdx @@ -30,8 +30,5 @@ description: "Change the vault type in Infisical" ## Description -To safeguard your login details when using the CLI, Infisical places them in a system vault or an encrypted text file, protected by a passphrase that only the user knows. - -To avoid constantly entering your passphrase when using the `file` vault type, use the `infisical vault set file --passphrase ` CLI command to specify your password once. - +To safeguard your login details when using the CLI, Infisical attempts to store them in a system keyring. If a system keyring cannot be found on your machine, the data is stored in a config file. From a42f3b37637673c2ff97eb92b8959560a48fdb89 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 13:50:34 -0400 Subject: [PATCH 041/101] remove INFISICAL_VAULT_FILE_PASSPHRASE because it is being auto generated now --- .github/workflows/run-cli-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-cli-tests.yml b/.github/workflows/run-cli-tests.yml index f8e9d7797..da6f507a7 100644 --- a/.github/workflows/run-cli-tests.yml +++ b/.github/workflows/run-cli-tests.yml @@ -50,6 +50,6 @@ jobs: CLI_TESTS_ENV_SLUG: ${{ secrets.CLI_TESTS_ENV_SLUG }} CLI_TESTS_USER_EMAIL: ${{ secrets.CLI_TESTS_USER_EMAIL }} CLI_TESTS_USER_PASSWORD: ${{ secrets.CLI_TESTS_USER_PASSWORD }} - INFISICAL_VAULT_FILE_PASSPHRASE: ${{ secrets.CLI_TESTS_INFISICAL_VAULT_FILE_PASSPHRASE }} + # INFISICAL_VAULT_FILE_PASSPHRASE: ${{ secrets.CLI_TESTS_INFISICAL_VAULT_FILE_PASSPHRASE }} run: go test -v -count=1 ./test From 2d8160604913815d27e103b717affb69ccb95e7d Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 14:03:52 -0400 Subject: [PATCH 042/101] update test with typo fix --- .../.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/test/.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection b/cli/test/.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection index c48627f73..71a189a65 100644 --- a/cli/test/.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection +++ b/cli/test/.snapshots/test-testUserAuth_SecretsGetAllWithoutConnection @@ -1,4 +1,4 @@ -Warning: Unable to fetch latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug +Warning: Unable to fetch the latest secret(s) due to connection error, serving secrets from last successful fetch. For more info, run with --debug ┌───────────────┬──────────────┬─────────────┐ │ SECRET NAME │ SECRET VALUE │ SECRET TYPE │ ├───────────────┼──────────────┼─────────────┤ From e313c866a21e8143016eb018b2d85b3500f5d69e Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 14:25:12 -0400 Subject: [PATCH 043/101] remove backup test for temp --- cli/test/secrets_test.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cli/test/secrets_test.go b/cli/test/secrets_test.go index f5d5a7b1f..f11392f52 100644 --- a/cli/test/secrets_test.go +++ b/cli/test/secrets_test.go @@ -7,7 +7,6 @@ import ( "github.com/bradleyjkemp/cupaloy/v2" ) - func TestServiceToken_SecretsGetWithImportsAndRecursiveCmd(t *testing.T) { output, err := ExecuteCliCommand(FORMATTED_CLI_NAME, "secrets", "--token", creds.ServiceToken, "--projectId", creds.ProjectID, "--env", creds.EnvSlug, "--recursive", "--silent") @@ -94,7 +93,7 @@ func TestUserAuth_SecretsGetAll(t *testing.T) { } // explicitly called here because it should happen directly after successful secretsGetAll - testUserAuth_SecretsGetAllWithoutConnection(t) + // testUserAuth_SecretsGetAllWithoutConnection(t) } func testUserAuth_SecretsGetAllWithoutConnection(t *testing.T) { @@ -107,7 +106,7 @@ func testUserAuth_SecretsGetAllWithoutConnection(t *testing.T) { // set it to a URL that will always be unreachable newConfigFile.LoggedInUserDomain = "http://localhost:4999" util.WriteConfigFile(&newConfigFile) - + // restore config file defer util.WriteConfigFile(&originalConfigFile) @@ -121,4 +120,4 @@ func testUserAuth_SecretsGetAllWithoutConnection(t *testing.T) { if err != nil { t.Fatalf("snapshot failed: %v", err) } -} \ No newline at end of file +} From 5176e704376a6876ed5f1709d7d930ac2917fd57 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 8 Aug 2024 18:15:13 -0400 Subject: [PATCH 044/101] rephrase error messages --- backend/src/lib/api-docs/constants.ts | 2 +- backend/src/server/routes/v1/secret-tag-router.ts | 2 +- frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx | 2 +- .../components/SecretTagsSection/AddSecretTagModal.tsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index 4ea51df2b..43c40d154 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -597,7 +597,7 @@ export const RAW_SECRETS = { environment: "The slug of the environment to list secrets from.", secretPath: "The secret path to list secrets from.", includeImports: "Weather to include imported secrets or not.", - tagSlugs: "The comma seperated tag slugs to filter secrets" + tagSlugs: "The comma separated tag slugs to filter secrets" }, CREATE: { secretName: "The name of the secret to create.", diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index 9fc08d6c7..99f04c6bd 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -158,7 +158,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { .trim() .describe(SECRET_TAGS.UPDATE.slug) .refine((v) => slugify(v) === v, { - message: "Invalid slug. Should contain only characters, numbers and hyphen." + message: "Invalid slug. Slug can only contain alphanumeric characters and hyphens." }), color: z.string().trim().describe(SECRET_TAGS.UPDATE.color) }), diff --git a/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx b/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx index 5eabb093d..acbcdcb2d 100644 --- a/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx +++ b/frontend/src/components/tags/CreateTagModal/CreateTagModal.tsx @@ -93,7 +93,7 @@ const createTagSchema = z.object({ .trim() .toLowerCase() .refine((v) => slugify(v) === v, { - message: "Invalid slug. Should contain only characters, numbers and hyphen." + message: "Invalid slug. Slug can only contain alphanumeric characters and hyphens." }), color: z.string().trim() }); diff --git a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx index 0a2c4856e..75f6b69bf 100644 --- a/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx +++ b/frontend/src/views/Settings/ProjectSettingsPage/components/SecretTagsSection/AddSecretTagModal.tsx @@ -11,7 +11,7 @@ import { UsePopUpState } from "@app/hooks/usePopUp"; const schema = z.object({ slug: z.string().refine((v) => slugify(v) === v, { - message: "Invalid slug. Should contain only characters, numbers and hyphen." + message: "Invalid slug. Slug can only contain alphanumeric characters and hyphens." }) }); From 99403e122b66244b16311be79f7e86e335d7fde0 Mon Sep 17 00:00:00 2001 From: Ayush Dutt Sharma Date: Fri, 9 Aug 2024 14:33:29 +0530 Subject: [PATCH 045/101] kubernetes operators integration doc fix --- docs/integrations/platforms/kubernetes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/platforms/kubernetes.mdx b/docs/integrations/platforms/kubernetes.mdx index 9ab7347ac..57329d4fd 100644 --- a/docs/integrations/platforms/kubernetes.mdx +++ b/docs/integrations/platforms/kubernetes.mdx @@ -10,7 +10,7 @@ It uses an `InfisicalSecret` resource to specify authentication and storage meth The operator continuously updates secrets and can also reload dependent deployments automatically. - If you are already using the External Secrets operator, you can you can view the integration documentation for it [here](https://external-secrets.io/latest/provider/infisical/). + If you are already using the External Secrets operator, you can view the integration documentation for it [here](https://external-secrets.io/latest/provider/infisical/). ## Install Operator From 1fc18fe23b1448011ab051e683951253b498dc94 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 9 Aug 2024 14:37:42 +0530 Subject: [PATCH 046/101] feat: added name in attach tag --- .../src/server/routes/v1/secret-tag-router.ts | 1 + backend/src/server/routes/v3/secret-router.ts | 31 ++++++++++--------- backend/src/services/secret/secret-service.ts | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/backend/src/server/routes/v1/secret-tag-router.ts b/backend/src/server/routes/v1/secret-tag-router.ts index 99f04c6bd..7d696999e 100644 --- a/backend/src/server/routes/v1/secret-tag-router.ts +++ b/backend/src/server/routes/v1/secret-tag-router.ts @@ -81,6 +81,7 @@ export const registerSecretTagRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ + // akhilmhdh: for terraform backward compatiability workspaceTag: SecretTagsSchema.extend({ name: z.string() }) }) } diff --git a/backend/src/server/routes/v3/secret-router.ts b/backend/src/server/routes/v3/secret-router.ts index bb2d6d827..7a1868fef 100644 --- a/backend/src/server/routes/v3/secret-router.ts +++ b/backend/src/server/routes/v3/secret-router.ts @@ -59,9 +59,10 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { tags: SecretTagsSchema.pick({ id: true, slug: true, - name: true, color: true - }).array() + }) + .extend({ name: z.string() }) + .array() }) ) }) @@ -116,16 +117,15 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - secret: SecretsSchema.omit({ secretBlindIndex: true }).merge( - z.object({ - tags: SecretTagsSchema.pick({ - id: true, - slug: true, - name: true, - color: true - }).array() + secret: SecretsSchema.omit({ secretBlindIndex: true }).extend({ + tags: SecretTagsSchema.pick({ + id: true, + slug: true, + color: true }) - ) + .extend({ name: z.string() }) + .array() + }) }) } }, @@ -196,9 +196,9 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { tags: SecretTagsSchema.pick({ id: true, slug: true, - name: true, color: true }) + .extend({ name: z.string() }) .array() .optional() }) @@ -332,9 +332,9 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { tags: SecretTagsSchema.pick({ id: true, slug: true, - name: true, color: true }) + .extend({ name: z.string() }) .array() .optional() }) @@ -738,9 +738,10 @@ export const registerSecretRouter = async (server: FastifyZodProvider) => { tags: SecretTagsSchema.pick({ id: true, slug: true, - name: true, color: true - }).array() + }) + .extend({ name: z.string() }) + .array() }) .array(), imports: z diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index f338d1fda..57f301594 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -2086,7 +2086,7 @@ export const secretServiceFactory = ({ return { ...updatedSecret[0], - tags: [...existingSecretTags, ...tags].map((t) => ({ id: t.id, slug: t.slug, color: t.color })) + tags: [...existingSecretTags, ...tags].map((t) => ({ id: t.id, slug: t.slug, name: t.slug, color: t.color })) }; }; From 635fbdc80b36d5650538e8cc326300f608e80b7a Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 9 Aug 2024 21:29:33 +0800 Subject: [PATCH 047/101] misc: addressedm misleading docs and placeholder values for google saml --- .../platform/sso/google-saml.mdx | 40 ++++++++++-------- .../sso/google-saml/infisical-config.png | Bin 619612 -> 223805 bytes .../components/OrgAuthTab/SSOModal.tsx | 11 +++-- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/docs/documentation/platform/sso/google-saml.mdx b/docs/documentation/platform/sso/google-saml.mdx index 1897a651a..da34e076a 100644 --- a/docs/documentation/platform/sso/google-saml.mdx +++ b/docs/documentation/platform/sso/google-saml.mdx @@ -4,10 +4,10 @@ description: "Learn how to configure Google SAML for Infisical SSO." --- - Google SAML SSO feature is a paid feature. - - If you're using Infisical Cloud, then it is available under the **Pro Tier**. If you're self-hosting Infisical, - then you should contact sales@infisical.com to purchase an enterprise license to use it. + Google SAML SSO feature is a paid feature. If you're using Infisical Cloud, + then it is available under the **Pro Tier**. If you're self-hosting Infisical, + then you should contact sales@infisical.com to purchase an enterprise license + to use it. @@ -15,8 +15,9 @@ description: "Learn how to configure Google SAML for Infisical SSO." In Infisical, head to your Organization Settings > Authentication > SAML SSO Configuration and select **Set up SAML SSO**. Next, note the **ACS URL** and **SP Entity ID** to use when configuring the Google SAML application. - + ![Google SAML initial configuration](../../../images/sso/google-saml/init-config.png) + 2.1. In your [Google Admin console](https://support.google.com/a/answer/182076), head to Menu > Apps > Web and mobile apps and @@ -32,7 +33,7 @@ description: "Learn how to configure Google SAML for Infisical SSO." ![Google SAML custom app details](../../../images/sso/google-saml/custom-saml-app-config.png) - 2.4. Back in Infisical, set **SSO URL**, **IdP Entity ID**, and **Certificate** to the corresponding items from step 2.3. + 2.4. Back in Infisical, set **SSO URL** and **Certificate** to the corresponding items from step 2.3. ![Google SAML Infisical config](../../../images/sso/google-saml/infisical-config.png) @@ -41,7 +42,7 @@ description: "Learn how to configure Google SAML for Infisical SSO." Also, check the **Signed response** checkbox. ![Google SAML app config 2](../../../images/sso/google-saml/custom-saml-app-config-2.png) - + 2.6. In the **Attribute mapping** tab, configure the following map: - **First name** -> **firstName** @@ -49,7 +50,7 @@ description: "Learn how to configure Google SAML for Infisical SSO." - **Primary email** -> **email** ![Google SAML attribute mapping](../../../images/sso/google-saml/attribute-mapping.png) - + Click **Finish**. @@ -57,11 +58,11 @@ description: "Learn how to configure Google SAML for Infisical SSO." and press on **User access**. ![Google SAML user access](../../../images/sso/google-saml/user-access.png) - + To assign everyone in your organization to the application, click **On for everyone** or **Off for everyone** and then click **Save**. - + You can also assign an organizational unit or set of users to an application; you can learn more about that [here](https://support.google.com/a/answer/6087519?hl=en#add_custom_saml&turn_on&verify_sso&&zippy=%2Cstep-add-the-custom-saml-app%2Cstep-turn-on-your-saml-app%2Cstep-verify-that-sso-is-working-with-your-custom-app). - + ![Google SAML user access assignment](../../../images/sso/google-saml/user-access-assign.png) @@ -75,21 +76,24 @@ description: "Learn how to configure Google SAML for Infisical SSO." To enforce SAML SSO, you're required to test out the SAML connection by successfully authenticating at least one Google user with Infisical; Once you've completed this requirement, you can toggle the **Enforce SAML SSO** button to enforce SAML SSO. - + We recommend ensuring that your account is provisioned the application in Google prior to enforcing SAML SSO to prevent any unintended issues. + - If you're configuring SAML SSO on a self-hosted instance of Infisical, make sure to - set the `AUTH_SECRET` and `SITE_URL` environment variable for it to work: - - - `AUTH_SECRET`: A secret key used for signing and verifying JWT. This can be a random 32-byte base64 string generated with `openssl rand -base64 32`. - - `SITE_URL`: The URL of your self-hosted instance of Infisical - should be an absolute URL including the protocol (e.g. https://app.infisical.com) + If you're configuring SAML SSO on a self-hosted instance of Infisical, make + sure to set the `AUTH_SECRET` and `SITE_URL` environment variable for it to + work: - `AUTH_SECRET`: A secret key used for signing and verifying JWT. This + can be a random 32-byte base64 string generated with `openssl rand -base64 + 32`. - `SITE_URL`: The URL of your self-hosted instance of Infisical - should + be an absolute URL including the protocol (e.g. https://app.infisical.com) References: -- Google's guide to [set up your own custom SAML app](https://support.google.com/a/answer/6087519?hl=en#add_custom_saml&turn_on&verify_sso&&zippy=%2Cstep-add-the-custom-saml-app%2Cstep-turn-on-your-saml-app%2Cstep-verify-that-sso-is-working-with-your-custom-app). \ No newline at end of file + +- Google's guide to [set up your own custom SAML app](https://support.google.com/a/answer/6087519?hl=en#add_custom_saml&turn_on&verify_sso&&zippy=%2Cstep-add-the-custom-saml-app%2Cstep-turn-on-your-saml-app%2Cstep-verify-that-sso-is-working-with-your-custom-app). diff --git a/docs/images/sso/google-saml/infisical-config.png b/docs/images/sso/google-saml/infisical-config.png index 250b4ed37c031ecbe66ce64ad965b1a7f63f075b..31943df81b216b1147e675dd665875f0c5ee0e9a 100644 GIT binary patch literal 223805 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 Zzb7WW1Y*4eEw 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

{FgFpcKzR5d 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�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 literal 619612 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%0DmC1H~Pu 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

?=`9C`BHJ!Enxxw-8Q$*Si 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≦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%0DZF_}*rTa1dcTz+5Qp$m3d}oD>66}^5}xjuTT&xm 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

    vKaS_wD8MH~{g1?SLz`sT-m^)C?F}{0Y$-mp| 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 O40MdOKWg57^8WyH7Z8^K diff --git a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/SSOModal.tsx b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/SSOModal.tsx index 582205214..6257ffa6f 100644 --- a/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/SSOModal.tsx +++ b/frontend/src/views/Settings/OrgSettingsPage/components/OrgAuthTab/SSOModal.tsx @@ -62,7 +62,7 @@ export const SSOModal = ({ popUp, handlePopUpClose, handlePopUpToggle, hideDelet const [isDeletePopupOpen, setIsDeletePopupOpen] = useToggle(); const { data } = useGetSSOConfig(currentOrg?.id ?? ""); - const { control, handleSubmit, reset, watch } = useForm({ + const { control, handleSubmit, reset, watch, setValue, getValues } = useForm({ defaultValues: { authProvider: AuthProvider.OKTA_SAML }, @@ -188,8 +188,8 @@ export const SSOModal = ({ popUp, handlePopUpClose, handlePopUpToggle, hideDelet entityId: "SP Entity ID", entryPoint: "SSO URL", entryPointPlaceholder: "https://accounts.google.com/o/saml2/idp?idpid=xxx", - issuer: "IdP Entity ID", - issuerPlaceholder: "https://accounts.google.com/o/saml2/idp?idpid=xxx" + issuer: "Issuer", + issuerPlaceholder: window.origin }; default: return { @@ -204,6 +204,11 @@ export const SSOModal = ({ popUp, handlePopUpClose, handlePopUpToggle, hideDelet }; const authProvider = watch("authProvider"); + useEffect(() => { + if (authProvider === AuthProvider.GOOGLE_SAML && getValues("issuer") === "") { + setValue("issuer", window.origin); + } + }, [authProvider]); return ( <> From 32a84471f2ccfe7a630d0ea425bc30f5da80a63e Mon Sep 17 00:00:00 2001 From: = Date: Fri, 9 Aug 2024 21:02:26 +0530 Subject: [PATCH 048/101] feat: added a new batch insert operation to convert inserts into chunks and updated secret migration --- backend/src/lib/knex/index.ts | 10 ++++++++++ backend/src/services/secret-tag/secret-tag-dal.ts | 2 +- .../secret-v2-bridge/secret-v2-bridge-dal.ts | 2 +- backend/src/services/secret/secret-queue.ts | 14 +++++++------- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/backend/src/lib/knex/index.ts b/backend/src/lib/knex/index.ts index dcab16218..cbf5db3b0 100644 --- a/backend/src/lib/knex/index.ts +++ b/backend/src/lib/knex/index.ts @@ -128,6 +128,16 @@ export const ormify = (db: Kne throw new DatabaseError({ error, name: "Create" }); } }, + // This spilit the insert into multiple chunk + batchInsert: async (data: readonly Tables[Tname]["insert"][], tx?: Knex) => { + try { + if (!data.length) return []; + const res = await (tx || db).batchInsert(tableName, data as never).returning("*"); + return res as Tables[Tname]["base"][]; + } catch (error) { + throw new DatabaseError({ error, name: "batchInsert" }); + } + }, upsert: async (data: readonly Tables[Tname]["insert"][], onConflictField: keyof Tables[Tname]["base"], tx?: Knex) => { try { if (!data.length) return []; diff --git a/backend/src/services/secret-tag/secret-tag-dal.ts b/backend/src/services/secret-tag/secret-tag-dal.ts index d1f149f35..1df64afa2 100644 --- a/backend/src/services/secret-tag/secret-tag-dal.ts +++ b/backend/src/services/secret-tag/secret-tag-dal.ts @@ -51,7 +51,7 @@ export const secretTagDALFactory = (db: TDbClient) => { ...secretTagOrm, saveTagsToSecret: secretJnTagOrm.insertMany, deleteTagsToSecret: secretJnTagOrm.delete, - saveTagsToSecretV2: secretV2JnTagOrm.insertMany, + saveTagsToSecretV2: secretV2JnTagOrm.batchInsert, deleteTagsToSecretV2: secretV2JnTagOrm.delete, findSecretTagsByProjectId, deleteTagsManySecret, diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts index 53ad29b17..fe4d89bac 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-dal.ts @@ -287,7 +287,7 @@ export const secretV2BridgeDALFactory = (db: TDbClient) => { })) ); if (!newSecretReferences.length) return; - const secretReferences = await (tx || db)(TableName.SecretReferenceV2).insert(newSecretReferences); + const secretReferences = await (tx || db).batchInsert(TableName.SecretReferenceV2, newSecretReferences); return secretReferences; } catch (error) { throw new DatabaseError({ error, name: "UpsertSecretReference" }); diff --git a/backend/src/services/secret/secret-queue.ts b/backend/src/services/secret/secret-queue.ts index 28053f4b3..de437a6a5 100644 --- a/backend/src/services/secret/secret-queue.ts +++ b/backend/src/services/secret/secret-queue.ts @@ -73,12 +73,12 @@ type TSecretQueueFactoryDep = { secretVersionTagDAL: TSecretVersionTagDALFactory; kmsService: Pick; secretV2BridgeDAL: TSecretV2BridgeDALFactory; - secretVersionV2BridgeDAL: Pick; - secretVersionTagV2BridgeDAL: Pick; + secretVersionV2BridgeDAL: Pick; + secretVersionTagV2BridgeDAL: Pick; secretRotationDAL: Pick; secretApprovalRequestDAL: Pick; snapshotDAL: Pick; - snapshotSecretV2BridgeDAL: Pick; + snapshotSecretV2BridgeDAL: Pick; }; export type TGetSecrets = { @@ -828,7 +828,7 @@ export const secretQueueFactory = ({ secretId: string; references: { environment: string; secretPath: string; secretKey: string }[]; }[] = []; - await secretV2BridgeDAL.insertMany( + await secretV2BridgeDAL.batchInsert( projectV1Secrets.map((el) => { const key = decryptSymmetric128BitHexKeyUTF8({ ciphertext: el.secretKeyCiphertext, @@ -1004,14 +1004,14 @@ export const secretQueueFactory = ({ const projectV3SecretVersions = Object.values(projectV3SecretVersionsGroupById); if (projectV3SecretVersions.length) { - await secretVersionV2BridgeDAL.insertMany(projectV3SecretVersions, tx); + await secretVersionV2BridgeDAL.batchInsert(projectV3SecretVersions, tx); } if (projectV3SecretVersionTags.length) { - await secretVersionTagV2BridgeDAL.insertMany(projectV3SecretVersionTags, tx); + await secretVersionTagV2BridgeDAL.batchInsert(projectV3SecretVersionTags, tx); } if (projectV3SnapshotSecrets.length) { - await snapshotSecretV2BridgeDAL.insertMany(projectV3SnapshotSecrets, tx); + await snapshotSecretV2BridgeDAL.batchInsert(projectV3SnapshotSecrets, tx); } await snapshotDAL.deleteSnapshotsAboveLimit(folderId, SNAPSHOT_BATCH_SIZE, tx); } From 3bc920c593f2ea65c45834a80a1c09fd0b4a0c72 Mon Sep 17 00:00:00 2001 From: Ayush Dutt Sharma Date: Sat, 10 Aug 2024 15:36:43 +0530 Subject: [PATCH 049/101] better logging and while loop for ask propmt again --- backend/scripts/create-backend-file.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/backend/scripts/create-backend-file.ts b/backend/scripts/create-backend-file.ts index fb71994ce..39e9c816c 100644 --- a/backend/scripts/create-backend-file.ts +++ b/backend/scripts/create-backend-file.ts @@ -7,14 +7,33 @@ const prompt = promptSync({ sigint: true }); +type ComponentType = 1 | 2 | 3; + console.log(` Component List -------------- +0. Exit 1. Service component 2. DAL component 3. Router component `); -const componentType = parseInt(prompt("Select a component: "), 10); + +function getComponentType(): ComponentType { + while (true) { + const input = prompt("Select a component (0-3): "); + const componentType = parseInt(input, 10); + + if (componentType === 0) { + console.log("Exiting the program. Goodbye!"); + process.exit(0); + } else if (componentType === 1 || componentType === 2 || componentType === 3) { + return componentType; + } else { + console.log("Invalid input. Please enter 0, 1, 2, or 3."); + } + } +} +const componentType = getComponentType(); if (componentType === 1) { const componentName = prompt("Enter service name: "); From 541a2e7d059576a8e8f1229d913cc0e28f163432 Mon Sep 17 00:00:00 2001 From: Ayush Dutt Sharma Date: Sun, 11 Aug 2024 14:10:49 +0530 Subject: [PATCH 050/101] replaced "creditnals" to "credentials" --- cli/packages/util/credentials.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/packages/util/credentials.go b/cli/packages/util/credentials.go index be49e9267..cb5b94080 100644 --- a/cli/packages/util/credentials.go +++ b/cli/packages/util/credentials.go @@ -71,7 +71,7 @@ func GetCurrentLoggedInUserDetails() (LoggedInUserDetails, error) { if strings.Contains(err.Error(), "credentials not found in system keyring") { return LoggedInUserDetails{}, errors.New("we couldn't find your logged in details, try running [infisical login] then try again") } else { - return LoggedInUserDetails{}, fmt.Errorf("failed to fetch creditnals from keyring because [err=%s]", err) + return LoggedInUserDetails{}, fmt.Errorf("failed to fetch credentials from keyring because [err=%s]", err) } } From a4bbe2c612212e5c68314eaa2cd6454cf7c0c799 Mon Sep 17 00:00:00 2001 From: MohamadTahir Date: Sun, 11 Aug 2024 16:46:48 +0300 Subject: [PATCH 051/101] fix the client site url & the creation of new variable instead of updating the previous initiated variable --- k8-operator/controllers/infisicalsecret_helper.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/k8-operator/controllers/infisicalsecret_helper.go b/k8-operator/controllers/infisicalsecret_helper.go index acb8b9e76..d13eba866 100644 --- a/k8-operator/controllers/infisicalsecret_helper.go +++ b/k8-operator/controllers/infisicalsecret_helper.go @@ -294,7 +294,7 @@ func (r *InfisicalSecretReconciler) GetResourceVariables(infisicalSecret v1alpha if _, ok := resourceVariablesMap[string(infisicalSecret.UID)]; !ok { client := infisicalSdk.NewInfisicalClient(infisicalSdk.Config{ - SiteUrl: infisicalSecret.Spec.HostAPI, + SiteUrl: api.API_HOST_URL, UserAgent: api.USER_AGENT_NAME, }) @@ -322,10 +322,11 @@ func (r *InfisicalSecretReconciler) ReconcileInfisicalSecret(ctx context.Context resourceVariables := r.GetResourceVariables(infisicalSecret) infisicalClient := resourceVariables.infisicalClient authDetails := resourceVariables.authDetails + var err error if authDetails.authStrategy == "" { fmt.Println("ReconcileInfisicalSecret: No authentication strategy found. Attempting to authenticate") - authDetails, err := r.HandleAuthentication(ctx, infisicalSecret, infisicalClient) + authDetails, err = r.HandleAuthentication(ctx, infisicalSecret, infisicalClient) r.SetInfisicalTokenLoadCondition(ctx, &infisicalSecret, authDetails.authStrategy, err) if err != nil { From 61791e385cbb288a7b23375ff7a5abcc789d3d92 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 11 Aug 2024 10:34:15 -0400 Subject: [PATCH 052/101] update chart version of k8 --- helm-charts/secrets-operator/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm-charts/secrets-operator/Chart.yaml b/helm-charts/secrets-operator/Chart.yaml index 2247b79b0..f28a99ce1 100644 --- a/helm-charts/secrets-operator/Chart.yaml +++ b/helm-charts/secrets-operator/Chart.yaml @@ -13,9 +13,9 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: v0.7.0 +version: v0.7.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v0.7.0" +appVersion: "v0.7.1" From 16807c3dd68dbc95a788f140b0a76586625ca087 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 11 Aug 2024 13:09:22 -0400 Subject: [PATCH 053/101] update k8s helm chart image tag --- helm-charts/secrets-operator/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-charts/secrets-operator/values.yaml b/helm-charts/secrets-operator/values.yaml index f69d2e91c..d0109f673 100644 --- a/helm-charts/secrets-operator/values.yaml +++ b/helm-charts/secrets-operator/values.yaml @@ -32,7 +32,7 @@ controllerManager: - ALL image: repository: infisical/kubernetes-operator - tag: v0.6.5 + tag: v0.7.1 resources: limits: cpu: 500m From cb8e4d884e31f1aa1c3e194e52b0c033fa1f81f3 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Sun, 11 Aug 2024 23:17:46 -0400 Subject: [PATCH 054/101] add equipment details to handbook --- company/handbook/spending-money.mdx | 40 +++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/company/handbook/spending-money.mdx b/company/handbook/spending-money.mdx index 667ed5ef2..854e36b49 100644 --- a/company/handbook/spending-money.mdx +++ b/company/handbook/spending-money.mdx @@ -6,9 +6,11 @@ description: "The guide to spending money at Infisical." Fairly frequently, you might run into situations when you need to spend company money. -**Please spend money in a way that you think is in the best interest of the company.** + +Please spend money in a way that you think is in the best interest of the company. + -## Trivial expenses +# Trivial expenses We don't want you to be slowed down because you're waiting for an approval to purchase some SaaS. For trivial expenses – **Just do it**. @@ -22,6 +24,40 @@ Make sure you keep copies for all receipts. If you expense something on a compan You should default to using your company card in all cases - it has no transaction fees. If using your personal card is unavoidable, please reach out to Maidul to get it reimbursed manually. + +# Equipment + +Infisical is a remote first company so we understand the importance of having a comfortable work setup. To support this, we provide allowances for essential office equipment. + +### Desk & Chair + +Most people already have a comfortable desk and chair, but if you need an upgrade, Infisical offers the following allowances. +While we're not yet able to provide the latest and greatest, we strive to be reasonable given the stage of our company. + +**Desk**: $150 USD + +**Chair**: $150 USD + +### Laptop +- Each team member will get a company issues Macbook Pro before they start their first day. + +### Headphones +- If you require noise-cancelling headphones for your work environment, discuss your needs with your manager. + + +### Important Notes + +1. All equipment purchased using company allowances remains the property of Infisical. +2. Keep all receipts for equipment purchases and submit them for reimbursement. +3. If you leave Infisical, you may be required to return company-owned equipment. + +Please note that Infisical is unable to offer a split payment option where the company pays half and the employee pays half for equipment exceeding the allowance. +This is due to the absence of a formal HR department, which would make such arrangements logistically challenging to manage and track. +If you require equipment that exceeds the provided allowance, please discuss alternative options with your manager. + +For any questions or special requirements, please reach out to your direct supervisor or the operations team. + + ## Brex We use Brex as our primary credit card provider. Don't have a company card yet? Reach out to Maidul. \ No newline at end of file From 9017a5e838a44e891f08a18704572f9127cba082 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Mon, 12 Aug 2024 01:29:45 -0400 Subject: [PATCH 055/101] Update spending-money.mdx --- company/handbook/spending-money.mdx | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/company/handbook/spending-money.mdx b/company/handbook/spending-money.mdx index 854e36b49..ac2980ec2 100644 --- a/company/handbook/spending-money.mdx +++ b/company/handbook/spending-money.mdx @@ -31,7 +31,7 @@ Infisical is a remote first company so we understand the importance of having a ### Desk & Chair -Most people already have a comfortable desk and chair, but if you need an upgrade, Infisical offers the following allowances. +Most people already have a comfortable desk and chair, but if you need an upgrade, we offer the following allowances. While we're not yet able to provide the latest and greatest, we strive to be reasonable given the stage of our company. **Desk**: $150 USD @@ -39,23 +39,18 @@ While we're not yet able to provide the latest and greatest, we strive to be rea **Chair**: $150 USD ### Laptop -- Each team member will get a company issues Macbook Pro before they start their first day. +- Each team member will receive a company issued Macbook Pro before they start their first day. -### Headphones -- If you require noise-cancelling headphones for your work environment, discuss your needs with your manager. - - -### Important Notes +### Notes 1. All equipment purchased using company allowances remains the property of Infisical. 2. Keep all receipts for equipment purchases and submit them for reimbursement. 3. If you leave Infisical, you may be required to return company-owned equipment. -Please note that Infisical is unable to offer a split payment option where the company pays half and the employee pays half for equipment exceeding the allowance. -This is due to the absence of a formal HR department, which would make such arrangements logistically challenging to manage and track. -If you require equipment that exceeds the provided allowance, please discuss alternative options with your manager. +Please note that we're unable to offer a split payment option where the Infisical pays half and you pay half for equipment exceeding the allowance. +This is because we don't yet have a formal HR department to handle such logistics. -For any questions or special requirements, please reach out to your direct supervisor or the operations team. +For any equipment related questions, please reach out to Maidul. ## Brex From 6afc17b84b88952f85f26b911116948cd91a46fc Mon Sep 17 00:00:00 2001 From: = Date: Mon, 12 Aug 2024 13:19:25 +0530 Subject: [PATCH 056/101] feat: implemented universal auth client secret cleanup in resource cleanup queue --- .../ee/services/audit-log/audit-log-dal.ts | 14 +++-- backend/src/server/routes/index.ts | 3 +- .../identity-ua-client-secret-dal.ts | 56 ++++++++++++++++++- .../resource-cleanup-queue.ts | 6 +- 4 files changed, 71 insertions(+), 8 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-dal.ts b/backend/src/ee/services/audit-log/audit-log-dal.ts index 316cf34a5..9d181e1aa 100644 --- a/backend/src/ee/services/audit-log/audit-log-dal.ts +++ b/backend/src/ee/services/audit-log/audit-log-dal.ts @@ -75,15 +75,19 @@ export const auditLogDALFactory = (db: TDbClient) => { .del() .returning("id"); numberOfRetryOnFailure = 0; // reset - // eslint-disable-next-line no-await-in-loop - await new Promise((resolve) => { - setTimeout(resolve, 100); // time to breathe for db - }); } catch (error) { numberOfRetryOnFailure += 1; logger.error(error, "Failed to delete audit log on pruning"); + } finally { + // eslint-disable-next-line no-await-in-loop + await new Promise((resolve) => { + setTimeout(resolve, 10); // time to breathe for db + }); } - } while (deletedAuditLogIds.length > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE); + } while ( + deletedAuditLogIds.length > 0 || + (numberOfRetryOnFailure > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE) + ); }; return { ...auditLogOrm, pruneAuditLog, find }; diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index 2902dad94..5116261d5 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -1037,7 +1037,8 @@ export const registerRoutes = async ( snapshotDAL, identityAccessTokenDAL, secretSharingDAL, - secretVersionV2DAL: secretVersionV2BridgeDAL + secretVersionV2DAL: secretVersionV2BridgeDAL, + identityUniversalAuthClientSecretDAL: identityUaClientSecretDAL }); const oidcService = oidcConfigServiceFactory({ diff --git a/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts b/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts index 6310da97a..4e35f6232 100644 --- a/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts +++ b/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts @@ -4,6 +4,7 @@ import { TDbClient } from "@app/db"; import { TableName } from "@app/db/schemas"; import { DatabaseError } from "@app/lib/errors"; import { ormify } from "@app/lib/knex"; +import { logger } from "@app/lib/logger"; export type TIdentityUaClientSecretDALFactory = ReturnType; @@ -23,5 +24,58 @@ export const identityUaClientSecretDALFactory = (db: TDbClient) => { } }; - return { ...uaClientSecretOrm, incrementUsage }; + const removeExpiredClientSecrets = async (tx?: Knex) => { + const BATCH_SIZE = 10000; + const MAX_RETRY_ON_FAILURE = 3; + + let deletedClientSecret: { id: string }[] = []; + let numberOfRetryOnFailure = 0; + + do { + try { + const findExpiredClientSecretQuery = (tx || db)(TableName.IdentityUaClientSecret) + .where({ + isClientSecretRevoked: true + }) + .orWhere((qb) => { + void qb + .where("clientSecretNumUses", ">", 0) + .andWhere( + "clientSecretNumUses", + ">=", + db.ref("clientSecretNumUsesLimit").withSchema(TableName.IdentityUaClientSecret) + ); + }) + .orWhere((qb) => { + void qb + .where("clientSecretTTL", ">", 0) + .andWhereRaw( + `"${TableName.IdentityUaClientSecret}"."createdAt" + make_interval(secs => "${TableName.IdentityUaClientSecret}"."clientSecretTTL") < NOW()` + ); + }) + .select("id") + .limit(BATCH_SIZE); + + // eslint-disable-next-line no-await-in-loop + deletedClientSecret = await (tx || db)(TableName.IdentityUaClientSecret) + .whereIn("id", findExpiredClientSecretQuery) + .del() + .returning("id"); + numberOfRetryOnFailure = 0; // reset + } catch (error) { + numberOfRetryOnFailure += 1; + logger.error(error, "Failed to delete client secret on pruning"); + } finally { + // eslint-disable-next-line no-await-in-loop + await new Promise((resolve) => { + setTimeout(resolve, 10); // time to breathe for db + }); + } + } while ( + deletedClientSecret.length > 0 || + (numberOfRetryOnFailure > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE) + ); + }; + + return { ...uaClientSecretOrm, incrementUsage, removeExpiredClientSecrets }; }; diff --git a/backend/src/services/resource-cleanup/resource-cleanup-queue.ts b/backend/src/services/resource-cleanup/resource-cleanup-queue.ts index cb9756dd4..dab70806f 100644 --- a/backend/src/services/resource-cleanup/resource-cleanup-queue.ts +++ b/backend/src/services/resource-cleanup/resource-cleanup-queue.ts @@ -4,6 +4,7 @@ import { logger } from "@app/lib/logger"; import { QueueJobs, QueueName, TQueueServiceFactory } from "@app/queue"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; +import { TIdentityUaClientSecretDALFactory } from "../identity-ua/identity-ua-client-secret-dal"; import { TSecretVersionDALFactory } from "../secret/secret-version-dal"; import { TSecretFolderVersionDALFactory } from "../secret-folder/secret-folder-version-dal"; import { TSecretSharingDALFactory } from "../secret-sharing/secret-sharing-dal"; @@ -12,6 +13,7 @@ import { TSecretVersionV2DALFactory } from "../secret-v2-bridge/secret-version-d type TDailyResourceCleanUpQueueServiceFactoryDep = { auditLogDAL: Pick; identityAccessTokenDAL: Pick; + identityUniversalAuthClientSecretDAL: Pick; secretVersionDAL: Pick; secretVersionV2DAL: Pick; secretFolderVersionDAL: Pick; @@ -30,12 +32,14 @@ export const dailyResourceCleanUpQueueServiceFactory = ({ secretFolderVersionDAL, identityAccessTokenDAL, secretSharingDAL, - secretVersionV2DAL + secretVersionV2DAL, + identityUniversalAuthClientSecretDAL }: TDailyResourceCleanUpQueueServiceFactoryDep) => { queueService.start(QueueName.DailyResourceCleanUp, async () => { logger.info(`${QueueName.DailyResourceCleanUp}: queue task started`); await auditLogDAL.pruneAuditLog(); await identityAccessTokenDAL.removeExpiredTokens(); + await identityUniversalAuthClientSecretDAL.removeExpiredClientSecrets(); await secretSharingDAL.pruneExpiredSharedSecrets(); await snapshotDAL.pruneExcessSnapshots(); await secretVersionDAL.pruneExcessVersions(); From 897ce1f267f45c63d76e2ef3ff1b220c85b714f5 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 12 Aug 2024 13:19:55 +0530 Subject: [PATCH 057/101] chore: new reviewable command in root make file to check all the entities lint and type error --- Makefile | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Makefile b/Makefile index 11143162e..aec2dad74 100644 --- a/Makefile +++ b/Makefile @@ -15,3 +15,16 @@ up-prod: down: docker compose -f docker-compose.dev.yml down + +reviewable-ui: + cd frontend && \ + npm run lint:fix && \ + npm run type:check + +reviewable-api: + cd backend && \ + npm run lint:fix && \ + npm run type:check + +reviewable: reviewable-ui reviewable-api + From 5f2cd04f46ab7cc706d60779db9e18f6ff0dd138 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 12 Aug 2024 20:29:05 +0530 Subject: [PATCH 058/101] feat: removed not needed condition --- backend/src/ee/services/audit-log/audit-log-dal.ts | 5 +---- .../services/identity-ua/identity-ua-client-secret-dal.ts | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-dal.ts b/backend/src/ee/services/audit-log/audit-log-dal.ts index 9d181e1aa..249e239c5 100644 --- a/backend/src/ee/services/audit-log/audit-log-dal.ts +++ b/backend/src/ee/services/audit-log/audit-log-dal.ts @@ -84,10 +84,7 @@ export const auditLogDALFactory = (db: TDbClient) => { setTimeout(resolve, 10); // time to breathe for db }); } - } while ( - deletedAuditLogIds.length > 0 || - (numberOfRetryOnFailure > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE) - ); + } while (deletedAuditLogIds.length > 0 || numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE); }; return { ...auditLogOrm, pruneAuditLog, find }; diff --git a/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts b/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts index 4e35f6232..ec0fd6fbf 100644 --- a/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts +++ b/backend/src/services/identity-ua/identity-ua-client-secret-dal.ts @@ -71,10 +71,7 @@ export const identityUaClientSecretDALFactory = (db: TDbClient) => { setTimeout(resolve, 10); // time to breathe for db }); } - } while ( - deletedClientSecret.length > 0 || - (numberOfRetryOnFailure > 0 && numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE) - ); + } while (deletedClientSecret.length > 0 || numberOfRetryOnFailure < MAX_RETRY_ON_FAILURE); }; return { ...uaClientSecretOrm, incrementUsage, removeExpiredClientSecrets }; From df07d7b6d76a6cadaf1dff6dbe368a2bbc80f9d5 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Mon, 12 Aug 2024 11:34:32 -0400 Subject: [PATCH 059/101] update spending docs --- company/handbook/spending-money.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/company/handbook/spending-money.mdx b/company/handbook/spending-money.mdx index ac2980ec2..d9ea4c535 100644 --- a/company/handbook/spending-money.mdx +++ b/company/handbook/spending-money.mdx @@ -39,7 +39,7 @@ While we're not yet able to provide the latest and greatest, we strive to be rea **Chair**: $150 USD ### Laptop -- Each team member will receive a company issued Macbook Pro before they start their first day. +Each team member will receive a company-issued Macbook Pro before they start their first day. ### Notes From 3fcc3ccff4f96f07d68cf53f52adb0894bc5fd0f Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Mon, 12 Aug 2024 12:41:15 -0400 Subject: [PATCH 060/101] fix spending money tpyo --- company/handbook/spending-money.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/company/handbook/spending-money.mdx b/company/handbook/spending-money.mdx index d9ea4c535..046604399 100644 --- a/company/handbook/spending-money.mdx +++ b/company/handbook/spending-money.mdx @@ -1,5 +1,5 @@ --- -title: "Spenging Money" +title: "Spending Money" sidebarTitle: "Spending Money" description: "The guide to spending money at Infisical." --- From 5db3e177eb375c4f655964816036e2908958f7dd Mon Sep 17 00:00:00 2001 From: Rhythm Bhiwani Date: Tue, 13 Aug 2024 02:01:25 +0530 Subject: [PATCH 061/101] Fixed Pagination Disappearing on Secret Sharing Page --- .../src/views/ShareSecretPage/components/ShareSecretsTable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/ShareSecretPage/components/ShareSecretsTable.tsx b/frontend/src/views/ShareSecretPage/components/ShareSecretsTable.tsx index 33dfa297a..bdb2b2ffa 100644 --- a/frontend/src/views/ShareSecretPage/components/ShareSecretsTable.tsx +++ b/frontend/src/views/ShareSecretPage/components/ShareSecretsTable.tsx @@ -61,7 +61,7 @@ export const ShareSecretsTable = ({ handlePopUpOpen }: Props) => {

{!isLoading && data?.secrets && - data.secrets.length >= perPage && + data?.totalCount >= perPage && data?.totalCount !== undefined && ( Date: Tue, 13 Aug 2024 02:04:55 +0530 Subject: [PATCH 062/101] feat: switched to ssm update as overwrite with tag as seperate operation --- .../integration-sync-secret.ts | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 4fc69b76c..33f58edfb 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -609,15 +609,37 @@ const syncSecretsAWSParameterStore = async ({ Type: "SecureString", Value: secrets[key].value, ...(metadata.kmsKeyId && { KeyId: metadata.kmsKeyId }), - // Overwrite: true, - Tags: metadata.secretAWSTag - ? metadata.secretAWSTag.map((tag: { key: string; value: string }) => ({ - Key: tag.key, - Value: tag.value - })) - : [] + Overwrite: true }) .promise(); + if (metadata.secretAWSTag?.length) { + try { + await ssm + .addTagsToResource({ + ResourceType: "Parameter", + ResourceId: `${integration.path}${key}`, + Tags: metadata.secretAWSTag + ? metadata.secretAWSTag.map((tag: { key: string; value: string }) => ({ + Key: tag.key, + Value: tag.value + })) + : [] + }) + .promise(); + } catch (err) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if ((err as any).code === "AccessDeniedException") { + logger.error( + `AWS Parameter Store Error [integration=${integration.id}]: double check AWS account permissions (refer to the Infisical docs)` + ); + } + + response = { + isSynced: false, + syncMessage: (err as AWSError)?.message || "Error syncing with AWS Parameter Store" + }; + } + } } // case: secret exists in AWS parameter store } else { From 69d60a227a9858e45d23e7f5a739aa248b46fa46 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 13 Aug 2024 02:16:57 +0530 Subject: [PATCH 063/101] fix: resolved secret approval broken due to tag name removal --- .../secret-approval-request-secret-dal.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts index 7bd6a3fa0..592f6ccd0 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-secret-dal.ts @@ -81,8 +81,7 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { .select({ secVerTagId: "secVerTag.id", secVerTagColor: "secVerTag.color", - secVerTagSlug: "secVerTag.slug", - secVerTagName: "secVerTag.name" + secVerTagSlug: "secVerTag.slug" }) .select( db.ref("id").withSchema(TableName.SecretTag).as("tagId"), @@ -199,11 +198,11 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { { key: "secVerTagId", label: "tags" as const, - mapper: ({ secVerTagId: id, secVerTagName: name, secVerTagSlug: slug, secVerTagColor: color }) => ({ + mapper: ({ secVerTagId: id, secVerTagSlug: slug, secVerTagColor: color }) => ({ // eslint-disable-next-line id, // eslint-disable-next-line - name, + name: slug, // eslint-disable-next-line slug, // eslint-disable-next-line @@ -261,8 +260,7 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { .select({ secVerTagId: "secVerTag.id", secVerTagColor: "secVerTag.color", - secVerTagSlug: "secVerTag.slug", - secVerTagName: "secVerTag.name" + secVerTagSlug: "secVerTag.slug" }) .select( db.ref("id").withSchema(TableName.SecretTag).as("tagId"), @@ -328,11 +326,11 @@ export const secretApprovalRequestSecretDALFactory = (db: TDbClient) => { { key: "secVerTagId", label: "tags" as const, - mapper: ({ secVerTagId: id, secVerTagName: name, secVerTagSlug: slug, secVerTagColor: color }) => ({ + mapper: ({ secVerTagId: id, secVerTagSlug: slug, secVerTagColor: color }) => ({ // eslint-disable-next-line id, // eslint-disable-next-line - name, + name: slug, // eslint-disable-next-line slug, // eslint-disable-next-line From dae26daeebf6a5d279fa52dcea2a678a58d4bbc8 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 13 Aug 2024 20:39:20 +0530 Subject: [PATCH 064/101] feat: added debug points to test ssm integration in replication --- .../integration-auth/integration-sync-secret.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 33f58edfb..ffd57f6cc 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -538,19 +538,21 @@ const syncSecretsAWSParameterStore = async ({ integration, secrets, accessId, - accessToken + accessToken, + projectId }: { integration: TIntegrations; secrets: Record; accessId: string | null; accessToken: string; + projectId?: string; }) => { let response: { isSynced: boolean; syncMessage: string } | null = null; if (!accessId) { throw new Error("AWS access ID is required"); } - + logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug: started`); const config = new AWS.Config({ region: integration.region as string, credentials: { @@ -594,6 +596,12 @@ const syncSecretsAWSParameterStore = async ({ nextToken = parameters.NextToken; } + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}` + ); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}` + ); // Identify secrets to create // don't use Promise.all() and promise map here // it will cause rate limit @@ -3678,7 +3686,8 @@ export const syncIntegrationSecrets = async ({ integration, secrets, accessId, - accessToken + accessToken, + projectId }); break; case Integrations.AWS_SECRET_MANAGER: From 8e08c443ada557d85f28fdd257203312be47294e Mon Sep 17 00:00:00 2001 From: = Date: Tue, 13 Aug 2024 20:50:19 +0530 Subject: [PATCH 065/101] feat: added log to print operation based keys --- .../src/services/integration-auth/integration-sync-secret.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index ffd57f6cc..08a6e00b0 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -611,6 +611,7 @@ const syncSecretsAWSParameterStore = async ({ // case: secret does not exist in AWS parameter store // -> create secret if (secrets[key].value) { + logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug create: ${key}`); await ssm .putParameter({ Name: `${integration.path}${key}`, @@ -651,6 +652,7 @@ const syncSecretsAWSParameterStore = async ({ } // case: secret exists in AWS parameter store } else { + logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug update: ${key}`); // -> update secret if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) { await ssm @@ -703,6 +705,7 @@ const syncSecretsAWSParameterStore = async ({ for (const key in awsParameterStoreSecretsObj) { if (Object.hasOwn(awsParameterStoreSecretsObj, key)) { if (!(key in secrets)) { + logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug delete: ${key}`); // case: // -> delete secret await ssm From 943b540383287c9fe00be6be6d37cce46feecb3f Mon Sep 17 00:00:00 2001 From: = Date: Tue, 13 Aug 2024 21:48:03 +0530 Subject: [PATCH 066/101] feat: added more endpoints for delete --- .../integration-sync-secret.ts | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 08a6e00b0..2bb613f6b 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -541,7 +541,7 @@ const syncSecretsAWSParameterStore = async ({ accessToken, projectId }: { - integration: TIntegrations; + integration: TIntegrations & { secretPath: string; environment: { slug: string } }; secrets: Record; accessId: string | null; accessToken: string; @@ -552,7 +552,9 @@ const syncSecretsAWSParameterStore = async ({ if (!accessId) { throw new Error("AWS access ID is required"); } - logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug: started`); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug: started` + ); const config = new AWS.Config({ region: integration.region as string, credentials: { @@ -597,10 +599,14 @@ const syncSecretsAWSParameterStore = async ({ } logger.info( - `getIntegrationSecrets: [projectId=${projectId}] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}` + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${ + integration.secretPath + }] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}` ); logger.info( - `getIntegrationSecrets: [projectId=${projectId}] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}` + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${ + integration.secretPath + }] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}` ); // Identify secrets to create // don't use Promise.all() and promise map here @@ -611,7 +617,9 @@ const syncSecretsAWSParameterStore = async ({ // case: secret does not exist in AWS parameter store // -> create secret if (secrets[key].value) { - logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug create: ${key}`); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug create: ${key}` + ); await ssm .putParameter({ Name: `${integration.path}${key}`, @@ -652,7 +660,9 @@ const syncSecretsAWSParameterStore = async ({ } // case: secret exists in AWS parameter store } else { - logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug update: ${key}`); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug update: ${key}` + ); // -> update secret if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) { await ssm @@ -702,10 +712,18 @@ const syncSecretsAWSParameterStore = async ({ } if (!metadata.shouldDisableDelete) { + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete started` + ); for (const key in awsParameterStoreSecretsObj) { if (Object.hasOwn(awsParameterStoreSecretsObj, key)) { + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete in hasOwn: ${key}` + ); if (!(key in secrets)) { - logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug delete: ${key}`); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete: ${key}` + ); // case: // -> delete secret await ssm @@ -713,6 +731,9 @@ const syncSecretsAWSParameterStore = async ({ Name: awsParameterStoreSecretsObj[key].Name as string }) .promise(); + logger.info( + `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete completed: ${key}` + ); } await new Promise((resolve) => { setTimeout(resolve, 50); From 2b16c19b7070af17b38b921608de93f48a09f121 Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Tue, 13 Aug 2024 12:40:02 -0400 Subject: [PATCH 067/101] improve logs for aws ssm debug --- .../integration-sync-secret.ts | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 2bb613f6b..f99bf689b 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -552,9 +552,6 @@ const syncSecretsAWSParameterStore = async ({ if (!accessId) { throw new Error("AWS access ID is required"); } - logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug: started` - ); const config = new AWS.Config({ region: integration.region as string, credentials: { @@ -571,7 +568,9 @@ const syncSecretsAWSParameterStore = async ({ const metadata = z.record(z.any()).parse(integration.metadata || {}); const awsParameterStoreSecretsObj: Record = {}; - + logger.info( + `getIntegrationSecrets: integration sync triggered for ssm with [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [shouldDisableDelete=${metadata.shouldDisableDelete}]` + ); // now fetch all aws parameter store secrets let hasNext = true; let nextToken: string | undefined; @@ -599,14 +598,16 @@ const syncSecretsAWSParameterStore = async ({ } logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${ - integration.secretPath - }] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}` + `getIntegrationSecrets: all fetched keys from AWS SSM [projectId=${projectId}] [environment=${ + integration.environment.slug + }] [secretPath=${integration.secretPath}] [awsParameterStoreSecretsObj=${Object.keys( + awsParameterStoreSecretsObj + ).join(",")}]` ); logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${ - integration.secretPath - }] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}` + `getIntegrationSecrets: all secrets from Infisical to send to AWS SSM [projectId=${projectId}] [environment=${ + integration.environment.slug + }] [secretPath=${integration.secretPath}] [secrets=${Object.keys(secrets).join(",")}]` ); // Identify secrets to create // don't use Promise.all() and promise map here @@ -618,7 +619,7 @@ const syncSecretsAWSParameterStore = async ({ // -> create secret if (secrets[key].value) { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug create: ${key}` + `getIntegrationSecrets: create secret in AWS SSM for [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}]` ); await ssm .putParameter({ @@ -661,7 +662,7 @@ const syncSecretsAWSParameterStore = async ({ // case: secret exists in AWS parameter store } else { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug update: ${key}` + `getIntegrationSecrets: update secret in AWS SSM for [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}]` ); // -> update secret if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) { @@ -713,16 +714,16 @@ const syncSecretsAWSParameterStore = async ({ if (!metadata.shouldDisableDelete) { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete started` + `getIntegrationSecrets: inside of shouldDisableDelete AWS SSM [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [step=1]` ); for (const key in awsParameterStoreSecretsObj) { if (Object.hasOwn(awsParameterStoreSecretsObj, key)) { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete in hasOwn: ${key}` + `getIntegrationSecrets: inside of shouldDisableDelete AWS SSM [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}] [step=2]` ); if (!(key in secrets)) { logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete: ${key}` + `getIntegrationSecrets: inside of shouldDisableDelete AWS SSM [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}] [step=3]` ); // case: // -> delete secret @@ -732,7 +733,7 @@ const syncSecretsAWSParameterStore = async ({ }) .promise(); logger.info( - `getIntegrationSecrets: [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] ssm debug delete completed: ${key}` + `getIntegrationSecrets: inside of shouldDisableDelete AWS SSM [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}] [step=4]` ); } await new Promise((resolve) => { From bb6416acb7efe1f2c8dea9f1cd6fc85e2441ed70 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Tue, 13 Aug 2024 11:22:45 -0700 Subject: [PATCH 068/101] Update CA certificate tracking impl to use foreign ref instead of number --- .../20240802181855_ca-cert-version.ts | 21 +++--- .../src/db/schemas/certificate-authorities.ts | 2 +- backend/src/db/schemas/dynamic-secrets.ts | 10 ++- backend/src/db/schemas/webhooks.ts | 15 ++-- .../routes/v1/certificate-authority-router.ts | 2 +- .../certificate-authority-fns.ts | 3 +- .../certificate-authority-service.ts | 73 ++++++++++--------- .../certificate-authority-types.ts | 2 +- frontend/src/hooks/api/ca/mutations.tsx | 4 +- frontend/src/hooks/api/ca/types.ts | 3 +- 10 files changed, 77 insertions(+), 58 deletions(-) diff --git a/backend/src/db/migrations/20240802181855_ca-cert-version.ts b/backend/src/db/migrations/20240802181855_ca-cert-version.ts index 7c7d956fc..805cf0a53 100644 --- a/backend/src/db/migrations/20240802181855_ca-cert-version.ts +++ b/backend/src/db/migrations/20240802181855_ca-cert-version.ts @@ -4,16 +4,19 @@ import { TableName } from "../schemas"; export async function up(knex: Knex): Promise { if (await knex.schema.hasTable(TableName.CertificateAuthority)) { - const hasActiveCaCertVersionColumn = await knex.schema.hasColumn( - TableName.CertificateAuthority, - "activeCaCertVersion" - ); - if (!hasActiveCaCertVersionColumn) { + const hasActiveCaCertIdColumn = await knex.schema.hasColumn(TableName.CertificateAuthority, "activeCaCertId"); + if (!hasActiveCaCertIdColumn) { await knex.schema.alterTable(TableName.CertificateAuthority, (t) => { - t.integer("activeCaCertVersion").nullable(); + t.uuid("activeCaCertId").nullable(); + t.foreign("activeCaCertId").references("id").inTable(TableName.CertificateAuthorityCert); }); - await knex(TableName.CertificateAuthority).where("status", "active").update({ activeCaCertVersion: 1 }); + await knex.raw(` + UPDATE "${TableName.CertificateAuthority}" ca + SET "activeCaCertId" = cac.id + FROM "${TableName.CertificateAuthorityCert}" cac + WHERE ca.id = cac."caId" + `); } } @@ -63,9 +66,9 @@ export async function up(knex: Knex): Promise { export async function down(knex: Knex): Promise { if (await knex.schema.hasTable(TableName.CertificateAuthority)) { - if (await knex.schema.hasColumn(TableName.CertificateAuthority, "activeCaCertVersion")) { + if (await knex.schema.hasColumn(TableName.CertificateAuthority, "activeCaCertId")) { await knex.schema.alterTable(TableName.CertificateAuthority, (t) => { - t.dropColumn("activeCaCertVersion"); + t.dropColumn("activeCaCertId"); }); } } diff --git a/backend/src/db/schemas/certificate-authorities.ts b/backend/src/db/schemas/certificate-authorities.ts index 9255b037e..e59a9225c 100644 --- a/backend/src/db/schemas/certificate-authorities.ts +++ b/backend/src/db/schemas/certificate-authorities.ts @@ -28,7 +28,7 @@ export const CertificateAuthoritiesSchema = z.object({ keyAlgorithm: z.string(), notBefore: z.date().nullable().optional(), notAfter: z.date().nullable().optional(), - activeCaCertVersion: z.number().nullable().optional() + activeCaCertId: z.string().uuid().nullable().optional() }); export type TCertificateAuthorities = z.infer; diff --git a/backend/src/db/schemas/dynamic-secrets.ts b/backend/src/db/schemas/dynamic-secrets.ts index d90f1f7d2..b27da396c 100644 --- a/backend/src/db/schemas/dynamic-secrets.ts +++ b/backend/src/db/schemas/dynamic-secrets.ts @@ -5,8 +5,6 @@ import { z } from "zod"; -import { zodBuffer } from "@app/lib/zod"; - import { TImmutableDBKeys } from "./models"; export const DynamicSecretsSchema = z.object({ @@ -16,12 +14,16 @@ export const DynamicSecretsSchema = z.object({ type: z.string(), defaultTTL: z.string(), maxTTL: z.string().nullable().optional(), + inputIV: z.string(), + inputCiphertext: z.string(), + inputTag: z.string(), + algorithm: z.string().default("aes-256-gcm"), + keyEncoding: z.string().default("utf8"), folderId: z.string().uuid(), status: z.string().nullable().optional(), statusDetails: z.string().nullable().optional(), createdAt: z.date(), - updatedAt: z.date(), - encryptedConfig: zodBuffer + updatedAt: z.date() }); export type TDynamicSecrets = z.infer; diff --git a/backend/src/db/schemas/webhooks.ts b/backend/src/db/schemas/webhooks.ts index 3f670497f..a7aac2933 100644 --- a/backend/src/db/schemas/webhooks.ts +++ b/backend/src/db/schemas/webhooks.ts @@ -5,22 +5,27 @@ import { z } from "zod"; -import { zodBuffer } from "@app/lib/zod"; - import { TImmutableDBKeys } from "./models"; export const WebhooksSchema = z.object({ id: z.string().uuid(), secretPath: z.string().default("/"), + url: z.string(), lastStatus: z.string().nullable().optional(), lastRunErrorMessage: z.string().nullable().optional(), isDisabled: z.boolean().default(false), + encryptedSecretKey: z.string().nullable().optional(), + iv: z.string().nullable().optional(), + tag: z.string().nullable().optional(), + algorithm: z.string().nullable().optional(), + keyEncoding: z.string().nullable().optional(), createdAt: z.date(), updatedAt: z.date(), envId: z.string().uuid(), - type: z.string().default("general").nullable().optional(), - encryptedSecretKeyWithKms: zodBuffer.nullable().optional(), - encryptedUrl: zodBuffer + urlCipherText: z.string().nullable().optional(), + urlIV: z.string().nullable().optional(), + urlTag: z.string().nullable().optional(), + type: z.string().default("general").nullable().optional() }); export type TWebhooks = z.infer; diff --git a/backend/src/server/routes/v1/certificate-authority-router.ts b/backend/src/server/routes/v1/certificate-authority-router.ts index bc5294f05..103d430c0 100644 --- a/backend/src/server/routes/v1/certificate-authority-router.ts +++ b/backend/src/server/routes/v1/certificate-authority-router.ts @@ -283,7 +283,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => { }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), schema: { - description: "Renew CA certificate for CA", + description: "Perform CA certificate renewal", params: z.object({ caId: z.string().trim().describe(CERTIFICATE_AUTHORITIES.RENEW_CA_CERT.caId) }), diff --git a/backend/src/services/certificate-authority/certificate-authority-fns.ts b/backend/src/services/certificate-authority/certificate-authority-fns.ts index 84d8d263d..bf9f639e8 100644 --- a/backend/src/services/certificate-authority/certificate-authority-fns.ts +++ b/backend/src/services/certificate-authority/certificate-authority-fns.ts @@ -206,8 +206,9 @@ export const getCaCertChain = async ({ }: TGetCaCertChainDTO) => { const ca = await certificateAuthorityDAL.findById(caId); if (!ca) throw new BadRequestError({ message: "CA not found" }); + if (!ca.activeCaCertId) throw new BadRequestError({ message: "CA does not have a certificate installed" }); - const caCert = await certificateAuthorityCertDAL.findOne({ caId: ca.id }); + const caCert = await certificateAuthorityCertDAL.findById(ca.activeCaCertId); const keyId = await getProjectKmsCertificateKeyId({ projectId: ca.projectId, diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index 52cfa8039..68d9bbf01 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -51,7 +51,10 @@ type TCertificateAuthorityServiceFactoryDep = { TCertificateAuthorityDALFactory, "transaction" | "create" | "findById" | "updateById" | "deleteById" | "findOne" >; - certificateAuthorityCertDAL: Pick; + certificateAuthorityCertDAL: Pick< + TCertificateAuthorityCertDALFactory, + "create" | "findOne" | "transaction" | "find" | "findById" + >; certificateAuthoritySecretDAL: Pick; certificateAuthorityCrlDAL: Pick; certificateAuthorityQueue: TCertificateAuthorityQueueFactory; // TODO: Pick @@ -153,8 +156,7 @@ export const certificateAuthorityServiceFactory = ({ maxPathLength, notBefore: notBeforeDate, notAfter: notAfterDate, - serialNumber, - activeCaCertVersion: 1 + serialNumber }) }, tx @@ -213,7 +215,7 @@ export const certificateAuthorityServiceFactory = ({ plainText: Buffer.alloc(0) }); - await certificateAuthorityCertDAL.create( + const caCert = await certificateAuthorityCertDAL.create( { caId: ca.id, encryptedCertificate, @@ -223,6 +225,14 @@ export const certificateAuthorityServiceFactory = ({ }, tx ); + + await certificateAuthorityDAL.updateById( + ca.id, + { + activeCaCertId: caCert.id + }, + tx + ); } // create empty CRL @@ -347,9 +357,7 @@ export const certificateAuthorityServiceFactory = ({ ); if (ca.type === CaType.ROOT) throw new BadRequestError({ message: "Root CA cannot generate CSR" }); - - const [caCert] = await certificateAuthorityCertDAL.find({ caId: ca.id }, { sort: [["version", "desc"]] }); - if (caCert) throw new BadRequestError({ message: "CA already has a certificate installed" }); + if (ca.activeCaCertId) throw new BadRequestError({ message: "CA already has a certificate installed" }); const { caPrivateKey, caPublicKey } = await getCaCredentials({ caId, @@ -394,6 +402,8 @@ export const certificateAuthorityServiceFactory = ({ const ca = await certificateAuthorityDAL.findById(caId); if (!ca) throw new BadRequestError({ message: "CA not found" }); + if (!ca.activeCaCertId) throw new BadRequestError({ message: "CA does not have a certificate installed" }); + const { permission } = await permissionService.getProjectPermission( actor, actorId, @@ -410,8 +420,7 @@ export const certificateAuthorityServiceFactory = ({ if (ca.status === CaStatus.DISABLED) throw new BadRequestError({ message: "CA is disabled" }); // get latest CA certificate - const [caCert] = await certificateAuthorityCertDAL.find({ caId: ca.id }, { sort: [["version", "desc"]] }); - if (!caCert) throw new BadRequestError({ message: "CA does not have a certificate installed" }); + const caCert = await certificateAuthorityCertDAL.findById(ca.activeCaCertId); const serialNumber = crypto.randomBytes(32).toString("hex"); @@ -489,13 +498,12 @@ export const certificateAuthorityServiceFactory = ({ }); await certificateAuthorityDAL.transaction(async (tx) => { - const newActiveCaCertVersion = caCert.version + 1; - await certificateAuthorityCertDAL.create( + const newCaCert = await certificateAuthorityCertDAL.create( { caId: ca.id, encryptedCertificate, encryptedCertificateChain, - version: newActiveCaCertVersion, + version: caCert.version + 1, caSecretId: caSecret.id }, tx @@ -504,7 +512,7 @@ export const certificateAuthorityServiceFactory = ({ await certificateAuthorityDAL.updateById( ca.id, { - activeCaCertVersion: newActiveCaCertVersion, + activeCaCertId: newCaCert.id, notBefore: notBeforeDate, notAfter: new Date(notAfter) }, @@ -533,10 +541,9 @@ export const certificateAuthorityServiceFactory = ({ }); // get latest parent CA certificate - const [parentCaCert] = await certificateAuthorityCertDAL.find( - { caId: parentCa.id }, - { sort: [["version", "desc"]] } - ); + if (!parentCa.activeCaCertId) + throw new BadRequestError({ message: "Parent CA does not have a certificate installed" }); + const parentCaCert = await certificateAuthorityCertDAL.findById(parentCa.activeCaCertId); const decryptedParentCaCert = await kmsDecryptor({ cipherTextBlob: parentCaCert.encryptedCertificate @@ -581,7 +588,7 @@ export const certificateAuthorityServiceFactory = ({ const intermediateCert = await x509.X509CertificateGenerator.create({ serialNumber, subject: csrObj.subject, - issuer: caCertObj.subject, + issuer: parentCaCertObj.subject, notBefore: notBeforeDate, notAfter: new Date(notAfter), signingKey: parentCaPrivateKey, @@ -600,7 +607,7 @@ export const certificateAuthorityServiceFactory = ({ ca.maxPathLength === -1 || !ca.maxPathLength ? undefined : ca.maxPathLength, true ), - await x509.AuthorityKeyIdentifierExtension.create(caCertObj, false), + await x509.AuthorityKeyIdentifierExtension.create(parentCaCertObj, false), await x509.SubjectKeyIdentifierExtension.create(csrObj.publicKey) ] }); @@ -624,13 +631,12 @@ export const certificateAuthorityServiceFactory = ({ }); await certificateAuthorityDAL.transaction(async (tx) => { - const newActiveCaCertVersion = caCert.version + 1; - await certificateAuthorityCertDAL.create( + const newCaCert = await certificateAuthorityCertDAL.create( { caId: ca.id, encryptedCertificate, encryptedCertificateChain, - version: newActiveCaCertVersion, + version: caCert.version + 1, caSecretId: caSecret.id }, tx @@ -639,7 +645,7 @@ export const certificateAuthorityServiceFactory = ({ await certificateAuthorityDAL.updateById( ca.id, { - activeCaCertVersion: newActiveCaCertVersion, + activeCaCertId: newCaCert.id, notBefore: notBeforeDate, notAfter: new Date(notAfter) }, @@ -764,9 +770,9 @@ export const certificateAuthorityServiceFactory = ({ ); if (ca.status === CaStatus.DISABLED) throw new BadRequestError({ message: "CA is disabled" }); + if (!ca.activeCaCertId) throw new BadRequestError({ message: "CA does not have a certificate installed" }); - const [caCert] = await certificateAuthorityCertDAL.find({ caId: ca.id }, { sort: [["version", "desc"]] }); - if (!caCert) throw new BadRequestError({ message: "CA does not have a certificate installed" }); + const caCert = await certificateAuthorityCertDAL.findById(ca.activeCaCertId); if (ca.notAfter && new Date() > new Date(ca.notAfter)) { throw new BadRequestError({ message: "CA is expired" }); @@ -900,8 +906,7 @@ export const certificateAuthorityServiceFactory = ({ ProjectPermissionSub.CertificateAuthorities ); - const [caCert] = await certificateAuthorityCertDAL.find({ caId: ca.id }, { sort: [["version", "desc"]] }); - if (caCert) throw new BadRequestError({ message: "CA has already imported a certificate" }); + if (ca.activeCaCertId) throw new BadRequestError({ message: "CA has already imported a certificate" }); const certObj = new x509.X509Certificate(certificate); const maxPathLength = certObj.getExtension(x509.BasicConstraintsExtension)?.pathLength; @@ -967,7 +972,7 @@ export const certificateAuthorityServiceFactory = ({ } await certificateAuthorityCertDAL.transaction(async (tx) => { - await certificateAuthorityCertDAL.create( + const newCaCert = await certificateAuthorityCertDAL.create( { caId: ca.id, encryptedCertificate, @@ -986,7 +991,8 @@ export const certificateAuthorityServiceFactory = ({ notBefore: new Date(certObj.notBefore), notAfter: new Date(certObj.notAfter), serialNumber: certObj.serialNumber, - parentCaId: parentCa?.id + parentCaId: parentCa?.id, + activeCaCertId: newCaCert.id }, tx ); @@ -1026,9 +1032,8 @@ export const certificateAuthorityServiceFactory = ({ ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Create, ProjectPermissionSub.Certificates); if (ca.status === CaStatus.DISABLED) throw new BadRequestError({ message: "CA is disabled" }); - - const [caCert] = await certificateAuthorityCertDAL.find({ caId: ca.id }, { sort: [["version", "desc"]] }); - if (!caCert) throw new BadRequestError({ message: "CA does not have a certificate installed" }); + if (!ca.activeCaCertId) throw new BadRequestError({ message: "CA does not have a certificate installed" }); + const caCert = await certificateAuthorityCertDAL.findById(ca.activeCaCertId); if (ca.notAfter && new Date() > new Date(ca.notAfter)) { throw new BadRequestError({ message: "CA is expired" }); @@ -1233,9 +1238,9 @@ export const certificateAuthorityServiceFactory = ({ ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Create, ProjectPermissionSub.Certificates); if (ca.status === CaStatus.DISABLED) throw new BadRequestError({ message: "CA is disabled" }); + if (!ca.activeCaCertId) throw new BadRequestError({ message: "CA does not have a certificate installed" }); - const [caCert] = await certificateAuthorityCertDAL.find({ caId: ca.id }, { sort: [["version", "desc"]] }); - if (!caCert) throw new BadRequestError({ message: "CA does not have a certificate installed" }); + const caCert = await certificateAuthorityCertDAL.findById(ca.activeCaCertId); if (ca.notAfter && new Date() > new Date(ca.notAfter)) { throw new BadRequestError({ message: "CA is expired" }); diff --git a/backend/src/services/certificate-authority/certificate-authority-types.ts b/backend/src/services/certificate-authority/certificate-authority-types.ts index f97844870..91e76e49c 100644 --- a/backend/src/services/certificate-authority/certificate-authority-types.ts +++ b/backend/src/services/certificate-authority/certificate-authority-types.ts @@ -134,7 +134,7 @@ export type TGetCaCertChainsDTO = { export type TGetCaCertChainDTO = { caId: string; certificateAuthorityDAL: Pick; - certificateAuthorityCertDAL: Pick; + certificateAuthorityCertDAL: Pick; projectDAL: Pick; kmsService: Pick; }; diff --git a/frontend/src/hooks/api/ca/mutations.tsx b/frontend/src/hooks/api/ca/mutations.tsx index 54109adfc..27d03248f 100644 --- a/frontend/src/hooks/api/ca/mutations.tsx +++ b/frontend/src/hooks/api/ca/mutations.tsx @@ -16,7 +16,8 @@ import { TRenewCaResponse, TSignIntermediateDTO, TSignIntermediateResponse, - TUpdateCaDTO} from "./types"; + TUpdateCaDTO +} from "./types"; export const useCreateCa = () => { const queryClient = useQueryClient(); @@ -123,6 +124,7 @@ export const useRenewCa = () => { }, onSuccess: (_, { caId, projectSlug }) => { queryClient.invalidateQueries(workspaceKeys.getWorkspaceCas({ projectSlug })); + queryClient.invalidateQueries(caKeys.getCaById(caId)); queryClient.invalidateQueries(caKeys.getCaCert(caId)); queryClient.invalidateQueries(caKeys.getCaCerts(caId)); queryClient.invalidateQueries(caKeys.getCaCsr(caId)); diff --git a/frontend/src/hooks/api/ca/types.ts b/frontend/src/hooks/api/ca/types.ts index bba7aa699..7513070c8 100644 --- a/frontend/src/hooks/api/ca/types.ts +++ b/frontend/src/hooks/api/ca/types.ts @@ -1,5 +1,5 @@ import { CertKeyAlgorithm } from "../certificates/enums"; -import { CaRenewalType,CaStatus, CaType } from "./enums"; +import { CaRenewalType, CaStatus, CaType } from "./enums"; export type TCertificateAuthority = { id: string; @@ -19,6 +19,7 @@ export type TCertificateAuthority = { notAfter?: string; notBefore?: string; keyAlgorithm: CertKeyAlgorithm; + activeCaCertId?: string; createdAt: string; updatedAt: string; }; From f993e4aa5c4f3389fadf3a8e8b05cb5906d65b7f Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Tue, 13 Aug 2024 11:31:57 -0700 Subject: [PATCH 069/101] Clear type check issue --- backend/src/services/certificate/certificate-service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/services/certificate/certificate-service.ts b/backend/src/services/certificate/certificate-service.ts index f05ed8a87..01f736c29 100644 --- a/backend/src/services/certificate/certificate-service.ts +++ b/backend/src/services/certificate/certificate-service.ts @@ -21,7 +21,7 @@ type TCertificateServiceFactoryDep = { certificateDAL: Pick; certificateBodyDAL: Pick; certificateAuthorityDAL: Pick; - certificateAuthorityCertDAL: Pick; + certificateAuthorityCertDAL: Pick; certificateAuthorityCrlDAL: Pick; certificateAuthoritySecretDAL: Pick; projectDAL: Pick; From 742f5f6621ef24f4bfda26ec6dc70c78961bb248 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 14 Aug 2024 00:13:55 +0530 Subject: [PATCH 070/101] feat(ui): resolved a race condition in ui --- .../src/pages/integrations/aws-parameter-store/create.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/frontend/src/pages/integrations/aws-parameter-store/create.tsx b/frontend/src/pages/integrations/aws-parameter-store/create.tsx index 9c46840b5..5af4a86c2 100644 --- a/frontend/src/pages/integrations/aws-parameter-store/create.tsx +++ b/frontend/src/pages/integrations/aws-parameter-store/create.tsx @@ -277,18 +277,14 @@ export default function AWSParameterStoreCreateIntegrationPage() {
setShouldDisableDelete(!shouldDisableDelete)} + onCheckedChange={setShouldDisableDelete} isChecked={shouldDisableDelete} > Disable deleting secrets in AWS Parameter Store
- setShouldTag(!shouldTag)} - isChecked={shouldTag} - > + Tag in AWS Parameter Store
From b60d0992f455a7c8ee6c83487ed26178f770eea1 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 14 Aug 2024 21:42:07 +0530 Subject: [PATCH 071/101] feat: added log point for aws tag and check for delete secret in bridge --- .../integration-auth/integration-sync-secret.ts | 8 ++++++++ .../secret-v2-bridge/secret-v2-bridge-service.ts | 12 ++++++++++++ backend/src/services/secret/secret-queue.ts | 5 ++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index f99bf689b..b1f7d4cb8 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -645,6 +645,10 @@ const syncSecretsAWSParameterStore = async ({ }) .promise(); } catch (err) { + logger.error( + err, + `getIntegrationSecrets: create secret in AWS SSM for failed [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}]` + ); // eslint-disable-next-line @typescript-eslint/no-explicit-any if ((err as any).code === "AccessDeniedException") { logger.error( @@ -691,6 +695,10 @@ const syncSecretsAWSParameterStore = async ({ }) .promise(); } catch (err) { + logger.error( + err, + `getIntegrationSecrets: update secret in AWS SSM for failed [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}] [key=${key}]` + ); // eslint-disable-next-line @typescript-eslint/no-explicit-any if ((err as any).code === "AccessDeniedException") { logger.error( diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index c5c270585..ba3c8539d 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -378,6 +378,18 @@ export const secretV2BridgeServiceFactory = ({ throw new BadRequestError({ message: "Must be user to delete personal secret" }); } + const secretToDelete = await secretDAL.findOne({ + key: inputSecret.secretName, + folderId, + ...(inputSecret.type === SecretType.Shared + ? {} + : { + type: SecretType.Personal, + userId: actorId + }) + }); + if (!secretToDelete) throw new NotFoundError({ message: "Secret not found" }); + const deletedSecret = await secretDAL.transaction(async (tx) => fnSecretBulkDelete({ projectId, diff --git a/backend/src/services/secret/secret-queue.ts b/backend/src/services/secret/secret-queue.ts index de437a6a5..84e49aabe 100644 --- a/backend/src/services/secret/secret-queue.ts +++ b/backend/src/services/secret/secret-queue.ts @@ -728,7 +728,10 @@ export const secretQueueFactory = ({ isSynced: response?.isSynced ?? true }); } catch (err) { - logger.info("Secret integration sync error: %o", err); + logger.error( + err, + `Secret integration sync error [projectId=${job.data.projectId}] [environment=${job.data.environment}] [secretPath=${job.data.secretPath}]` + ); const message = (err instanceof AxiosError ? JSON.stringify(err?.response?.data) : (err as Error)?.message) || From 4feff5b4ca6d7cb2adbb2ce53d1dac3908ca3649 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 15 Aug 2024 01:24:54 +0530 Subject: [PATCH 072/101] feat: resolved getSecretByName empty value from imported in kms arch --- .../secret-approval-request-service.ts | 14 +++-- .../secret-replication-service.ts | 2 +- .../secret-snapshot-service.ts | 4 +- backend/src/server/routes/sanitizedSchemas.ts | 4 +- .../secret-import/secret-import-fns.ts | 9 ++-- .../secret-import/secret-import-service.ts | 2 +- .../secret-v2-bridge/secret-v2-bridge-fns.ts | 4 +- .../secret-v2-bridge-service.ts | 53 ++++++++----------- backend/src/services/secret/secret-service.ts | 1 + 9 files changed, 42 insertions(+), 51 deletions(-) diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts index 4ae4d25ea..81ccf35f6 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts @@ -224,12 +224,10 @@ export const secretApprovalRequestServiceFactory = ({ secretKey: el.key, id: el.id, version: el.version, - secretValue: el.encryptedValue - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() - : undefined, + secretValue: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", secretComment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined, + : "", secret: el.secret ? { secretKey: el.secret.key, @@ -237,10 +235,10 @@ export const secretApprovalRequestServiceFactory = ({ version: el.secret.version, secretValue: el.secret.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.secret.encryptedValue }).toString() - : undefined, + : "", secretComment: el.secret.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.secret.encryptedComment }).toString() - : undefined + : "" } : undefined, secretVersion: el.secretVersion @@ -250,10 +248,10 @@ export const secretApprovalRequestServiceFactory = ({ version: el.secretVersion.version, secretValue: el.secretVersion.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.secretVersion.encryptedValue }).toString() - : undefined, + : "", secretComment: el.secretVersion.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.secretVersion.encryptedComment }).toString() - : undefined + : "" } : undefined })); diff --git a/backend/src/ee/services/secret-replication/secret-replication-service.ts b/backend/src/ee/services/secret-replication/secret-replication-service.ts index b32d459c5..b77d6cbc2 100644 --- a/backend/src/ee/services/secret-replication/secret-replication-service.ts +++ b/backend/src/ee/services/secret-replication/secret-replication-service.ts @@ -257,7 +257,7 @@ export const secretReplicationServiceFactory = ({ secretDAL: secretV2BridgeDAL, folderDAL, secretImportDAL, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : undefined) + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") }); // secrets that gets replicated across imports const sourceDecryptedLocalSecrets = sourceLocalSecrets.map((el) => ({ diff --git a/backend/src/ee/services/secret-snapshot/secret-snapshot-service.ts b/backend/src/ee/services/secret-snapshot/secret-snapshot-service.ts index c5d8bd4fa..225339104 100644 --- a/backend/src/ee/services/secret-snapshot/secret-snapshot-service.ts +++ b/backend/src/ee/services/secret-snapshot/secret-snapshot-service.ts @@ -164,10 +164,10 @@ export const secretSnapshotServiceFactory = ({ secretKey: el.key, secretValue: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() - : undefined, + : "", secretComment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + : "" })) }; } else { diff --git a/backend/src/server/routes/sanitizedSchemas.ts b/backend/src/server/routes/sanitizedSchemas.ts index a10a962cf..02d9e37e0 100644 --- a/backend/src/server/routes/sanitizedSchemas.ts +++ b/backend/src/server/routes/sanitizedSchemas.ts @@ -63,8 +63,8 @@ export const secretRawSchema = z.object({ version: z.number(), type: z.string(), secretKey: z.string(), - secretValue: z.string().optional(), - secretComment: z.string().optional(), + secretValue: z.string(), + secretComment: z.string(), secretReminderNote: z.string().nullable().optional(), secretReminderRepeatDays: z.number().nullable().optional(), skipMultilineEncoding: z.boolean().default(false).nullable().optional(), diff --git a/backend/src/services/secret-import/secret-import-fns.ts b/backend/src/services/secret-import/secret-import-fns.ts index 1ccaaefc2..f7c31ac61 100644 --- a/backend/src/services/secret-import/secret-import-fns.ts +++ b/backend/src/services/secret-import/secret-import-fns.ts @@ -36,8 +36,8 @@ type TSecretImportSecretsV2 = { secretKey: string; // akhilmhdh: yes i know you can put ?. // But for somereason ts consider ? and undefined explicit as different just ts things - secretValue: string | undefined; - secretComment: string | undefined; + secretValue: string; + secretComment: string; })[]; }; @@ -157,7 +157,7 @@ export const fnSecretsV2FromImports = async ({ secretImportDAL: Pick; depth?: number; cyclicDetector?: Set; - decryptor: (value?: Buffer | null) => string | undefined; + decryptor: (value?: Buffer | null) => string; expandSecretReferences?: ( secrets: Record ) => Promise>; @@ -231,6 +231,7 @@ export const fnSecretsV2FromImports = async ({ _id: item.id // The old Python SDK depends on the _id field being returned. We return this to keep the older Python SDK versions backwards compatible with the new Postgres backend. })) .concat(folderDeeperImportSecrets); + return { secretPath: importPath, environment: importEnv.slug, @@ -254,7 +255,7 @@ export const fnSecretsV2FromImports = async ({ }; return acc; }, - {} as Record + {} as Record ); // eslint-disable-next-line await expandSecretReferences(secretsGroupByKey); diff --git a/backend/src/services/secret-import/secret-import-service.ts b/backend/src/services/secret-import/secret-import-service.ts index c69fec6b6..c3d1a6791 100644 --- a/backend/src/services/secret-import/secret-import-service.ts +++ b/backend/src/services/secret-import/secret-import-service.ts @@ -507,7 +507,7 @@ export const secretImportServiceFactory = ({ folderDAL, secretDAL: secretV2BridgeDAL, secretImportDAL, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : undefined) + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") }); return importedSecrets; } diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts index 8bd5c55f3..e58960a4b 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-fns.ts @@ -528,8 +528,8 @@ export const reshapeBridgeSecret = ( environment: string, secretPath: string, secret: Omit & { - value?: string; - comment?: string; + value: string; + comment: string; tags?: { id: string; slug: string; diff --git a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts index ba3c8539d..b594f98ca 100644 --- a/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts +++ b/backend/src/services/secret-v2-bridge/secret-v2-bridge-service.ts @@ -196,7 +196,7 @@ export const secretV2BridgeServiceFactory = ({ return reshapeBridgeSecret(projectId, environment, secretPath, { ...secret[0], value: inputSecret.secretValue, - comment: inputSecret.secretComment + comment: inputSecret.secretComment || "" }); }; @@ -339,8 +339,8 @@ export const secretV2BridgeServiceFactory = ({ }); return reshapeBridgeSecret(projectId, environment, secretPath, { ...updatedSecret[0], - value: inputSecret.secretValue, - comment: inputSecret.secretComment + value: inputSecret.secretValue || "", + comment: inputSecret.secretComment || "" }); }; @@ -424,10 +424,10 @@ export const secretV2BridgeServiceFactory = ({ ...deletedSecret[0], value: deletedSecret[0].encryptedValue ? secretManagerDecryptor({ cipherTextBlob: deletedSecret[0].encryptedValue }).toString() - : undefined, + : "", comment: deletedSecret[0].encryptedComment ? secretManagerDecryptor({ cipherTextBlob: deletedSecret[0].encryptedComment }).toString() - : undefined + : "" }); }; @@ -570,7 +570,7 @@ export const secretV2BridgeServiceFactory = ({ folderDAL, secretImportDAL, expandSecretReferences, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : undefined) + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") }); return { @@ -670,7 +670,7 @@ export const secretV2BridgeServiceFactory = ({ secretDAL, folderDAL, secretImportDAL, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : undefined), + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : ""), expandSecretReferences: shouldExpandSecretReferences ? expandSecretReferences : undefined }); @@ -678,12 +678,11 @@ export const secretV2BridgeServiceFactory = ({ for (let j = 0; j < importedSecrets[i].secrets.length; j += 1) { const importedSecret = importedSecrets[i].secrets[j]; if (secretName === importedSecret.key) { - return reshapeBridgeSecret( - projectId, - importedSecrets[i].environment, - importedSecrets[i].secretPath, - importedSecret - ); + return reshapeBridgeSecret(projectId, importedSecrets[i].environment, importedSecrets[i].secretPath, { + ...importedSecret, + value: importedSecret.secretValue || "", + comment: importedSecret.secretComment || "" + }); } } } @@ -692,7 +691,7 @@ export const secretV2BridgeServiceFactory = ({ let secretValue = secret.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: secret.encryptedValue }).toString() - : undefined; + : ""; if (shouldExpandSecretReferences && secretValue) { const secretReferenceExpandedRecord = { [secret.key]: { value: secretValue } @@ -707,7 +706,7 @@ export const secretV2BridgeServiceFactory = ({ value: secretValue, comment: secret.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: secret.encryptedComment }).toString() - : undefined + : "" }); }; @@ -797,10 +796,8 @@ export const secretV2BridgeServiceFactory = ({ return newSecrets.map((el) => reshapeBridgeSecret(projectId, environment, secretPath, { ...el, - value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : undefined, - comment: el.encryptedComment - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", + comment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() : "" }) ); }; @@ -918,10 +915,8 @@ export const secretV2BridgeServiceFactory = ({ return secrets.map((el) => reshapeBridgeSecret(projectId, environment, secretPath, { ...el, - value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : undefined, - comment: el.encryptedComment - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", + comment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() : "" }) ); }; @@ -997,10 +992,8 @@ export const secretV2BridgeServiceFactory = ({ return secretsDeleted.map((el) => reshapeBridgeSecret(projectId, environment, secretPath, { ...el, - value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : undefined, - comment: el.encryptedComment - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", + comment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() : "" }) ); }; @@ -1036,10 +1029,8 @@ export const secretV2BridgeServiceFactory = ({ return secretVersions.map((el) => reshapeBridgeSecret(folder.projectId, folder.environment.envSlug, "/", { ...el, - value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : undefined, - comment: el.encryptedComment - ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() - : undefined + value: el.encryptedValue ? secretManagerDecryptor({ cipherTextBlob: el.encryptedValue }).toString() : "", + comment: el.encryptedComment ? secretManagerDecryptor({ cipherTextBlob: el.encryptedComment }).toString() : "" }) ); }; diff --git a/backend/src/services/secret/secret-service.ts b/backend/src/services/secret/secret-service.ts index 57f301594..c62a73f69 100644 --- a/backend/src/services/secret/secret-service.ts +++ b/backend/src/services/secret/secret-service.ts @@ -1154,6 +1154,7 @@ export const secretServiceFactory = ({ type, secretName }); + return secret; } From 856c2423be0e83a7dd33c1f98825ef086530df38 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Wed, 14 Aug 2024 15:43:49 -0700 Subject: [PATCH 073/101] Update cert structure to ref correct ca cert in cert chain retrieval --- .../20240802181855_ca-cert-version.ts | 28 +++++++++++++++++++ backend/src/db/schemas/certificates.ts | 3 +- .../certificate-authority-fns.ts | 12 ++++---- .../certificate-authority-service.ts | 14 ++++++---- .../certificate-authority-types.ts | 2 +- .../certificate/certificate-service.ts | 2 +- 6 files changed, 45 insertions(+), 16 deletions(-) diff --git a/backend/src/db/migrations/20240802181855_ca-cert-version.ts b/backend/src/db/migrations/20240802181855_ca-cert-version.ts index 805cf0a53..24eca185d 100644 --- a/backend/src/db/migrations/20240802181855_ca-cert-version.ts +++ b/backend/src/db/migrations/20240802181855_ca-cert-version.ts @@ -62,6 +62,26 @@ export async function up(knex: Knex): Promise { t.dropUnique(["caId"]); }); } + + if (await knex.schema.hasTable(TableName.Certificate)) { + await knex.schema.alterTable(TableName.Certificate, (t) => { + t.uuid("caCertId").nullable(); + t.foreign("caCertId").references("id").inTable(TableName.CertificateAuthorityCert); + }); + + await knex.raw(` + UPDATE "${TableName.Certificate}" cert + SET "caCertId" = ( + SELECT caCert.id + FROM "${TableName.CertificateAuthorityCert}" caCert + WHERE caCert."caId" = cert."caId" + ) + `); + + await knex.schema.alterTable(TableName.Certificate, (t) => { + t.uuid("caCertId").notNullable().alter(); + }); + } } export async function down(knex: Knex): Promise { @@ -86,4 +106,12 @@ export async function down(knex: Knex): Promise { }); } } + + if (await knex.schema.hasTable(TableName.Certificate)) { + if (await knex.schema.hasColumn(TableName.Certificate, "caCertId")) { + await knex.schema.alterTable(TableName.Certificate, (t) => { + t.dropColumn("caCertId"); + }); + } + } } diff --git a/backend/src/db/schemas/certificates.ts b/backend/src/db/schemas/certificates.ts index 833396fb1..cb14d05f9 100644 --- a/backend/src/db/schemas/certificates.ts +++ b/backend/src/db/schemas/certificates.ts @@ -20,7 +20,8 @@ export const CertificatesSchema = z.object({ notAfter: z.date(), revokedAt: z.date().nullable().optional(), revocationReason: z.number().nullable().optional(), - altNames: z.string().default("").nullable().optional() + altNames: z.string().default("").nullable().optional(), + caCertId: z.string().uuid() }); export type TCertificates = z.infer; diff --git a/backend/src/services/certificate-authority/certificate-authority-fns.ts b/backend/src/services/certificate-authority/certificate-authority-fns.ts index bf9f639e8..4e3df1173 100644 --- a/backend/src/services/certificate-authority/certificate-authority-fns.ts +++ b/backend/src/services/certificate-authority/certificate-authority-fns.ts @@ -195,20 +195,18 @@ export const getCaCertChains = async ({ /** * Return the decrypted pem-encoded certificate and certificate chain - * for CA with id [caId]. + * corresponding to CA certificate with id [caCertId]. */ export const getCaCertChain = async ({ - caId, + caCertId, certificateAuthorityDAL, certificateAuthorityCertDAL, projectDAL, kmsService }: TGetCaCertChainDTO) => { - const ca = await certificateAuthorityDAL.findById(caId); - if (!ca) throw new BadRequestError({ message: "CA not found" }); - if (!ca.activeCaCertId) throw new BadRequestError({ message: "CA does not have a certificate installed" }); - - const caCert = await certificateAuthorityCertDAL.findById(ca.activeCaCertId); + const caCert = await certificateAuthorityCertDAL.findById(caCertId); + if (!caCert) throw new BadRequestError({ message: "CA certificate not found" }); + const ca = await certificateAuthorityDAL.findById(caCert.caId); const keyId = await getProjectKmsCertificateKeyId({ projectId: ca.projectId, diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index 68d9bbf01..b63ec9ba9 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -617,7 +617,7 @@ export const certificateAuthorityServiceFactory = ({ }); const { caCert: parentCaCertificate, caCertChain: parentCaCertChain } = await getCaCertChain({ - caId: parentCa.id, + caCertId: parentCa.activeCaCertId, certificateAuthorityDAL, certificateAuthorityCertDAL, projectDAL, @@ -704,11 +704,11 @@ export const certificateAuthorityServiceFactory = ({ /** * Return current certificate and certificate chain for CA - * get latest?? ca cert */ const getCaCert = async ({ caId, actorId, actorAuthMethod, actor, actorOrgId }: TGetCaCertDTO) => { const ca = await certificateAuthorityDAL.findById(caId); if (!ca) throw new BadRequestError({ message: "CA not found" }); + if (!ca.activeCaCertId) throw new BadRequestError({ message: "CA does not have a certificate installed" }); const { permission } = await permissionService.getProjectPermission( actor, @@ -724,7 +724,7 @@ export const certificateAuthorityServiceFactory = ({ ); const { caCert, caCertChain, serialNumber } = await getCaCertChain({ - caId, + caCertId: ca.activeCaCertId, certificateAuthorityDAL, certificateAuthorityCertDAL, projectDAL, @@ -860,7 +860,7 @@ export const certificateAuthorityServiceFactory = ({ }); const { caCert: issuingCaCertificate, caCertChain } = await getCaCertChain({ - caId, + caCertId: ca.activeCaCertId, certificateAuthorityDAL, certificateAuthorityCertDAL, projectDAL, @@ -1166,6 +1166,7 @@ export const certificateAuthorityServiceFactory = ({ const cert = await certificateDAL.create( { caId: ca.id, + caCertId: caCert.id, status: CertStatus.ACTIVE, friendlyName: friendlyName || commonName, commonName, @@ -1189,7 +1190,7 @@ export const certificateAuthorityServiceFactory = ({ }); const { caCert: issuingCaCertificate, caCertChain } = await getCaCertChain({ - caId: ca.id, + caCertId: caCert.id, certificateAuthorityDAL, certificateAuthorityCertDAL, projectDAL, @@ -1369,6 +1370,7 @@ export const certificateAuthorityServiceFactory = ({ const cert = await certificateDAL.create( { caId: ca.id, + caCertId: caCert.id, status: CertStatus.ACTIVE, friendlyName: friendlyName || csrObj.subject, commonName: cn, @@ -1392,7 +1394,7 @@ export const certificateAuthorityServiceFactory = ({ }); const { caCert: issuingCaCertificate, caCertChain } = await getCaCertChain({ - caId: ca.id, + caCertId: ca.activeCaCertId, certificateAuthorityDAL, certificateAuthorityCertDAL, projectDAL, diff --git a/backend/src/services/certificate-authority/certificate-authority-types.ts b/backend/src/services/certificate-authority/certificate-authority-types.ts index 91e76e49c..31a6e1629 100644 --- a/backend/src/services/certificate-authority/certificate-authority-types.ts +++ b/backend/src/services/certificate-authority/certificate-authority-types.ts @@ -132,7 +132,7 @@ export type TGetCaCertChainsDTO = { }; export type TGetCaCertChainDTO = { - caId: string; + caCertId: string; certificateAuthorityDAL: Pick; certificateAuthorityCertDAL: Pick; projectDAL: Pick; diff --git a/backend/src/services/certificate/certificate-service.ts b/backend/src/services/certificate/certificate-service.ts index 01f736c29..8dc2de901 100644 --- a/backend/src/services/certificate/certificate-service.ts +++ b/backend/src/services/certificate/certificate-service.ts @@ -180,7 +180,7 @@ export const certificateServiceFactory = ({ const certObj = new x509.X509Certificate(decryptedCert); const { caCert, caCertChain } = await getCaCertChain({ - caId: ca.id, + caCertId: cert.caCertId, certificateAuthorityDAL, certificateAuthorityCertDAL, projectDAL, From f4384bb01e1381a04fa98e0da973afcf998f3b82 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 15 Aug 2024 14:49:30 +0800 Subject: [PATCH 074/101] feat: initial structure --- backend/src/@types/fastify.d.ts | 2 + backend/src/@types/knex.d.ts | 10 ++ ...20240815045235_add-certificate-template.ts | 29 +++++ .../src/db/schemas/certificate-templates.ts | 22 ++++ backend/src/db/schemas/models.ts | 1 + .../services/permission/project-permission.ts | 9 ++ .../routes/v1/certificate-template-router.ts | 116 ++++++++++++++++++ .../src/server/routes/v2/project-router.ts | 36 ++++++ .../certificate-template-dal.ts | 44 +++++++ .../certificate-template-service.ts | 91 ++++++++++++++ .../certificate-template-types.ts | 12 ++ .../src/services/project/project-service.ts | 35 ++++++ backend/src/services/project/project-types.ts | 2 + 13 files changed, 409 insertions(+) create mode 100644 backend/src/db/migrations/20240815045235_add-certificate-template.ts create mode 100644 backend/src/db/schemas/certificate-templates.ts create mode 100644 backend/src/server/routes/v1/certificate-template-router.ts create mode 100644 backend/src/services/certificate-template/certificate-template-dal.ts create mode 100644 backend/src/services/certificate-template/certificate-template-service.ts create mode 100644 backend/src/services/certificate-template/certificate-template-types.ts diff --git a/backend/src/@types/fastify.d.ts b/backend/src/@types/fastify.d.ts index bd9e483ae..6e4f196cc 100644 --- a/backend/src/@types/fastify.d.ts +++ b/backend/src/@types/fastify.d.ts @@ -35,6 +35,7 @@ import { ActorAuthMethod, ActorType } from "@app/services/auth/auth-type"; import { TAuthTokenServiceFactory } from "@app/services/auth-token/auth-token-service"; import { TCertificateServiceFactory } from "@app/services/certificate/certificate-service"; import { TCertificateAuthorityServiceFactory } from "@app/services/certificate-authority/certificate-authority-service"; +import { TCertificateTemplateServiceFactory } from "@app/services/certificate-template/certificate-template-service"; import { TGroupProjectServiceFactory } from "@app/services/group-project/group-project-service"; import { TIdentityServiceFactory } from "@app/services/identity/identity-service"; import { TIdentityAccessTokenServiceFactory } from "@app/services/identity-access-token/identity-access-token-service"; @@ -154,6 +155,7 @@ declare module "fastify" { auditLog: TAuditLogServiceFactory; auditLogStream: TAuditLogStreamServiceFactory; certificate: TCertificateServiceFactory; + certificateTemplate: TCertificateTemplateServiceFactory; certificateAuthority: TCertificateAuthorityServiceFactory; certificateAuthorityCrl: TCertificateAuthorityCrlServiceFactory; pkiCollection: TPkiCollectionServiceFactory; diff --git a/backend/src/@types/knex.d.ts b/backend/src/@types/knex.d.ts index 0dc781092..008fee382 100644 --- a/backend/src/@types/knex.d.ts +++ b/backend/src/@types/knex.d.ts @@ -318,6 +318,11 @@ import { TWebhooksInsert, TWebhooksUpdate } from "@app/db/schemas"; +import { + TCertificateTemplates, + TCertificateTemplatesInsert, + TCertificateTemplatesUpdate +} from "@app/db/schemas/certificate-templates"; import { TSecretV2TagJunction, TSecretV2TagJunctionInsert, @@ -364,6 +369,11 @@ declare module "knex/types/tables" { TCertificateAuthorityCrlUpdate >; [TableName.Certificate]: KnexOriginal.CompositeTableType; + [TableName.CertificateTemplate]: KnexOriginal.CompositeTableType< + TCertificateTemplates, + TCertificateTemplatesInsert, + TCertificateTemplatesUpdate + >; [TableName.CertificateBody]: KnexOriginal.CompositeTableType< TCertificateBodies, TCertificateBodiesInsert, diff --git a/backend/src/db/migrations/20240815045235_add-certificate-template.ts b/backend/src/db/migrations/20240815045235_add-certificate-template.ts new file mode 100644 index 000000000..f6a691f38 --- /dev/null +++ b/backend/src/db/migrations/20240815045235_add-certificate-template.ts @@ -0,0 +1,29 @@ +import { Knex } from "knex"; + +import { TableName } from "../schemas"; +import { createOnUpdateTrigger, dropOnUpdateTrigger } from "../utils"; + +export async function up(knex: Knex): Promise { + const hasCertificateTemplateTable = await knex.schema.hasTable(TableName.CertificateTemplate); + if (!hasCertificateTemplateTable) { + await knex.schema.createTable(TableName.CertificateTemplate, (tb) => { + tb.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid()); + tb.uuid("caId").notNullable(); + tb.foreign("caId").references("id").inTable(TableName.CertificateAuthority).onDelete("CASCADE"); + tb.string("name").notNullable(); + tb.string("commonName").notNullable(); + tb.string("ttl").notNullable(); + tb.timestamps(true, true, true); + }); + + await createOnUpdateTrigger(knex, TableName.CertificateTemplate); + } +} + +export async function down(knex: Knex): Promise { + const hasCertificateTemplateTable = await knex.schema.hasTable(TableName.CertificateTemplate); + if (hasCertificateTemplateTable) { + await knex.schema.dropTable(TableName.CertificateTemplate); + await dropOnUpdateTrigger(knex, TableName.CertificateTemplate); + } +} diff --git a/backend/src/db/schemas/certificate-templates.ts b/backend/src/db/schemas/certificate-templates.ts new file mode 100644 index 000000000..988147362 --- /dev/null +++ b/backend/src/db/schemas/certificate-templates.ts @@ -0,0 +1,22 @@ +// Code generated by automation script, DO NOT EDIT. +// Automated by pulling database and generating zod schema +// To update. Just run npm run generate:schema +// Written by akhilmhdh. + +import { z } from "zod"; + +import { TImmutableDBKeys } from "./models"; + +export const CertificateTemplatesSchema = z.object({ + id: z.string().uuid(), + caId: z.string().uuid(), + name: z.string(), + commonName: z.string(), + ttl: z.string(), + createdAt: z.date(), + updatedAt: z.date() +}); + +export type TCertificateTemplates = z.infer; +export type TCertificateTemplatesInsert = Omit, TImmutableDBKeys>; +export type TCertificateTemplatesUpdate = Partial, TImmutableDBKeys>>; diff --git a/backend/src/db/schemas/models.ts b/backend/src/db/schemas/models.ts index ebbead70c..03f7d6a3b 100644 --- a/backend/src/db/schemas/models.ts +++ b/backend/src/db/schemas/models.ts @@ -9,6 +9,7 @@ export enum TableName { Certificate = "certificates", CertificateBody = "certificate_bodies", CertificateSecret = "certificate_secrets", + CertificateTemplate = "certificate_templates", PkiAlert = "pki_alerts", PkiCollection = "pki_collections", PkiCollectionItem = "pki_collection_items", diff --git a/backend/src/ee/services/permission/project-permission.ts b/backend/src/ee/services/permission/project-permission.ts index 7ea2ba39f..f8f19a295 100644 --- a/backend/src/ee/services/permission/project-permission.ts +++ b/backend/src/ee/services/permission/project-permission.ts @@ -30,6 +30,7 @@ export enum ProjectPermissionSub { Identity = "identity", CertificateAuthorities = "certificate-authorities", Certificates = "certificates", + CertificateTemplates = "certificate-templates", PkiAlerts = "pki-alerts", PkiCollections = "pki-collections", Kms = "kms" @@ -65,6 +66,7 @@ export type ProjectPermissionSet = | [ProjectPermissionActions, ProjectPermissionSub.Identity] | [ProjectPermissionActions, ProjectPermissionSub.CertificateAuthorities] | [ProjectPermissionActions, ProjectPermissionSub.Certificates] + | [ProjectPermissionActions, ProjectPermissionSub.CertificateTemplates] | [ProjectPermissionActions, ProjectPermissionSub.PkiAlerts] | [ProjectPermissionActions, ProjectPermissionSub.PkiCollections] | [ProjectPermissionActions.Delete, ProjectPermissionSub.Project] @@ -165,6 +167,11 @@ const buildAdminPermissionRules = () => { can(ProjectPermissionActions.Edit, ProjectPermissionSub.Certificates); can(ProjectPermissionActions.Delete, ProjectPermissionSub.Certificates); + can(ProjectPermissionActions.Read, ProjectPermissionSub.CertificateTemplates); + can(ProjectPermissionActions.Create, ProjectPermissionSub.CertificateTemplates); + can(ProjectPermissionActions.Edit, ProjectPermissionSub.CertificateTemplates); + can(ProjectPermissionActions.Delete, ProjectPermissionSub.CertificateTemplates); + can(ProjectPermissionActions.Read, ProjectPermissionSub.PkiAlerts); can(ProjectPermissionActions.Create, ProjectPermissionSub.PkiAlerts); can(ProjectPermissionActions.Edit, ProjectPermissionSub.PkiAlerts); @@ -251,6 +258,8 @@ const buildMemberPermissionRules = () => { can(ProjectPermissionActions.Edit, ProjectPermissionSub.Certificates); can(ProjectPermissionActions.Delete, ProjectPermissionSub.Certificates); + can(ProjectPermissionActions.Read, ProjectPermissionSub.CertificateTemplates); + can(ProjectPermissionActions.Read, ProjectPermissionSub.PkiAlerts); can(ProjectPermissionActions.Read, ProjectPermissionSub.PkiCollections); diff --git a/backend/src/server/routes/v1/certificate-template-router.ts b/backend/src/server/routes/v1/certificate-template-router.ts new file mode 100644 index 000000000..854c668ba --- /dev/null +++ b/backend/src/server/routes/v1/certificate-template-router.ts @@ -0,0 +1,116 @@ +import { z } from "zod"; + +import { CertificateTemplatesSchema } from "@app/db/schemas/certificate-templates"; +import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; +import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; +import { AuthMode } from "@app/services/auth/auth-type"; + +const sanitizedCertificateTemplate = CertificateTemplatesSchema.pick({ + id: true, + caId: true, + name: true, + commonName: true, + ttl: true +}); + +export const registerCertificateTemplateRouter = async (server: FastifyZodProvider) => { + server.route({ + method: "GET", + url: "/:certificateTemplateId", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + certificateTemplateId: z.string() + }), + response: { + 200: z.object({ + certificateTemplate: sanitizedCertificateTemplate.merge( + z.object({ + projectId: z.string(), + caName: z.string() + }) + ) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const certificateTemplate = await server.services.certificateTemplate.getCertTemplate({ + id: req.params.certificateTemplateId, + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId + }); + + return { certificateTemplate }; + } + }); + + server.route({ + method: "POST", + url: "/", + config: { + rateLimit: writeLimit + }, + schema: { + body: z.object({ + caId: z.string(), + name: z.string(), + commonName: z.string(), + ttl: z.string() + }), + response: { + 200: z.object({ + certificateTemplate: sanitizedCertificateTemplate + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const certificateTemplate = await server.services.certificateTemplate.createCertTemplate({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body + }); + + return { certificateTemplate }; + } + }); + + server.route({ + method: "PATCH", + url: "/", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({}), + response: { + 200: z.object({}) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => {} + }); + + server.route({ + method: "DELETE", + url: "/", + config: { + rateLimit: writeLimit + }, + schema: { + params: z.object({}), + response: { + 200: z.object({}) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => {} + }); +}; diff --git a/backend/src/server/routes/v2/project-router.ts b/backend/src/server/routes/v2/project-router.ts index 85043ecee..ed80a9e59 100644 --- a/backend/src/server/routes/v2/project-router.ts +++ b/backend/src/server/routes/v2/project-router.ts @@ -8,6 +8,7 @@ import { PkiCollectionsSchema, ProjectKeysSchema } from "@app/db/schemas"; +import { CertificateTemplatesSchema } from "@app/db/schemas/certificate-templates"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { PROJECTS } from "@app/lib/api-docs"; import { creationLimit, readLimit, writeLimit } from "@app/server/config/rateLimiter"; @@ -458,4 +459,39 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { return { collections: pkiCollections }; } }); + + server.route({ + method: "GET", + url: "/:projectId/certificate-templates", + config: { + rateLimit: readLimit + }, + schema: { + params: z.object({ + projectId: z.string().trim() + }), + response: { + 200: z.object({ + certificateTemplates: z.array( + CertificateTemplatesSchema.pick({ + id: true, + name: true + }) + ) + }) + } + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + handler: async (req) => { + const { certificateTemplates } = await server.services.project.listProjectCertificateTemplates({ + projectId: req.params.projectId, + actorId: req.permission.id, + actorOrgId: req.permission.orgId, + actorAuthMethod: req.permission.authMethod, + actor: req.permission.type + }); + + return { certificateTemplates }; + } + }); }; diff --git a/backend/src/services/certificate-template/certificate-template-dal.ts b/backend/src/services/certificate-template/certificate-template-dal.ts new file mode 100644 index 000000000..062e64f35 --- /dev/null +++ b/backend/src/services/certificate-template/certificate-template-dal.ts @@ -0,0 +1,44 @@ +import { TDbClient } from "@app/db"; +import { TableName } from "@app/db/schemas"; +import { ormify, selectAllTableCols } from "@app/lib/knex"; + +export type TCertificateTemplateDALFactory = ReturnType; + +export const certificateTemplateDALFactory = (db: TDbClient) => { + const certificateTemplateOrm = ormify(db, TableName.CertificateTemplate); + + const getCertTemplatesByProjectId = async (projectId: string) => { + const certTemplates = await db + .replicaNode()(TableName.CertificateTemplate) + .join( + TableName.CertificateAuthority, + `${TableName.CertificateAuthority}.id`, + `${TableName.CertificateTemplate}.caId` + ) + .where(`${TableName.CertificateAuthority}.projectId`, "=", projectId) + .select(selectAllTableCols(TableName.CertificateTemplate)); + + return certTemplates; + }; + + const getById = async (id: string) => { + const certTemplate = await db + .replicaNode()(TableName.CertificateTemplate) + .join( + TableName.CertificateAuthority, + `${TableName.CertificateAuthority}.id`, + `${TableName.CertificateTemplate}.caId` + ) + .where(`${TableName.CertificateTemplate}.id`, "=", id) + .select(selectAllTableCols(TableName.CertificateTemplate)) + .select( + db.ref("projectId").withSchema(TableName.CertificateAuthority), + db.ref("friendlyName").as("caName").withSchema(TableName.CertificateAuthority) + ) + .first(); + + return certTemplate; + }; + + return { ...certificateTemplateOrm, getCertTemplatesByProjectId, getById }; +}; diff --git a/backend/src/services/certificate-template/certificate-template-service.ts b/backend/src/services/certificate-template/certificate-template-service.ts new file mode 100644 index 000000000..2739c4b45 --- /dev/null +++ b/backend/src/services/certificate-template/certificate-template-service.ts @@ -0,0 +1,91 @@ +import { ForbiddenError } from "@casl/ability"; + +import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; +import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; +import { NotFoundError } from "@app/lib/errors"; + +import { TCertificateAuthorityDALFactory } from "../certificate-authority/certificate-authority-dal"; +import { TCertificateTemplateDALFactory } from "./certificate-template-dal"; +import { TCreateCertTemplateDTO, TGetCertTemplateDTO } from "./certificate-template-types"; + +type TCertificateTemplateServiceFactoryDep = { + certificateTemplateDAL: TCertificateTemplateDALFactory; + certificateAuthorityDAL: Pick; + permissionService: Pick; +}; + +export type TCertificateTemplateServiceFactory = ReturnType; + +export const certificateTemplateServiceFactory = ({ + certificateTemplateDAL, + certificateAuthorityDAL, + permissionService +}: TCertificateTemplateServiceFactoryDep) => { + const createCertTemplate = async ({ + caId, + name, + commonName, + ttl, + actorId, + actorAuthMethod, + actor, + actorOrgId + }: TCreateCertTemplateDTO) => { + const ca = await certificateAuthorityDAL.findById(caId); + if (!ca) { + throw new NotFoundError({ + message: "CA not found" + }); + } + const { permission } = await permissionService.getProjectPermission( + actor, + actorId, + ca.projectId, + actorAuthMethod, + actorOrgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionActions.Create, + ProjectPermissionSub.CertificateTemplates + ); + + const certificateTemplate = await certificateTemplateDAL.create({ + caId, + name, + commonName, + ttl + }); + + return certificateTemplate; + }; + + const getCertTemplate = async ({ id, actorId, actorAuthMethod, actor, actorOrgId }: TGetCertTemplateDTO) => { + const certTemplate = await certificateTemplateDAL.getById(id); + if (!certTemplate) { + throw new NotFoundError({ + message: "Certificate template not found." + }); + } + + const { permission } = await permissionService.getProjectPermission( + actor, + actorId, + certTemplate.projectId, + actorAuthMethod, + actorOrgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionActions.Read, + ProjectPermissionSub.CertificateTemplates + ); + + return certTemplate; + }; + + return { + createCertTemplate, + getCertTemplate + }; +}; diff --git a/backend/src/services/certificate-template/certificate-template-types.ts b/backend/src/services/certificate-template/certificate-template-types.ts new file mode 100644 index 000000000..471666e19 --- /dev/null +++ b/backend/src/services/certificate-template/certificate-template-types.ts @@ -0,0 +1,12 @@ +import { TProjectPermission } from "@app/lib/types"; + +export type TCreateCertTemplateDTO = { + caId: string; + name: string; + commonName: string; + ttl: string; +} & Omit; + +export type TGetCertTemplateDTO = { + id: string; +} & Omit; diff --git a/backend/src/services/project/project-service.ts b/backend/src/services/project/project-service.ts index 9416a66a9..a7111d784 100644 --- a/backend/src/services/project/project-service.ts +++ b/backend/src/services/project/project-service.ts @@ -16,6 +16,7 @@ import { TProjectPermission } from "@app/lib/types"; import { ActorType } from "../auth/auth-type"; import { TCertificateDALFactory } from "../certificate/certificate-dal"; import { TCertificateAuthorityDALFactory } from "../certificate-authority/certificate-authority-dal"; +import { TCertificateTemplateDALFactory } from "../certificate-template/certificate-template-dal"; import { TIdentityOrgDALFactory } from "../identity/identity-org-dal"; import { TIdentityProjectDALFactory } from "../identity-project/identity-project-dal"; import { TIdentityProjectMembershipRoleDALFactory } from "../identity-project/identity-project-membership-role-dal"; @@ -41,6 +42,7 @@ import { TGetProjectKmsKey, TListProjectAlertsDTO, TListProjectCasDTO, + TListProjectCertificateTemplatesDTO, TListProjectCertsDTO, TLoadProjectKmsBackupDTO, TToggleProjectAutoCapitalizationDTO, @@ -73,6 +75,7 @@ type TProjectServiceFactoryDep = { projectUserMembershipRoleDAL: Pick; certificateAuthorityDAL: Pick; certificateDAL: Pick; + certificateTemplateDAL: Pick; pkiAlertDAL: Pick; pkiCollectionDAL: Pick; permissionService: TPermissionServiceFactory; @@ -112,6 +115,7 @@ export const projectServiceFactory = ({ identityProjectMembershipRoleDAL, certificateAuthorityDAL, certificateDAL, + certificateTemplateDAL, pkiCollectionDAL, pkiAlertDAL, keyStore, @@ -737,6 +741,36 @@ export const projectServiceFactory = ({ }; }; + /** + * Return list of certificate templates for project + */ + const listProjectCertificateTemplates = async ({ + projectId, + actorId, + actorOrgId, + actorAuthMethod, + actor + }: TListProjectCertificateTemplatesDTO) => { + const { permission } = await permissionService.getProjectPermission( + actor, + actorId, + projectId, + actorAuthMethod, + actorOrgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionActions.Read, + ProjectPermissionSub.CertificateTemplates + ); + + const certificateTemplates = await certificateTemplateDAL.getCertTemplatesByProjectId(projectId); + + return { + certificateTemplates + }; + }; + const updateProjectKmsKey = async ({ projectId, kms, @@ -857,6 +891,7 @@ export const projectServiceFactory = ({ listProjectCertificates, listProjectAlerts, listProjectPkiCollections, + listProjectCertificateTemplates, updateVersionLimit, updateAuditLogsRetention, updateProjectKmsKey, diff --git a/backend/src/services/project/project-types.ts b/backend/src/services/project/project-types.ts index ac53b3f71..ee2f1aea9 100644 --- a/backend/src/services/project/project-types.ts +++ b/backend/src/services/project/project-types.ts @@ -117,3 +117,5 @@ export type TLoadProjectKmsBackupDTO = { } & TProjectPermission; export type TGetProjectKmsKey = TProjectPermission; + +export type TListProjectCertificateTemplatesDTO = TProjectPermission; From b176f133924e807faa22a32363f22155f35fc817 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 15 Aug 2024 15:21:49 +0800 Subject: [PATCH 075/101] doc: add dynamic secrets to api references --- .../ee/routes/v1/dynamic-secret-lease-router.ts | 2 +- .../endpoints/dynamic-secrets/create-lease.mdx | 4 ++++ .../endpoints/dynamic-secrets/create.mdx | 4 ++++ .../endpoints/dynamic-secrets/delete-lease.mdx | 4 ++++ .../endpoints/dynamic-secrets/delete.mdx | 4 ++++ .../endpoints/dynamic-secrets/get-lease.mdx | 4 ++++ .../endpoints/dynamic-secrets/get.mdx | 4 ++++ .../endpoints/dynamic-secrets/list-leases.mdx | 4 ++++ .../endpoints/dynamic-secrets/list.mdx | 4 ++++ .../endpoints/dynamic-secrets/renew-lease.mdx | 4 ++++ .../endpoints/dynamic-secrets/update.mdx | 4 ++++ docs/mint.json | 15 +++++++++++++++ 12 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 docs/api-reference/endpoints/dynamic-secrets/create-lease.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/create.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/delete-lease.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/delete.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/get-lease.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/get.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/list-leases.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/list.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/renew-lease.mdx create mode 100644 docs/api-reference/endpoints/dynamic-secrets/update.mdx diff --git a/backend/src/ee/routes/v1/dynamic-secret-lease-router.ts b/backend/src/ee/routes/v1/dynamic-secret-lease-router.ts index 5ef9f7eeb..c19af4d22 100644 --- a/backend/src/ee/routes/v1/dynamic-secret-lease-router.ts +++ b/backend/src/ee/routes/v1/dynamic-secret-lease-router.ts @@ -131,7 +131,7 @@ export const registerDynamicSecretLeaseRouter = async (server: FastifyZodProvide .default("/") .transform(removeTrailingSlash) .describe(DYNAMIC_SECRET_LEASES.RENEW.path), - environmentSlug: z.string().min(1).describe(DYNAMIC_SECRET_LEASES.RENEW.ttl) + environmentSlug: z.string().min(1).describe(DYNAMIC_SECRET_LEASES.RENEW.environmentSlug) }), response: { 200: z.object({ diff --git a/docs/api-reference/endpoints/dynamic-secrets/create-lease.mdx b/docs/api-reference/endpoints/dynamic-secrets/create-lease.mdx new file mode 100644 index 000000000..57e235f50 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/create-lease.mdx @@ -0,0 +1,4 @@ +--- +title: "Create Lease" +openapi: "POST /api/v1/dynamic-secrets/leases" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/create.mdx b/docs/api-reference/endpoints/dynamic-secrets/create.mdx new file mode 100644 index 000000000..1c591bd3d --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create" +openapi: "POST /api/v1/dynamic-secrets" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/delete-lease.mdx b/docs/api-reference/endpoints/dynamic-secrets/delete-lease.mdx new file mode 100644 index 000000000..93e209995 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/delete-lease.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete Lease" +openapi: "DELETE /api/v1/dynamic-secrets/leases/{leaseId}" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/delete.mdx b/docs/api-reference/endpoints/dynamic-secrets/delete.mdx new file mode 100644 index 000000000..e59ac4379 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete" +openapi: "DELETE /api/v1/dynamic-secrets/{name}" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/get-lease.mdx b/docs/api-reference/endpoints/dynamic-secrets/get-lease.mdx new file mode 100644 index 000000000..aff12207e --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/get-lease.mdx @@ -0,0 +1,4 @@ +--- +title: "Get Lease" +openapi: "GET /api/v1/dynamic-secrets/leases/{leaseId}" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/get.mdx b/docs/api-reference/endpoints/dynamic-secrets/get.mdx new file mode 100644 index 000000000..bc3267e97 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/get.mdx @@ -0,0 +1,4 @@ +--- +title: "Get" +openapi: "GET /api/v1/dynamic-secrets/{name}" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/list-leases.mdx b/docs/api-reference/endpoints/dynamic-secrets/list-leases.mdx new file mode 100644 index 000000000..26cad150d --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/list-leases.mdx @@ -0,0 +1,4 @@ +--- +title: "List Leases" +openapi: "GET /api/v1/dynamic-secrets/{name}/leases" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/list.mdx b/docs/api-reference/endpoints/dynamic-secrets/list.mdx new file mode 100644 index 000000000..d76c1167e --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/list.mdx @@ -0,0 +1,4 @@ +--- +title: "List" +openapi: "GET /api/v1/dynamic-secrets" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/renew-lease.mdx b/docs/api-reference/endpoints/dynamic-secrets/renew-lease.mdx new file mode 100644 index 000000000..ea1777e6b --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/renew-lease.mdx @@ -0,0 +1,4 @@ +--- +title: "Renew Lease" +openapi: "POST /api/v1/dynamic-secrets/leases/{leaseId}/renew" +--- diff --git a/docs/api-reference/endpoints/dynamic-secrets/update.mdx b/docs/api-reference/endpoints/dynamic-secrets/update.mdx new file mode 100644 index 000000000..0ab4aaab4 --- /dev/null +++ b/docs/api-reference/endpoints/dynamic-secrets/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v1/dynamic-secrets/{name}" +--- diff --git a/docs/mint.json b/docs/mint.json index ed824284b..bf0f396d2 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -617,6 +617,21 @@ "api-reference/endpoints/secrets/detach-tags" ] }, + { + "group": "Dynamic Secrets", + "pages": [ + "api-reference/endpoints/dynamic-secrets/create", + "api-reference/endpoints/dynamic-secrets/update", + "api-reference/endpoints/dynamic-secrets/delete", + "api-reference/endpoints/dynamic-secrets/get", + "api-reference/endpoints/dynamic-secrets/list", + "api-reference/endpoints/dynamic-secrets/list-leases", + "api-reference/endpoints/dynamic-secrets/create-lease", + "api-reference/endpoints/dynamic-secrets/delete-lease", + "api-reference/endpoints/dynamic-secrets/renew-lease", + "api-reference/endpoints/dynamic-secrets/get-lease" + ] + }, { "group": "Secret Imports", "pages": [ From 05efd954722d768818de1c5cd8a99fcc4299ed64 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 15 Aug 2024 15:46:35 +0800 Subject: [PATCH 076/101] feat: completed certificate template schema endpoints --- backend/src/server/routes/index.ts | 13 ++- .../routes/v1/certificate-template-router.ts | 51 +++++++++-- backend/src/server/routes/v1/index.ts | 2 + .../certificate-template-service.ts | 89 ++++++++++++++++++- .../certificate-template-types.ts | 12 +++ 5 files changed, 155 insertions(+), 12 deletions(-) diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index dbd223d7b..46e241075 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -89,6 +89,8 @@ import { certificateAuthorityDALFactory } from "@app/services/certificate-author import { certificateAuthorityQueueFactory } from "@app/services/certificate-authority/certificate-authority-queue"; import { certificateAuthoritySecretDALFactory } from "@app/services/certificate-authority/certificate-authority-secret-dal"; import { certificateAuthorityServiceFactory } from "@app/services/certificate-authority/certificate-authority-service"; +import { certificateTemplateDALFactory } from "@app/services/certificate-template/certificate-template-dal"; +import { certificateTemplateServiceFactory } from "@app/services/certificate-template/certificate-template-service"; import { groupProjectDALFactory } from "@app/services/group-project/group-project-dal"; import { groupProjectMembershipRoleDALFactory } from "@app/services/group-project/group-project-membership-role-dal"; import { groupProjectServiceFactory } from "@app/services/group-project/group-project-service"; @@ -584,6 +586,7 @@ export const registerRoutes = async ( const certificateAuthorityCertDAL = certificateAuthorityCertDALFactory(db); const certificateAuthoritySecretDAL = certificateAuthoritySecretDALFactory(db); const certificateAuthorityCrlDAL = certificateAuthorityCrlDALFactory(db); + const certificateTemplateDAL = certificateTemplateDALFactory(db); const certificateDAL = certificateDALFactory(db); const certificateBodyDAL = certificateBodyDALFactory(db); @@ -636,6 +639,12 @@ export const registerRoutes = async ( licenseService }); + const certificateTemplateService = certificateTemplateServiceFactory({ + certificateTemplateDAL, + certificateAuthorityDAL, + permissionService + }); + const pkiAlertService = pkiAlertServiceFactory({ pkiAlertDAL, pkiCollectionDAL, @@ -673,7 +682,8 @@ export const registerRoutes = async ( identityProjectMembershipRoleDAL, keyStore, kmsService, - projectBotDAL + projectBotDAL, + certificateTemplateDAL }); const projectEnvService = projectEnvServiceFactory({ @@ -1140,6 +1150,7 @@ export const registerRoutes = async ( auditLogStream: auditLogStreamService, certificate: certificateService, certificateAuthority: certificateAuthorityService, + certificateTemplate: certificateTemplateService, certificateAuthorityCrl: certificateAuthorityCrlService, pkiAlert: pkiAlertService, pkiCollection: pkiCollectionService, diff --git a/backend/src/server/routes/v1/certificate-template-router.ts b/backend/src/server/routes/v1/certificate-template-router.ts index 854c668ba..7b71cbbd1 100644 --- a/backend/src/server/routes/v1/certificate-template-router.ts +++ b/backend/src/server/routes/v1/certificate-template-router.ts @@ -84,33 +84,68 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid server.route({ method: "PATCH", - url: "/", + url: "/:certificateTemplateId", config: { rateLimit: writeLimit }, schema: { - params: z.object({}), + body: z.object({ + caId: z.string().optional(), + name: z.string().optional(), + commonName: z.string().optional(), + ttl: z.string().optional() + }), + params: z.object({ + certificateTemplateId: z.string() + }), response: { - 200: z.object({}) + 200: z.object({ + certificateTemplate: sanitizedCertificateTemplate + }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), - handler: async (req) => {} + handler: async (req) => { + const certificateTemplate = await server.services.certificateTemplate.updateCertTemplate({ + ...req.body, + id: req.params.certificateTemplateId, + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId + }); + + return { certificateTemplate }; + } }); server.route({ method: "DELETE", - url: "/", + url: "/:certificateTemplateId", config: { rateLimit: writeLimit }, schema: { - params: z.object({}), + params: z.object({ + certificateTemplateId: z.string() + }), response: { - 200: z.object({}) + 200: z.object({ + certificateTemplate: sanitizedCertificateTemplate + }) } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), - handler: async (req) => {} + handler: async (req) => { + const certificateTemplate = await server.services.certificateTemplate.deleteCertTemplate({ + id: req.params.certificateTemplateId, + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId + }); + + return { certificateTemplate }; + } }); }; diff --git a/backend/src/server/routes/v1/index.ts b/backend/src/server/routes/v1/index.ts index 1a5a56bd0..c588187c4 100644 --- a/backend/src/server/routes/v1/index.ts +++ b/backend/src/server/routes/v1/index.ts @@ -3,6 +3,7 @@ import { registerAuthRoutes } from "./auth-router"; import { registerProjectBotRouter } from "./bot-router"; import { registerCaRouter } from "./certificate-authority-router"; import { registerCertRouter } from "./certificate-router"; +import { registerCertificateTemplateRouter } from "./certificate-template-router"; import { registerIdentityAccessTokenRouter } from "./identity-access-token-router"; import { registerIdentityAwsAuthRouter } from "./identity-aws-iam-auth-router"; import { registerIdentityAzureAuthRouter } from "./identity-azure-auth-router"; @@ -76,6 +77,7 @@ export const registerV1Routes = async (server: FastifyZodProvider) => { async (pkiRouter) => { await pkiRouter.register(registerCaRouter, { prefix: "/ca" }); await pkiRouter.register(registerCertRouter, { prefix: "/certificates" }); + await pkiRouter.register(registerCertificateTemplateRouter, { prefix: "/certificate-templates" }); await server.register(registerPkiAlertRouter, { prefix: "/alerts" }); await server.register(registerPkiCollectionRouter, { prefix: "/collections" }); }, diff --git a/backend/src/services/certificate-template/certificate-template-service.ts b/backend/src/services/certificate-template/certificate-template-service.ts index 2739c4b45..a294fee81 100644 --- a/backend/src/services/certificate-template/certificate-template-service.ts +++ b/backend/src/services/certificate-template/certificate-template-service.ts @@ -2,11 +2,16 @@ import { ForbiddenError } from "@casl/ability"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { NotFoundError } from "@app/lib/errors"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; import { TCertificateAuthorityDALFactory } from "../certificate-authority/certificate-authority-dal"; import { TCertificateTemplateDALFactory } from "./certificate-template-dal"; -import { TCreateCertTemplateDTO, TGetCertTemplateDTO } from "./certificate-template-types"; +import { + TCreateCertTemplateDTO, + TDeleteCertTemplateDTO, + TGetCertTemplateDTO, + TUpdateCertTemplateDTO +} from "./certificate-template-types"; type TCertificateTemplateServiceFactoryDep = { certificateTemplateDAL: TCertificateTemplateDALFactory; @@ -60,6 +65,82 @@ export const certificateTemplateServiceFactory = ({ return certificateTemplate; }; + const updateCertTemplate = async ({ + id, + caId, + name, + commonName, + ttl, + actorId, + actorAuthMethod, + actor, + actorOrgId + }: TUpdateCertTemplateDTO) => { + const certTemplate = await certificateTemplateDAL.getById(id); + if (!certTemplate) { + throw new NotFoundError({ + message: "Certificate template not found." + }); + } + + const { permission } = await permissionService.getProjectPermission( + actor, + actorId, + certTemplate.projectId, + actorAuthMethod, + actorOrgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionActions.Edit, + ProjectPermissionSub.CertificateTemplates + ); + + if (caId) { + const ca = await certificateAuthorityDAL.findById(caId); + if (!ca || ca.projectId !== certTemplate.projectId) { + throw new BadRequestError({ + message: "Invalid CA" + }); + } + } + + const updatedCertTemplate = await certificateTemplateDAL.updateById(certTemplate.id, { + caId, + commonName, + name, + ttl + }); + + return updatedCertTemplate; + }; + + const deleteCertTemplate = async ({ id, actorId, actorAuthMethod, actor, actorOrgId }: TDeleteCertTemplateDTO) => { + const certTemplate = await certificateTemplateDAL.getById(id); + if (!certTemplate) { + throw new NotFoundError({ + message: "Certificate template not found." + }); + } + + const { permission } = await permissionService.getProjectPermission( + actor, + actorId, + certTemplate.projectId, + actorAuthMethod, + actorOrgId + ); + + ForbiddenError.from(permission).throwUnlessCan( + ProjectPermissionActions.Delete, + ProjectPermissionSub.CertificateTemplates + ); + + const deletedCertTemplate = await certificateTemplateDAL.deleteById(certTemplate.id); + + return deletedCertTemplate; + }; + const getCertTemplate = async ({ id, actorId, actorAuthMethod, actor, actorOrgId }: TGetCertTemplateDTO) => { const certTemplate = await certificateTemplateDAL.getById(id); if (!certTemplate) { @@ -86,6 +167,8 @@ export const certificateTemplateServiceFactory = ({ return { createCertTemplate, - getCertTemplate + getCertTemplate, + deleteCertTemplate, + updateCertTemplate }; }; diff --git a/backend/src/services/certificate-template/certificate-template-types.ts b/backend/src/services/certificate-template/certificate-template-types.ts index 471666e19..556215790 100644 --- a/backend/src/services/certificate-template/certificate-template-types.ts +++ b/backend/src/services/certificate-template/certificate-template-types.ts @@ -7,6 +7,18 @@ export type TCreateCertTemplateDTO = { ttl: string; } & Omit; +export type TUpdateCertTemplateDTO = { + id: string; + caId?: string; + name?: string; + commonName?: string; + ttl?: string; +} & Omit; + export type TGetCertTemplateDTO = { id: string; } & Omit; + +export type TDeleteCertTemplateDTO = { + id: string; +} & Omit; From 28a2a6c41ae9defb86e2adb884971c8efba7d484 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Thu, 15 Aug 2024 21:06:37 +0800 Subject: [PATCH 077/101] feat: initial integration of cert template management --- .../src/server/routes/v2/project-router.ts | 6 +- .../certificate-template-dal.ts | 3 +- .../context/ProjectPermissionContext/types.ts | 2 + .../hooks/api/certificateTemplates/index.tsx | 2 + .../api/certificateTemplates/mutations.tsx | 63 +++++ .../api/certificateTemplates/queries.tsx | 24 ++ .../hooks/api/certificateTemplates/types.ts | 35 +++ frontend/src/hooks/api/index.tsx | 1 + frontend/src/hooks/api/workspace/index.tsx | 1 + frontend/src/hooks/api/workspace/queries.tsx | 21 +- .../CertificatesTab/CertificatesTab.tsx | 2 + .../components/CertificateTemplateModal.tsx | 234 ++++++++++++++++++ .../CertificateTemplatesSection.tsx | 87 +++++++ .../components/CertificateTemplatesTable.tsx | 117 +++++++++ 14 files changed, 595 insertions(+), 3 deletions(-) create mode 100644 frontend/src/hooks/api/certificateTemplates/index.tsx create mode 100644 frontend/src/hooks/api/certificateTemplates/mutations.tsx create mode 100644 frontend/src/hooks/api/certificateTemplates/queries.tsx create mode 100644 frontend/src/hooks/api/certificateTemplates/types.ts create mode 100644 frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx create mode 100644 frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplatesSection.tsx create mode 100644 frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplatesTable.tsx diff --git a/backend/src/server/routes/v2/project-router.ts b/backend/src/server/routes/v2/project-router.ts index ed80a9e59..d3a49fb69 100644 --- a/backend/src/server/routes/v2/project-router.ts +++ b/backend/src/server/routes/v2/project-router.ts @@ -476,7 +476,11 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { CertificateTemplatesSchema.pick({ id: true, name: true - }) + }).merge( + z.object({ + caName: z.string() + }) + ) ) }) } diff --git a/backend/src/services/certificate-template/certificate-template-dal.ts b/backend/src/services/certificate-template/certificate-template-dal.ts index 062e64f35..478a1a3dd 100644 --- a/backend/src/services/certificate-template/certificate-template-dal.ts +++ b/backend/src/services/certificate-template/certificate-template-dal.ts @@ -16,7 +16,8 @@ export const certificateTemplateDALFactory = (db: TDbClient) => { `${TableName.CertificateTemplate}.caId` ) .where(`${TableName.CertificateAuthority}.projectId`, "=", projectId) - .select(selectAllTableCols(TableName.CertificateTemplate)); + .select(selectAllTableCols(TableName.CertificateTemplate)) + .select(db.ref("friendlyName").as("caName").withSchema(TableName.CertificateAuthority)); return certTemplates; }; diff --git a/frontend/src/context/ProjectPermissionContext/types.ts b/frontend/src/context/ProjectPermissionContext/types.ts index c307688d6..6a4f84d02 100644 --- a/frontend/src/context/ProjectPermissionContext/types.ts +++ b/frontend/src/context/ProjectPermissionContext/types.ts @@ -28,6 +28,7 @@ export enum ProjectPermissionSub { Identity = "identity", CertificateAuthorities = "certificate-authorities", Certificates = "certificates", + CertificateTemplates = "certificate-templates", PkiAlerts = "pki-alerts", PkiCollections = "pki-collections", Kms = "kms" @@ -59,6 +60,7 @@ export type ProjectPermissionSet = | [ProjectPermissionActions, ProjectPermissionSub.SecretRotation] | [ProjectPermissionActions, ProjectPermissionSub.CertificateAuthorities] | [ProjectPermissionActions, ProjectPermissionSub.Certificates] + | [ProjectPermissionActions, ProjectPermissionSub.CertificateTemplates] | [ProjectPermissionActions, ProjectPermissionSub.PkiAlerts] | [ProjectPermissionActions, ProjectPermissionSub.PkiCollections] | [ProjectPermissionActions.Delete, ProjectPermissionSub.Workspace] diff --git a/frontend/src/hooks/api/certificateTemplates/index.tsx b/frontend/src/hooks/api/certificateTemplates/index.tsx new file mode 100644 index 000000000..b8145fbcc --- /dev/null +++ b/frontend/src/hooks/api/certificateTemplates/index.tsx @@ -0,0 +1,2 @@ +export { useCreateCertTemplate, useDeleteCertTemplate, useUpdateCertTemplate } from "./mutations"; +export { useGetCertTemplate } from "./queries"; diff --git a/frontend/src/hooks/api/certificateTemplates/mutations.tsx b/frontend/src/hooks/api/certificateTemplates/mutations.tsx new file mode 100644 index 000000000..89ea225f2 --- /dev/null +++ b/frontend/src/hooks/api/certificateTemplates/mutations.tsx @@ -0,0 +1,63 @@ +import { useMutation, useQueryClient } from "@tanstack/react-query"; + +import { apiRequest } from "@app/config/request"; + +import { workspaceKeys } from "../workspace/queries"; +import { certTemplateKeys } from "./queries"; +import { + TCertificateTemplate, + TCreateCertificateTemplateDTO, + TDeleteCertificateTemplateDTO, + TUpdateCertificateTemplateDTO +} from "./types"; + +export const useCreateCertTemplate = () => { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: async (data) => { + const { + data: { certificateTemplate } + } = await apiRequest.post<{ certificateTemplate: TCertificateTemplate }>( + "/api/v1/pki/certificate-templates", + data + ); + return certificateTemplate; + }, + onSuccess: (_, { projectId }) => { + queryClient.invalidateQueries(workspaceKeys.getWorkspaceCertificateTemplates(projectId)); + } + }); +}; + +export const useUpdateCertTemplate = () => { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: async (data) => { + const { + data: { certificateTemplate } + } = await apiRequest.patch<{ certificateTemplate: TCertificateTemplate }>( + `/api/v1/pki/certificate-templates/${data.id}`, + data + ); + + return certificateTemplate; + }, + onSuccess: (_, { projectId, id }) => { + queryClient.invalidateQueries(workspaceKeys.getWorkspaceCertificateTemplates(projectId)); + queryClient.invalidateQueries(certTemplateKeys.getCertTemplateById(id)); + } + }); +}; + +export const useDeleteCertTemplate = () => { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: async (data) => { + return apiRequest.delete(`/api/v1/pki/certificate-templates/${data.id}`); + }, + onSuccess: (_, { projectId, id }) => { + queryClient.invalidateQueries(workspaceKeys.getWorkspaceCertificateTemplates(projectId)); + queryClient.invalidateQueries(certTemplateKeys.getCertTemplateById(id)); + } + }); +}; diff --git a/frontend/src/hooks/api/certificateTemplates/queries.tsx b/frontend/src/hooks/api/certificateTemplates/queries.tsx new file mode 100644 index 000000000..56e3e5d54 --- /dev/null +++ b/frontend/src/hooks/api/certificateTemplates/queries.tsx @@ -0,0 +1,24 @@ +import { useQuery } from "@tanstack/react-query"; + +import { apiRequest } from "@app/config/request"; + +import { TCertificateTemplate } from "./types"; + +export const certTemplateKeys = { + getCertTemplateById: (id: string) => [{ id }, "cert-template"] +}; + +export const useGetCertTemplate = (id: string) => { + return useQuery({ + queryKey: certTemplateKeys.getCertTemplateById(id), + queryFn: async () => { + const { + data: { certificateTemplate } + } = await apiRequest.get<{ certificateTemplate: TCertificateTemplate }>( + `/api/v1/pki/certificate-templates/${id}` + ); + return certificateTemplate; + }, + enabled: Boolean(id) + }); +}; diff --git a/frontend/src/hooks/api/certificateTemplates/types.ts b/frontend/src/hooks/api/certificateTemplates/types.ts new file mode 100644 index 000000000..2938edbca --- /dev/null +++ b/frontend/src/hooks/api/certificateTemplates/types.ts @@ -0,0 +1,35 @@ +export type TCertificateTemplateListEntry = { + id: string; + name: string; + caName: string; +}; + +export type TCertificateTemplate = { + id: string; + caId: string; + name: string; + commonName: string; + ttl: string; +}; + +export type TCreateCertificateTemplateDTO = { + caId: string; + name: string; + commonName: string; + ttl: string; + projectId: string; +}; + +export type TUpdateCertificateTemplateDTO = { + id: string; + caId?: string; + name?: string; + commonName?: string; + ttl?: string; + projectId: string; +}; + +export type TDeleteCertificateTemplateDTO = { + id: string; + projectId: string; +}; diff --git a/frontend/src/hooks/api/index.tsx b/frontend/src/hooks/api/index.tsx index 94037cb62..a9d24a5c7 100644 --- a/frontend/src/hooks/api/index.tsx +++ b/frontend/src/hooks/api/index.tsx @@ -7,6 +7,7 @@ export * from "./auth"; export * from "./bots"; export * from "./ca"; export * from "./certificates"; +export * from "./certificateTemplates"; export * from "./dynamicSecret"; export * from "./dynamicSecretLease"; export * from "./groups"; diff --git a/frontend/src/hooks/api/workspace/index.tsx b/frontend/src/hooks/api/workspace/index.tsx index 3da83e1b8..3f320d0d9 100644 --- a/frontend/src/hooks/api/workspace/index.tsx +++ b/frontend/src/hooks/api/workspace/index.tsx @@ -25,6 +25,7 @@ export { useGetWorkspaceUsers, useListWorkspaceCas, useListWorkspaceCertificates, + useListWorkspaceCertificateTemplates, useListWorkspaceGroups, useListWorkspacePkiAlerts, useListWorkspacePkiCollections, diff --git a/frontend/src/hooks/api/workspace/queries.tsx b/frontend/src/hooks/api/workspace/queries.tsx index d971f06e2..711641be8 100644 --- a/frontend/src/hooks/api/workspace/queries.tsx +++ b/frontend/src/hooks/api/workspace/queries.tsx @@ -5,6 +5,7 @@ import { apiRequest } from "@app/config/request"; import { CaStatus } from "../ca/enums"; import { TCertificateAuthority } from "../ca/types"; import { TCertificate } from "../certificates/types"; +import { TCertificateTemplateListEntry } from "../certificateTemplates/types"; import { TGroupMembership } from "../groups/types"; import { identitiesKeys } from "../identities/queries"; import { IdentityMembership } from "../identities/types"; @@ -68,7 +69,9 @@ export const workspaceKeys = { getWorkspacePkiAlerts: (workspaceId: string) => [{ workspaceId }, "workspace-pki-alerts"] as const, getWorkspacePkiCollections: (workspaceId: string) => - [{ workspaceId }, "workspace-pki-collections"] as const + [{ workspaceId }, "workspace-pki-collections"] as const, + getWorkspaceCertificateTemplates: (workspaceId: string) => + [{ workspaceId }, "workspace-certificate-templates"] as const }; const fetchWorkspaceById = async (workspaceId: string) => { @@ -639,3 +642,19 @@ export const useListWorkspacePkiCollections = ({ workspaceId }: { workspaceId: s enabled: Boolean(workspaceId) }); }; + +export const useListWorkspaceCertificateTemplates = ({ workspaceId }: { workspaceId: string }) => { + return useQuery({ + queryKey: workspaceKeys.getWorkspaceCertificateTemplates(workspaceId), + queryFn: async () => { + const { + data: { certificateTemplates } + } = await apiRequest.get<{ certificateTemplates: TCertificateTemplateListEntry[] }>( + `/api/v2/workspace/${workspaceId}/certificate-templates` + ); + + return { certificateTemplates }; + }, + enabled: Boolean(workspaceId) + }); +}; diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/CertificatesTab.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/CertificatesTab.tsx index f054e2546..f29a0bdb7 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/CertificatesTab.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/CertificatesTab.tsx @@ -1,5 +1,6 @@ import { motion } from "framer-motion"; +import { CertificateTemplatesSection } from "./components/CertificateTemplatesSection"; import { CertificatesSection } from "./components"; export const CertificatesTab = () => { @@ -11,6 +12,7 @@ export const CertificatesTab = () => { animate={{ opacity: 1, translateX: 0 }} exit={{ opacity: 0, translateX: 30 }} > + ); diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx new file mode 100644 index 000000000..d5b3921c5 --- /dev/null +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx @@ -0,0 +1,234 @@ +import { useEffect } from "react"; +import { Controller, useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { z } from "zod"; + +import { createNotification } from "@app/components/notifications"; +import { + Button, + FormControl, + Input, + Modal, + ModalContent, + Select, + SelectItem +} from "@app/components/v2"; +import { useWorkspace } from "@app/context"; +import { + CaStatus, + useCreateCertTemplate, + useGetCertTemplate, + useListWorkspaceCas, + useUpdateCertTemplate +} from "@app/hooks/api"; +import { caTypeToNameMap } from "@app/hooks/api/ca/constants"; +import { UsePopUpState } from "@app/hooks/usePopUp"; + +const schema = z.object({ + caId: z.string(), + name: z.string().min(1), + commonName: z.string().trim().min(1), + ttl: z.string().trim().min(1) +}); + +export type FormData = z.infer; + +type Props = { + popUp: UsePopUpState<["certificateTemplate"]>; + handlePopUpToggle: ( + popUpName: keyof UsePopUpState<["certificateTemplate"]>, + state?: boolean + ) => void; +}; + +export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => { + const { currentWorkspace } = useWorkspace(); + const { data: certTemplate } = useGetCertTemplate( + (popUp?.certificateTemplate?.data as { id: string })?.id || "" + ); + + const { data: cas } = useListWorkspaceCas({ + projectSlug: currentWorkspace?.slug ?? "", + status: CaStatus.ACTIVE + }); + + const { mutateAsync: createCertTemplate } = useCreateCertTemplate(); + const { mutateAsync: updateCertTemplate } = useUpdateCertTemplate(); + + const { + control, + handleSubmit, + reset, + formState: { isSubmitting } + } = useForm({ + resolver: zodResolver(schema) + }); + + useEffect(() => { + if (certTemplate) { + reset({ + caId: certTemplate.caId, + name: certTemplate.name, + commonName: certTemplate.commonName, + ttl: certTemplate.ttl + }); + } else { + reset({ + caId: "", + name: "", + commonName: "", + ttl: "" + }); + } + }, [certTemplate]); + + const onFormSubmit = async ({ caId, name, commonName, ttl }: FormData) => { + if (!currentWorkspace?.id) { + return; + } + + try { + if (certTemplate) { + await updateCertTemplate({ + id: certTemplate.id, + projectId: currentWorkspace.id, + caId, + name, + commonName, + ttl + }); + + createNotification({ + text: "Successfully updated certificate template", + type: "success" + }); + } else { + await createCertTemplate({ + projectId: currentWorkspace.id, + caId, + name, + commonName, + ttl + }); + + createNotification({ + text: "Successfully created certificate template", + type: "success" + }); + } + + reset(); + handlePopUpToggle("certificateTemplate", false); + } catch (err) { + console.error(err); + createNotification({ + text: "Failed to save changes", + type: "error" + }); + } + }; + + return ( + { + handlePopUpToggle("certificateTemplate", isOpen); + reset(); + }} + > + + + ( + + + + )} + /> + ( + + + + )} + /> + ( + + + + )} + /> + ( + + + + )} + /> +
+ + +
+ +
+
+ ); +}; diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplatesSection.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplatesSection.tsx new file mode 100644 index 000000000..82c4c8d3a --- /dev/null +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplatesSection.tsx @@ -0,0 +1,87 @@ +import { faPlus } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import { createNotification } from "@app/components/notifications"; +import { ProjectPermissionCan } from "@app/components/permissions"; +import { Button, DeleteActionModal } from "@app/components/v2"; +import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context"; +import { usePopUp } from "@app/hooks"; +import { useDeleteCertTemplate } from "@app/hooks/api"; + +import { CertificateTemplateModal } from "./CertificateTemplateModal"; +import { CertificateTemplatesTable } from "./CertificateTemplatesTable"; + +export const CertificateTemplatesSection = () => { + const { popUp, handlePopUpOpen, handlePopUpClose, handlePopUpToggle } = usePopUp([ + "certificateTemplate", + "deleteCertificateTemplate" + ] as const); + + const { currentWorkspace } = useWorkspace(); + const { mutateAsync: deleteCertTemplate } = useDeleteCertTemplate(); + + const onRemoveCertificateTemplateSubmit = async (id: string) => { + if (!currentWorkspace?.id) { + return; + } + + try { + await deleteCertTemplate({ + id, + projectId: currentWorkspace.id + }); + + await createNotification({ + text: "Successfully deleted certificate template", + type: "success" + }); + + handlePopUpClose("deleteCertificateTemplate"); + } catch (err) { + console.error(err); + createNotification({ + text: "Failed to delete certificate template", + type: "error" + }); + } + }; + + return ( +
+
+

Certificate Templates

+ + {(isAllowed) => ( + + )} + +
+ + + handlePopUpToggle("deleteCertificateTemplate", isOpen)} + deleteKey="confirm" + onDeleteApproved={() => + onRemoveCertificateTemplateSubmit( + (popUp?.deleteCertificateTemplate?.data as { id: string })?.id + ) + } + /> +
+ ); +}; diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplatesTable.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplatesTable.tsx new file mode 100644 index 000000000..a8042337e --- /dev/null +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplatesTable.tsx @@ -0,0 +1,117 @@ +import { faEllipsis, faGear, faTrash } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { twMerge } from "tailwind-merge"; + +import { ProjectPermissionCan } from "@app/components/permissions"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, + EmptyState, + Table, + TableContainer, + TableSkeleton, + TBody, + Td, + Th, + THead, + Tooltip, + Tr +} from "@app/components/v2"; +import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context"; +import { useListWorkspaceCertificateTemplates } from "@app/hooks/api"; +import { UsePopUpState } from "@app/hooks/usePopUp"; + +type Props = { + handlePopUpOpen: ( + popUpName: keyof UsePopUpState<["certificateTemplate", "deleteCertificateTemplate"]>, + data?: { + id?: string; + name?: string; + } + ) => void; +}; + +export const CertificateTemplatesTable = ({ handlePopUpOpen }: Props) => { + const { currentWorkspace } = useWorkspace(); + const { data, isLoading } = useListWorkspaceCertificateTemplates({ + workspaceId: currentWorkspace?.id ?? "" + }); + + return ( +
+ + + + + + + + + + {isLoading && } + {!isLoading && + data?.certificateTemplates.map((certificateTemplate) => { + return ( + + + + + + ); + })} + +
NameCertificate Authority +
{certificateTemplate.name}{certificateTemplate.caName} + + +
+ + + +
+
+ + + handlePopUpOpen("certificateTemplate", { + id: certificateTemplate.id + }) + } + icon={} + > + Manage + + + {(isAllowed) => ( + } + onClick={() => + handlePopUpOpen("deleteCertificateTemplate", { + id: certificateTemplate.id, + name: certificateTemplate.name + }) + } + > + Delete Template + + )} + + +
+
+ {!isLoading && !data?.certificateTemplates?.length && ( + + )} +
+
+ ); +}; From 6cab7504fc8e1b165347989040984ec531d0a6f0 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 15 Aug 2024 22:04:32 +0530 Subject: [PATCH 078/101] fix: switched sync integration to have redis lock --- backend/src/keystore/keystore.ts | 35 ++- backend/src/lib/fn/dates.ts | 6 + backend/src/server/routes/index.ts | 1 + backend/src/services/secret/secret-queue.ts | 248 ++++++++++++-------- 4 files changed, 176 insertions(+), 114 deletions(-) diff --git a/backend/src/keystore/keystore.ts b/backend/src/keystore/keystore.ts index d7bbb0c79..ab5920204 100644 --- a/backend/src/keystore/keystore.ts +++ b/backend/src/keystore/keystore.ts @@ -5,17 +5,26 @@ import { Redlock, Settings } from "@app/lib/red-lock"; export type TKeyStoreFactory = ReturnType; // all the key prefixes used must be set here to avoid conflict -export enum KeyStorePrefixes { - SecretReplication = "secret-replication-import-lock", - KmsProjectDataKeyCreation = "kms-project-data-key-creation-lock", - KmsProjectKeyCreation = "kms-project-key-creation-lock", - WaitUntilReadyKmsProjectDataKeyCreation = "wait-until-ready-kms-project-data-key-creation-", - WaitUntilReadyKmsProjectKeyCreation = "wait-until-ready-kms-project-key-creation-", - KmsOrgKeyCreation = "kms-org-key-creation-lock", - KmsOrgDataKeyCreation = "kms-org-data-key-creation-lock", - WaitUntilReadyKmsOrgKeyCreation = "wait-until-ready-kms-org-key-creation-", - WaitUntilReadyKmsOrgDataKeyCreation = "wait-until-ready-kms-org-data-key-creation-" -} +export const KeyStorePrefixes = { + SecretReplication: "secret-replication-import-lock", + KmsProjectDataKeyCreation: "kms-project-data-key-creation-lock", + KmsProjectKeyCreation: "kms-project-key-creation-lock", + WaitUntilReadyKmsProjectDataKeyCreation: "wait-until-ready-kms-project-data-key-creation-", + WaitUntilReadyKmsProjectKeyCreation: "wait-until-ready-kms-project-key-creation-", + KmsOrgKeyCreation: "kms-org-key-creation-lock", + KmsOrgDataKeyCreation: "kms-org-data-key-creation-lock", + WaitUntilReadyKmsOrgKeyCreation: "wait-until-ready-kms-org-key-creation-", + WaitUntilReadyKmsOrgDataKeyCreation: "wait-until-ready-kms-org-data-key-creation-", + + SyncSecretIntegrationLock: (projectId: string, environmentSlug: string, secretPath: string) => + `sync-integration-mutex-${projectId}-${environmentSlug}-${secretPath}` as const, + SetSyncSecretIntegrationLastRunTimestamp: (projectId: string, environmentSlug: string, secretPath: string) => + `sync-integration-last-run-${projectId}-${environmentSlug}-${secretPath}` as const +}; + +export const KeyStoreTtls = { + SetSyncSecretIntegrationLastRunTimestampInSeconds: 10 +}; type TWaitTillReady = { key: string; @@ -37,10 +46,10 @@ export const keyStoreFactory = (redisUrl: string) => { const setItemWithExpiry = async ( key: string, - exp: number | string, + expiryInSeconds: number | string, value: string | number | Buffer, prefix?: string - ) => redis.set(prefix ? `${prefix}:${key}` : key, value, "EX", exp); + ) => redis.set(prefix ? `${prefix}:${key}` : key, value, "EX", expiryInSeconds); const deleteItem = async (key: string) => redis.del(key); diff --git a/backend/src/lib/fn/dates.ts b/backend/src/lib/fn/dates.ts index f9ea4db10..cd5ca5c12 100644 --- a/backend/src/lib/fn/dates.ts +++ b/backend/src/lib/fn/dates.ts @@ -1,2 +1,8 @@ export const getLastMidnightDateISO = (last = 1) => `${new Date(new Date().setDate(new Date().getDate() - last)).toISOString().slice(0, 10)}T00:00:00Z`; + +export const getTimeDifferenceInSeconds = (lhsTimestamp: string, rhsTimestamp: string) => { + const lhs = new Date(lhsTimestamp); + const rhs = new Date(rhsTimestamp); + return Math.floor((Number(lhs) - Number(rhs)) / 1000); +}; diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index 5116261d5..910e81507 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -711,6 +711,7 @@ export const registerRoutes = async ( kmsService }); const secretQueueService = secretQueueFactory({ + keyStore, queueService, secretDAL, folderDAL, diff --git a/backend/src/services/secret/secret-queue.ts b/backend/src/services/secret/secret-queue.ts index 84e49aabe..c572e5194 100644 --- a/backend/src/services/secret/secret-queue.ts +++ b/backend/src/services/secret/secret-queue.ts @@ -6,11 +6,12 @@ import { TSecretApprovalRequestDALFactory } from "@app/ee/services/secret-approv import { TSecretRotationDALFactory } from "@app/ee/services/secret-rotation/secret-rotation-dal"; import { TSnapshotDALFactory } from "@app/ee/services/secret-snapshot/snapshot-dal"; import { TSnapshotSecretV2DALFactory } from "@app/ee/services/secret-snapshot/snapshot-secret-v2-dal"; +import { KeyStorePrefixes, KeyStoreTtls, TKeyStoreFactory } from "@app/keystore/keystore"; import { getConfig } from "@app/lib/config/env"; import { decryptSymmetric128BitHexKeyUTF8 } from "@app/lib/crypto"; import { daysToMillisecond, secondsToMillis } from "@app/lib/dates"; import { BadRequestError } from "@app/lib/errors"; -import { groupBy, isSamePath, unique } from "@app/lib/fn"; +import { getTimeDifferenceInSeconds, groupBy, isSamePath, unique } from "@app/lib/fn"; import { logger } from "@app/lib/logger"; import { QueueJobs, QueueName, TQueueServiceFactory } from "@app/queue"; import { TProjectBotDALFactory } from "@app/services/project-bot/project-bot-dal"; @@ -79,6 +80,7 @@ type TSecretQueueFactoryDep = { secretApprovalRequestDAL: Pick; snapshotDAL: Pick; snapshotSecretV2BridgeDAL: Pick; + keyStore: Pick; }; export type TGetSecrets = { @@ -122,7 +124,8 @@ export const secretQueueFactory = ({ secretRotationDAL, snapshotDAL, snapshotSecretV2BridgeDAL, - secretApprovalRequestDAL + secretApprovalRequestDAL, + keyStore }: TSecretQueueFactoryDep) => { const removeSecretReminder = async (dto: TRemoveSecretReminderDTO) => { const appCfg = getConfig(); @@ -576,7 +579,6 @@ export const secretQueueFactory = ({ ) ); } - const { shouldUseSecretV2Bridge, botKey } = await projectBotService.getBotKey(projectId); const { decryptor: secretManagerDecryptor } = await kmsService.createCipherPairWithDataKey({ type: KmsDataKey.SecretManager, @@ -641,111 +643,155 @@ export const secretQueueFactory = ({ `getIntegrationSecrets: secret integration sync started [jobId=${job.id}] [jobId=${job.id}] [projectId=${job.data.projectId}] [environment=${job.data.environment}] [secretPath=${job.data.secretPath}] [depth=${job.data.depth}]` ); - const secrets = shouldUseSecretV2Bridge - ? await getIntegrationSecretsV2({ - environment, - projectId, - folderId: folder.id, - depth: 1, - decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") - }) - : await getIntegrationSecrets({ - environment, - projectId, - folderId: folder.id, - key: botKey as string, - depth: 1 - }); - - for (const integration of toBeSyncedIntegrations) { - const integrationAuth = { - ...integration.integrationAuth, - createdAt: new Date(), - updatedAt: new Date(), - projectId: integration.projectId - }; - - const { accessToken, accessId } = await integrationAuthService.getIntegrationAccessToken( - integrationAuth, - shouldUseSecretV2Bridge, - botKey - ); - let awsAssumeRoleArn = null; - if (shouldUseSecretV2Bridge) { - if (integrationAuth.encryptedAwsAssumeIamRoleArn) { - awsAssumeRoleArn = secretManagerDecryptor({ - cipherTextBlob: Buffer.from(integrationAuth.encryptedAwsAssumeIamRoleArn) - }).toString(); - } - } else if ( - integrationAuth.awsAssumeIamRoleArnTag && - integrationAuth.awsAssumeIamRoleArnIV && - integrationAuth.awsAssumeIamRoleArnCipherText - ) { - awsAssumeRoleArn = decryptSymmetric128BitHexKeyUTF8({ - ciphertext: integrationAuth.awsAssumeIamRoleArnCipherText, - iv: integrationAuth.awsAssumeIamRoleArnIV, - tag: integrationAuth.awsAssumeIamRoleArnTag, - key: botKey as string - }); + const lock = await keyStore.acquireLock( + [KeyStorePrefixes.SyncSecretIntegrationLock(projectId, environment, secretPath)], + 10000, + { + retryCount: 3, + retryDelay: 2000 } + ); + const lockAcquiredTime = new Date(); - const suffixedSecrets: typeof secrets = {}; - const metadata = integration.metadata as Record; - if (metadata) { - Object.keys(secrets).forEach((key) => { - const prefix = metadata?.secretPrefix || ""; - const suffix = metadata?.secretSuffix || ""; - const newKey = prefix + key + suffix; - suffixedSecrets[newKey] = secrets[key]; - }); - } + const lastRunSyncIntegrationTimestamp = await keyStore.getItem( + KeyStorePrefixes.SetSyncSecretIntegrationLastRunTimestamp(projectId, environment, secretPath) + ); - try { - // akhilmhdh: this needs to changed later to be more easier to use - // at present this is not at all extendable like to add a new parameter for just one integration need to modify multiple places - const response = await syncIntegrationSecrets({ - createManySecretsRawFn, - updateManySecretsRawFn, - integrationDAL, - integration, - integrationAuth, - secrets: Object.keys(suffixedSecrets).length !== 0 ? suffixedSecrets : secrets, - accessId: accessId as string, - awsAssumeRoleArn, - accessToken, - projectId, - appendices: { - prefix: metadata?.secretPrefix || "", - suffix: metadata?.secretSuffix || "" - } - }); - - await integrationDAL.updateById(integration.id, { - lastSyncJobId: job.id, - lastUsed: new Date(), - syncMessage: response?.syncMessage ?? "", - isSynced: response?.isSynced ?? true - }); - } catch (err) { - logger.error( - err, - `Secret integration sync error [projectId=${job.data.projectId}] [environment=${job.data.environment}] [secretPath=${job.data.secretPath}]` + if (lastRunSyncIntegrationTimestamp) { + const isStaleSyncIntegration = new Date(job.timestamp) < new Date(lastRunSyncIntegrationTimestamp); + if (isStaleSyncIntegration) { + logger.info( + `getIntegrationSecrets: secret integration sync stale [jobId=${job.id}] [jobId=${job.id}] [projectId=${job.data.projectId}] [environment=${job.data.environment}] [secretPath=${job.data.secretPath}] [depth=${job.data.depth}]` ); - - const message = - (err instanceof AxiosError ? JSON.stringify(err?.response?.data) : (err as Error)?.message) || - "Unknown error occurred."; - - await integrationDAL.updateById(integration.id, { - lastSyncJobId: job.id, - lastUsed: new Date(), - syncMessage: message, - isSynced: false - }); + return; } + + const timeDifferenceWithLastIntegration = getTimeDifferenceInSeconds( + lockAcquiredTime.toISOString(), + lastRunSyncIntegrationTimestamp + ); + if (timeDifferenceWithLastIntegration < 2000 && timeDifferenceWithLastIntegration > 0) + await new Promise((resolve) => { + setTimeout(resolve, 2000 - timeDifferenceWithLastIntegration * 1000); + }); } + // akhilmhdh: this try catch is for lock release + try { + const secrets = shouldUseSecretV2Bridge + ? await getIntegrationSecretsV2({ + environment, + projectId, + folderId: folder.id, + depth: 1, + decryptor: (value) => (value ? secretManagerDecryptor({ cipherTextBlob: value }).toString() : "") + }) + : await getIntegrationSecrets({ + environment, + projectId, + folderId: folder.id, + key: botKey as string, + depth: 1 + }); + + for (const integration of toBeSyncedIntegrations) { + const integrationAuth = { + ...integration.integrationAuth, + createdAt: new Date(), + updatedAt: new Date(), + projectId: integration.projectId + }; + + const { accessToken, accessId } = await integrationAuthService.getIntegrationAccessToken( + integrationAuth, + shouldUseSecretV2Bridge, + botKey + ); + let awsAssumeRoleArn = null; + if (shouldUseSecretV2Bridge) { + if (integrationAuth.encryptedAwsAssumeIamRoleArn) { + awsAssumeRoleArn = secretManagerDecryptor({ + cipherTextBlob: Buffer.from(integrationAuth.encryptedAwsAssumeIamRoleArn) + }).toString(); + } + } else if ( + integrationAuth.awsAssumeIamRoleArnTag && + integrationAuth.awsAssumeIamRoleArnIV && + integrationAuth.awsAssumeIamRoleArnCipherText + ) { + awsAssumeRoleArn = decryptSymmetric128BitHexKeyUTF8({ + ciphertext: integrationAuth.awsAssumeIamRoleArnCipherText, + iv: integrationAuth.awsAssumeIamRoleArnIV, + tag: integrationAuth.awsAssumeIamRoleArnTag, + key: botKey as string + }); + } + + const suffixedSecrets: typeof secrets = {}; + const metadata = integration.metadata as Record; + if (metadata) { + Object.keys(secrets).forEach((key) => { + const prefix = metadata?.secretPrefix || ""; + const suffix = metadata?.secretSuffix || ""; + const newKey = prefix + key + suffix; + suffixedSecrets[newKey] = secrets[key]; + }); + } + + // akhilmhdh: this try catch is for catching integration error and saving it in db + try { + // akhilmhdh: this needs to changed later to be more easier to use + // at present this is not at all extendable like to add a new parameter for just one integration need to modify multiple places + const response = await syncIntegrationSecrets({ + createManySecretsRawFn, + updateManySecretsRawFn, + integrationDAL, + integration, + integrationAuth, + secrets: Object.keys(suffixedSecrets).length !== 0 ? suffixedSecrets : secrets, + accessId: accessId as string, + awsAssumeRoleArn, + accessToken, + projectId, + appendices: { + prefix: metadata?.secretPrefix || "", + suffix: metadata?.secretSuffix || "" + } + }); + + await integrationDAL.updateById(integration.id, { + lastSyncJobId: job.id, + lastUsed: new Date(), + syncMessage: response?.syncMessage ?? "", + isSynced: response?.isSynced ?? true + }); + } catch (err) { + logger.error( + err, + `Secret integration sync error [projectId=${job.data.projectId}] [environment=${job.data.environment}] [secretPath=${job.data.secretPath}]` + ); + + const message = + (err instanceof AxiosError ? JSON.stringify(err?.response?.data) : (err as Error)?.message) || + "Unknown error occurred."; + + await integrationDAL.updateById(integration.id, { + lastSyncJobId: job.id, + lastUsed: new Date(), + syncMessage: message, + isSynced: false + }); + } + } + } finally { + await lock.release(); + } + + await keyStore.setItemWithExpiry( + KeyStorePrefixes.SetSyncSecretIntegrationLastRunTimestamp(projectId, environment, secretPath), + KeyStoreTtls.SetSyncSecretIntegrationLastRunTimestampInSeconds, + lockAcquiredTime.toISOString() + ); logger.info("Secret integration sync ended: %s", job.id); }); From 7baa3b4cbe7ad123e79f59612b49992ee5197dd4 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Thu, 15 Aug 2024 10:41:37 -0700 Subject: [PATCH 079/101] Add PKI collection to issue cert modal --- backend/src/lib/api-docs/constants.ts | 2 + backend/src/server/routes/index.ts | 2 + .../routes/v1/certificate-authority-router.ts | 2 + .../certificate-authority-service.ts | 44 ++++++++++++++++- .../certificate-authority-types.ts | 2 + frontend/src/hooks/api/ca/types.ts | 1 + .../components/CertificateModal.tsx | 49 ++++++++++++++++++- 7 files changed, 99 insertions(+), 3 deletions(-) diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index 336776dbf..d79faa647 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -1088,6 +1088,7 @@ export const CERTIFICATE_AUTHORITIES = { }, ISSUE_CERT: { caId: "The ID of the CA to issue the certificate from", + pkiCollectionId: "The ID of the PKI collection to add the certificate to", friendlyName: "A friendly name for the certificate", commonName: "The common name (CN) for the certificate", altNames: @@ -1103,6 +1104,7 @@ export const CERTIFICATE_AUTHORITIES = { }, SIGN_CERT: { caId: "The ID of the CA to issue the certificate from", + pkiCollectionId: "The ID of the PKI collection to add the certificate to", csr: "The pem-encoded CSR to sign with the CA to be used for certificate issuance", friendlyName: "A friendly name for the certificate", commonName: "The common name (CN) for the certificate", diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index dbd223d7b..41d5f3249 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -622,6 +622,8 @@ export const registerRoutes = async ( certificateAuthorityQueue, certificateDAL, certificateBodyDAL, + pkiCollectionDAL, + pkiCollectionItemDAL, projectDAL, kmsService, permissionService diff --git a/backend/src/server/routes/v1/certificate-authority-router.ts b/backend/src/server/routes/v1/certificate-authority-router.ts index 103d430c0..35de2b953 100644 --- a/backend/src/server/routes/v1/certificate-authority-router.ts +++ b/backend/src/server/routes/v1/certificate-authority-router.ts @@ -556,6 +556,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => { }), body: z .object({ + pkiCollectionId: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.pkiCollectionId), friendlyName: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.friendlyName), commonName: z.string().trim().min(1).describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.commonName), altNames: validateAltNamesField.describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.altNames), @@ -635,6 +636,7 @@ export const registerCaRouter = async (server: FastifyZodProvider) => { body: z .object({ csr: z.string().trim().min(1).describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.csr), + pkiCollectionId: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.pkiCollectionId), friendlyName: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.friendlyName), commonName: z.string().trim().min(1).optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.commonName), altNames: validateAltNamesField.describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.altNames), diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index b63ec9ba9..88f686089 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -7,10 +7,12 @@ import { z } from "zod"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { BadRequestError } from "@app/lib/errors"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; import { TCertificateBodyDALFactory } from "@app/services/certificate/certificate-body-dal"; import { TCertificateDALFactory } from "@app/services/certificate/certificate-dal"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; +import { TPkiCollectionDALFactory } from "@app/services/pki-collection/pki-collection-dal"; +import { TPkiCollectionItemDALFactory } from "@app/services/pki-collection/pki-collection-item-dal"; import { TProjectDALFactory } from "@app/services/project/project-dal"; import { getProjectKmsCertificateKeyId } from "@app/services/project/project-fns"; @@ -60,6 +62,8 @@ type TCertificateAuthorityServiceFactoryDep = { certificateAuthorityQueue: TCertificateAuthorityQueueFactory; // TODO: Pick certificateDAL: Pick; certificateBodyDAL: Pick; + pkiCollectionDAL: Pick; + pkiCollectionItemDAL: Pick; projectDAL: Pick; kmsService: Pick; permissionService: Pick; @@ -74,6 +78,8 @@ export const certificateAuthorityServiceFactory = ({ certificateAuthorityCrlDAL, certificateDAL, certificateBodyDAL, + pkiCollectionDAL, + pkiCollectionItemDAL, projectDAL, kmsService, permissionService @@ -1007,6 +1013,7 @@ export const certificateAuthorityServiceFactory = ({ */ const issueCertFromCa = async ({ caId, + pkiCollectionId, friendlyName, commonName, altNames, @@ -1039,6 +1046,13 @@ export const certificateAuthorityServiceFactory = ({ throw new BadRequestError({ message: "CA is expired" }); } + // check PKI collection + if (pkiCollectionId) { + const pkiCollection = await pkiCollectionDAL.findById(pkiCollectionId); + if (!pkiCollection) throw new NotFoundError({ message: "PKI collection not found" }); + if (pkiCollection.projectId !== ca.projectId) throw new BadRequestError({ message: "Invalid PKI collection" }); + } + const certificateManagerKmsId = await getProjectKmsCertificateKeyId({ projectId: ca.projectId, projectDAL, @@ -1186,6 +1200,16 @@ export const certificateAuthorityServiceFactory = ({ tx ); + if (pkiCollectionId) { + await pkiCollectionItemDAL.create( + { + pkiCollectionId, + certId: cert.id + }, + tx + ); + } + return cert; }); @@ -1214,6 +1238,7 @@ export const certificateAuthorityServiceFactory = ({ const signCertFromCa = async ({ caId, csr, + pkiCollectionId, friendlyName, commonName, altNames, @@ -1247,6 +1272,13 @@ export const certificateAuthorityServiceFactory = ({ throw new BadRequestError({ message: "CA is expired" }); } + // check PKI collection + if (pkiCollectionId) { + const pkiCollection = await pkiCollectionDAL.findById(pkiCollectionId); + if (!pkiCollection) throw new NotFoundError({ message: "PKI collection not found" }); + if (pkiCollection.projectId !== ca.projectId) throw new BadRequestError({ message: "Invalid PKI collection" }); + } + const certificateManagerKmsId = await getProjectKmsCertificateKeyId({ projectId: ca.projectId, projectDAL, @@ -1390,6 +1422,16 @@ export const certificateAuthorityServiceFactory = ({ tx ); + if (pkiCollectionId) { + await pkiCollectionItemDAL.create( + { + pkiCollectionId, + certId: cert.id + }, + tx + ); + } + return cert; }); diff --git a/backend/src/services/certificate-authority/certificate-authority-types.ts b/backend/src/services/certificate-authority/certificate-authority-types.ts index 31a6e1629..3fef204bf 100644 --- a/backend/src/services/certificate-authority/certificate-authority-types.ts +++ b/backend/src/services/certificate-authority/certificate-authority-types.ts @@ -87,6 +87,7 @@ export type TImportCertToCaDTO = { export type TIssueCertFromCaDTO = { caId: string; + pkiCollectionId?: string; friendlyName?: string; commonName: string; altNames: string; @@ -98,6 +99,7 @@ export type TIssueCertFromCaDTO = { export type TSignCertFromCaDTO = { caId: string; csr: string; + pkiCollectionId?: string; friendlyName?: string; commonName?: string; altNames: string; diff --git a/frontend/src/hooks/api/ca/types.ts b/frontend/src/hooks/api/ca/types.ts index 7513070c8..692714871 100644 --- a/frontend/src/hooks/api/ca/types.ts +++ b/frontend/src/hooks/api/ca/types.ts @@ -80,6 +80,7 @@ export type TImportCaCertificateResponse = { export type TCreateCertificateDTO = { projectSlug: string; caId: string; + pkiCollectionId?: string; friendlyName?: string; commonName: string; altNames: string; // sans diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx index 12bd8c47c..227abe02a 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx @@ -14,7 +14,13 @@ import { SelectItem } from "@app/components/v2"; import { useWorkspace } from "@app/context"; -import { CaStatus, useCreateCertificate, useGetCert, useListWorkspaceCas } from "@app/hooks/api"; +import { + CaStatus, + useCreateCertificate, + useGetCert, + useListWorkspaceCas, + useListWorkspacePkiCollections +} from "@app/hooks/api"; import { caTypeToNameMap } from "@app/hooks/api/ca/constants"; import { UsePopUpState } from "@app/hooks/usePopUp"; @@ -22,6 +28,7 @@ import { CertificateContent } from "./CertificateContent"; const schema = z.object({ caId: z.string(), + collectionId: z.string().optional(), friendlyName: z.string(), commonName: z.string().trim().min(1), altNames: z.string(), @@ -54,6 +61,10 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { status: CaStatus.ACTIVE }); + const { data } = useListWorkspacePkiCollections({ + workspaceId: currentWorkspace?.id || "" + }); + const { mutateAsync: createCertificate } = useCreateCertificate(); const { @@ -86,13 +97,21 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { } }, [cert]); - const onFormSubmit = async ({ caId, friendlyName, commonName, altNames, ttl }: FormData) => { + const onFormSubmit = async ({ + caId, + collectionId, + friendlyName, + commonName, + altNames, + ttl + }: FormData) => { try { if (!currentWorkspace?.slug) return; const { serialNumber, certificate, certificateChain, privateKey } = await createCertificate({ projectSlug: currentWorkspace.slug, caId, + pkiCollectionId: collectionId, friendlyName, commonName, altNames, @@ -167,6 +186,32 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => {
)} /> + ( + + + + )} + /> Date: Thu, 15 Aug 2024 11:03:58 -0700 Subject: [PATCH 080/101] Add description to PKI collection --- .../20240806173521_cert-alerting.ts | 1 + backend/src/db/schemas/pki-collections.ts | 3 ++- backend/src/lib/api-docs/constants.ts | 6 +++-- .../server/routes/v1/pki-collection-router.ts | 6 +++-- .../pki-collection/pki-collection-service.ts | 8 ++++-- .../pki-collection/pki-collection-types.ts | 2 ++ .../src/hooks/api/pkiCollections/types.ts | 3 +++ .../CertificatesTab/CertificatesTab.tsx | 2 ++ .../components/PkiCollectionModal.tsx | 26 ++++++++++++++++--- .../components/PkiCollectionSection.tsx | 2 +- .../components/PkiCollectionTable.tsx | 4 ++- .../PkiCollectionDetailsSection.tsx | 6 ++++- 12 files changed, 55 insertions(+), 14 deletions(-) diff --git a/backend/src/db/migrations/20240806173521_cert-alerting.ts b/backend/src/db/migrations/20240806173521_cert-alerting.ts index a946eb5ce..5ea98cda9 100644 --- a/backend/src/db/migrations/20240806173521_cert-alerting.ts +++ b/backend/src/db/migrations/20240806173521_cert-alerting.ts @@ -11,6 +11,7 @@ export async function up(knex: Knex): Promise { t.string("projectId").notNullable(); t.foreign("projectId").references("id").inTable(TableName.Project).onDelete("CASCADE"); t.string("name").notNullable(); + t.string("description").notNullable(); }); } diff --git a/backend/src/db/schemas/pki-collections.ts b/backend/src/db/schemas/pki-collections.ts index 4470c513c..0f9a5675f 100644 --- a/backend/src/db/schemas/pki-collections.ts +++ b/backend/src/db/schemas/pki-collections.ts @@ -12,7 +12,8 @@ export const PkiCollectionsSchema = z.object({ createdAt: z.date(), updatedAt: z.date(), projectId: z.string(), - name: z.string() + name: z.string(), + description: z.string() }); export type TPkiCollections = z.infer; diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index d79faa647..90eacb9a7 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -1172,14 +1172,16 @@ export const ALERTS = { export const PKI_COLLECTIONS = { CREATE: { projectId: "The ID of the project to create the PKI collection in", - name: "The name of the PKI collection" + name: "The name of the PKI collection", + description: "A description for the PKI collection" }, GET: { collectionId: "The ID of the PKI collection to get" }, UPDATE: { collectionId: "The ID of the PKI collection to update", - name: "The name of the PKI collection to update to" + name: "The name of the PKI collection to update to", + description: "The description for the PKI collection to update to" }, DELETE: { collectionId: "The ID of the PKI collection to delete" diff --git a/backend/src/server/routes/v1/pki-collection-router.ts b/backend/src/server/routes/v1/pki-collection-router.ts index 6a48b5e76..2f2add5c1 100644 --- a/backend/src/server/routes/v1/pki-collection-router.ts +++ b/backend/src/server/routes/v1/pki-collection-router.ts @@ -20,7 +20,8 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) => description: "Create PKI collection", body: z.object({ projectId: z.string().trim().describe(PKI_COLLECTIONS.CREATE.projectId), - name: z.string().trim().describe(PKI_COLLECTIONS.CREATE.name) + name: z.string().trim().describe(PKI_COLLECTIONS.CREATE.name), + description: z.string().trim().default("").describe(PKI_COLLECTIONS.CREATE.description) }), response: { 200: PkiCollectionsSchema @@ -104,7 +105,8 @@ export const registerPkiCollectionRouter = async (server: FastifyZodProvider) => collectionId: z.string().trim().describe(PKI_COLLECTIONS.UPDATE.collectionId) }), body: z.object({ - name: z.string().trim().optional().describe(PKI_COLLECTIONS.UPDATE.name) + name: z.string().trim().optional().describe(PKI_COLLECTIONS.UPDATE.name), + description: z.string().trim().optional().describe(PKI_COLLECTIONS.UPDATE.description) }), response: { 200: PkiCollectionsSchema diff --git a/backend/src/services/pki-collection/pki-collection-service.ts b/backend/src/services/pki-collection/pki-collection-service.ts index 87b1be2f9..f7c7ba399 100644 --- a/backend/src/services/pki-collection/pki-collection-service.ts +++ b/backend/src/services/pki-collection/pki-collection-service.ts @@ -40,6 +40,7 @@ export const pkiCollectionServiceFactory = ({ }: TPkiCollectionServiceFactoryDep) => { const createPkiCollection = async ({ name, + description, projectId, actorId, actorAuthMethod, @@ -61,7 +62,8 @@ export const pkiCollectionServiceFactory = ({ const pkiCollection = await pkiCollectionDAL.create({ projectId, - name + name, + description }); return pkiCollection; @@ -92,6 +94,7 @@ export const pkiCollectionServiceFactory = ({ const updatePkiCollection = async ({ collectionId, name, + description, actorId, actorAuthMethod, actor, @@ -110,7 +113,8 @@ export const pkiCollectionServiceFactory = ({ ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Edit, ProjectPermissionSub.PkiCollections); pkiCollection = await pkiCollectionDAL.updateById(collectionId, { - name + name, + description }); return pkiCollection; diff --git a/backend/src/services/pki-collection/pki-collection-types.ts b/backend/src/services/pki-collection/pki-collection-types.ts index 52d489eb2..e82ca31d0 100644 --- a/backend/src/services/pki-collection/pki-collection-types.ts +++ b/backend/src/services/pki-collection/pki-collection-types.ts @@ -2,6 +2,7 @@ import { TProjectPermission } from "@app/lib/types"; export type TCreatePkiCollectionDTO = { name: string; + description: string; } & TProjectPermission; export type TGetPkiCollectionByIdDTO = { @@ -11,6 +12,7 @@ export type TGetPkiCollectionByIdDTO = { export type TUpdatePkiCollectionDTO = { collectionId: string; name?: string; + description?: string; } & Omit; export type TDeletePkiCollectionDTO = { diff --git a/frontend/src/hooks/api/pkiCollections/types.ts b/frontend/src/hooks/api/pkiCollections/types.ts index 86c2471e9..98a98d520 100644 --- a/frontend/src/hooks/api/pkiCollections/types.ts +++ b/frontend/src/hooks/api/pkiCollections/types.ts @@ -1,6 +1,7 @@ export type TPkiCollection = { id: string; name: string; + description: string; projectId: string; createdAt: string; updatedAt: string; @@ -9,12 +10,14 @@ export type TPkiCollection = { export type TCreatePkiCollectionDTO = { projectId: string; name: string; + description: string; }; export type TUpdatePkiCollectionTO = { collectionId: string; projectId: string; name?: string; + description?: string; }; export type TDeletePkiCollectionDTO = { diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/CertificatesTab.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/CertificatesTab.tsx index f054e2546..8dcd74348 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/CertificatesTab.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/CertificatesTab.tsx @@ -1,5 +1,6 @@ import { motion } from "framer-motion"; +import { PkiCollectionSection } from "../PkiAlertsTab/components"; import { CertificatesSection } from "./components"; export const CertificatesTab = () => { @@ -11,6 +12,7 @@ export const CertificatesTab = () => { animate={{ opacity: 1, translateX: 0 }} exit={{ opacity: 0, translateX: 30 }} > + ); diff --git a/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/components/PkiCollectionModal.tsx b/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/components/PkiCollectionModal.tsx index 89fd51c92..926d1cec9 100644 --- a/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/components/PkiCollectionModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/components/PkiCollectionModal.tsx @@ -15,7 +15,8 @@ import { import { UsePopUpState } from "@app/hooks/usePopUp"; const schema = z.object({ - name: z.string().trim().min(1) + name: z.string().trim().min(1), + description: z.string() }); export type FormData = z.infer; @@ -49,16 +50,18 @@ export const PkiCollectionModal = ({ popUp, handlePopUpToggle }: Props) => { useEffect(() => { if (pkiCollection) { reset({ - name: pkiCollection.name + name: pkiCollection.name, + description: pkiCollection.description }); } else { reset({ - name: "" + name: "", + description: "" }); } }, [pkiCollection]); - const onFormSubmit = async ({ name }: FormData) => { + const onFormSubmit = async ({ name, description }: FormData) => { try { if (!projectId) return; @@ -67,12 +70,14 @@ export const PkiCollectionModal = ({ popUp, handlePopUpToggle }: Props) => { await updatePkiCollection({ collectionId: pkiCollection.id, name, + description, projectId }); } else { // create const { id: createdId } = await createPkiCollection({ name, + description, projectId }); @@ -121,6 +126,19 @@ export const PkiCollectionModal = ({ popUp, handlePopUpToggle }: Props) => {
)} /> + ( + + + + )} + />
-
+

Name

{pkiCollection.name}

+
+

Description

+

{pkiCollection.description}

+
) : ( From cc94a3366a1935ec5e6c23db83259d13dd4c54d6 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 15 Aug 2024 23:38:16 +0530 Subject: [PATCH 081/101] feat: made requested changes for integration sync --- backend/src/keystore/keystore.ts | 2 +- backend/src/services/secret/secret-queue.ts | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/backend/src/keystore/keystore.ts b/backend/src/keystore/keystore.ts index ab5920204..f6d5d1c6e 100644 --- a/backend/src/keystore/keystore.ts +++ b/backend/src/keystore/keystore.ts @@ -18,7 +18,7 @@ export const KeyStorePrefixes = { SyncSecretIntegrationLock: (projectId: string, environmentSlug: string, secretPath: string) => `sync-integration-mutex-${projectId}-${environmentSlug}-${secretPath}` as const, - SetSyncSecretIntegrationLastRunTimestamp: (projectId: string, environmentSlug: string, secretPath: string) => + SyncSecretIntegrationLastRunTimestamp: (projectId: string, environmentSlug: string, secretPath: string) => `sync-integration-last-run-${projectId}-${environmentSlug}-${secretPath}` as const }; diff --git a/backend/src/services/secret/secret-queue.ts b/backend/src/services/secret/secret-queue.ts index c572e5194..36edcf195 100644 --- a/backend/src/services/secret/secret-queue.ts +++ b/backend/src/services/secret/secret-queue.ts @@ -654,10 +654,12 @@ export const secretQueueFactory = ({ const lockAcquiredTime = new Date(); const lastRunSyncIntegrationTimestamp = await keyStore.getItem( - KeyStorePrefixes.SetSyncSecretIntegrationLastRunTimestamp(projectId, environment, secretPath) + KeyStorePrefixes.SyncSecretIntegrationLastRunTimestamp(projectId, environment, secretPath) ); + // check whether the integration should wait or not if (lastRunSyncIntegrationTimestamp) { + const INTEGRATION_INTERVAL = 2000; const isStaleSyncIntegration = new Date(job.timestamp) < new Date(lastRunSyncIntegrationTimestamp); if (isStaleSyncIntegration) { logger.info( @@ -670,7 +672,7 @@ export const secretQueueFactory = ({ lockAcquiredTime.toISOString(), lastRunSyncIntegrationTimestamp ); - if (timeDifferenceWithLastIntegration < 2000 && timeDifferenceWithLastIntegration > 0) + if (timeDifferenceWithLastIntegration < INTEGRATION_INTERVAL && timeDifferenceWithLastIntegration > 0) await new Promise((resolve) => { setTimeout(resolve, 2000 - timeDifferenceWithLastIntegration * 1000); }); @@ -788,7 +790,7 @@ export const secretQueueFactory = ({ } await keyStore.setItemWithExpiry( - KeyStorePrefixes.SetSyncSecretIntegrationLastRunTimestamp(projectId, environment, secretPath), + KeyStorePrefixes.SyncSecretIntegrationLastRunTimestamp(projectId, environment, secretPath), KeyStoreTtls.SetSyncSecretIntegrationLastRunTimestampInSeconds, lockAcquiredTime.toISOString() ); From 27d2af497939e4c321152c559409685a81d3ce0b Mon Sep 17 00:00:00 2001 From: Maidul Islam Date: Thu, 15 Aug 2024 22:39:49 -0400 Subject: [PATCH 082/101] Add DISABLE_AUDIT_LOG_GENERATION Added `DISABLE_AUDIT_LOG_GENERATION` which when set to true will prevent the creation of audit logs in Infisical. This will be used for load testing purposes and help verify if audit logs are a bottle neck for performance --- backend/src/ee/services/audit-log/audit-log-service.ts | 5 +++++ backend/src/lib/config/env.ts | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/src/ee/services/audit-log/audit-log-service.ts b/backend/src/ee/services/audit-log/audit-log-service.ts index 1564c6dcb..2916eb412 100644 --- a/backend/src/ee/services/audit-log/audit-log-service.ts +++ b/backend/src/ee/services/audit-log/audit-log-service.ts @@ -1,5 +1,6 @@ import { ForbiddenError } from "@casl/ability"; +import { getConfig } from "@app/lib/config/env"; import { BadRequestError } from "@app/lib/errors"; import { TPermissionServiceFactory } from "../permission/permission-service"; @@ -61,6 +62,10 @@ export const auditLogServiceFactory = ({ }; const createAuditLog = async (data: TCreateAuditLogDTO) => { + const appCfg = getConfig(); + if (appCfg.DISABLE_AUDIT_LOG_GENERATION) { + return; + } // add all cases in which project id or org id cannot be added if (data.event.type !== EventType.LOGIN_IDENTITY_UNIVERSAL_AUTH) { if (!data.projectId && !data.orgId) throw new BadRequestError({ message: "Must either project id or org id" }); diff --git a/backend/src/lib/config/env.ts b/backend/src/lib/config/env.ts index 90f04d952..8a2b961e9 100644 --- a/backend/src/lib/config/env.ts +++ b/backend/src/lib/config/env.ts @@ -140,7 +140,8 @@ const envSchema = z MAINTENANCE_MODE: zodStrBool.default("false"), CAPTCHA_SECRET: zpStr(z.string().optional()), PLAIN_API_KEY: zpStr(z.string().optional()), - PLAIN_WISH_LABEL_IDS: zpStr(z.string().optional()) + PLAIN_WISH_LABEL_IDS: zpStr(z.string().optional()), + DISABLE_AUDIT_LOG_GENERATION: zodStrBool.default("false") }) .transform((data) => ({ ...data, From 32046ca880e0b26ff67edfcee0aaf1be6c0413c4 Mon Sep 17 00:00:00 2001 From: DC Date: Thu, 15 Aug 2024 20:17:40 -0700 Subject: [PATCH 083/101] fix: added missing word --- docs/documentation/guides/local-development.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/documentation/guides/local-development.mdx b/docs/documentation/guides/local-development.mdx index 9ffc0fca0..6d606bafe 100644 --- a/docs/documentation/guides/local-development.mdx +++ b/docs/documentation/guides/local-development.mdx @@ -9,7 +9,7 @@ description: "Learn how to manage secrets in local development environments." There is a number of issues that arise with secret management in local development environment: 1. **Getting secrets onto local machines**. When new developers join or a new project is created, the process of getting the development set of secrets onto local machines is often unclear. As a result, developers end up spending a lot of time onboarding and risk potentially following insecure practices when sharing secrets from one developer to another. 2. **Syncing secrets with teammates**. One of the problems with .env files is that they become unsynced when one of the developers updates a secret or configuration. Even if the rest of the team is notified, developers don't make all the right changes immediately, and later on end up spending a lot of time debugging an issue due to missing environment variables. This leads to a lot of inefficiencies and lost time. -3. **Accidentally leaking secrets**. When developing locally, it's common for developers to accidentally leak a hardcoded as part of a commit. As soon as the secret is part of the git history, it becomes hard to get it removed and create a security vulnerability. +3. **Accidentally leaking secrets**. When developing locally, it's common for developers to accidentally leak a hardcoded secret as part of a commit. As soon as the secret is part of the git history, it becomes hard to get it removed and create a security vulnerability. ## Solution @@ -31,4 +31,4 @@ By default, all the secrets in the Infisical environments are shared among proje ### Secret Scanning -In addition, Infisical also provides a set of tools to automatically prevent secret leaks to git history. This functionality can be set up on the level of [Infisical CLI using pre-commit hooks](/cli/scanning-overview#automatically-scan-changes-before-you-commit) or through a direct integration with platforms like GitHub. \ No newline at end of file +In addition, Infisical also provides a set of tools to automatically prevent secret leaks to git history. This functionality can be set up on the level of [Infisical CLI using pre-commit hooks](/cli/scanning-overview#automatically-scan-changes-before-you-commit) or through a direct integration with platforms like GitHub. From b9bd518aa6d4d3f57df1b28eee4ef752b35f9ec0 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 16 Aug 2024 16:32:47 +0800 Subject: [PATCH 084/101] feat: initial enforcement of template policy --- backend/package-lock.json | 24 +++ backend/package.json | 2 + backend/src/@types/knex.d.ts | 8 +- backend/src/db/schemas/index.ts | 1 + backend/src/lib/api-docs/constants.ts | 1 + backend/src/server/routes/index.ts | 1 + .../server/routes/v1/certificate-router.ts | 184 +++++++++++++++++- .../routes/v1/certificate-template-router.ts | 19 +- .../src/server/routes/v2/project-router.ts | 5 +- .../certificate-authority-service.ts | 73 ++++++- .../certificate-authority-types.ts | 6 +- .../certificate-template-fns.ts | 28 +++ .../certificate-template-validators.ts | 14 ++ frontend/src/hooks/api/ca/mutations.tsx | 7 +- frontend/src/hooks/api/ca/types.ts | 5 +- .../hooks/api/certificateTemplates/types.ts | 1 + .../components/CertificateModal.tsx | 75 ++++++- .../components/CertificateTemplateModal.tsx | 10 +- 18 files changed, 427 insertions(+), 37 deletions(-) create mode 100644 backend/src/services/certificate-template/certificate-template-fns.ts create mode 100644 backend/src/services/certificate-template/certificate-template-validators.ts diff --git a/backend/package-lock.json b/backend/package-lock.json index ffe9cfcb0..93bea2cd4 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -75,6 +75,7 @@ "pino": "^8.16.2", "posthog-node": "^3.6.2", "probot": "^13.0.0", + "safe-regex": "^2.1.1", "smee-client": "^2.0.0", "tedious": "^18.2.1", "tweetnacl": "^1.0.3", @@ -106,6 +107,7 @@ "@types/picomatch": "^2.3.3", "@types/prompt-sync": "^4.2.3", "@types/resolve": "^1.20.6", + "@types/safe-regex": "^1.1.6", "@types/uuid": "^9.0.7", "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0", @@ -9774,6 +9776,12 @@ "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==", "dev": true }, + "node_modules/@types/safe-regex": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@types/safe-regex/-/safe-regex-1.1.6.tgz", + "integrity": "sha512-CQ/uPB9fLOPKwDsrTeVbNIkwfUthTWOx0l6uIGwVFjZxv7e68pCW5gtTYFzdJi3EBJp8h8zYhJbTasAbX7gEMQ==", + "dev": true + }, "node_modules/@types/semver": { "version": "7.5.6", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", @@ -17778,6 +17786,14 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", @@ -18094,6 +18110,14 @@ } ] }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", diff --git a/backend/package.json b/backend/package.json index 1328db4dd..cc190556f 100644 --- a/backend/package.json +++ b/backend/package.json @@ -78,6 +78,7 @@ "@types/picomatch": "^2.3.3", "@types/prompt-sync": "^4.2.3", "@types/resolve": "^1.20.6", + "@types/safe-regex": "^1.1.6", "@types/uuid": "^9.0.7", "@typescript-eslint/eslint-plugin": "^6.20.0", "@typescript-eslint/parser": "^6.20.0", @@ -171,6 +172,7 @@ "pino": "^8.16.2", "posthog-node": "^3.6.2", "probot": "^13.0.0", + "safe-regex": "^2.1.1", "smee-client": "^2.0.0", "tedious": "^18.2.1", "tweetnacl": "^1.0.3", diff --git a/backend/src/@types/knex.d.ts b/backend/src/@types/knex.d.ts index 008fee382..6a2cdfcb9 100644 --- a/backend/src/@types/knex.d.ts +++ b/backend/src/@types/knex.d.ts @@ -53,6 +53,9 @@ import { TCertificateSecretsUpdate, TCertificatesInsert, TCertificatesUpdate, + TCertificateTemplates, + TCertificateTemplatesInsert, + TCertificateTemplatesUpdate, TDynamicSecretLeases, TDynamicSecretLeasesInsert, TDynamicSecretLeasesUpdate, @@ -318,11 +321,6 @@ import { TWebhooksInsert, TWebhooksUpdate } from "@app/db/schemas"; -import { - TCertificateTemplates, - TCertificateTemplatesInsert, - TCertificateTemplatesUpdate -} from "@app/db/schemas/certificate-templates"; import { TSecretV2TagJunction, TSecretV2TagJunctionInsert, diff --git a/backend/src/db/schemas/index.ts b/backend/src/db/schemas/index.ts index 03146f204..bfa3a0a0e 100644 --- a/backend/src/db/schemas/index.ts +++ b/backend/src/db/schemas/index.ts @@ -14,6 +14,7 @@ export * from "./certificate-authority-crl"; export * from "./certificate-authority-secret"; export * from "./certificate-bodies"; export * from "./certificate-secrets"; +export * from "./certificate-templates"; export * from "./certificates"; export * from "./dynamic-secret-leases"; export * from "./dynamic-secrets"; diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index 336776dbf..31079f318 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -1088,6 +1088,7 @@ export const CERTIFICATE_AUTHORITIES = { }, ISSUE_CERT: { caId: "The ID of the CA to issue the certificate from", + certificateTemplateId: "The ID of the certificate template to issue the certificate from", friendlyName: "A friendly name for the certificate", commonName: "The common name (CN) for the certificate", altNames: diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index 46e241075..76eedecdf 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -622,6 +622,7 @@ export const registerRoutes = async ( certificateAuthorityCertDAL, certificateAuthoritySecretDAL, certificateAuthorityCrlDAL, + certificateTemplateDAL, certificateAuthorityQueue, certificateDAL, certificateBodyDAL, diff --git a/backend/src/server/routes/v1/certificate-router.ts b/backend/src/server/routes/v1/certificate-router.ts index 938fbf7fe..989e79448 100644 --- a/backend/src/server/routes/v1/certificate-router.ts +++ b/backend/src/server/routes/v1/certificate-router.ts @@ -1,12 +1,17 @@ +import ms from "ms"; import { z } from "zod"; import { CertificatesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; -import { CERTIFICATES } from "@app/lib/api-docs"; +import { CERTIFICATE_AUTHORITIES, CERTIFICATES } from "@app/lib/api-docs"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; import { CrlReason } from "@app/services/certificate/certificate-types"; +import { + validateAltNamesField, + validateCaDateField +} from "@app/services/certificate-authority/certificate-authority-validators"; export const registerCertRouter = async (server: FastifyZodProvider) => { server.route({ @@ -55,6 +60,183 @@ export const registerCertRouter = async (server: FastifyZodProvider) => { } }); + server.route({ + method: "POST", + url: "/issue-certificate", + config: { + rateLimit: writeLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + description: "Issue certificate", + body: z + .object({ + caId: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.caId), + certificateTemplateId: z + .string() + .trim() + .optional() + .describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificateTemplateId), + friendlyName: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.friendlyName), + commonName: z.string().trim().min(1).describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.commonName), + altNames: validateAltNamesField.describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.altNames), + ttl: z + .string() + .refine((val) => ms(val) > 0, "TTL must be a positive number") + .describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.ttl), + notBefore: validateCaDateField.optional().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.notBefore), + notAfter: validateCaDateField.optional().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.notAfter) + }) + .refine( + (data) => { + const { ttl, notAfter } = data; + return (ttl !== undefined && notAfter === undefined) || (ttl === undefined && notAfter !== undefined); + }, + { + message: "Either ttl or notAfter must be present, but not both", + path: ["ttl", "notAfter"] + } + ) + .refine( + (data) => + (data.caId !== undefined && data.certificateTemplateId === undefined) || + (data.caId === undefined && data.certificateTemplateId !== undefined), + { + message: "Either CA ID or Certificate Template ID must be present, but not both", + path: ["caId", "certificateTemplateId"] + } + ), + response: { + 200: z.object({ + certificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificate), + issuingCaCertificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.issuingCaCertificate), + certificateChain: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificateChain), + privateKey: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.privateKey), + serialNumber: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.serialNumber) + }) + } + }, + handler: async (req) => { + const { certificate, certificateChain, issuingCaCertificate, privateKey, serialNumber, ca } = + await server.services.certificateAuthority.issueCertFromCa({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: ca.projectId, + event: { + type: EventType.ISSUE_CERT, + metadata: { + caId: ca.id, + dn: ca.dn, + serialNumber + } + } + }); + + return { + certificate, + certificateChain, + issuingCaCertificate, + privateKey, + serialNumber + }; + } + }); + + server.route({ + method: "POST", + url: "/sign-certificate", + config: { + rateLimit: writeLimit + }, + onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), + schema: { + description: "Sign certificate", + body: z + .object({ + caId: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.caId), + certificateTemplateId: z + .string() + .trim() + .optional() + .describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificateTemplateId), + csr: z.string().trim().min(1).describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.csr), + friendlyName: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.friendlyName), + commonName: z.string().trim().min(1).optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.commonName), + altNames: validateAltNamesField.describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.altNames), + ttl: z + .string() + .refine((val) => ms(val) > 0, "TTL must be a positive number") + .describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.ttl), + notBefore: validateCaDateField.optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.notBefore), + notAfter: validateCaDateField.optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.notAfter) + }) + .refine( + (data) => { + const { ttl, notAfter } = data; + return (ttl !== undefined && notAfter === undefined) || (ttl === undefined && notAfter !== undefined); + }, + { + message: "Either ttl or notAfter must be present, but not both", + path: ["ttl", "notAfter"] + } + ) + .refine( + (data) => + (data.caId !== undefined && data.certificateTemplateId === undefined) || + (data.caId === undefined && data.certificateTemplateId !== undefined), + { + message: "Either CA ID or Certificate Template ID must be present, but not both", + path: ["caId", "certificateTemplateId"] + } + ), + response: { + 200: z.object({ + certificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.certificate), + issuingCaCertificate: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.issuingCaCertificate), + certificateChain: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificateChain), + serialNumber: z.string().trim().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.serialNumber) + }) + } + }, + handler: async (req) => { + const { certificate, certificateChain, issuingCaCertificate, serialNumber, ca } = + await server.services.certificateAuthority.signCertFromCa({ + actor: req.permission.type, + actorId: req.permission.id, + actorAuthMethod: req.permission.authMethod, + actorOrgId: req.permission.orgId, + ...req.body + }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: ca.projectId, + event: { + type: EventType.SIGN_CERT, + metadata: { + caId: ca.id, + dn: ca.dn, + serialNumber + } + } + }); + + return { + certificate, + certificateChain, + issuingCaCertificate, + serialNumber + }; + } + }); + server.route({ method: "POST", url: "/:serialNumber/revoke", diff --git a/backend/src/server/routes/v1/certificate-template-router.ts b/backend/src/server/routes/v1/certificate-template-router.ts index 7b71cbbd1..668dde2c0 100644 --- a/backend/src/server/routes/v1/certificate-template-router.ts +++ b/backend/src/server/routes/v1/certificate-template-router.ts @@ -1,9 +1,11 @@ +import ms from "ms"; import { z } from "zod"; -import { CertificateTemplatesSchema } from "@app/db/schemas/certificate-templates"; +import { CertificateTemplatesSchema } from "@app/db/schemas"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; +import { validateTemplateRegexField } from "@app/services/certificate-template/certificate-template-validators"; const sanitizedCertificateTemplate = CertificateTemplatesSchema.pick({ id: true, @@ -58,9 +60,9 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid schema: { body: z.object({ caId: z.string(), - name: z.string(), - commonName: z.string(), - ttl: z.string() + name: z.string().min(1), + commonName: validateTemplateRegexField, + ttl: z.string().refine((val) => ms(val) > 0, "TTL must be a positive number") }), response: { 200: z.object({ @@ -91,9 +93,12 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid schema: { body: z.object({ caId: z.string().optional(), - name: z.string().optional(), - commonName: z.string().optional(), - ttl: z.string().optional() + name: z.string().min(1).optional(), + commonName: validateTemplateRegexField.optional(), + ttl: z + .string() + .refine((val) => ms(val) > 0, "TTL must be a positive number") + .optional() }), params: z.object({ certificateTemplateId: z.string() diff --git a/backend/src/server/routes/v2/project-router.ts b/backend/src/server/routes/v2/project-router.ts index d3a49fb69..bc5dfdfbb 100644 --- a/backend/src/server/routes/v2/project-router.ts +++ b/backend/src/server/routes/v2/project-router.ts @@ -4,11 +4,11 @@ import { z } from "zod"; import { CertificateAuthoritiesSchema, CertificatesSchema, + CertificateTemplatesSchema, PkiAlertsSchema, PkiCollectionsSchema, ProjectKeysSchema } from "@app/db/schemas"; -import { CertificateTemplatesSchema } from "@app/db/schemas/certificate-templates"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { PROJECTS } from "@app/lib/api-docs"; import { creationLimit, readLimit, writeLimit } from "@app/server/config/rateLimiter"; @@ -478,7 +478,8 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { name: true }).merge( z.object({ - caName: z.string() + caName: z.string(), + caId: z.string() }) ) ) diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index 52cfa8039..91f841221 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -5,9 +5,10 @@ import crypto, { KeyObject } from "crypto"; import ms from "ms"; import { z } from "zod"; +import { TCertificateAuthorities, TCertificateTemplates } from "@app/db/schemas"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; import { ProjectPermissionActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission"; -import { BadRequestError } from "@app/lib/errors"; +import { BadRequestError, NotFoundError } from "@app/lib/errors"; import { TCertificateBodyDALFactory } from "@app/services/certificate/certificate-body-dal"; import { TCertificateDALFactory } from "@app/services/certificate/certificate-dal"; import { TKmsServiceFactory } from "@app/services/kms/kms-service"; @@ -16,6 +17,8 @@ import { getProjectKmsCertificateKeyId } from "@app/services/project/project-fns import { TCertificateAuthorityCrlDALFactory } from "../../ee/services/certificate-authority-crl/certificate-authority-crl-dal"; import { CertKeyAlgorithm, CertStatus } from "../certificate/certificate-types"; +import { TCertificateTemplateDALFactory } from "../certificate-template/certificate-template-dal"; +import { validateCertificateDetailsAgainstTemplate } from "../certificate-template/certificate-template-fns"; import { TCertificateAuthorityCertDALFactory } from "./certificate-authority-cert-dal"; import { TCertificateAuthorityDALFactory } from "./certificate-authority-dal"; import { @@ -54,6 +57,7 @@ type TCertificateAuthorityServiceFactoryDep = { certificateAuthorityCertDAL: Pick; certificateAuthoritySecretDAL: Pick; certificateAuthorityCrlDAL: Pick; + certificateTemplateDAL: Pick; certificateAuthorityQueue: TCertificateAuthorityQueueFactory; // TODO: Pick certificateDAL: Pick; certificateBodyDAL: Pick; @@ -69,6 +73,7 @@ export const certificateAuthorityServiceFactory = ({ certificateAuthorityCertDAL, certificateAuthoritySecretDAL, certificateAuthorityCrlDAL, + certificateTemplateDAL, certificateDAL, certificateBodyDAL, projectDAL, @@ -1001,6 +1006,7 @@ export const certificateAuthorityServiceFactory = ({ */ const issueCertFromCa = async ({ caId, + certificateTemplateId, friendlyName, commonName, altNames, @@ -1012,8 +1018,25 @@ export const certificateAuthorityServiceFactory = ({ actor, actorOrgId }: TIssueCertFromCaDTO) => { - const ca = await certificateAuthorityDAL.findById(caId); - if (!ca) throw new BadRequestError({ message: "CA not found" }); + let ca: TCertificateAuthorities | undefined; + let certificateTemplate: TCertificateTemplates | undefined; + + if (caId) { + ca = await certificateAuthorityDAL.findById(caId); + } else if (certificateTemplateId) { + certificateTemplate = await certificateTemplateDAL.getById(certificateTemplateId); + if (!certificateTemplate) { + throw new NotFoundError({ + message: "Certificate template not found" + }); + } + + ca = await certificateAuthorityDAL.findById(certificateTemplate.caId); + } + + if (!ca) { + throw new BadRequestError({ message: "CA not found" }); + } const { permission } = await permissionService.getProjectPermission( actor, @@ -1073,6 +1096,17 @@ export const certificateAuthorityServiceFactory = ({ throw new BadRequestError({ message: "notAfter date is after CA certificate's notAfter date" }); } + if (certificateTemplate) { + validateCertificateDetailsAgainstTemplate( + { + commonName, + notBeforeDate, + notAfterDate + }, + certificateTemplate + ); + } + const alg = keyAlgorithmToAlgCfg(ca.keyAlgorithm as CertKeyAlgorithm); const leafKeys = await crypto.subtle.generateKey(alg, true, ["sign", "verify"]); @@ -1207,6 +1241,7 @@ export const certificateAuthorityServiceFactory = ({ */ const signCertFromCa = async ({ caId, + certificateTemplateId, csr, friendlyName, commonName, @@ -1219,8 +1254,25 @@ export const certificateAuthorityServiceFactory = ({ actor, actorOrgId }: TSignCertFromCaDTO) => { - const ca = await certificateAuthorityDAL.findById(caId); - if (!ca) throw new BadRequestError({ message: "CA not found" }); + let ca: TCertificateAuthorities | undefined; + let certificateTemplate: TCertificateTemplates | undefined; + + if (caId) { + ca = await certificateAuthorityDAL.findById(caId); + } else if (certificateTemplateId) { + certificateTemplate = await certificateTemplateDAL.getById(certificateTemplateId); + if (!certificateTemplate) { + throw new NotFoundError({ + message: "Certificate template not found" + }); + } + + ca = await certificateAuthorityDAL.findById(certificateTemplate.caId); + } + + if (!ca) { + throw new BadRequestError({ message: "CA not found" }); + } const { permission } = await permissionService.getProjectPermission( actor, @@ -1293,6 +1345,17 @@ export const certificateAuthorityServiceFactory = ({ message: "A common name (CN) is required in the CSR or as a parameter to this endpoint" }); + if (certificateTemplate) { + validateCertificateDetailsAgainstTemplate( + { + commonName: cn, + notBeforeDate, + notAfterDate + }, + certificateTemplate + ); + } + const { caPrivateKey } = await getCaCredentials({ caId: ca.id, certificateAuthorityDAL, diff --git a/backend/src/services/certificate-authority/certificate-authority-types.ts b/backend/src/services/certificate-authority/certificate-authority-types.ts index f97844870..e04e0b8a9 100644 --- a/backend/src/services/certificate-authority/certificate-authority-types.ts +++ b/backend/src/services/certificate-authority/certificate-authority-types.ts @@ -86,7 +86,8 @@ export type TImportCertToCaDTO = { } & Omit; export type TIssueCertFromCaDTO = { - caId: string; + caId?: string; + certificateTemplateId?: string; friendlyName?: string; commonName: string; altNames: string; @@ -96,8 +97,9 @@ export type TIssueCertFromCaDTO = { } & Omit; export type TSignCertFromCaDTO = { - caId: string; + caId?: string; csr: string; + certificateTemplateId?: string; friendlyName?: string; commonName?: string; altNames: string; diff --git a/backend/src/services/certificate-template/certificate-template-fns.ts b/backend/src/services/certificate-template/certificate-template-fns.ts new file mode 100644 index 000000000..8b62020ca --- /dev/null +++ b/backend/src/services/certificate-template/certificate-template-fns.ts @@ -0,0 +1,28 @@ +import ms from "ms"; + +import { BadRequestError } from "@app/lib/errors"; + +export const validateCertificateDetailsAgainstTemplate = ( + cert: { + commonName: string; + notBeforeDate: Date; + notAfterDate: Date; + }, + template: { + commonName: string; + ttl: string; + } +) => { + const commonNameRegex = new RegExp(template.commonName); + if (!commonNameRegex.test(cert.commonName)) { + throw new BadRequestError({ + message: "Invalid common name based on template policy" + }); + } + + if (cert.notAfterDate.getTime() - cert.notBeforeDate.getTime() > ms(template.ttl)) { + throw new BadRequestError({ + message: "Invalid validity date based on template policy" + }); + } +}; diff --git a/backend/src/services/certificate-template/certificate-template-validators.ts b/backend/src/services/certificate-template/certificate-template-validators.ts new file mode 100644 index 000000000..41a06b05d --- /dev/null +++ b/backend/src/services/certificate-template/certificate-template-validators.ts @@ -0,0 +1,14 @@ +import safe from "safe-regex"; +import z from "zod"; + +export const validateTemplateRegexField = z + .string() + .min(1) + .max(100) + .regex(/^[a-zA-Z0-9 *@\-\\.\\]+$/, { + message: "Invalid pattern: only alphanumeric characters, spaces, *, ., @, -, and \\ are allowed." + }) + // we ensure that the inputted pattern is computationally safe by limiting star height to 1 + .refine((v) => safe(v), { + message: "Unsafe REGEX pattern" + }); diff --git a/frontend/src/hooks/api/ca/mutations.tsx b/frontend/src/hooks/api/ca/mutations.tsx index 54109adfc..035911e4a 100644 --- a/frontend/src/hooks/api/ca/mutations.tsx +++ b/frontend/src/hooks/api/ca/mutations.tsx @@ -16,7 +16,8 @@ import { TRenewCaResponse, TSignIntermediateDTO, TSignIntermediateResponse, - TUpdateCaDTO} from "./types"; + TUpdateCaDTO +} from "./types"; export const useCreateCa = () => { const queryClient = useQueryClient(); @@ -98,9 +99,9 @@ export const useImportCaCertificate = () => { export const useCreateCertificate = () => { const queryClient = useQueryClient(); return useMutation({ - mutationFn: async ({ caId, ...body }) => { + mutationFn: async (body) => { const { data } = await apiRequest.post( - `/api/v1/pki/ca/${caId}/issue-certificate`, + "/api/v1/pki/certificates/issue-certificate", body ); return data; diff --git a/frontend/src/hooks/api/ca/types.ts b/frontend/src/hooks/api/ca/types.ts index bba7aa699..697e0e84c 100644 --- a/frontend/src/hooks/api/ca/types.ts +++ b/frontend/src/hooks/api/ca/types.ts @@ -1,5 +1,5 @@ import { CertKeyAlgorithm } from "../certificates/enums"; -import { CaRenewalType,CaStatus, CaType } from "./enums"; +import { CaRenewalType, CaStatus, CaType } from "./enums"; export type TCertificateAuthority = { id: string; @@ -78,7 +78,8 @@ export type TImportCaCertificateResponse = { export type TCreateCertificateDTO = { projectSlug: string; - caId: string; + caId?: string; + certificateTemplateId?: string; friendlyName?: string; commonName: string; altNames: string; // sans diff --git a/frontend/src/hooks/api/certificateTemplates/types.ts b/frontend/src/hooks/api/certificateTemplates/types.ts index 2938edbca..c440ea6fb 100644 --- a/frontend/src/hooks/api/certificateTemplates/types.ts +++ b/frontend/src/hooks/api/certificateTemplates/types.ts @@ -2,6 +2,7 @@ export type TCertificateTemplateListEntry = { id: string; name: string; caName: string; + caId: string; }; export type TCertificateTemplate = { diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx index 12bd8c47c..86009c6b6 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx @@ -14,13 +14,21 @@ import { SelectItem } from "@app/components/v2"; import { useWorkspace } from "@app/context"; -import { CaStatus, useCreateCertificate, useGetCert, useListWorkspaceCas } from "@app/hooks/api"; +import { + CaStatus, + useCreateCertificate, + useGetCert, + useGetCertTemplate, + useListWorkspaceCas, + useListWorkspaceCertificateTemplates +} from "@app/hooks/api"; import { caTypeToNameMap } from "@app/hooks/api/ca/constants"; import { UsePopUpState } from "@app/hooks/usePopUp"; import { CertificateContent } from "./CertificateContent"; const schema = z.object({ + certificateTemplateId: z.string().optional(), caId: z.string(), friendlyName: z.string(), commonName: z.string().trim().min(1), @@ -42,6 +50,8 @@ type TCertificateDetails = { privateKey: string; }; +const CERT_TEMPLATE_NONE_VALUE = "none"; + export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { const [certificateDetails, setCertificateDetails] = useState(null); const { currentWorkspace } = useWorkspace(); @@ -54,6 +64,10 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { status: CaStatus.ACTIVE }); + const { data: templatesData } = useListWorkspaceCertificateTemplates({ + workspaceId: currentWorkspace?.id || "" + }); + const { mutateAsync: createCertificate } = useCreateCertificate(); const { @@ -61,11 +75,20 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { handleSubmit, reset, formState: { isSubmitting }, - setValue + setValue, + watch } = useForm({ resolver: zodResolver(schema) }); + const selectedCertTemplateId = watch("certificateTemplateId"); + const hasCertTemplateSelected = + selectedCertTemplateId !== "" && selectedCertTemplateId !== CERT_TEMPLATE_NONE_VALUE; + + const { data: selectedCertTemplate } = useGetCertTemplate( + hasCertTemplateSelected ? (selectedCertTemplateId as string) : "" + ); + useEffect(() => { if (cert) { reset({ @@ -81,7 +104,8 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { friendlyName: "", commonName: "", altNames: "", - ttl: "" + ttl: "", + certificateTemplateId: CERT_TEMPLATE_NONE_VALUE }); } }, [cert]); @@ -91,8 +115,9 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { if (!currentWorkspace?.slug) return; const { serialNumber, certificate, certificateChain, privateKey } = await createCertificate({ + caId: !selectedCertTemplate ? caId : undefined, + certificateTemplateId: selectedCertTemplate ? selectedCertTemplateId : undefined, projectSlug: currentWorkspace.slug, - caId, friendlyName, commonName, altNames, @@ -141,11 +166,11 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => {
( { className="w-full" isDisabled={Boolean(cert)} > - {(cas || []).map(({ id, type, dn }) => ( - - {`${caTypeToNameMap[type]}: ${dn}`} + + None + + {(templatesData?.certificateTemplates || []).map(({ id, name }) => ( + + {name} ))} )} /> + {(!selectedCertTemplateId || selectedCertTemplateId === CERT_TEMPLATE_NONE_VALUE) && ( + ( + + + + )} + /> + )} Date: Fri, 16 Aug 2024 17:24:33 +0800 Subject: [PATCH 085/101] feat: subject alternative name policy enforcement --- ...20240815045235_add-certificate-template.ts | 1 + .../src/db/schemas/certificate-templates.ts | 1 + .../routes/v1/certificate-template-router.ts | 3 + .../certificate-authority-service.ts | 65 ++++++++++--------- .../certificate-template-fns.ts | 16 +++-- .../certificate-template-service.ts | 4 ++ .../certificate-template-types.ts | 2 + .../hooks/api/certificateTemplates/types.ts | 3 + .../components/CertificateModal.tsx | 6 ++ .../components/CertificateTemplateModal.tsx | 51 +++++++++++---- 10 files changed, 106 insertions(+), 46 deletions(-) diff --git a/backend/src/db/migrations/20240815045235_add-certificate-template.ts b/backend/src/db/migrations/20240815045235_add-certificate-template.ts index f6a691f38..efe0daae3 100644 --- a/backend/src/db/migrations/20240815045235_add-certificate-template.ts +++ b/backend/src/db/migrations/20240815045235_add-certificate-template.ts @@ -12,6 +12,7 @@ export async function up(knex: Knex): Promise { tb.foreign("caId").references("id").inTable(TableName.CertificateAuthority).onDelete("CASCADE"); tb.string("name").notNullable(); tb.string("commonName").notNullable(); + tb.string("subjectAlternativeName").notNullable(); tb.string("ttl").notNullable(); tb.timestamps(true, true, true); }); diff --git a/backend/src/db/schemas/certificate-templates.ts b/backend/src/db/schemas/certificate-templates.ts index 988147362..d969d95fb 100644 --- a/backend/src/db/schemas/certificate-templates.ts +++ b/backend/src/db/schemas/certificate-templates.ts @@ -12,6 +12,7 @@ export const CertificateTemplatesSchema = z.object({ caId: z.string().uuid(), name: z.string(), commonName: z.string(), + subjectAlternativeName: z.string(), ttl: z.string(), createdAt: z.date(), updatedAt: z.date() diff --git a/backend/src/server/routes/v1/certificate-template-router.ts b/backend/src/server/routes/v1/certificate-template-router.ts index 668dde2c0..90eab4521 100644 --- a/backend/src/server/routes/v1/certificate-template-router.ts +++ b/backend/src/server/routes/v1/certificate-template-router.ts @@ -12,6 +12,7 @@ const sanitizedCertificateTemplate = CertificateTemplatesSchema.pick({ caId: true, name: true, commonName: true, + subjectAlternativeName: true, ttl: true }); @@ -62,6 +63,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid caId: z.string(), name: z.string().min(1), commonName: validateTemplateRegexField, + subjectAlternativeName: validateTemplateRegexField, ttl: z.string().refine((val) => ms(val) > 0, "TTL must be a positive number") }), response: { @@ -95,6 +97,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid caId: z.string().optional(), name: z.string().min(1).optional(), commonName: validateTemplateRegexField.optional(), + subjectAlternativeName: validateTemplateRegexField.optional(), ttl: z .string() .refine((val) => ms(val) > 0, "TTL must be a positive number") diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index 91f841221..1f1ffe9e1 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -1096,17 +1096,6 @@ export const certificateAuthorityServiceFactory = ({ throw new BadRequestError({ message: "notAfter date is after CA certificate's notAfter date" }); } - if (certificateTemplate) { - validateCertificateDetailsAgainstTemplate( - { - commonName, - notBeforeDate, - notAfterDate - }, - certificateTemplate - ); - } - const alg = keyAlgorithmToAlgCfg(ca.keyAlgorithm as CertKeyAlgorithm); const leafKeys = await crypto.subtle.generateKey(alg, true, ["sign", "verify"]); @@ -1136,11 +1125,13 @@ export const certificateAuthorityServiceFactory = ({ await x509.SubjectKeyIdentifierExtension.create(csrObj.publicKey) ]; + let altNamesArray: { + type: "email" | "dns"; + value: string; + }[] = []; + if (altNames) { - const altNamesArray: { - type: "email" | "dns"; - value: string; - }[] = altNames + altNamesArray = altNames .split(",") .map((name) => name.trim()) .map((altName) => { @@ -1168,6 +1159,18 @@ export const certificateAuthorityServiceFactory = ({ extensions.push(altNamesExtension); } + if (certificateTemplate) { + validateCertificateDetailsAgainstTemplate( + { + commonName, + notBeforeDate, + notAfterDate, + altNames: altNamesArray.map((entry) => entry.value) + }, + certificateTemplate + ); + } + const serialNumber = crypto.randomBytes(32).toString("hex"); const leafCert = await x509.X509CertificateGenerator.create({ serialNumber, @@ -1345,17 +1348,6 @@ export const certificateAuthorityServiceFactory = ({ message: "A common name (CN) is required in the CSR or as a parameter to this endpoint" }); - if (certificateTemplate) { - validateCertificateDetailsAgainstTemplate( - { - commonName: cn, - notBeforeDate, - notAfterDate - }, - certificateTemplate - ); - } - const { caPrivateKey } = await getCaCredentials({ caId: ca.id, certificateAuthorityDAL, @@ -1371,11 +1363,12 @@ export const certificateAuthorityServiceFactory = ({ await x509.SubjectKeyIdentifierExtension.create(csrObj.publicKey) ]; + let altNamesArray: { + type: "email" | "dns"; + value: string; + }[] = []; if (altNames) { - const altNamesArray: { - type: "email" | "dns"; - value: string; - }[] = altNames + altNamesArray = altNames .split(",") .map((name) => name.trim()) .map((altName) => { @@ -1403,6 +1396,18 @@ export const certificateAuthorityServiceFactory = ({ extensions.push(altNamesExtension); } + if (certificateTemplate) { + validateCertificateDetailsAgainstTemplate( + { + commonName: cn, + notBeforeDate, + notAfterDate, + altNames: altNamesArray.map((entry) => entry.value) + }, + certificateTemplate + ); + } + const serialNumber = crypto.randomBytes(32).toString("hex"); const leafCert = await x509.X509CertificateGenerator.create({ serialNumber, diff --git a/backend/src/services/certificate-template/certificate-template-fns.ts b/backend/src/services/certificate-template/certificate-template-fns.ts index 8b62020ca..597be7eb2 100644 --- a/backend/src/services/certificate-template/certificate-template-fns.ts +++ b/backend/src/services/certificate-template/certificate-template-fns.ts @@ -1,5 +1,6 @@ import ms from "ms"; +import { TCertificateTemplates } from "@app/db/schemas"; import { BadRequestError } from "@app/lib/errors"; export const validateCertificateDetailsAgainstTemplate = ( @@ -7,11 +8,9 @@ export const validateCertificateDetailsAgainstTemplate = ( commonName: string; notBeforeDate: Date; notAfterDate: Date; + altNames: string[]; }, - template: { - commonName: string; - ttl: string; - } + template: TCertificateTemplates ) => { const commonNameRegex = new RegExp(template.commonName); if (!commonNameRegex.test(cert.commonName)) { @@ -25,4 +24,13 @@ export const validateCertificateDetailsAgainstTemplate = ( message: "Invalid validity date based on template policy" }); } + + const subjectAlternativeNameRegex = new RegExp(template.subjectAlternativeName); + cert.altNames.forEach((altName) => { + if (!subjectAlternativeNameRegex.test(altName)) { + throw new BadRequestError({ + message: "Invalid subject alternative name based on template policy" + }); + } + }); }; diff --git a/backend/src/services/certificate-template/certificate-template-service.ts b/backend/src/services/certificate-template/certificate-template-service.ts index a294fee81..3b2a5d0ed 100644 --- a/backend/src/services/certificate-template/certificate-template-service.ts +++ b/backend/src/services/certificate-template/certificate-template-service.ts @@ -30,6 +30,7 @@ export const certificateTemplateServiceFactory = ({ caId, name, commonName, + subjectAlternativeName, ttl, actorId, actorAuthMethod, @@ -59,6 +60,7 @@ export const certificateTemplateServiceFactory = ({ caId, name, commonName, + subjectAlternativeName, ttl }); @@ -70,6 +72,7 @@ export const certificateTemplateServiceFactory = ({ caId, name, commonName, + subjectAlternativeName, ttl, actorId, actorAuthMethod, @@ -108,6 +111,7 @@ export const certificateTemplateServiceFactory = ({ const updatedCertTemplate = await certificateTemplateDAL.updateById(certTemplate.id, { caId, commonName, + subjectAlternativeName, name, ttl }); diff --git a/backend/src/services/certificate-template/certificate-template-types.ts b/backend/src/services/certificate-template/certificate-template-types.ts index 556215790..498a4cf59 100644 --- a/backend/src/services/certificate-template/certificate-template-types.ts +++ b/backend/src/services/certificate-template/certificate-template-types.ts @@ -4,6 +4,7 @@ export type TCreateCertTemplateDTO = { caId: string; name: string; commonName: string; + subjectAlternativeName: string; ttl: string; } & Omit; @@ -12,6 +13,7 @@ export type TUpdateCertTemplateDTO = { caId?: string; name?: string; commonName?: string; + subjectAlternativeName?: string; ttl?: string; } & Omit; diff --git a/frontend/src/hooks/api/certificateTemplates/types.ts b/frontend/src/hooks/api/certificateTemplates/types.ts index c440ea6fb..7b7d3a15f 100644 --- a/frontend/src/hooks/api/certificateTemplates/types.ts +++ b/frontend/src/hooks/api/certificateTemplates/types.ts @@ -10,6 +10,7 @@ export type TCertificateTemplate = { caId: string; name: string; commonName: string; + subjectAlternativeName: string; ttl: string; }; @@ -17,6 +18,7 @@ export type TCreateCertificateTemplateDTO = { caId: string; name: string; commonName: string; + subjectAlternativeName: string; ttl: string; projectId: string; }; @@ -26,6 +28,7 @@ export type TUpdateCertificateTemplateDTO = { caId?: string; name?: string; commonName?: string; + subjectAlternativeName?: string; ttl?: string; projectId: string; }; diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx index 86009c6b6..c3275c547 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx @@ -110,6 +110,12 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { } }, [cert]); + useEffect(() => { + if (!cert && selectedCertTemplate) { + setValue("ttl", selectedCertTemplate.ttl); + } + }, [selectedCertTemplate, cert]); + const onFormSubmit = async ({ caId, friendlyName, commonName, altNames, ttl }: FormData) => { try { if (!currentWorkspace?.slug) return; diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx index 2d811a26e..b8ef59dfa 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx @@ -24,18 +24,21 @@ import { import { caTypeToNameMap } from "@app/hooks/api/ca/constants"; import { UsePopUpState } from "@app/hooks/usePopUp"; +const validateTemplateRegexField = z + .string() + .trim() + .min(1) + .max(100) + .regex(/^[a-zA-Z0-9 *@\-\\.\\]+$/, { + message: + "Invalid pattern: only alphanumeric characters, spaces, *, ., @, -, and \\ are allowed." + }); + const schema = z.object({ caId: z.string(), name: z.string().min(1), - commonName: z - .string() - .trim() - .min(1) - .max(100) - .regex(/^[a-zA-Z0-9 *@\-\\.\\]+$/, { - message: - "Invalid pattern: only alphanumeric characters, spaces, *, ., @, -, and \\ are allowed." - }), + commonName: validateTemplateRegexField, + subjectAlternativeName: validateTemplateRegexField, ttl: z.string().trim().min(1) }); @@ -78,6 +81,7 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => caId: certTemplate.caId, name: certTemplate.name, commonName: certTemplate.commonName, + subjectAlternativeName: certTemplate.subjectAlternativeName, ttl: certTemplate.ttl }); } else { @@ -90,7 +94,13 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => } }, [certTemplate]); - const onFormSubmit = async ({ caId, name, commonName, ttl }: FormData) => { + const onFormSubmit = async ({ + caId, + name, + commonName, + subjectAlternativeName, + ttl + }: FormData) => { if (!currentWorkspace?.id) { return; } @@ -103,6 +113,7 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => caId, name, commonName, + subjectAlternativeName, ttl }); @@ -116,6 +127,7 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => caId, name, commonName, + subjectAlternativeName, ttl }); @@ -199,7 +211,22 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => errorText={error?.message} isRequired > - + + + )} + /> + ( + + )} /> @@ -208,7 +235,7 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => name="ttl" render={({ field, fieldState: { error } }) => ( Date: Fri, 16 Aug 2024 16:20:38 +0530 Subject: [PATCH 086/101] fix: resolved add all members to project failing when there is pending users --- frontend/src/layouts/AppLayout/AppLayout.tsx | 8 +++++--- frontend/src/pages/org/[id]/overview/index.tsx | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/frontend/src/layouts/AppLayout/AppLayout.tsx b/frontend/src/layouts/AppLayout/AppLayout.tsx index 6a65e32e8..4e3602686 100644 --- a/frontend/src/layouts/AppLayout/AppLayout.tsx +++ b/frontend/src/layouts/AppLayout/AppLayout.tsx @@ -273,8 +273,10 @@ export const AppLayout = ({ children }: LayoutProps) => { const orgUsers = await fetchOrgUsers(currentOrg.id); await addUsersToProject.mutateAsync({ usernames: orgUsers - .map((member) => member.user.username) - .filter((username) => username !== user.username), + .filter( + (member) => member.user.username !== user.username && member.status === "accepted" + ) + .map((member) => member.user.username), projectId: newProjectId, orgId: currentOrg.id }); @@ -482,7 +484,7 @@ export const AppLayout = ({ children }: LayoutProps) => { )} - Organization Admin Console + Organization Admin Console
diff --git a/frontend/src/pages/org/[id]/overview/index.tsx b/frontend/src/pages/org/[id]/overview/index.tsx index babf1a15f..c93649f2c 100644 --- a/frontend/src/pages/org/[id]/overview/index.tsx +++ b/frontend/src/pages/org/[id]/overview/index.tsx @@ -552,8 +552,10 @@ const OrganizationPage = () => { await addUsersToProject.mutateAsync({ usernames: orgUsers - .map((member) => member.user.username) - .filter((username) => username !== user.username), + .filter( + (member) => member.user.username !== user.username && member.status === "accepted" + ) + .map((member) => member.user.username), projectId: newProjectId, orgId: currentOrg.id }); From 97f5c33aea3172b8555f44e8f65b367e1188ce27 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 16 Aug 2024 19:40:23 +0800 Subject: [PATCH 087/101] feat: added collection selection for cert template --- ...20240815045235_add-certificate-template.ts | 2 + .../src/db/schemas/certificate-templates.ts | 1 + .../server/routes/v1/certificate-router.ts | 2 + .../routes/v1/certificate-template-router.ts | 3 + .../certificate-authority-service.ts | 16 ++- .../certificate-template-service.ts | 4 + .../certificate-template-types.ts | 2 + .../hooks/api/certificateTemplates/types.ts | 3 + .../components/CertificateModal.tsx | 105 +++++++++--------- .../components/CertificateTemplateModal.tsx | 35 ++++++ .../components/CertificateTemplatesTable.tsx | 2 +- 11 files changed, 116 insertions(+), 59 deletions(-) diff --git a/backend/src/db/migrations/20240815045235_add-certificate-template.ts b/backend/src/db/migrations/20240815045235_add-certificate-template.ts index efe0daae3..9fbb606e2 100644 --- a/backend/src/db/migrations/20240815045235_add-certificate-template.ts +++ b/backend/src/db/migrations/20240815045235_add-certificate-template.ts @@ -10,6 +10,8 @@ export async function up(knex: Knex): Promise { tb.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid()); tb.uuid("caId").notNullable(); tb.foreign("caId").references("id").inTable(TableName.CertificateAuthority).onDelete("CASCADE"); + tb.uuid("pkiCollectionId"); + tb.foreign("pkiCollectionId").references("id").inTable(TableName.PkiCollection).onDelete("SET NULL"); tb.string("name").notNullable(); tb.string("commonName").notNullable(); tb.string("subjectAlternativeName").notNullable(); diff --git a/backend/src/db/schemas/certificate-templates.ts b/backend/src/db/schemas/certificate-templates.ts index d969d95fb..6e1989195 100644 --- a/backend/src/db/schemas/certificate-templates.ts +++ b/backend/src/db/schemas/certificate-templates.ts @@ -10,6 +10,7 @@ import { TImmutableDBKeys } from "./models"; export const CertificateTemplatesSchema = z.object({ id: z.string().uuid(), caId: z.string().uuid(), + pkiCollectionId: z.string().uuid().nullable().optional(), name: z.string(), commonName: z.string(), subjectAlternativeName: z.string(), diff --git a/backend/src/server/routes/v1/certificate-router.ts b/backend/src/server/routes/v1/certificate-router.ts index 989e79448..c492e0667 100644 --- a/backend/src/server/routes/v1/certificate-router.ts +++ b/backend/src/server/routes/v1/certificate-router.ts @@ -77,6 +77,7 @@ export const registerCertRouter = async (server: FastifyZodProvider) => { .trim() .optional() .describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificateTemplateId), + pkiCollectionId: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.pkiCollectionId), friendlyName: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.friendlyName), commonName: z.string().trim().min(1).describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.commonName), altNames: validateAltNamesField.describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.altNames), @@ -166,6 +167,7 @@ export const registerCertRouter = async (server: FastifyZodProvider) => { .trim() .optional() .describe(CERTIFICATE_AUTHORITIES.ISSUE_CERT.certificateTemplateId), + pkiCollectionId: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.pkiCollectionId), csr: z.string().trim().min(1).describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.csr), friendlyName: z.string().trim().optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.friendlyName), commonName: z.string().trim().min(1).optional().describe(CERTIFICATE_AUTHORITIES.SIGN_CERT.commonName), diff --git a/backend/src/server/routes/v1/certificate-template-router.ts b/backend/src/server/routes/v1/certificate-template-router.ts index 90eab4521..8a3bdd523 100644 --- a/backend/src/server/routes/v1/certificate-template-router.ts +++ b/backend/src/server/routes/v1/certificate-template-router.ts @@ -13,6 +13,7 @@ const sanitizedCertificateTemplate = CertificateTemplatesSchema.pick({ name: true, commonName: true, subjectAlternativeName: true, + pkiCollectionId: true, ttl: true }); @@ -61,6 +62,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid schema: { body: z.object({ caId: z.string(), + pkiCollectionId: z.string().optional(), name: z.string().min(1), commonName: validateTemplateRegexField, subjectAlternativeName: validateTemplateRegexField, @@ -95,6 +97,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid schema: { body: z.object({ caId: z.string().optional(), + pkiCollectionId: z.string().optional(), name: z.string().min(1).optional(), commonName: validateTemplateRegexField.optional(), subjectAlternativeName: validateTemplateRegexField.optional(), diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index dd122ef9c..223403208 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -1033,6 +1033,7 @@ export const certificateAuthorityServiceFactory = ({ }: TIssueCertFromCaDTO) => { let ca: TCertificateAuthorities | undefined; let certificateTemplate: TCertificateTemplates | undefined; + let collectionId = pkiCollectionId; if (caId) { ca = await certificateAuthorityDAL.findById(caId); @@ -1044,6 +1045,7 @@ export const certificateAuthorityServiceFactory = ({ }); } + collectionId = certificateTemplate.pkiCollectionId as string; ca = await certificateAuthorityDAL.findById(certificateTemplate.caId); } @@ -1070,8 +1072,8 @@ export const certificateAuthorityServiceFactory = ({ } // check PKI collection - if (pkiCollectionId) { - const pkiCollection = await pkiCollectionDAL.findById(pkiCollectionId); + if (collectionId) { + const pkiCollection = await pkiCollectionDAL.findById(collectionId); if (!pkiCollection) throw new NotFoundError({ message: "PKI collection not found" }); if (pkiCollection.projectId !== ca.projectId) throw new BadRequestError({ message: "Invalid PKI collection" }); } @@ -1237,10 +1239,10 @@ export const certificateAuthorityServiceFactory = ({ tx ); - if (pkiCollectionId) { + if (collectionId) { await pkiCollectionItemDAL.create( { - pkiCollectionId, + pkiCollectionId: collectionId, certId: cert.id }, tx @@ -1290,6 +1292,7 @@ export const certificateAuthorityServiceFactory = ({ }: TSignCertFromCaDTO) => { let ca: TCertificateAuthorities | undefined; let certificateTemplate: TCertificateTemplates | undefined; + let collectionId = pkiCollectionId; if (caId) { ca = await certificateAuthorityDAL.findById(caId); @@ -1301,6 +1304,7 @@ export const certificateAuthorityServiceFactory = ({ }); } + collectionId = certificateTemplate.pkiCollectionId as string; ca = await certificateAuthorityDAL.findById(certificateTemplate.caId); } @@ -1490,10 +1494,10 @@ export const certificateAuthorityServiceFactory = ({ tx ); - if (pkiCollectionId) { + if (collectionId) { await pkiCollectionItemDAL.create( { - pkiCollectionId, + pkiCollectionId: collectionId, certId: cert.id }, tx diff --git a/backend/src/services/certificate-template/certificate-template-service.ts b/backend/src/services/certificate-template/certificate-template-service.ts index 3b2a5d0ed..212fa05e4 100644 --- a/backend/src/services/certificate-template/certificate-template-service.ts +++ b/backend/src/services/certificate-template/certificate-template-service.ts @@ -28,6 +28,7 @@ export const certificateTemplateServiceFactory = ({ }: TCertificateTemplateServiceFactoryDep) => { const createCertTemplate = async ({ caId, + pkiCollectionId, name, commonName, subjectAlternativeName, @@ -58,6 +59,7 @@ export const certificateTemplateServiceFactory = ({ const certificateTemplate = await certificateTemplateDAL.create({ caId, + pkiCollectionId, name, commonName, subjectAlternativeName, @@ -70,6 +72,7 @@ export const certificateTemplateServiceFactory = ({ const updateCertTemplate = async ({ id, caId, + pkiCollectionId, name, commonName, subjectAlternativeName, @@ -110,6 +113,7 @@ export const certificateTemplateServiceFactory = ({ const updatedCertTemplate = await certificateTemplateDAL.updateById(certTemplate.id, { caId, + pkiCollectionId, commonName, subjectAlternativeName, name, diff --git a/backend/src/services/certificate-template/certificate-template-types.ts b/backend/src/services/certificate-template/certificate-template-types.ts index 498a4cf59..c203b386c 100644 --- a/backend/src/services/certificate-template/certificate-template-types.ts +++ b/backend/src/services/certificate-template/certificate-template-types.ts @@ -2,6 +2,7 @@ import { TProjectPermission } from "@app/lib/types"; export type TCreateCertTemplateDTO = { caId: string; + pkiCollectionId?: string; name: string; commonName: string; subjectAlternativeName: string; @@ -11,6 +12,7 @@ export type TCreateCertTemplateDTO = { export type TUpdateCertTemplateDTO = { id: string; caId?: string; + pkiCollectionId?: string; name?: string; commonName?: string; subjectAlternativeName?: string; diff --git a/frontend/src/hooks/api/certificateTemplates/types.ts b/frontend/src/hooks/api/certificateTemplates/types.ts index 7b7d3a15f..b7cd57a3d 100644 --- a/frontend/src/hooks/api/certificateTemplates/types.ts +++ b/frontend/src/hooks/api/certificateTemplates/types.ts @@ -8,6 +8,7 @@ export type TCertificateTemplateListEntry = { export type TCertificateTemplate = { id: string; caId: string; + pkiCollectionId?: string; name: string; commonName: string; subjectAlternativeName: string; @@ -16,6 +17,7 @@ export type TCertificateTemplate = { export type TCreateCertificateTemplateDTO = { caId: string; + pkiCollectionId?: string; name: string; commonName: string; subjectAlternativeName: string; @@ -26,6 +28,7 @@ export type TCreateCertificateTemplateDTO = { export type TUpdateCertificateTemplateDTO = { id: string; caId?: string; + pkiCollectionId?: string; name?: string; commonName?: string; subjectAlternativeName?: string; diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx index 40223085b..e5d686134 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx @@ -216,60 +216,61 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { )} /> {(!selectedCertTemplateId || selectedCertTemplateId === CERT_TEMPLATE_NONE_VALUE) && ( - ( - - - - )} - /> - )} - ( - - - + + + )} + /> + ) && ( + ( + + + + )} + /> )} - /> status: CaStatus.ACTIVE }); + const { data: collectionsData } = useListWorkspacePkiCollections({ + workspaceId: currentWorkspace?.id || "" + }); + const { mutateAsync: createCertTemplate } = useCreateCertTemplate(); const { mutateAsync: updateCertTemplate } = useUpdateCertTemplate(); @@ -82,6 +88,7 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => name: certTemplate.name, commonName: certTemplate.commonName, subjectAlternativeName: certTemplate.subjectAlternativeName, + collectionId: certTemplate.pkiCollectionId ?? undefined, ttl: certTemplate.ttl }); } else { @@ -96,6 +103,7 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => const onFormSubmit = async ({ caId, + collectionId, name, commonName, subjectAlternativeName, @@ -110,6 +118,7 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => await updateCertTemplate({ id: certTemplate.id, projectId: currentWorkspace.id, + pkiCollectionId: collectionId, caId, name, commonName, @@ -124,6 +133,7 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => } else { await createCertTemplate({ projectId: currentWorkspace.id, + pkiCollectionId: collectionId, caId, name, commonName, @@ -200,6 +210,31 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => )} /> + ( + + + + )} + /> { } icon={} > - Manage + Manage Policies Date: Fri, 16 Aug 2024 20:17:52 +0800 Subject: [PATCH 088/101] misc: add tracking of certificate template ID --- ...20240815045235_add-certificate-template.ts | 23 +++++++++++++++++++ backend/src/db/schemas/certificates.ts | 3 ++- .../certificate-authority-service.ts | 2 ++ frontend/src/hooks/api/certificates/types.ts | 1 + .../components/CertificateModal.tsx | 10 +++++--- 5 files changed, 35 insertions(+), 4 deletions(-) diff --git a/backend/src/db/migrations/20240815045235_add-certificate-template.ts b/backend/src/db/migrations/20240815045235_add-certificate-template.ts index 9fbb606e2..b16c2bd14 100644 --- a/backend/src/db/migrations/20240815045235_add-certificate-template.ts +++ b/backend/src/db/migrations/20240815045235_add-certificate-template.ts @@ -21,6 +21,18 @@ export async function up(knex: Knex): Promise { await createOnUpdateTrigger(knex, TableName.CertificateTemplate); } + + const doesCertificateTableHaveTemplateId = await knex.schema.hasColumn( + TableName.Certificate, + "certificateTemplateId" + ); + + if (!doesCertificateTableHaveTemplateId) { + await knex.schema.alterTable(TableName.Certificate, (tb) => { + tb.uuid("certificateTemplateId"); + tb.foreign("certificateTemplateId").references("id").inTable(TableName.CertificateTemplate).onDelete("SET NULL"); + }); + } } export async function down(knex: Knex): Promise { @@ -29,4 +41,15 @@ export async function down(knex: Knex): Promise { await knex.schema.dropTable(TableName.CertificateTemplate); await dropOnUpdateTrigger(knex, TableName.CertificateTemplate); } + + const doesCertificateTableHaveTemplateId = await knex.schema.hasColumn( + TableName.Certificate, + "certificateTemplateId" + ); + + if (doesCertificateTableHaveTemplateId) { + await knex.schema.alterTable(TableName.Certificate, (t) => { + t.dropColumn("certificateTemplateId"); + }); + } } diff --git a/backend/src/db/schemas/certificates.ts b/backend/src/db/schemas/certificates.ts index cb14d05f9..7ef56e505 100644 --- a/backend/src/db/schemas/certificates.ts +++ b/backend/src/db/schemas/certificates.ts @@ -21,7 +21,8 @@ export const CertificatesSchema = z.object({ revokedAt: z.date().nullable().optional(), revocationReason: z.number().nullable().optional(), altNames: z.string().default("").nullable().optional(), - caCertId: z.string().uuid() + caCertId: z.string().uuid(), + certificateTemplateId: z.string().uuid().nullable().optional() }); export type TCertificates = z.infer; diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index 223403208..345e2423d 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -1220,6 +1220,7 @@ export const certificateAuthorityServiceFactory = ({ { caId: ca.id, caCertId: caCert.id, + certificateTemplateId: certificateTemplate?.id, status: CertStatus.ACTIVE, friendlyName: friendlyName || commonName, commonName, @@ -1475,6 +1476,7 @@ export const certificateAuthorityServiceFactory = ({ { caId: ca.id, caCertId: caCert.id, + certificateTemplateId: certificateTemplate?.id, status: CertStatus.ACTIVE, friendlyName: friendlyName || csrObj.subject, commonName: cn, diff --git a/frontend/src/hooks/api/certificates/types.ts b/frontend/src/hooks/api/certificates/types.ts index d1ba46910..8057998aa 100644 --- a/frontend/src/hooks/api/certificates/types.ts +++ b/frontend/src/hooks/api/certificates/types.ts @@ -3,6 +3,7 @@ import { CertStatus } from "./enums"; export type TCertificate = { id: string; caId: string; + certificateTemplateId?: string; status: CertStatus; friendlyName: string; commonName: string; diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx index e5d686134..485024b73 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx @@ -102,6 +102,7 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { friendlyName: cert.friendlyName, commonName: cert.commonName, altNames: cert.altNames, + certificateTemplateId: cert.certificateTemplateId ?? CERT_TEMPLATE_NONE_VALUE, ttl: "" }); } else { @@ -215,7 +216,10 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { )} /> - {(!selectedCertTemplateId || selectedCertTemplateId === CERT_TEMPLATE_NONE_VALUE) && ( + {(!selectedCertTemplateId || + selectedCertTemplateId === CERT_TEMPLATE_NONE_VALUE || + cert) && ( + <> { )} /> - ) && ( { )} /> - )} + + )} Date: Fri, 16 Aug 2024 21:09:35 +0800 Subject: [PATCH 089/101] misc: added descriptive tooltips --- .../components/CertificateModal.tsx | 28 ++++++++++- .../components/CertificateTemplateModal.tsx | 50 +++++++++++++++++-- 2 files changed, 73 insertions(+), 5 deletions(-) diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx index 485024b73..40645a07e 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateModal.tsx @@ -1,5 +1,7 @@ import { useEffect, useState } from "react"; import { Controller, useForm } from "react-hook-form"; +import { faQuestionCircle } from "@fortawesome/free-regular-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; @@ -7,11 +9,13 @@ import { createNotification } from "@app/components/notifications"; import { Button, FormControl, + FormLabel, Input, Modal, ModalContent, Select, - SelectItem + SelectItem, + Tooltip } from "@app/components/v2"; import { useWorkspace } from "@app/context"; import { @@ -191,7 +195,27 @@ export const CertificateModal = ({ popUp, handlePopUpToggle }: Props) => { defaultValue="" render={({ field: { onChange, ...field }, fieldState: { error } }) => ( + + When a template is selected, the details provided are validated + against the template policies. + + } + > + + + } + /> +
+ } errorText={error?.message} isError={Boolean(error)} className="mt-4" diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx index 91b103123..3666627e5 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificateTemplateModal.tsx @@ -1,5 +1,7 @@ import { useEffect } from "react"; import { Controller, useForm } from "react-hook-form"; +import { faQuestionCircle } from "@fortawesome/free-regular-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; @@ -7,11 +9,13 @@ import { createNotification } from "@app/components/notifications"; import { Button, FormControl, + FormLabel, Input, Modal, ModalContent, Select, - SelectItem + SelectItem, + Tooltip } from "@app/components/v2"; import { useWorkspace } from "@app/context"; import { @@ -241,7 +245,27 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => name="commonName" render={({ field, fieldState: { error } }) => ( + + This field accepts limited regular expressions: spaces, *, ., @, -, \ + (for escaping), and alphanumeric characters only + + } + > + + + } + /> + + } isError={Boolean(error)} errorText={error?.message} isRequired @@ -256,7 +280,27 @@ export const CertificateTemplateModal = ({ popUp, handlePopUpToggle }: Props) => name="subjectAlternativeName" render={({ field, fieldState: { error } }) => ( + + This field accepts limited regular expressions: spaces, *, ., @, -, \ + (for escaping), and alphanumeric characters only + + } + > + + + } + /> + + } isError={Boolean(error)} errorText={error?.message} isRequired From ed0463e3e4a081c518951b76c1834e87aa7cd138 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 16 Aug 2024 23:08:01 +0800 Subject: [PATCH 090/101] misc: added audit logs for certificate template --- .../ee/services/audit-log/audit-log-types.ts | 40 ++++++++++++++++- .../routes/v1/certificate-template-router.ts | 45 +++++++++++++++++++ .../certificate-template-service.ts | 6 +-- .../src/hooks/api/auditLogs/constants.tsx | 6 ++- frontend/src/hooks/api/auditLogs/enums.tsx | 6 ++- frontend/src/hooks/api/auditLogs/types.tsx | 34 +++++++++++++- .../AuditLogsPage/components/LogsTableRow.tsx | 9 ++++ 7 files changed, 138 insertions(+), 8 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-types.ts b/backend/src/ee/services/audit-log/audit-log-types.ts index 41186756a..37fb137d9 100644 --- a/backend/src/ee/services/audit-log/audit-log-types.ts +++ b/backend/src/ee/services/audit-log/audit-log-types.ts @@ -162,7 +162,11 @@ export enum EventType { UPDATE_PROJECT_KMS = "update-project-kms", GET_PROJECT_KMS_BACKUP = "get-project-kms-backup", LOAD_PROJECT_KMS_BACKUP = "load-project-kms-backup", - ORG_ADMIN_ACCESS_PROJECT = "org-admin-accessed-project" + ORG_ADMIN_ACCESS_PROJECT = "org-admin-accessed-project", + CREATE_CERTIFICATE_TEMPLATE = "create-certificate-template", + UPDATE_CERTIFICATE_TEMPLATE = "update-certificate-template", + DELETE_CERTIFICATE_TEMPLATE = "delete-certificate-template", + GET_CERTIFICATE_TEMPLATE = "get-certificate-template" } interface UserActorMetadata { @@ -1365,6 +1369,34 @@ interface LoadProjectKmsBackupEvent { metadata: Record; // no metadata yet } +interface CreateCertificateTemplate { + type: EventType.CREATE_CERTIFICATE_TEMPLATE; + metadata: { + certificateTemplateId: string; + }; +} + +interface GetCertificateTemplate { + type: EventType.GET_CERTIFICATE_TEMPLATE; + metadata: { + certificateTemplateId: string; + }; +} + +interface UpdateCertificateTemplate { + type: EventType.UPDATE_CERTIFICATE_TEMPLATE; + metadata: { + certificateTemplateId: string; + }; +} + +interface DeleteCertificateTemplate { + type: EventType.DELETE_CERTIFICATE_TEMPLATE; + metadata: { + certificateTemplateId: string; + }; +} + interface OrgAdminAccessProjectEvent { type: EventType.ORG_ADMIN_ACCESS_PROJECT; metadata: { @@ -1498,4 +1530,8 @@ export type Event = | UpdateProjectKmsEvent | GetProjectKmsBackupEvent | LoadProjectKmsBackupEvent - | OrgAdminAccessProjectEvent; + | OrgAdminAccessProjectEvent + | CreateCertificateTemplate + | UpdateCertificateTemplate + | GetCertificateTemplate + | DeleteCertificateTemplate; diff --git a/backend/src/server/routes/v1/certificate-template-router.ts b/backend/src/server/routes/v1/certificate-template-router.ts index 8a3bdd523..5ca65044b 100644 --- a/backend/src/server/routes/v1/certificate-template-router.ts +++ b/backend/src/server/routes/v1/certificate-template-router.ts @@ -2,6 +2,7 @@ import ms from "ms"; import { z } from "zod"; import { CertificateTemplatesSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -49,6 +50,17 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid actorOrgId: req.permission.orgId }); + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: certificateTemplate.projectId, + event: { + type: EventType.GET_CERTIFICATE_TEMPLATE, + metadata: { + certificateTemplateId: certificateTemplate.id + } + } + }); + return { certificateTemplate }; } }); @@ -84,6 +96,17 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid ...req.body }); + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: certificateTemplate.projectId, + event: { + type: EventType.CREATE_CERTIFICATE_TEMPLATE, + metadata: { + certificateTemplateId: certificateTemplate.id + } + } + }); + return { certificateTemplate }; } }); @@ -126,6 +149,17 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid actorOrgId: req.permission.orgId }); + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: certificateTemplate.projectId, + event: { + type: EventType.UPDATE_CERTIFICATE_TEMPLATE, + metadata: { + certificateTemplateId: certificateTemplate.id + } + } + }); + return { certificateTemplate }; } }); @@ -156,6 +190,17 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid actorOrgId: req.permission.orgId }); + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + projectId: certificateTemplate.projectId, + event: { + type: EventType.DELETE_CERTIFICATE_TEMPLATE, + metadata: { + certificateTemplateId: certificateTemplate.id + } + } + }); + return { certificateTemplate }; } }); diff --git a/backend/src/services/certificate-template/certificate-template-service.ts b/backend/src/services/certificate-template/certificate-template-service.ts index 212fa05e4..459c988d8 100644 --- a/backend/src/services/certificate-template/certificate-template-service.ts +++ b/backend/src/services/certificate-template/certificate-template-service.ts @@ -66,7 +66,7 @@ export const certificateTemplateServiceFactory = ({ ttl }); - return certificateTemplate; + return { ...certificateTemplate, projectId: ca.projectId }; }; const updateCertTemplate = async ({ @@ -120,7 +120,7 @@ export const certificateTemplateServiceFactory = ({ ttl }); - return updatedCertTemplate; + return { ...updatedCertTemplate, projectId: certTemplate.projectId }; }; const deleteCertTemplate = async ({ id, actorId, actorAuthMethod, actor, actorOrgId }: TDeleteCertTemplateDTO) => { @@ -146,7 +146,7 @@ export const certificateTemplateServiceFactory = ({ const deletedCertTemplate = await certificateTemplateDAL.deleteById(certTemplate.id); - return deletedCertTemplate; + return { ...deletedCertTemplate, projectId: certTemplate.projectId }; }; const getCertTemplate = async ({ id, actorId, actorAuthMethod, actor, actorOrgId }: TGetCertTemplateDTO) => { diff --git a/frontend/src/hooks/api/auditLogs/constants.tsx b/frontend/src/hooks/api/auditLogs/constants.tsx index 8aadda2d8..210061f7c 100644 --- a/frontend/src/hooks/api/auditLogs/constants.tsx +++ b/frontend/src/hooks/api/auditLogs/constants.tsx @@ -68,7 +68,11 @@ export const eventToNameMap: { [K in EventType]: string } = { [EventType.GET_PKI_COLLECTION_ITEMS]: "Get PKI collection items", [EventType.ADD_PKI_COLLECTION_ITEM]: "Add PKI collection item", [EventType.DELETE_PKI_COLLECTION_ITEM]: "Delete PKI collection item", - [EventType.ORG_ADMIN_ACCESS_PROJECT]: "Org admin accessed project" + [EventType.ORG_ADMIN_ACCESS_PROJECT]: "Org admin accessed project", + [EventType.CREATE_CERTIFICATE_TEMPLATE]: "Create certificate template", + [EventType.UPDATE_CERTIFICATE_TEMPLATE]: "Update certificate template", + [EventType.DELETE_CERTIFICATE_TEMPLATE]: "Delete certificate template", + [EventType.GET_CERTIFICATE_TEMPLATE]: "Get certificate template" }; export const userAgentTTypeoNameMap: { [K in UserAgentType]: string } = { diff --git a/frontend/src/hooks/api/auditLogs/enums.tsx b/frontend/src/hooks/api/auditLogs/enums.tsx index a6a2ada93..80c0ce431 100644 --- a/frontend/src/hooks/api/auditLogs/enums.tsx +++ b/frontend/src/hooks/api/auditLogs/enums.tsx @@ -82,5 +82,9 @@ export enum EventType { GET_PKI_COLLECTION_ITEMS = "get-pki-collection-items", ADD_PKI_COLLECTION_ITEM = "add-pki-collection-item", DELETE_PKI_COLLECTION_ITEM = "delete-pki-collection-item", - ORG_ADMIN_ACCESS_PROJECT = "org-admin-accessed-project" + ORG_ADMIN_ACCESS_PROJECT = "org-admin-accessed-project", + CREATE_CERTIFICATE_TEMPLATE = "create-certificate-template", + UPDATE_CERTIFICATE_TEMPLATE = "update-certificate-template", + DELETE_CERTIFICATE_TEMPLATE = "delete-certificate-template", + GET_CERTIFICATE_TEMPLATE = "get-certificate-template" } diff --git a/frontend/src/hooks/api/auditLogs/types.tsx b/frontend/src/hooks/api/auditLogs/types.tsx index 0a34186f6..ddc0e887e 100644 --- a/frontend/src/hooks/api/auditLogs/types.tsx +++ b/frontend/src/hooks/api/auditLogs/types.tsx @@ -679,6 +679,34 @@ interface OrgAdminAccessProjectEvent { }; // no metadata yet } +interface CreateCertificateTemplate { + type: EventType.CREATE_CERTIFICATE_TEMPLATE; + metadata: { + certificateTemplateId: string; + }; +} + +interface GetCertificateTemplate { + type: EventType.GET_CERTIFICATE_TEMPLATE; + metadata: { + certificateTemplateId: string; + }; +} + +interface UpdateCertificateTemplate { + type: EventType.UPDATE_CERTIFICATE_TEMPLATE; + metadata: { + certificateTemplateId: string; + }; +} + +interface DeleteCertificateTemplate { + type: EventType.DELETE_CERTIFICATE_TEMPLATE; + metadata: { + certificateTemplateId: string; + }; +} + export type Event = | GetSecretsEvent | GetSecretEvent @@ -747,7 +775,11 @@ export type Event = | GetPkiCollectionItems | AddPkiCollectionItem | DeletePkiCollectionItem - | OrgAdminAccessProjectEvent; + | OrgAdminAccessProjectEvent + | CreateCertificateTemplate + | UpdateCertificateTemplate + | GetCertificateTemplate + | DeleteCertificateTemplate; export type AuditLog = { id: string; diff --git a/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx b/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx index f5e54ab47..ed25abe79 100644 --- a/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx +++ b/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx @@ -406,6 +406,15 @@ export const LogsTableRow = ({ auditLog }: Props) => {

{`Cert CN: ${event.metadata.cn}`}

); + case EventType.CREATE_CERTIFICATE_TEMPLATE: + case EventType.UPDATE_CERTIFICATE_TEMPLATE: + case EventType.GET_CERTIFICATE_TEMPLATE: + case EventType.DELETE_CERTIFICATE_TEMPLATE: + return ( + +

{`Certificate Template ID: ${event.metadata.certificateTemplateId}`}

+ + ); default: return ; } From d529670a52703bfacb468ac6196567b38b9b1e99 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 16 Aug 2024 23:14:45 +0800 Subject: [PATCH 091/101] misc: addressed failing github actions --- .../20240815045235_add-certificate-template.ts | 12 ++++++------ .../certificate-authority-service.ts | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/src/db/migrations/20240815045235_add-certificate-template.ts b/backend/src/db/migrations/20240815045235_add-certificate-template.ts index b16c2bd14..7135c24e0 100644 --- a/backend/src/db/migrations/20240815045235_add-certificate-template.ts +++ b/backend/src/db/migrations/20240815045235_add-certificate-template.ts @@ -36,12 +36,6 @@ export async function up(knex: Knex): Promise { } export async function down(knex: Knex): Promise { - const hasCertificateTemplateTable = await knex.schema.hasTable(TableName.CertificateTemplate); - if (hasCertificateTemplateTable) { - await knex.schema.dropTable(TableName.CertificateTemplate); - await dropOnUpdateTrigger(knex, TableName.CertificateTemplate); - } - const doesCertificateTableHaveTemplateId = await knex.schema.hasColumn( TableName.Certificate, "certificateTemplateId" @@ -52,4 +46,10 @@ export async function down(knex: Knex): Promise { t.dropColumn("certificateTemplateId"); }); } + + const hasCertificateTemplateTable = await knex.schema.hasTable(TableName.CertificateTemplate); + if (hasCertificateTemplateTable) { + await knex.schema.dropTable(TableName.CertificateTemplate); + await dropOnUpdateTrigger(knex, TableName.CertificateTemplate); + } } diff --git a/backend/src/services/certificate-authority/certificate-authority-service.ts b/backend/src/services/certificate-authority/certificate-authority-service.ts index 345e2423d..32dbc8fd0 100644 --- a/backend/src/services/certificate-authority/certificate-authority-service.ts +++ b/backend/src/services/certificate-authority/certificate-authority-service.ts @@ -1218,7 +1218,7 @@ export const certificateAuthorityServiceFactory = ({ await certificateDAL.transaction(async (tx) => { const cert = await certificateDAL.create( { - caId: ca.id, + caId: (ca as TCertificateAuthorities).id, caCertId: caCert.id, certificateTemplateId: certificateTemplate?.id, status: CertStatus.ACTIVE, @@ -1474,7 +1474,7 @@ export const certificateAuthorityServiceFactory = ({ await certificateDAL.transaction(async (tx) => { const cert = await certificateDAL.create( { - caId: ca.id, + caId: (ca as TCertificateAuthorities).id, caCertId: caCert.id, certificateTemplateId: certificateTemplate?.id, status: CertStatus.ACTIVE, From 51d84a47b9a5f877464db72b25bfcd9830f207be Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Fri, 16 Aug 2024 23:30:29 +0800 Subject: [PATCH 092/101] misc: added certificate templates to permissions --- .../RolePermissionsSection/ProjectRoleModifySection.utils.ts | 1 + .../RolePermissionsSection/RolePermissionsSection.tsx | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/frontend/src/views/Project/RolePage/components/RolePermissionsSection/ProjectRoleModifySection.utils.ts b/frontend/src/views/Project/RolePage/components/RolePermissionsSection/ProjectRoleModifySection.utils.ts index abab188b8..e3b05a41f 100644 --- a/frontend/src/views/Project/RolePage/components/RolePermissionsSection/ProjectRoleModifySection.utils.ts +++ b/frontend/src/views/Project/RolePage/components/RolePermissionsSection/ProjectRoleModifySection.utils.ts @@ -53,6 +53,7 @@ export const formSchema = z.object({ certificates: generalPermissionSchema, "pki-alerts": generalPermissionSchema, "pki-collections": generalPermissionSchema, + "certificate-templates": generalPermissionSchema, // akhilmhdh: refactor all keys like below [ProjectPermissionSub.SecretApproval]: generalPermissionSchema, workspace: z diff --git a/frontend/src/views/Project/RolePage/components/RolePermissionsSection/RolePermissionsSection.tsx b/frontend/src/views/Project/RolePage/components/RolePermissionsSection/RolePermissionsSection.tsx index 40e4c260a..1de24ae71 100644 --- a/frontend/src/views/Project/RolePage/components/RolePermissionsSection/RolePermissionsSection.tsx +++ b/frontend/src/views/Project/RolePage/components/RolePermissionsSection/RolePermissionsSection.tsx @@ -81,6 +81,10 @@ const SINGLE_PERMISSION_LIST = [ title: "Certificates", formName: "certificates" }, + { + title: "Certificate Templates", + formName: "certificate-templates" + }, { title: "PKI Collections", formName: "pki-collections" From 0c17cc3577350d7b9d33d226c6e9a96ec3f9b678 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Sat, 17 Aug 2024 00:15:11 +0800 Subject: [PATCH 093/101] doc: API references --- backend/src/lib/api-docs/constants.ts | 26 +++++++++++++ .../routes/v1/certificate-template-router.ts | 37 ++++++++++++------- .../certificate-templates/create.mdx | 4 ++ .../certificate-templates/delete.mdx | 4 ++ .../certificate-templates/get-by-id.mdx | 4 ++ .../certificate-templates/update.mdx | 4 ++ .../certificates/issue-certificate.mdx | 4 ++ .../certificates/sign-certificate.mdx | 4 ++ docs/mint.json | 13 ++++++- 9 files changed, 85 insertions(+), 15 deletions(-) create mode 100644 docs/api-reference/endpoints/certificate-templates/create.mdx create mode 100644 docs/api-reference/endpoints/certificate-templates/delete.mdx create mode 100644 docs/api-reference/endpoints/certificate-templates/get-by-id.mdx create mode 100644 docs/api-reference/endpoints/certificate-templates/update.mdx create mode 100644 docs/api-reference/endpoints/certificates/issue-certificate.mdx create mode 100644 docs/api-reference/endpoints/certificates/sign-certificate.mdx diff --git a/backend/src/lib/api-docs/constants.ts b/backend/src/lib/api-docs/constants.ts index e2a9bbd38..e937d4047 100644 --- a/backend/src/lib/api-docs/constants.ts +++ b/backend/src/lib/api-docs/constants.ts @@ -1147,6 +1147,32 @@ export const CERTIFICATES = { } }; +export const CERTIFICATE_TEMPLATES = { + CREATE: { + caId: "The ID of the certificate authority to associate the template with", + pkiCollectionId: "The ID of the PKI collection to bind to the template", + name: "The name of the template", + commonName: "The regular expression string to use for validating common names", + subjectAlternativeName: "The regular expression string to use for validating subject alternative names", + ttl: "The max TTL for the template" + }, + GET: { + certificateTemplateId: "The ID of the certificate template to get" + }, + UPDATE: { + certificateTemplateId: "The ID of the certificate template to update", + caId: "The ID of the certificate authority to update the association with the template", + pkiCollectionId: "The ID of the PKI collection to update the binding to the template", + name: "The updated name of the template", + commonName: "The updated regular expression string for validating common names", + subjectAlternativeName: "The updated regular expression string for validating subject alternative names", + ttl: "The updated max TTL for the template" + }, + DELETE: { + certificateTemplateId: "The ID of the certificate template to delete" + } +}; + export const ALERTS = { CREATE: { projectId: "The ID of the project to create the alert in", diff --git a/backend/src/server/routes/v1/certificate-template-router.ts b/backend/src/server/routes/v1/certificate-template-router.ts index 5ca65044b..861279094 100644 --- a/backend/src/server/routes/v1/certificate-template-router.ts +++ b/backend/src/server/routes/v1/certificate-template-router.ts @@ -3,6 +3,7 @@ import { z } from "zod"; import { CertificateTemplatesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; +import { CERTIFICATE_TEMPLATES } from "@app/lib/api-docs"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; @@ -27,7 +28,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid }, schema: { params: z.object({ - certificateTemplateId: z.string() + certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.GET.certificateTemplateId) }), response: { 200: z.object({ @@ -73,12 +74,17 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid }, schema: { body: z.object({ - caId: z.string(), - pkiCollectionId: z.string().optional(), - name: z.string().min(1), - commonName: validateTemplateRegexField, - subjectAlternativeName: validateTemplateRegexField, - ttl: z.string().refine((val) => ms(val) > 0, "TTL must be a positive number") + caId: z.string().describe(CERTIFICATE_TEMPLATES.CREATE.caId), + pkiCollectionId: z.string().optional().describe(CERTIFICATE_TEMPLATES.CREATE.pkiCollectionId), + name: z.string().min(1).describe(CERTIFICATE_TEMPLATES.CREATE.name), + commonName: validateTemplateRegexField.describe(CERTIFICATE_TEMPLATES.CREATE.commonName), + subjectAlternativeName: validateTemplateRegexField.describe( + CERTIFICATE_TEMPLATES.CREATE.subjectAlternativeName + ), + ttl: z + .string() + .refine((val) => ms(val) > 0, "TTL must be a positive number") + .describe(CERTIFICATE_TEMPLATES.CREATE.ttl) }), response: { 200: z.object({ @@ -119,18 +125,21 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid }, schema: { body: z.object({ - caId: z.string().optional(), - pkiCollectionId: z.string().optional(), - name: z.string().min(1).optional(), - commonName: validateTemplateRegexField.optional(), - subjectAlternativeName: validateTemplateRegexField.optional(), + caId: z.string().optional().describe(CERTIFICATE_TEMPLATES.UPDATE.caId), + pkiCollectionId: z.string().optional().describe(CERTIFICATE_TEMPLATES.UPDATE.pkiCollectionId), + name: z.string().min(1).optional().describe(CERTIFICATE_TEMPLATES.UPDATE.name), + commonName: validateTemplateRegexField.optional().describe(CERTIFICATE_TEMPLATES.UPDATE.commonName), + subjectAlternativeName: validateTemplateRegexField + .optional() + .describe(CERTIFICATE_TEMPLATES.UPDATE.subjectAlternativeName), ttl: z .string() .refine((val) => ms(val) > 0, "TTL must be a positive number") .optional() + .describe(CERTIFICATE_TEMPLATES.UPDATE.ttl) }), params: z.object({ - certificateTemplateId: z.string() + certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.UPDATE.certificateTemplateId) }), response: { 200: z.object({ @@ -172,7 +181,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid }, schema: { params: z.object({ - certificateTemplateId: z.string() + certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.DELETE.certificateTemplateId) }), response: { 200: z.object({ diff --git a/docs/api-reference/endpoints/certificate-templates/create.mdx b/docs/api-reference/endpoints/certificate-templates/create.mdx new file mode 100644 index 000000000..56fcf3791 --- /dev/null +++ b/docs/api-reference/endpoints/certificate-templates/create.mdx @@ -0,0 +1,4 @@ +--- +title: "Create" +openapi: "POST /api/v1/pki/certificate-templates" +--- diff --git a/docs/api-reference/endpoints/certificate-templates/delete.mdx b/docs/api-reference/endpoints/certificate-templates/delete.mdx new file mode 100644 index 000000000..c4f13d470 --- /dev/null +++ b/docs/api-reference/endpoints/certificate-templates/delete.mdx @@ -0,0 +1,4 @@ +--- +title: "Delete" +openapi: "DELETE /api/v1/pki/certificate-templates/{certificateTemplateId}" +--- diff --git a/docs/api-reference/endpoints/certificate-templates/get-by-id.mdx b/docs/api-reference/endpoints/certificate-templates/get-by-id.mdx new file mode 100644 index 000000000..802dc5326 --- /dev/null +++ b/docs/api-reference/endpoints/certificate-templates/get-by-id.mdx @@ -0,0 +1,4 @@ +--- +title: "Get by ID" +openapi: "GET /api/v1/pki/certificate-templates/{certificateTemplateId}" +--- diff --git a/docs/api-reference/endpoints/certificate-templates/update.mdx b/docs/api-reference/endpoints/certificate-templates/update.mdx new file mode 100644 index 000000000..53c5f6fdf --- /dev/null +++ b/docs/api-reference/endpoints/certificate-templates/update.mdx @@ -0,0 +1,4 @@ +--- +title: "Update" +openapi: "PATCH /api/v1/pki/certificate-templates/{certificateTemplateId}" +--- diff --git a/docs/api-reference/endpoints/certificates/issue-certificate.mdx b/docs/api-reference/endpoints/certificates/issue-certificate.mdx new file mode 100644 index 000000000..90a79a4af --- /dev/null +++ b/docs/api-reference/endpoints/certificates/issue-certificate.mdx @@ -0,0 +1,4 @@ +--- +title: "Issue Certificate" +openapi: "POST /api/v1/pki/certificates/issue-certificate" +--- diff --git a/docs/api-reference/endpoints/certificates/sign-certificate.mdx b/docs/api-reference/endpoints/certificates/sign-certificate.mdx new file mode 100644 index 000000000..3132d5846 --- /dev/null +++ b/docs/api-reference/endpoints/certificates/sign-certificate.mdx @@ -0,0 +1,4 @@ +--- +title: "Sign Certificate" +openapi: "POST /api/v1/pki/certificates/sign-certificate" +--- diff --git a/docs/mint.json b/docs/mint.json index ac61ad5bd..98d6f01ac 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -686,7 +686,18 @@ "api-reference/endpoints/certificates/read", "api-reference/endpoints/certificates/revoke", "api-reference/endpoints/certificates/delete", - "api-reference/endpoints/certificates/cert-body" + "api-reference/endpoints/certificates/cert-body", + "api-reference/endpoints/certificates/issue-certificate", + "api-reference/endpoints/certificates/sign-certificate" + ] + }, + { + "group": "Certificate Templates", + "pages": [ + "api-reference/endpoints/certificate-templates/create", + "api-reference/endpoints/certificate-templates/update", + "api-reference/endpoints/certificate-templates/get-by-id", + "api-reference/endpoints/certificate-templates/delete" ] }, { From a00103aa1e07097c80951ceac0251633114d0682 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 16 Aug 2024 22:34:10 +0530 Subject: [PATCH 094/101] feat: license check in secret approval api level --- .../secret-approval-policy-service.ts | 30 ++++++++++++++++++- .../secret-approval-request-service.ts | 29 +++++++++++++++++- backend/src/server/routes/index.ts | 6 ++-- 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/backend/src/ee/services/secret-approval-policy/secret-approval-policy-service.ts b/backend/src/ee/services/secret-approval-policy/secret-approval-policy-service.ts index 366ad69ea..8c974b05d 100644 --- a/backend/src/ee/services/secret-approval-policy/secret-approval-policy-service.ts +++ b/backend/src/ee/services/secret-approval-policy/secret-approval-policy-service.ts @@ -8,6 +8,7 @@ import { removeTrailingSlash } from "@app/lib/fn"; import { containsGlobPatterns } from "@app/lib/picomatch"; import { TProjectEnvDALFactory } from "@app/services/project-env/project-env-dal"; +import { TLicenseServiceFactory } from "../license/license-service"; import { TSecretApprovalPolicyApproverDALFactory } from "./secret-approval-policy-approver-dal"; import { TSecretApprovalPolicyDALFactory } from "./secret-approval-policy-dal"; import { @@ -28,6 +29,7 @@ type TSecretApprovalPolicyServiceFactoryDep = { secretApprovalPolicyDAL: TSecretApprovalPolicyDALFactory; projectEnvDAL: Pick; secretApprovalPolicyApproverDAL: TSecretApprovalPolicyApproverDALFactory; + licenseService: Pick; }; export type TSecretApprovalPolicyServiceFactory = ReturnType; @@ -36,7 +38,8 @@ export const secretApprovalPolicyServiceFactory = ({ secretApprovalPolicyDAL, permissionService, secretApprovalPolicyApproverDAL, - projectEnvDAL + projectEnvDAL, + licenseService }: TSecretApprovalPolicyServiceFactoryDep) => { const createSecretApprovalPolicy = async ({ name, @@ -65,6 +68,15 @@ export const secretApprovalPolicyServiceFactory = ({ ProjectPermissionActions.Create, ProjectPermissionSub.SecretApproval ); + + const plan = await licenseService.getPlan(actorOrgId); + if (!plan.secretApproval) { + throw new BadRequestError({ + message: + "Failed to create secret approval policy due to plan restriction. Upgrade plan to create secret approval policy." + }); + } + const env = await projectEnvDAL.findOne({ slug: environment, projectId }); if (!env) throw new BadRequestError({ message: "Environment not found" }); @@ -115,6 +127,14 @@ export const secretApprovalPolicyServiceFactory = ({ ); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Edit, ProjectPermissionSub.SecretApproval); + const plan = await licenseService.getPlan(actorOrgId); + if (!plan.secretApproval) { + throw new BadRequestError({ + message: + "Failed to update secret approval policy due to plan restriction. Upgrade plan to update secret approval policy." + }); + } + const updatedSap = await secretApprovalPolicyDAL.transaction(async (tx) => { const doc = await secretApprovalPolicyDAL.updateById( secretApprovalPolicy.id, @@ -167,6 +187,14 @@ export const secretApprovalPolicyServiceFactory = ({ ProjectPermissionSub.SecretApproval ); + const plan = await licenseService.getPlan(actorOrgId); + if (!plan.secretApproval) { + throw new BadRequestError({ + message: + "Failed to update secret approval policy due to plan restriction. Upgrade plan to update secret approval policy." + }); + } + await secretApprovalPolicyDAL.deleteById(secretPolicyId); return sapPolicy; }; diff --git a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts index 81ccf35f6..f6bb33168 100644 --- a/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts +++ b/backend/src/ee/services/secret-approval-request/secret-approval-request-service.ts @@ -50,6 +50,7 @@ import { TSecretVersionV2TagDALFactory } from "@app/services/secret-v2-bridge/se import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service"; import { TUserDALFactory } from "@app/services/user/user-dal"; +import { TLicenseServiceFactory } from "../license/license-service"; import { TPermissionServiceFactory } from "../permission/permission-service"; import { ProjectPermissionActions, ProjectPermissionSub } from "../permission/project-permission"; import { TSecretSnapshotServiceFactory } from "../secret-snapshot/secret-snapshot-service"; @@ -97,6 +98,7 @@ type TSecretApprovalRequestServiceFactoryDep = { >; secretVersionV2BridgeDAL: Pick; secretVersionTagV2BridgeDAL: Pick; + licenseService: Pick; }; export type TSecretApprovalRequestServiceFactory = ReturnType; @@ -122,7 +124,8 @@ export const secretApprovalRequestServiceFactory = ({ kmsService, secretV2BridgeDAL, secretVersionV2BridgeDAL, - secretVersionTagV2BridgeDAL + secretVersionTagV2BridgeDAL, + licenseService }: TSecretApprovalRequestServiceFactoryDep) => { const requestCount = async ({ projectId, actor, actorId, actorOrgId, actorAuthMethod }: TApprovalRequestCountDTO) => { if (actor === ActorType.SERVICE) throw new BadRequestError({ message: "Cannot use service token" }); @@ -295,6 +298,14 @@ export const secretApprovalRequestServiceFactory = ({ if (!secretApprovalRequest) throw new BadRequestError({ message: "Secret approval request not found" }); if (actor !== ActorType.USER) throw new BadRequestError({ message: "Must be a user" }); + const plan = await licenseService.getPlan(actorOrgId); + if (!plan.secretApproval) { + throw new BadRequestError({ + message: + "Failed to review secret approval request due to plan restriction. Upgrade plan to review secret approval request." + }); + } + const { policy } = secretApprovalRequest; const { hasRole } = await permissionService.getProjectPermission( ActorType.USER, @@ -345,6 +356,14 @@ export const secretApprovalRequestServiceFactory = ({ if (!secretApprovalRequest) throw new BadRequestError({ message: "Secret approval request not found" }); if (actor !== ActorType.USER) throw new BadRequestError({ message: "Must be a user" }); + const plan = await licenseService.getPlan(actorOrgId); + if (!plan.secretApproval) { + throw new BadRequestError({ + message: + "Failed to update secret approval request due to plan restriction. Upgrade plan to update secret approval request." + }); + } + const { policy } = secretApprovalRequest; const { hasRole } = await permissionService.getProjectPermission( ActorType.USER, @@ -386,6 +405,14 @@ export const secretApprovalRequestServiceFactory = ({ if (!secretApprovalRequest) throw new BadRequestError({ message: "Secret approval request not found" }); if (actor !== ActorType.USER) throw new BadRequestError({ message: "Must be a user" }); + const plan = await licenseService.getPlan(actorOrgId); + if (!plan.secretApproval) { + throw new BadRequestError({ + message: + "Failed to merge secret approval request due to plan restriction. Upgrade plan to merge secret approval request." + }); + } + const { policy, folderId, projectId } = secretApprovalRequest; const { hasRole } = await permissionService.getProjectPermission( ActorType.USER, diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index 910e81507..03a99bdd3 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -356,7 +356,8 @@ export const registerRoutes = async ( projectEnvDAL, secretApprovalPolicyApproverDAL: sapApproverDAL, permissionService, - secretApprovalPolicyDAL + secretApprovalPolicyDAL, + licenseService }); const tokenService = tokenServiceFactory({ tokenDAL: authTokenDAL, userDAL, orgMembershipDAL }); @@ -797,7 +798,8 @@ export const registerRoutes = async ( secretVersionTagV2BridgeDAL, smtpService, projectEnvDAL, - userDAL + userDAL, + licenseService }); const secretService = secretServiceFactory({ From ba4aa15c927c488c771f13afbd53c71a27f69142 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Sat, 17 Aug 2024 01:04:29 +0800 Subject: [PATCH 095/101] doc: added platform docs for certificate template --- .../platform/pki/certificate-templates.mdx | 58 ++++++++++++++++++ .../create-template-dashboard.png | Bin 0 -> 732242 bytes .../create-template-form.png | Bin 0 -> 161517 bytes .../certificate-template/select-template.png | Bin 0 -> 99446 bytes docs/mint.json | 1 + 5 files changed, 59 insertions(+) create mode 100644 docs/documentation/platform/pki/certificate-templates.mdx create mode 100644 docs/images/platform/pki/certificate-template/create-template-dashboard.png create mode 100644 docs/images/platform/pki/certificate-template/create-template-form.png create mode 100644 docs/images/platform/pki/certificate-template/select-template.png diff --git a/docs/documentation/platform/pki/certificate-templates.mdx b/docs/documentation/platform/pki/certificate-templates.mdx new file mode 100644 index 000000000..9afaf456f --- /dev/null +++ b/docs/documentation/platform/pki/certificate-templates.mdx @@ -0,0 +1,58 @@ +--- +title: "Certificate Templates" +sidebarTitle: "Certificate Templates" +description: "Learn how to use certificate templates to enforce policies." +--- + +## Concept + +In order to ensure your certificates follow certain policies, you can use certificate templates during the issuance and signing flows. + +A certificate template is linked to a certificate authority. It contains custom policies for certificate fields, allowing you to define rules based on your security policies. + +## Workflow + +The typical workflow for using certificate templates consists of the following steps: + +1. Creating a certificate template attached to an existing CA along with defining custom rules for certificate fields. +2. Selecting the certificate template during the creation of new certificates. + + + Note that this workflow can be executed via the Infisical UI or manually such + as via API. + + +## Guide to using Certificate Templates + +In the following steps, we explore how to issue a X.509 certificate using a certificate template. + + + + + + + To create a certificate template, head to your Project > Internal PKI > Certificate Templates and press **Create Certificate Template**. + + ![certificate-template create template dashboard](/images/platform/pki/certificate-template/create-template-dashboard.png) + + Here, set the **Issuing CA** to the CA you want to issue certificates under when the certificate template is used. + + ![certificate-template create template modal](/images/platform/pki/certificate-template/create-template-form.png) + + Here's some guidance on each field: + - Template Name: A descriptive name for the certificate template. + - Issuing CA: The Certificate Authority (CA) that will issue certificates based on this template. + - Certificate Collection: The collection where certificates issued with this template will be added. + - Common Name (CN): The regular expression used to validate the common name in certificate requests. + - Alternative Names (SANs): The regular expression used to validate subject alternative names in certificate requests. + - TTL: The maximum Time-to-Live (TTL) for certificates issued using this template. + + + + Once you have created the certificate template from step 1, you can select it when issuing certificates. + + ![certificate-template select template](/images/platform/pki/certificate-template/select-template.png) + + + + diff --git a/docs/images/platform/pki/certificate-template/create-template-dashboard.png b/docs/images/platform/pki/certificate-template/create-template-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..6f193effade7ba1d9acd5293d6434edf25987b1a GIT binary patch literal 732242 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

=fO(#fj=vRigS#b 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 k=!;y;R%Oq75qA3FFy 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μ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

3<(AfGx05+%nd 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/images/platform/pki/certificate-template/create-template-form.png b/docs/images/platform/pki/certificate-template/create-template-form.png new file mode 100644 index 0000000000000000000000000000000000000000..e69791eddea9b69372105d3da792aaabcc6cd2d2 GIT binary patch literal 161517 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 literal 0 HcmV?d00001 diff --git a/docs/images/platform/pki/certificate-template/select-template.png b/docs/images/platform/pki/certificate-template/select-template.png new file mode 100644 index 0000000000000000000000000000000000000000..c10031a45220d67a7989343f863f99db90a3582b GIT binary patch literal 99446 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 literal 0 HcmV?d00001 diff --git a/docs/mint.json b/docs/mint.json index 98d6f01ac..9496ffffe 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -108,6 +108,7 @@ "documentation/platform/pki/overview", "documentation/platform/pki/private-ca", "documentation/platform/pki/certificates", + "documentation/platform/pki/certificate-templates", "documentation/platform/pki/alerting" ] }, From 7ec68ca9a1a025cecb55a55a3217fe5a1e9c6fb2 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Sat, 17 Aug 2024 19:44:47 -0700 Subject: [PATCH 096/101] Update expiry badge display for certs --- frontend/src/hooks/api/ca/constants.tsx | 2 +- .../src/hooks/api/certificates/constants.tsx | 13 +- .../components/CaTab/components/CaTable.tsx | 7 +- .../components/CertificatesTable.tsx | 295 +++++++++--------- .../components/CertificatesTable.utils.ts | 28 ++ .../components/PkiAlertsTab/PkiAlertsTab.tsx | 3 +- .../components/PkiCollectionTable.tsx | 2 +- 7 files changed, 198 insertions(+), 152 deletions(-) create mode 100644 frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificatesTable.utils.ts diff --git a/frontend/src/hooks/api/ca/constants.tsx b/frontend/src/hooks/api/ca/constants.tsx index e77dfe2b8..9bb7b89d5 100644 --- a/frontend/src/hooks/api/ca/constants.tsx +++ b/frontend/src/hooks/api/ca/constants.tsx @@ -11,7 +11,7 @@ export const caStatusToNameMap: { [K in CaStatus]: string } = { [CaStatus.PENDING_CERTIFICATE]: "Pending Certificate" }; -export const getStatusBadgeVariant = (status: CaStatus) => { +export const getCaStatusBadgeVariant = (status: CaStatus) => { switch (status) { case CaStatus.ACTIVE: return "success"; diff --git a/frontend/src/hooks/api/certificates/constants.tsx b/frontend/src/hooks/api/certificates/constants.tsx index e5a9b7a43..2f2972bbc 100644 --- a/frontend/src/hooks/api/certificates/constants.tsx +++ b/frontend/src/hooks/api/certificates/constants.tsx @@ -1,10 +1,21 @@ -import { CertKeyAlgorithm, CertStatus,CrlReason } from "./enums"; +import { CertKeyAlgorithm, CertStatus, CrlReason } from "./enums"; export const certStatusToNameMap: { [K in CertStatus]: string } = { [CertStatus.ACTIVE]: "Active", [CertStatus.REVOKED]: "Revoked" }; +export const getCertStatusBadgeVariant = (status: CertStatus) => { + switch (status) { + case CertStatus.ACTIVE: + return "success"; + case CertStatus.REVOKED: + return "danger"; + default: + return "primary"; + } +}; + export const certKeyAlgorithmToNameMap: { [K in CertKeyAlgorithm]: string } = { [CertKeyAlgorithm.RSA_2048]: "RSA 2048", [CertKeyAlgorithm.RSA_4096]: "RSA 4096", diff --git a/frontend/src/views/Project/CertificatesPage/components/CaTab/components/CaTable.tsx b/frontend/src/views/Project/CertificatesPage/components/CaTab/components/CaTable.tsx index f719365eb..2c0bc8706 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CaTab/components/CaTable.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CaTab/components/CaTable.tsx @@ -39,7 +39,7 @@ import { CaStatus, useListWorkspaceCas } from "@app/hooks/api"; import { caStatusToNameMap, caTypeToNameMap, - getStatusBadgeVariant + getCaStatusBadgeVariant } from "@app/hooks/api/ca/constants"; import { UsePopUpState } from "@app/hooks/usePopUp"; @@ -92,7 +92,7 @@ export const CaTable = ({ handlePopUpOpen }: Props) => { > {ca.friendlyName} - + {caStatusToNameMap[ca.status]} @@ -100,9 +100,6 @@ export const CaTable = ({ handlePopUpOpen }: Props) => {

diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificatesTable.tsx b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificatesTable.tsx index f23299aa8..bd2086ade 100644 --- a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificatesTable.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificatesTable.tsx @@ -13,6 +13,7 @@ import { twMerge } from "tailwind-merge"; import { ProjectPermissionCan } from "@app/components/permissions"; import { + Badge, DropdownMenu, DropdownMenuContent, DropdownMenuItem, @@ -31,9 +32,10 @@ import { } from "@app/components/v2"; import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context"; import { useListWorkspaceCertificates } from "@app/hooks/api"; -import { certStatusToNameMap } from "@app/hooks/api/certificates/constants"; import { UsePopUpState } from "@app/hooks/usePopUp"; +import { getCertValidUntilBadgeDetails } from "./CertificatesTable.utils"; + type Props = { handlePopUpOpen: ( popUpName: keyof UsePopUpState< @@ -60,146 +62,155 @@ export const CertificatesTable = ({ handlePopUpOpen }: Props) => { }); return ( -
- - - - - - - - - - - {isLoading && } - {!isLoading && - data?.certificates.map((certificate) => { - return ( - - - - - - - ); - })} - -
Friendly NameStatusValid Until -
{certificate.friendlyName}{certStatusToNameMap[certificate.status]} - {certificate.notAfter - ? format(new Date(certificate.notAfter), "yyyy-MM-dd") - : "-"} - - - -
- - - -
-
- - - {(isAllowed) => ( - - handlePopUpOpen("certificateCert", { - serialNumber: certificate.serialNumber - }) - } - disabled={!isAllowed} - icon={} - > - Export Certificate - - )} - - - {(isAllowed) => ( - - handlePopUpOpen("certificate", { - serialNumber: certificate.serialNumber - }) - } - disabled={!isAllowed} - icon={} - > - View Details - - )} - - - {(isAllowed) => ( - - handlePopUpOpen("revokeCertificate", { - serialNumber: certificate.serialNumber - }) - } - disabled={!isAllowed} - icon={} - > - Revoke Certificate - - )} - - - {(isAllowed) => ( - - handlePopUpOpen("deleteCertificate", { - serialNumber: certificate.serialNumber, - commonName: certificate.commonName - }) - } - disabled={!isAllowed} - icon={} - > - Delete Certificate - - )} - - -
-
- {!isLoading && data?.totalCount !== undefined && data.totalCount >= PER_PAGE_INIT && ( - setPage(newPage)} - onChangePerPage={(newPerPage) => setPerPage(newPerPage)} - /> - )} - {!isLoading && !data?.certificates?.length && ( - - )} -
-
+ + + + + + + + + + + + {isLoading && } + {!isLoading && + data?.certificates.map((certificate) => { + const { variant, label } = getCertValidUntilBadgeDetails(certificate.notAfter); + return ( + + + + + + + + ); + })} + +
Friendly NameStatusNot BeforeNot After +
{certificate.friendlyName} + + {label} + + + {certificate.notBefore + ? format(new Date(certificate.notBefore), "yyyy-MM-dd") + : "-"} + + {certificate.notAfter + ? format(new Date(certificate.notAfter), "yyyy-MM-dd") + : "-"} + + + +
+ + + +
+
+ + + {(isAllowed) => ( + + handlePopUpOpen("certificateCert", { + serialNumber: certificate.serialNumber + }) + } + disabled={!isAllowed} + icon={} + > + Export Certificate + + )} + + + {(isAllowed) => ( + + handlePopUpOpen("certificate", { + serialNumber: certificate.serialNumber + }) + } + disabled={!isAllowed} + icon={} + > + View Details + + )} + + + {(isAllowed) => ( + + handlePopUpOpen("revokeCertificate", { + serialNumber: certificate.serialNumber + }) + } + disabled={!isAllowed} + icon={} + > + Revoke Certificate + + )} + + + {(isAllowed) => ( + + handlePopUpOpen("deleteCertificate", { + serialNumber: certificate.serialNumber, + commonName: certificate.commonName + }) + } + disabled={!isAllowed} + icon={} + > + Delete Certificate + + )} + + +
+
+ {!isLoading && data?.totalCount !== undefined && data.totalCount >= PER_PAGE_INIT && ( + setPage(newPage)} + onChangePerPage={(newPerPage) => setPerPage(newPerPage)} + /> + )} + {!isLoading && !data?.certificates?.length && ( + + )} +
); }; diff --git a/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificatesTable.utils.ts b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificatesTable.utils.ts new file mode 100644 index 000000000..93b408bbe --- /dev/null +++ b/frontend/src/views/Project/CertificatesPage/components/CertificatesTab/components/CertificatesTable.utils.ts @@ -0,0 +1,28 @@ +import ms from "ms"; + +export const getCertValidUntilBadgeDetails = (notAfter: string) => { + const currentDate = new Date().getTime(); + const notAfterDate = new Date(notAfter).getTime(); + const diffInMs = notAfterDate - currentDate; + + let variant: "success" | "primary" | "danger" = "success"; + let label = "Healthy"; + + if (diffInMs > ms("60d")) { + variant = "success"; + } else if (diffInMs > ms("30d")) { + variant = "primary"; + } else { + variant = "danger"; + } + + if (diffInMs > ms("60d")) { + label = "Healthy"; + } else if (diffInMs > ms("0d")) { + label = `Expires in ${ms(diffInMs)}`; + } else { + label = "Expired"; + } + + return { variant, label }; +}; diff --git a/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/PkiAlertsTab.tsx b/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/PkiAlertsTab.tsx index 974c2aa1b..3a5a04345 100644 --- a/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/PkiAlertsTab.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/PkiAlertsTab.tsx @@ -1,6 +1,6 @@ import { motion } from "framer-motion"; -import { PkiAlertsSection, PkiCollectionSection } from "./components"; +import { PkiAlertsSection } from "./components"; export const PkiAlertsTab = () => { return ( @@ -11,7 +11,6 @@ export const PkiAlertsTab = () => { animate={{ opacity: 1, translateX: 0 }} exit={{ opacity: 0, translateX: 30 }} > - ); diff --git a/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/components/PkiCollectionTable.tsx b/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/components/PkiCollectionTable.tsx index 4176b907b..a27662449 100644 --- a/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/components/PkiCollectionTable.tsx +++ b/frontend/src/views/Project/CertificatesPage/components/PkiAlertsTab/components/PkiCollectionTable.tsx @@ -63,7 +63,7 @@ export const PkiCollectionTable = ({ handlePopUpOpen }: Props) => { } > {pkiCollection.name} - {pkiCollection.description} + {pkiCollection.description ? pkiCollection.description : "-"} From 30d6af7760acf5468ae1147b029ce8c22b5fd363 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Sat, 17 Aug 2024 21:23:25 -0700 Subject: [PATCH 097/101] Make PR review adjustments --- .../20240802181855_ca-cert-version.ts | 2 +- ...ing.ts => 20240818024923_cert-alerting.ts} | 5 +- backend/src/queue/queue-service.ts | 6 +++ backend/src/server/routes/index.ts | 8 ++- backend/src/server/routes/v1/index.ts | 4 +- .../src/server/routes/v1/pki-alert-router.ts | 8 ++- .../certificate-authority-fns.ts | 12 ++--- .../expiring-pki-item-alert-queue.ts | 48 +++++++++++++++++ .../services/pki-alert/pki-alert-service.ts | 7 ++- .../pki-collection/pki-collection-item-dal.ts | 2 +- .../pki-collection/pki-collection-service.ts | 13 +++-- .../resource-cleanup-queue.ts | 4 -- .../components/CertificateModal.tsx | 52 ++++++++++--------- .../components/PkiCollectionItemsTable.tsx | 4 +- 14 files changed, 124 insertions(+), 51 deletions(-) rename backend/src/db/migrations/{20240806173521_cert-alerting.ts => 20240818024923_cert-alerting.ts} (97%) create mode 100644 backend/src/services/pki-alert/expiring-pki-item-alert-queue.ts diff --git a/backend/src/db/migrations/20240802181855_ca-cert-version.ts b/backend/src/db/migrations/20240802181855_ca-cert-version.ts index b9c572ecd..24eca185d 100644 --- a/backend/src/db/migrations/20240802181855_ca-cert-version.ts +++ b/backend/src/db/migrations/20240802181855_ca-cert-version.ts @@ -25,7 +25,7 @@ export async function up(knex: Knex): Promise { if (!hasVersionColumn) { await knex.schema.alterTable(TableName.CertificateAuthorityCert, (t) => { t.integer("version").nullable(); - // t.dropUnique(["caId"]); + t.dropUnique(["caId"]); }); await knex(TableName.CertificateAuthorityCert).update({ version: 1 }).whereNull("version"); diff --git a/backend/src/db/migrations/20240806173521_cert-alerting.ts b/backend/src/db/migrations/20240818024923_cert-alerting.ts similarity index 97% rename from backend/src/db/migrations/20240806173521_cert-alerting.ts rename to backend/src/db/migrations/20240818024923_cert-alerting.ts index 5ea98cda9..f60ce8c02 100644 --- a/backend/src/db/migrations/20240806173521_cert-alerting.ts +++ b/backend/src/db/migrations/20240818024923_cert-alerting.ts @@ -15,6 +15,8 @@ export async function up(knex: Knex): Promise { }); } + await createOnUpdateTrigger(knex, TableName.PkiCollection); + if (!(await knex.schema.hasTable(TableName.PkiCollectionItem))) { await knex.schema.createTable(TableName.PkiCollectionItem, (t) => { t.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid()); @@ -28,6 +30,8 @@ export async function up(knex: Knex): Promise { }); } + await createOnUpdateTrigger(knex, TableName.PkiCollectionItem); + if (!(await knex.schema.hasTable(TableName.PkiAlert))) { await knex.schema.createTable(TableName.PkiAlert, (t) => { t.uuid("id", { primaryKey: true }).defaultTo(knex.fn.uuid()); @@ -43,7 +47,6 @@ export async function up(knex: Knex): Promise { }); } - await createOnUpdateTrigger(knex, TableName.PkiCollection); await createOnUpdateTrigger(knex, TableName.PkiAlert); } diff --git a/backend/src/queue/queue-service.ts b/backend/src/queue/queue-service.ts index ec222f0fa..48330cf04 100644 --- a/backend/src/queue/queue-service.ts +++ b/backend/src/queue/queue-service.ts @@ -16,6 +16,7 @@ export enum QueueName { // TODO(akhilmhdh): This will get removed later. For now this is kept to stop the repeatable queue AuditLogPrune = "audit-log-prune", DailyResourceCleanUp = "daily-resource-cleanup", + DailyExpiringPkiItemAlert = "daily-expiring-pki-item-alert", TelemetryInstanceStats = "telemtry-self-hosted-stats", IntegrationSync = "sync-integrations", SecretWebhook = "secret-webhook", @@ -36,6 +37,7 @@ export enum QueueJobs { // TODO(akhilmhdh): This will get removed later. For now this is kept to stop the repeatable queue AuditLogPrune = "audit-log-prune-job", DailyResourceCleanUp = "daily-resource-cleanup-job", + DailyExpiringPkiItemAlert = "daily-expiring-pki-item-alert", SecWebhook = "secret-webhook-trigger", TelemetryInstanceStats = "telemetry-self-hosted-stats", IntegrationSync = "secret-integration-pull", @@ -71,6 +73,10 @@ export type TQueueJobTypes = { name: QueueJobs.DailyResourceCleanUp; payload: undefined; }; + [QueueName.DailyExpiringPkiItemAlert]: { + name: QueueJobs.DailyExpiringPkiItemAlert; + payload: undefined; + }; [QueueName.AuditLogPrune]: { name: QueueJobs.AuditLogPrune; payload: undefined; diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index a630e0441..1aa1e18fc 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -131,6 +131,7 @@ import { orgRoleServiceFactory } from "@app/services/org/org-role-service"; import { orgServiceFactory } from "@app/services/org/org-service"; import { orgAdminServiceFactory } from "@app/services/org-admin/org-admin-service"; import { orgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal"; +import { dailyExpiringPkiItemAlertQueueServiceFactory } from "@app/services/pki-alert/expiring-pki-item-alert-queue"; import { pkiAlertDALFactory } from "@app/services/pki-alert/pki-alert-dal"; import { pkiAlertServiceFactory } from "@app/services/pki-alert/pki-alert-service"; import { pkiCollectionDALFactory } from "@app/services/pki-collection/pki-collection-dal"; @@ -1063,7 +1064,6 @@ export const registerRoutes = async ( const dailyResourceCleanUp = dailyResourceCleanUpQueueServiceFactory({ auditLogDAL, queueService, - pkiAlertService, secretVersionDAL, secretFolderVersionDAL: folderVersionDAL, snapshotDAL, @@ -1073,6 +1073,11 @@ export const registerRoutes = async ( identityUniversalAuthClientSecretDAL: identityUaClientSecretDAL }); + const dailyExpiringPkiItemAlert = dailyExpiringPkiItemAlertQueueServiceFactory({ + queueService, + pkiAlertService + }); + const oidcService = oidcConfigServiceFactory({ orgDAL, orgMembershipDAL, @@ -1097,6 +1102,7 @@ export const registerRoutes = async ( await telemetryQueue.startTelemetryCheck(); await dailyResourceCleanUp.startCleanUp(); + await dailyExpiringPkiItemAlert.startSendingAlerts(); await kmsService.startService(); // inject all services diff --git a/backend/src/server/routes/v1/index.ts b/backend/src/server/routes/v1/index.ts index 1a5a56bd0..01bec65ad 100644 --- a/backend/src/server/routes/v1/index.ts +++ b/backend/src/server/routes/v1/index.ts @@ -76,8 +76,8 @@ export const registerV1Routes = async (server: FastifyZodProvider) => { async (pkiRouter) => { await pkiRouter.register(registerCaRouter, { prefix: "/ca" }); await pkiRouter.register(registerCertRouter, { prefix: "/certificates" }); - await server.register(registerPkiAlertRouter, { prefix: "/alerts" }); - await server.register(registerPkiCollectionRouter, { prefix: "/collections" }); + await pkiRouter.register(registerPkiAlertRouter, { prefix: "/alerts" }); + await pkiRouter.register(registerPkiCollectionRouter, { prefix: "/collections" }); }, { prefix: "/pki" } ); diff --git a/backend/src/server/routes/v1/pki-alert-router.ts b/backend/src/server/routes/v1/pki-alert-router.ts index afaa99bdf..f64ec9e47 100644 --- a/backend/src/server/routes/v1/pki-alert-router.ts +++ b/backend/src/server/routes/v1/pki-alert-router.ts @@ -22,7 +22,11 @@ export const registerPkiAlertRouter = async (server: FastifyZodProvider) => { pkiCollectionId: z.string().trim().describe(ALERTS.CREATE.pkiCollectionId), name: z.string().trim().describe(ALERTS.CREATE.name), alertBeforeDays: z.number().describe(ALERTS.CREATE.alertBeforeDays), - emails: z.array(z.string().trim().email({ message: "Invalid email address" })).describe(ALERTS.CREATE.emails) + emails: z + .array(z.string().trim().email({ message: "Invalid email address" })) + .min(1, { message: "You must specify at least 1 email" }) + .max(5, { message: "You can specify a maximum of 5 emails" }) + .describe(ALERTS.CREATE.emails) }), response: { 200: PkiAlertsSchema @@ -114,6 +118,8 @@ export const registerPkiAlertRouter = async (server: FastifyZodProvider) => { pkiCollectionId: z.string().trim().optional().describe(ALERTS.UPDATE.pkiCollectionId), emails: z .array(z.string().trim().email({ message: "Invalid email address" })) + .min(1, { message: "You must specify at least 1 email" }) + .max(5, { message: "You can specify a maximum of 5 emails" }) .optional() .describe(ALERTS.UPDATE.emails) }), diff --git a/backend/src/services/certificate-authority/certificate-authority-fns.ts b/backend/src/services/certificate-authority/certificate-authority-fns.ts index 4e3df1173..b1fd87a26 100644 --- a/backend/src/services/certificate-authority/certificate-authority-fns.ts +++ b/backend/src/services/certificate-authority/certificate-authority-fns.ts @@ -1,7 +1,7 @@ import * as x509 from "@peculiar/x509"; import crypto from "crypto"; -import { BadRequestError } from "@app/lib/errors"; +import { NotFoundError } from "@app/lib/errors"; import { getProjectKmsCertificateKeyId } from "@app/services/project/project-fns"; import { CertKeyAlgorithm, CertStatus } from "../certificate/certificate-types"; @@ -106,10 +106,10 @@ export const getCaCredentials = async ({ kmsService }: TGetCaCredentialsDTO) => { const ca = await certificateAuthorityDAL.findById(caId); - if (!ca) throw new BadRequestError({ message: "CA not found" }); + if (!ca) throw new NotFoundError({ message: "CA not found" }); const caSecret = await certificateAuthoritySecretDAL.findOne({ caId }); - if (!caSecret) throw new BadRequestError({ message: "CA secret not found" }); + if (!caSecret) throw new NotFoundError({ message: "CA secret not found" }); const keyId = await getProjectKmsCertificateKeyId({ projectId: ca.projectId, @@ -158,7 +158,7 @@ export const getCaCertChains = async ({ kmsService }: TGetCaCertChainsDTO) => { const ca = await certificateAuthorityDAL.findById(caId); - if (!ca) throw new BadRequestError({ message: "CA not found" }); + if (!ca) throw new NotFoundError({ message: "CA not found" }); const keyId = await getProjectKmsCertificateKeyId({ projectId: ca.projectId, @@ -205,7 +205,7 @@ export const getCaCertChain = async ({ kmsService }: TGetCaCertChainDTO) => { const caCert = await certificateAuthorityCertDAL.findById(caCertId); - if (!caCert) throw new BadRequestError({ message: "CA certificate not found" }); + if (!caCert) throw new NotFoundError({ message: "CA certificate not found" }); const ca = await certificateAuthorityDAL.findById(caCert.caId); const keyId = await getProjectKmsCertificateKeyId({ @@ -249,7 +249,7 @@ export const rebuildCaCrl = async ({ kmsService }: TRebuildCaCrlDTO) => { const ca = await certificateAuthorityDAL.findById(caId); - if (!ca) throw new BadRequestError({ message: "CA not found" }); + if (!ca) throw new NotFoundError({ message: "CA not found" }); const caSecret = await certificateAuthoritySecretDAL.findOne({ caId: ca.id }); diff --git a/backend/src/services/pki-alert/expiring-pki-item-alert-queue.ts b/backend/src/services/pki-alert/expiring-pki-item-alert-queue.ts new file mode 100644 index 000000000..a592e9271 --- /dev/null +++ b/backend/src/services/pki-alert/expiring-pki-item-alert-queue.ts @@ -0,0 +1,48 @@ +import { logger } from "@app/lib/logger"; +import { QueueJobs, QueueName, TQueueServiceFactory } from "@app/queue"; +import { TPkiAlertServiceFactory } from "@app/services/pki-alert/pki-alert-service"; + +type TDailyExpiringPkiItemAlertQueueServiceFactoryDep = { + queueService: TQueueServiceFactory; + pkiAlertService: Pick; +}; + +export type TDailyExpiringPkiItemAlertQueueServiceFactory = ReturnType< + typeof dailyExpiringPkiItemAlertQueueServiceFactory +>; + +export const dailyExpiringPkiItemAlertQueueServiceFactory = ({ + queueService, + pkiAlertService +}: TDailyExpiringPkiItemAlertQueueServiceFactoryDep) => { + queueService.start(QueueName.DailyExpiringPkiItemAlert, async () => { + logger.info(`${QueueName.DailyExpiringPkiItemAlert}: queue task started`); + await pkiAlertService.sendPkiItemExpiryNotices(); + logger.info(`${QueueName.DailyExpiringPkiItemAlert}: queue task completed`); + }); + + // we do a repeat cron job in utc timezone at 12 Midnight each day + const startSendingAlerts = async () => { + // clear previous job + await queueService.stopRepeatableJob( + QueueName.DailyExpiringPkiItemAlert, + QueueJobs.DailyExpiringPkiItemAlert, + { pattern: "0 0 * * *", utc: true }, + QueueName.DailyExpiringPkiItemAlert // just a job id + ); + + await queueService.queue(QueueName.DailyExpiringPkiItemAlert, QueueJobs.DailyExpiringPkiItemAlert, undefined, { + delay: 5000, + jobId: QueueName.DailyExpiringPkiItemAlert, + repeat: { pattern: "0 0 * * *", utc: true } + }); + }; + + queueService.listen(QueueName.DailyExpiringPkiItemAlert, "failed", (_, err) => { + logger.error(err, `${QueueName.DailyExpiringPkiItemAlert}: Expiring PKI item alert failed`); + }); + + return { + startSendingAlerts + }; +}; diff --git a/backend/src/services/pki-alert/pki-alert-service.ts b/backend/src/services/pki-alert/pki-alert-service.ts index 44f029d42..26ab380fb 100644 --- a/backend/src/services/pki-alert/pki-alert-service.ts +++ b/backend/src/services/pki-alert/pki-alert-service.ts @@ -12,8 +12,11 @@ import { TPkiAlertDALFactory } from "./pki-alert-dal"; import { TCreateAlertDTO, TDeleteAlertDTO, TGetAlertByIdDTO, TUpdateAlertDTO } from "./pki-alert-types"; type TPkiAlertServiceFactoryDep = { - pkiAlertDAL: TPkiAlertDALFactory; - pkiCollectionDAL: TPkiCollectionDALFactory; + pkiAlertDAL: Pick< + TPkiAlertDALFactory, + "create" | "findById" | "updateById" | "deleteById" | "getExpiringPkiCollectionItemsForAlerting" + >; + pkiCollectionDAL: Pick; permissionService: Pick; smtpService: Pick; }; diff --git a/backend/src/services/pki-collection/pki-collection-item-dal.ts b/backend/src/services/pki-collection/pki-collection-item-dal.ts index 403fd928b..de896e15c 100644 --- a/backend/src/services/pki-collection/pki-collection-item-dal.ts +++ b/backend/src/services/pki-collection/pki-collection-item-dal.ts @@ -81,7 +81,7 @@ export const pkiCollectionItemDALFactory = (db: TDbClient) => { return parseInt((count as unknown as CountResult).count || "0", 10); } catch (error) { - throw new DatabaseError({ error, name: "Count all project certificates" }); + throw new DatabaseError({ error, name: "Count all PKI collection items" }); } }; diff --git a/backend/src/services/pki-collection/pki-collection-service.ts b/backend/src/services/pki-collection/pki-collection-service.ts index f7c7ba399..f2a3fa0c4 100644 --- a/backend/src/services/pki-collection/pki-collection-service.ts +++ b/backend/src/services/pki-collection/pki-collection-service.ts @@ -22,10 +22,13 @@ import { } from "./pki-collection-types"; type TPkiCollectionServiceFactoryDep = { - pkiCollectionDAL: TPkiCollectionDALFactory; // TODO: Pick - pkiCollectionItemDAL: TPkiCollectionItemDALFactory; - certificateAuthorityDAL: TCertificateAuthorityDALFactory; - certificateDAL: TCertificateDALFactory; + pkiCollectionDAL: Pick; + pkiCollectionItemDAL: Pick< + TPkiCollectionItemDALFactory, + "findOne" | "create" | "deleteById" | "findPkiCollectionItems" | "countItemsInPkiCollection" + >; + certificateAuthorityDAL: Pick; + certificateDAL: Pick; permissionService: Pick; }; @@ -139,7 +142,7 @@ export const pkiCollectionServiceFactory = ({ ); ForbiddenError.from(permission).throwUnlessCan( - ProjectPermissionActions.Create, + ProjectPermissionActions.Delete, ProjectPermissionSub.PkiCollections ); pkiCollection = await pkiCollectionDAL.deleteById(collectionId); diff --git a/backend/src/services/resource-cleanup/resource-cleanup-queue.ts b/backend/src/services/resource-cleanup/resource-cleanup-queue.ts index fffadcb06..dab70806f 100644 --- a/backend/src/services/resource-cleanup/resource-cleanup-queue.ts +++ b/backend/src/services/resource-cleanup/resource-cleanup-queue.ts @@ -2,7 +2,6 @@ import { TAuditLogDALFactory } from "@app/ee/services/audit-log/audit-log-dal"; import { TSnapshotDALFactory } from "@app/ee/services/secret-snapshot/snapshot-dal"; import { logger } from "@app/lib/logger"; import { QueueJobs, QueueName, TQueueServiceFactory } from "@app/queue"; -import { TPkiAlertServiceFactory } from "@app/services/pki-alert/pki-alert-service"; import { TIdentityAccessTokenDALFactory } from "../identity-access-token/identity-access-token-dal"; import { TIdentityUaClientSecretDALFactory } from "../identity-ua/identity-ua-client-secret-dal"; @@ -21,7 +20,6 @@ type TDailyResourceCleanUpQueueServiceFactoryDep = { snapshotDAL: Pick; secretSharingDAL: Pick; queueService: TQueueServiceFactory; - pkiAlertService: Pick; }; export type TDailyResourceCleanUpQueueServiceFactory = ReturnType; @@ -29,7 +27,6 @@ export type TDailyResourceCleanUpQueueServiceFactory = ReturnType {
)} /> - ( - - - - )} - /> + +
+ )} + /> + )} - + )} From c795b3b3a01a48482fb5abeca90af9e664d5566d Mon Sep 17 00:00:00 2001 From: Vladyslav Matsiiako Date: Sat, 17 Aug 2024 22:49:53 -0700 Subject: [PATCH 098/101] added talking-to-customers.mdx to handbook --- company/handbook/talking-to-customers.mdx | 20 ++++++++++++++++++++ company/mint.json | 3 ++- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 company/handbook/talking-to-customers.mdx diff --git a/company/handbook/talking-to-customers.mdx b/company/handbook/talking-to-customers.mdx new file mode 100644 index 000000000..3f1009162 --- /dev/null +++ b/company/handbook/talking-to-customers.mdx @@ -0,0 +1,20 @@ +--- +title: "Talking to Customers" +sidebarTitle: "Talking to Customers" +description: "The guide to talking to customers at Infisical." +--- + +Everyone at Infisical talks to customers directly. We do this for a few reasons: +1. This helps us understand the needs of our customers and build the product they want. +2. This speeds up our iteration cycles (time from customer feedback to product improvements). +3. Our customers (developers) are able to talk directly to the best experts in Infisical (us) – which improves their satisfaction and success. + +## Customer Communication Etiquette + +1. When talking to customers (no matter whether it's on Slack, email, or any other channel), it is very important to use proper grammar (e.g., no typos, no missed question marks) and minimal colloquial language (no "yeap", "yah", etc.). +2. At the time of a crisis (e.g., customer-reported bug), it is very important to communicate often. Even if there is no update yet, it is good to reach out to the customer and let them know that we are still working on resolving a certain issue. + +## Community Slack + +Unfortunately, we are not able to help everyone in the community Slack. It is OK to politely decline questions about infrastructure management that are not directly related to the product itself. + diff --git a/company/mint.json b/company/mint.json index d5f6395e5..c29f6c237 100644 --- a/company/mint.json +++ b/company/mint.json @@ -60,7 +60,8 @@ "handbook/spending-money", "handbook/time-off", "handbook/hiring", - "handbook/meetings" + "handbook/meetings", + "handbook/talking-to-customers" ] } ], From 00039ba0e4a4e0e69d43b0580c3f30eab9598a12 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Mon, 19 Aug 2024 16:15:43 +0800 Subject: [PATCH 099/101] misc: addressed PR feedback regarding audit logs and endpoint structure --- .../ee/services/audit-log/audit-log-types.ts | 12 ++++ .../routes/v1/certificate-template-router.ts | 57 +++++++---------- .../src/server/routes/v2/project-router.ts | 14 +--- .../certificate-template-dal.ts | 64 +++++++++++-------- .../certificate-template-schema.ts | 18 ++++++ .../certificate-template-service.ts | 26 ++++++-- frontend/src/hooks/api/auditLogs/types.tsx | 12 ++++ .../api/certificateTemplates/mutations.tsx | 8 +-- .../api/certificateTemplates/queries.tsx | 4 +- .../hooks/api/certificateTemplates/types.ts | 9 +-- frontend/src/hooks/api/workspace/queries.tsx | 4 +- .../AuditLogsPage/components/LogsTableRow.tsx | 13 ++++ 12 files changed, 145 insertions(+), 96 deletions(-) create mode 100644 backend/src/services/certificate-template/certificate-template-schema.ts diff --git a/backend/src/ee/services/audit-log/audit-log-types.ts b/backend/src/ee/services/audit-log/audit-log-types.ts index 50549417d..0d07d005b 100644 --- a/backend/src/ee/services/audit-log/audit-log-types.ts +++ b/backend/src/ee/services/audit-log/audit-log-types.ts @@ -1374,6 +1374,12 @@ interface CreateCertificateTemplate { type: EventType.CREATE_CERTIFICATE_TEMPLATE; metadata: { certificateTemplateId: string; + caId: string; + pkiCollectionId?: string; + name: string; + commonName: string; + subjectAlternativeName: string; + ttl: string; }; } @@ -1388,6 +1394,12 @@ interface UpdateCertificateTemplate { type: EventType.UPDATE_CERTIFICATE_TEMPLATE; metadata: { certificateTemplateId: string; + caId: string; + pkiCollectionId?: string; + name: string; + commonName: string; + subjectAlternativeName: string; + ttl: string; }; } diff --git a/backend/src/server/routes/v1/certificate-template-router.ts b/backend/src/server/routes/v1/certificate-template-router.ts index 861279094..3f3ecd5b3 100644 --- a/backend/src/server/routes/v1/certificate-template-router.ts +++ b/backend/src/server/routes/v1/certificate-template-router.ts @@ -1,24 +1,14 @@ import ms from "ms"; import { z } from "zod"; -import { CertificateTemplatesSchema } from "@app/db/schemas"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { CERTIFICATE_TEMPLATES } from "@app/lib/api-docs"; import { readLimit, writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; +import { sanitizedCertificateTemplate } from "@app/services/certificate-template/certificate-template-schema"; import { validateTemplateRegexField } from "@app/services/certificate-template/certificate-template-validators"; -const sanitizedCertificateTemplate = CertificateTemplatesSchema.pick({ - id: true, - caId: true, - name: true, - commonName: true, - subjectAlternativeName: true, - pkiCollectionId: true, - ttl: true -}); - export const registerCertificateTemplateRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", @@ -31,14 +21,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.GET.certificateTemplateId) }), response: { - 200: z.object({ - certificateTemplate: sanitizedCertificateTemplate.merge( - z.object({ - projectId: z.string(), - caName: z.string() - }) - ) - }) + 200: sanitizedCertificateTemplate } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), @@ -62,7 +45,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid } }); - return { certificateTemplate }; + return certificateTemplate; } }); @@ -87,9 +70,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid .describe(CERTIFICATE_TEMPLATES.CREATE.ttl) }), response: { - 200: z.object({ - certificateTemplate: sanitizedCertificateTemplate - }) + 200: sanitizedCertificateTemplate } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), @@ -108,12 +89,18 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid event: { type: EventType.CREATE_CERTIFICATE_TEMPLATE, metadata: { - certificateTemplateId: certificateTemplate.id + certificateTemplateId: certificateTemplate.id, + caId: certificateTemplate.caId, + pkiCollectionId: certificateTemplate.pkiCollectionId as string, + name: certificateTemplate.name, + commonName: certificateTemplate.commonName, + subjectAlternativeName: certificateTemplate.subjectAlternativeName, + ttl: certificateTemplate.ttl } } }); - return { certificateTemplate }; + return certificateTemplate; } }); @@ -142,9 +129,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.UPDATE.certificateTemplateId) }), response: { - 200: z.object({ - certificateTemplate: sanitizedCertificateTemplate - }) + 200: sanitizedCertificateTemplate } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), @@ -164,12 +149,18 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid event: { type: EventType.UPDATE_CERTIFICATE_TEMPLATE, metadata: { - certificateTemplateId: certificateTemplate.id + certificateTemplateId: certificateTemplate.id, + caId: certificateTemplate.caId, + pkiCollectionId: certificateTemplate.pkiCollectionId as string, + name: certificateTemplate.name, + commonName: certificateTemplate.commonName, + subjectAlternativeName: certificateTemplate.subjectAlternativeName, + ttl: certificateTemplate.ttl } } }); - return { certificateTemplate }; + return certificateTemplate; } }); @@ -184,9 +175,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid certificateTemplateId: z.string().describe(CERTIFICATE_TEMPLATES.DELETE.certificateTemplateId) }), response: { - 200: z.object({ - certificateTemplate: sanitizedCertificateTemplate - }) + 200: sanitizedCertificateTemplate } }, onRequest: verifyAuth([AuthMode.JWT, AuthMode.IDENTITY_ACCESS_TOKEN]), @@ -210,7 +199,7 @@ export const registerCertificateTemplateRouter = async (server: FastifyZodProvid } }); - return { certificateTemplate }; + return certificateTemplate; } }); }; diff --git a/backend/src/server/routes/v2/project-router.ts b/backend/src/server/routes/v2/project-router.ts index 307ce3b3b..61e175cfd 100644 --- a/backend/src/server/routes/v2/project-router.ts +++ b/backend/src/server/routes/v2/project-router.ts @@ -4,7 +4,6 @@ import { z } from "zod"; import { CertificateAuthoritiesSchema, CertificatesSchema, - CertificateTemplatesSchema, PkiAlertsSchema, PkiCollectionsSchema, ProjectKeysSchema @@ -16,6 +15,7 @@ import { getTelemetryDistinctId } from "@app/server/lib/telemetry"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { AuthMode } from "@app/services/auth/auth-type"; import { CaStatus } from "@app/services/certificate-authority/certificate-authority-types"; +import { sanitizedCertificateTemplate } from "@app/services/certificate-template/certificate-template-schema"; import { ProjectFilterType } from "@app/services/project/project-types"; import { PostHogEventTypes } from "@app/services/telemetry/telemetry-types"; @@ -472,17 +472,7 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => { }), response: { 200: z.object({ - certificateTemplates: z.array( - CertificateTemplatesSchema.pick({ - id: true, - name: true - }).merge( - z.object({ - caName: z.string(), - caId: z.string() - }) - ) - ) + certificateTemplates: sanitizedCertificateTemplate.array() }) } }, diff --git a/backend/src/services/certificate-template/certificate-template-dal.ts b/backend/src/services/certificate-template/certificate-template-dal.ts index 478a1a3dd..a30c4890d 100644 --- a/backend/src/services/certificate-template/certificate-template-dal.ts +++ b/backend/src/services/certificate-template/certificate-template-dal.ts @@ -1,5 +1,6 @@ import { TDbClient } from "@app/db"; import { TableName } from "@app/db/schemas"; +import { DatabaseError } from "@app/lib/errors"; import { ormify, selectAllTableCols } from "@app/lib/knex"; export type TCertificateTemplateDALFactory = ReturnType; @@ -8,37 +9,48 @@ export const certificateTemplateDALFactory = (db: TDbClient) => { const certificateTemplateOrm = ormify(db, TableName.CertificateTemplate); const getCertTemplatesByProjectId = async (projectId: string) => { - const certTemplates = await db - .replicaNode()(TableName.CertificateTemplate) - .join( - TableName.CertificateAuthority, - `${TableName.CertificateAuthority}.id`, - `${TableName.CertificateTemplate}.caId` - ) - .where(`${TableName.CertificateAuthority}.projectId`, "=", projectId) - .select(selectAllTableCols(TableName.CertificateTemplate)) - .select(db.ref("friendlyName").as("caName").withSchema(TableName.CertificateAuthority)); + try { + const certTemplates = await db + .replicaNode()(TableName.CertificateTemplate) + .join( + TableName.CertificateAuthority, + `${TableName.CertificateAuthority}.id`, + `${TableName.CertificateTemplate}.caId` + ) + .where(`${TableName.CertificateAuthority}.projectId`, "=", projectId) + .select(selectAllTableCols(TableName.CertificateTemplate)) + .select( + db.ref("friendlyName").as("caName").withSchema(TableName.CertificateAuthority), + db.ref("projectId").withSchema(TableName.CertificateAuthority) + ); - return certTemplates; + return certTemplates; + } catch (error) { + throw new DatabaseError({ error, name: "Get certificate templates by project ID" }); + } }; const getById = async (id: string) => { - const certTemplate = await db - .replicaNode()(TableName.CertificateTemplate) - .join( - TableName.CertificateAuthority, - `${TableName.CertificateAuthority}.id`, - `${TableName.CertificateTemplate}.caId` - ) - .where(`${TableName.CertificateTemplate}.id`, "=", id) - .select(selectAllTableCols(TableName.CertificateTemplate)) - .select( - db.ref("projectId").withSchema(TableName.CertificateAuthority), - db.ref("friendlyName").as("caName").withSchema(TableName.CertificateAuthority) - ) - .first(); + try { + const certTemplate = await db + .replicaNode()(TableName.CertificateTemplate) + .join( + TableName.CertificateAuthority, + `${TableName.CertificateAuthority}.id`, + `${TableName.CertificateTemplate}.caId` + ) + .where(`${TableName.CertificateTemplate}.id`, "=", id) + .select(selectAllTableCols(TableName.CertificateTemplate)) + .select( + db.ref("projectId").withSchema(TableName.CertificateAuthority), + db.ref("friendlyName").as("caName").withSchema(TableName.CertificateAuthority) + ) + .first(); - return certTemplate; + return certTemplate; + } catch (error) { + throw new DatabaseError({ error, name: "Get certificate template by ID" }); + } }; return { ...certificateTemplateOrm, getCertTemplatesByProjectId, getById }; diff --git a/backend/src/services/certificate-template/certificate-template-schema.ts b/backend/src/services/certificate-template/certificate-template-schema.ts new file mode 100644 index 000000000..2ce787050 --- /dev/null +++ b/backend/src/services/certificate-template/certificate-template-schema.ts @@ -0,0 +1,18 @@ +import z from "zod"; + +import { CertificateTemplatesSchema } from "@app/db/schemas"; + +export const sanitizedCertificateTemplate = CertificateTemplatesSchema.pick({ + id: true, + caId: true, + name: true, + commonName: true, + subjectAlternativeName: true, + pkiCollectionId: true, + ttl: true +}).merge( + z.object({ + projectId: z.string(), + caName: z.string() + }) +); diff --git a/backend/src/services/certificate-template/certificate-template-service.ts b/backend/src/services/certificate-template/certificate-template-service.ts index 459c988d8..c49791175 100644 --- a/backend/src/services/certificate-template/certificate-template-service.ts +++ b/backend/src/services/certificate-template/certificate-template-service.ts @@ -57,7 +57,7 @@ export const certificateTemplateServiceFactory = ({ ProjectPermissionSub.CertificateTemplates ); - const certificateTemplate = await certificateTemplateDAL.create({ + const { id } = await certificateTemplateDAL.create({ caId, pkiCollectionId, name, @@ -66,7 +66,14 @@ export const certificateTemplateServiceFactory = ({ ttl }); - return { ...certificateTemplate, projectId: ca.projectId }; + const certificateTemplate = await certificateTemplateDAL.getById(id); + if (!certificateTemplate) { + throw new NotFoundError({ + message: "Certificate template not found" + }); + } + + return certificateTemplate; }; const updateCertTemplate = async ({ @@ -111,7 +118,7 @@ export const certificateTemplateServiceFactory = ({ } } - const updatedCertTemplate = await certificateTemplateDAL.updateById(certTemplate.id, { + await certificateTemplateDAL.updateById(certTemplate.id, { caId, pkiCollectionId, commonName, @@ -120,7 +127,14 @@ export const certificateTemplateServiceFactory = ({ ttl }); - return { ...updatedCertTemplate, projectId: certTemplate.projectId }; + const updatedTemplate = await certificateTemplateDAL.getById(id); + if (!updatedTemplate) { + throw new NotFoundError({ + message: "Certificate template not found" + }); + } + + return updatedTemplate; }; const deleteCertTemplate = async ({ id, actorId, actorAuthMethod, actor, actorOrgId }: TDeleteCertTemplateDTO) => { @@ -144,9 +158,9 @@ export const certificateTemplateServiceFactory = ({ ProjectPermissionSub.CertificateTemplates ); - const deletedCertTemplate = await certificateTemplateDAL.deleteById(certTemplate.id); + await certificateTemplateDAL.deleteById(certTemplate.id); - return { ...deletedCertTemplate, projectId: certTemplate.projectId }; + return certTemplate; }; const getCertTemplate = async ({ id, actorId, actorAuthMethod, actor, actorOrgId }: TGetCertTemplateDTO) => { diff --git a/frontend/src/hooks/api/auditLogs/types.tsx b/frontend/src/hooks/api/auditLogs/types.tsx index ddc0e887e..d7825637d 100644 --- a/frontend/src/hooks/api/auditLogs/types.tsx +++ b/frontend/src/hooks/api/auditLogs/types.tsx @@ -683,6 +683,12 @@ interface CreateCertificateTemplate { type: EventType.CREATE_CERTIFICATE_TEMPLATE; metadata: { certificateTemplateId: string; + caId: string; + pkiCollectionId?: string; + name: string; + commonName: string; + subjectAlternativeName: string; + ttl: string; }; } @@ -697,6 +703,12 @@ interface UpdateCertificateTemplate { type: EventType.UPDATE_CERTIFICATE_TEMPLATE; metadata: { certificateTemplateId: string; + caId: string; + pkiCollectionId?: string; + name: string; + commonName: string; + subjectAlternativeName: string; + ttl: string; }; } diff --git a/frontend/src/hooks/api/certificateTemplates/mutations.tsx b/frontend/src/hooks/api/certificateTemplates/mutations.tsx index 89ea225f2..269d885a6 100644 --- a/frontend/src/hooks/api/certificateTemplates/mutations.tsx +++ b/frontend/src/hooks/api/certificateTemplates/mutations.tsx @@ -15,9 +15,7 @@ export const useCreateCertTemplate = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: async (data) => { - const { - data: { certificateTemplate } - } = await apiRequest.post<{ certificateTemplate: TCertificateTemplate }>( + const { data: certificateTemplate } = await apiRequest.post( "/api/v1/pki/certificate-templates", data ); @@ -33,9 +31,7 @@ export const useUpdateCertTemplate = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: async (data) => { - const { - data: { certificateTemplate } - } = await apiRequest.patch<{ certificateTemplate: TCertificateTemplate }>( + const { data: certificateTemplate } = await apiRequest.patch( `/api/v1/pki/certificate-templates/${data.id}`, data ); diff --git a/frontend/src/hooks/api/certificateTemplates/queries.tsx b/frontend/src/hooks/api/certificateTemplates/queries.tsx index 56e3e5d54..ca5b088e8 100644 --- a/frontend/src/hooks/api/certificateTemplates/queries.tsx +++ b/frontend/src/hooks/api/certificateTemplates/queries.tsx @@ -12,9 +12,7 @@ export const useGetCertTemplate = (id: string) => { return useQuery({ queryKey: certTemplateKeys.getCertTemplateById(id), queryFn: async () => { - const { - data: { certificateTemplate } - } = await apiRequest.get<{ certificateTemplate: TCertificateTemplate }>( + const { data: certificateTemplate } = await apiRequest.get( `/api/v1/pki/certificate-templates/${id}` ); return certificateTemplate; diff --git a/frontend/src/hooks/api/certificateTemplates/types.ts b/frontend/src/hooks/api/certificateTemplates/types.ts index b7cd57a3d..237a86a5e 100644 --- a/frontend/src/hooks/api/certificateTemplates/types.ts +++ b/frontend/src/hooks/api/certificateTemplates/types.ts @@ -1,13 +1,8 @@ -export type TCertificateTemplateListEntry = { - id: string; - name: string; - caName: string; - caId: string; -}; - export type TCertificateTemplate = { id: string; caId: string; + caName: string; + projectId: string; pkiCollectionId?: string; name: string; commonName: string; diff --git a/frontend/src/hooks/api/workspace/queries.tsx b/frontend/src/hooks/api/workspace/queries.tsx index 711641be8..277499e9b 100644 --- a/frontend/src/hooks/api/workspace/queries.tsx +++ b/frontend/src/hooks/api/workspace/queries.tsx @@ -5,7 +5,7 @@ import { apiRequest } from "@app/config/request"; import { CaStatus } from "../ca/enums"; import { TCertificateAuthority } from "../ca/types"; import { TCertificate } from "../certificates/types"; -import { TCertificateTemplateListEntry } from "../certificateTemplates/types"; +import { TCertificateTemplate } from "../certificateTemplates/types"; import { TGroupMembership } from "../groups/types"; import { identitiesKeys } from "../identities/queries"; import { IdentityMembership } from "../identities/types"; @@ -649,7 +649,7 @@ export const useListWorkspaceCertificateTemplates = ({ workspaceId }: { workspac queryFn: async () => { const { data: { certificateTemplates } - } = await apiRequest.get<{ certificateTemplates: TCertificateTemplateListEntry[] }>( + } = await apiRequest.get<{ certificateTemplates: TCertificateTemplate[] }>( `/api/v2/workspace/${workspaceId}/certificate-templates` ); diff --git a/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx b/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx index ed25abe79..ea0e687bb 100644 --- a/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx +++ b/frontend/src/views/Project/AuditLogsPage/components/LogsTableRow.tsx @@ -408,6 +408,19 @@ export const LogsTableRow = ({ auditLog }: Props) => { ); case EventType.CREATE_CERTIFICATE_TEMPLATE: case EventType.UPDATE_CERTIFICATE_TEMPLATE: + return ( + +

{`Certificate Template ID: ${event.metadata.certificateTemplateId}`}

+

{`Certificate Authority ID: ${event.metadata.caId}`}

+

{`Name: ${event.metadata.name}`}

+

{`Common Name: ${event.metadata.commonName}`}

+

{`Subject Alternative Name: ${event.metadata.subjectAlternativeName}`}

+

{`TTL: ${event.metadata.ttl}`}

+ {event.metadata.pkiCollectionId && ( +

{`Collection ID: ${event.metadata.pkiCollectionId}`}

+ )} + + ); case EventType.GET_CERTIFICATE_TEMPLATE: case EventType.DELETE_CERTIFICATE_TEMPLATE: return ( From 189a610f52385f48c9e1c19132e0a8ae50aeef0c Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Mon, 19 Aug 2024 16:40:18 +0800 Subject: [PATCH 100/101] doc: add cert template api usage --- .../platform/pki/certificate-templates.mdx | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/docs/documentation/platform/pki/certificate-templates.mdx b/docs/documentation/platform/pki/certificate-templates.mdx index 9afaf456f..a014a6c01 100644 --- a/docs/documentation/platform/pki/certificate-templates.mdx +++ b/docs/documentation/platform/pki/certificate-templates.mdx @@ -55,4 +55,61 @@ In the following steps, we explore how to issue a X.509 certificate using a cert + + + + To create a certificate template, make an API request to the [Create Certificate Template](/api-reference/endpoints/certificate-templates/create) API endpoint. + + ### Sample request + + ```bash Request + curl --request POST \ + --url https://app.infisical.com/api/v1/pki/certificate-templates \ + --header 'Content-Type: application/json' \ + --data '{ + "caId": "", + "pkiCollectionId": "", + "name": "", + "commonName": "", + "subjectAlternativeName": "", + "ttl": "" + }' + ``` + + ### Sample response + + ```bash Response + { + "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "caId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "name": "", + "commonName": "", + "subjectAlternativeName": "", + "pkiCollectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "ttl": "", + "projectId": "", + "caName": "" + } + ``` + + + To use the certificate template, attach the certificate template ID when invoking the API endpoint for [issuing](/api-reference/endpoints/certificates/issue-certificate) or [signing](/api-reference/endpoints/certificates/sign-certificate) new certificates. + + ### Sample request + + ```bash Request + curl --request POST \ + --url https://app.infisical.com/api/v1/pki/certificates/issue-certificate \ + --header 'Content-Type: application/json' \ + --data '{ + "certificateTemplateId": "", + "friendlyName": "", + "commonName": "", + ... + }' + ``` + + + + From 04cb499f0ffc5ebfa2dff860a6b9415b6e692626 Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Mon, 19 Aug 2024 16:53:17 +0800 Subject: [PATCH 101/101] doc: finalized sample request response values --- .../platform/pki/certificate-templates.mdx | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/documentation/platform/pki/certificate-templates.mdx b/docs/documentation/platform/pki/certificate-templates.mdx index a014a6c01..a52bf4364 100644 --- a/docs/documentation/platform/pki/certificate-templates.mdx +++ b/docs/documentation/platform/pki/certificate-templates.mdx @@ -82,13 +82,9 @@ In the following steps, we explore how to issue a X.509 certificate using a cert { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "caId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", - "name": "", + "name": "certificate-template-1", "commonName": "", - "subjectAlternativeName": "", - "pkiCollectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", - "ttl": "", - "projectId": "", - "caName": "" + ... } ``` @@ -102,9 +98,9 @@ In the following steps, we explore how to issue a X.509 certificate using a cert --url https://app.infisical.com/api/v1/pki/certificates/issue-certificate \ --header 'Content-Type: application/json' \ --data '{ - "certificateTemplateId": "", - "friendlyName": "", - "commonName": "", + "certificateTemplateId": "3c90c3cc-0d44-4b50-8888-8dd25736052a", + "friendlyName": "my-new-certificate", + "commonName": "CERT", ... }' ```