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}
+
+ );
};