diff --git a/backend/src/ee/routes/v1/external-kms-router.ts b/backend/src/ee/routes/v1/external-kms-router.ts index fee358b0b4..712b8b4561 100644 --- a/backend/src/ee/routes/v1/external-kms-router.ts +++ b/backend/src/ee/routes/v1/external-kms-router.ts @@ -39,7 +39,7 @@ export const registerExternalKmsRouter = async (server: FastifyZodProvider) => { }, schema: { body: z.object({ - slug: z.string().min(1).trim().optional(), + slug: z.string().min(1).trim().toLowerCase().optional(), description: z.string().min(1).trim().optional(), provider: ExternalKmsInputSchema }), @@ -75,7 +75,7 @@ export const registerExternalKmsRouter = async (server: FastifyZodProvider) => { id: z.string().trim().min(1) }), body: z.object({ - slug: z.string().min(1).trim().optional(), + slug: z.string().min(1).trim().toLowerCase().optional(), description: z.string().min(1).trim().optional(), provider: ExternalKmsInputUpdateSchema }), diff --git a/backend/src/ee/services/external-kms/external-kms-service.ts b/backend/src/ee/services/external-kms/external-kms-service.ts index 168f6a1a7d..a2d3148441 100644 --- a/backend/src/ee/services/external-kms/external-kms-service.ts +++ b/backend/src/ee/services/external-kms/external-kms-service.ts @@ -52,7 +52,7 @@ export const externalKmsServiceFactory = ({ actorOrgId ); ForbiddenError.from(permission).throwUnlessCan(OrgPermissionActions.Edit, OrgPermissionSubjects.Settings); - const kmsSlug = slug ? slugify(slug) : slugify(alphaNumericNanoId(32)); + const kmsSlug = slug ? slugify(slug) : slugify(alphaNumericNanoId(8).toLowerCase()); let sanitizedProviderInput = ""; switch (provider.type) { diff --git a/backend/src/services/kms/kms-service.ts b/backend/src/services/kms/kms-service.ts index 468666221d..dbc86b860f 100644 --- a/backend/src/services/kms/kms-service.ts +++ b/backend/src/services/kms/kms-service.ts @@ -56,15 +56,18 @@ export const kmsServiceFactory = ({ const cipher = symmetricCipherService(SymmetricEncryption.AES_GCM_256); const kmsKeyMaterial = randomSecureBytes(32); const encryptedKeyMaterial = cipher.encrypt(kmsKeyMaterial, ROOT_ENCRYPTION_KEY); - const sanitizedSlug = slug ? slugify(slug) : slugify(alphaNumericNanoId(32)); + const sanitizedSlug = slug ? slugify(slug) : slugify(alphaNumericNanoId(8).toLowerCase()); const dbQuery = async (db: Knex) => { - const kmsDoc = await kmsDAL.create({ - slug: sanitizedSlug, - orgId, - isReserved - }); + const kmsDoc = await kmsDAL.create( + { + slug: sanitizedSlug, + orgId, + isReserved + }, + db + ); - const { encryptedKey, ...doc } = await internalKmsDAL.create( + await internalKmsDAL.create( { version: 1, encryptedKey: encryptedKeyMaterial, @@ -73,7 +76,7 @@ export const kmsServiceFactory = ({ }, db ); - return doc; + return kmsDoc; }; if (tx) return dbQuery(tx); const doc = await kmsDAL.transaction(async (tx2) => dbQuery(tx2));