+ {t("agents.identityDetails.title")}
- Tenant: {identity.tenant_id}
+ {t("agents.identityDetails.tenant")} {identity.tenant_id}
<>
- Application (Client) ID: {identity.client_id}
+ {t("agents.identityDetails.clientId")} {identity.client_id}
+
+
+ {t("agents.identityDetails.servicePrincipal")}{" "}
+ {identity.service_principal_id || t("agents.identityDetails.notConfigured")}
- Enterprise application Object ID: {identity.service_principal_id || "Not configured"}
>
- Execution: {data ? executionLabel : "Loading"} · Mode: {data?.execution_mode ?? "Loading"}
+ {t("agents.identityDetails.executionSummary", {
+ execution: data ? executionLabel : t("agents.identityDetails.loading"),
+ mode: data?.execution_mode ?? t("agents.identityDetails.loading"),
+ })}
{data?.identity?.active === false
- ? "Identity unbound; execution is disabled"
- : authenticationMessage(isError, data?.last_authenticated_at)}
-
-
- Recent evidence comes from a validated Entra token matching this binding. It is persisted across restarts and
- cleared when the binding changes. Tool and model permissions are checked separately.
+ ? t("agents.identityDetails.evidence.unbound")
+ : authenticationMessage(t, isError, data?.last_authenticated_at)}
+ {t("agents.identityDetails.evidenceNote")}
diff --git a/ui/litellm-dashboard/src/app/(dashboard)/agents/_components/AgentIdentityFields.tsx b/ui/litellm-dashboard/src/app/(dashboard)/agents/_components/AgentIdentityFields.tsx
index 50c60776ff3..d4af3ff3833 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/agents/_components/AgentIdentityFields.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/agents/_components/AgentIdentityFields.tsx
@@ -1,26 +1,30 @@
import React, { useEffect, useState } from "react";
import { useWatch } from "react-hook-form";
+import type { ParseKeys } from "i18next";
+import { Trans, useTranslation } from "react-i18next";
+import i18n from "@/i18n/i18n";
import { apiClient } from "@/components/networking";
import { Input } from "@/components/ui/input";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { AgentFormField, type AgentFormValues } from "./AgentFormKit";
import { entraTenantFromIssuer, IDENTITY_UUID_PATTERN } from "./agent_identity";
-const PROVIDER_OPTIONS = [
- { value: "none", label: "No explicit identity binding" },
- { value: "microsoft_entra", label: "Microsoft Entra ID" },
+const PROVIDER_OPTIONS: { value: string; labelKey: ParseKeys }[] = [
+ { value: "none", labelKey: "agents.identityFields.providers.none" },
+ { value: "microsoft_entra", labelKey: "agents.identityFields.providers.microsoftEntra" },
];
-const EXECUTION_MODE_OPTIONS = [
- { value: "autonomous", label: "Autonomous" },
- { value: "delegated", label: "On behalf of a user" },
- { value: "both", label: "Both" },
+const EXECUTION_MODE_OPTIONS: { value: string; labelKey: ParseKeys }[] = [
+ { value: "autonomous", labelKey: "agents.identityFields.executionModes.autonomous" },
+ { value: "delegated", labelKey: "agents.identityFields.executionModes.delegated" },
+ { value: "both", labelKey: "agents.identityFields.executionModes.both" },
];
-const EXECUTION_OPTIONS = [
- { value: "enabled", label: "Enabled" },
- { value: "disabled", label: "Disabled" },
+const EXECUTION_OPTIONS: { value: string; labelKey: ParseKeys }[] = [
+ { value: "enabled", labelKey: "agents.identityFields.execution.enabled" },
+ { value: "disabled", labelKey: "agents.identityFields.execution.disabled" },
];
export const AgentIdentityFields = ({ accessToken }: { accessToken: string | null }) => {
+ const { t } = useTranslation();
const provider = useWatch