diff --git a/backend/src/services/secret-sync/azure-devops/azure-devops-sync-schemas.ts b/backend/src/services/secret-sync/azure-devops/azure-devops-sync-schemas.ts index 71c10ecba..69bc22447 100644 --- a/backend/src/services/secret-sync/azure-devops/azure-devops-sync-schemas.ts +++ b/backend/src/services/secret-sync/azure-devops/azure-devops-sync-schemas.ts @@ -17,7 +17,7 @@ export const AzureDevOpsSyncDestinationConfigSchema = z.object({ .describe(SecretSyncs.DESTINATION_CONFIG.AZURE_DEVOPS?.devopsProjectId || "Azure DevOps Project ID"), devopsProjectName: z .string() - .min(1, "Project name required") + .optional() .describe(SecretSyncs.DESTINATION_CONFIG.AZURE_DEVOPS?.devopsProjectName || "Azure DevOps Project Name") }); diff --git a/frontend/src/components/secret-syncs/forms/SecretSyncReviewFields/AzureDevOpsSyncReviewFields.tsx b/frontend/src/components/secret-syncs/forms/SecretSyncReviewFields/AzureDevOpsSyncReviewFields.tsx index 8b6cf3145..67039f77f 100644 --- a/frontend/src/components/secret-syncs/forms/SecretSyncReviewFields/AzureDevOpsSyncReviewFields.tsx +++ b/frontend/src/components/secret-syncs/forms/SecretSyncReviewFields/AzureDevOpsSyncReviewFields.tsx @@ -11,7 +11,9 @@ export const AzureDevOpsSyncReviewFields = () => { return ( <> - {devopsProjectName} + {devopsProjectName && ( + {devopsProjectName} + )} {devopsProjectId} ); diff --git a/frontend/src/components/secret-syncs/forms/schemas/azure-devops-sync-destination-schema.ts b/frontend/src/components/secret-syncs/forms/schemas/azure-devops-sync-destination-schema.ts index 6aa63ab8f..00232e3cd 100644 --- a/frontend/src/components/secret-syncs/forms/schemas/azure-devops-sync-destination-schema.ts +++ b/frontend/src/components/secret-syncs/forms/schemas/azure-devops-sync-destination-schema.ts @@ -8,10 +8,7 @@ export const AzureDevOpsSyncDestinationSchema = BaseSecretSyncSchema().merge( destination: z.literal(SecretSync.AzureDevOps), destinationConfig: z.object({ devopsProjectId: z.string().trim().min(1, { message: "Azure DevOps Project ID is required" }), - devopsProjectName: z - .string() - .trim() - .min(1, { message: "Azure DevOps Project Name is required" }) + devopsProjectName: z.string().trim().optional() }) }) ); diff --git a/frontend/src/hooks/api/secretSyncs/types/azure-devops-sync.ts b/frontend/src/hooks/api/secretSyncs/types/azure-devops-sync.ts index 3567c507b..89955a9f4 100644 --- a/frontend/src/hooks/api/secretSyncs/types/azure-devops-sync.ts +++ b/frontend/src/hooks/api/secretSyncs/types/azure-devops-sync.ts @@ -6,7 +6,7 @@ export type TAzureDevOpsSync = TRootSecretSync & { destination: SecretSync.AzureDevOps; destinationConfig: { devopsProjectId: string; - devopsProjectName: string; + devopsProjectName?: string; }; connection: { app: AppConnection.AzureDevOps; diff --git a/frontend/src/pages/secret-manager/IntegrationsListPage/components/SecretSyncsTab/SecretSyncTable/helpers/index.ts b/frontend/src/pages/secret-manager/IntegrationsListPage/components/SecretSyncsTab/SecretSyncTable/helpers/index.ts index a6c2f4f5e..2e892a91c 100644 --- a/frontend/src/pages/secret-manager/IntegrationsListPage/components/SecretSyncsTab/SecretSyncTable/helpers/index.ts +++ b/frontend/src/pages/secret-manager/IntegrationsListPage/components/SecretSyncsTab/SecretSyncTable/helpers/index.ts @@ -115,8 +115,10 @@ export const getSecretSyncDestinationColValues = (secretSync: TSecretSync) => { secondaryText = "Vault ID"; break; case SecretSync.AzureDevOps: - primaryText = destinationConfig.devopsProjectName; - secondaryText = destinationConfig.devopsProjectId; + primaryText = destinationConfig.devopsProjectName || destinationConfig.devopsProjectId; + secondaryText = destinationConfig.devopsProjectName + ? destinationConfig.devopsProjectId + : "Project ID"; break; case SecretSync.Heroku: primaryText = destinationConfig.appName; diff --git a/frontend/src/pages/secret-manager/SecretSyncDetailsByIDPage/components/SecretSyncDestinationSection/AzureDevOpsSyncDestinationSection.tsx b/frontend/src/pages/secret-manager/SecretSyncDetailsByIDPage/components/SecretSyncDestinationSection/AzureDevOpsSyncDestinationSection.tsx index 608b443f1..5aead5869 100644 --- a/frontend/src/pages/secret-manager/SecretSyncDetailsByIDPage/components/SecretSyncDestinationSection/AzureDevOpsSyncDestinationSection.tsx +++ b/frontend/src/pages/secret-manager/SecretSyncDetailsByIDPage/components/SecretSyncDestinationSection/AzureDevOpsSyncDestinationSection.tsx @@ -7,8 +7,12 @@ type Props = { export const AzureDevOpsSyncDestinationSection = ({ secretSync }: Props) => { const { - destinationConfig: { devopsProjectName } + destinationConfig: { devopsProjectName, devopsProjectId } } = secretSync; - return {devopsProjectName}; + return ( + + {devopsProjectName || devopsProjectId} + + ); };