feat(secret-sync): validate secret names using SecretNameSchema before processing

This commit is contained in:
Victor Santos
2025-10-23 16:40:54 -03:00
parent d2cd5544b9
commit 761a898484

View File

@@ -63,6 +63,7 @@ import { TAppConnectionDALFactory } from "../app-connection/app-connection-dal";
import { TFolderCommitServiceFactory } from "../folder-commit/folder-commit-service";
import { TNotificationServiceFactory } from "../notification/notification-service";
import { NotificationType } from "../notification/notification-types";
import { SecretNameSchema } from "@app/server/lib/schemas";
export type TSecretSyncQueueFactory = ReturnType<typeof secretSyncQueueFactory>;
@@ -408,6 +409,14 @@ export const secretSyncQueueFactory = ({
if (!Object.keys(importedSecrets).length) return {};
for (const [key] of Object.entries(importedSecrets)) {
const result = SecretNameSchema.safeParse(key);
if (!result.success) {
const errorMessage = result.error.issues[0]?.message || "Invalid secret name";
throw new Error(`Invalid secret name "${key}": ${errorMessage}`);
}
}
const importedSecretMap: TSecretMap = {};
const secretMap = await $getInfisicalSecrets(secretSync, false);