-
setUsageView(value)} isAdmin={isAdmin} />
+ setUsageView(value)}
+ isAdmin={isAdmin}
+ canViewTagUsage={canViewTagUsage}
+ />
{paginatedResult.isFetchingMore && (
diff --git a/ui/litellm-dashboard/src/components/UsagePage/components/UsageViewSelect/UsageViewSelect.test.tsx b/ui/litellm-dashboard/src/components/UsagePage/components/UsageViewSelect/UsageViewSelect.test.tsx
index 7bb80b424b5..ed69dd26ec2 100644
--- a/ui/litellm-dashboard/src/components/UsagePage/components/UsageViewSelect/UsageViewSelect.test.tsx
+++ b/ui/litellm-dashboard/src/components/UsagePage/components/UsageViewSelect/UsageViewSelect.test.tsx
@@ -110,4 +110,16 @@ describe("UsageViewSelect", () => {
expect(mockOnChange).toHaveBeenCalledWith("team");
});
+
+ it("should show tag usage when tag usage access is allowed", () => {
+ render(
);
+
+ expect(screen.getByRole("option", { name: "Tag Usage" })).toBeInTheDocument();
+ });
+
+ it("should hide tag usage for non-admins without tag usage access", () => {
+ render(
);
+
+ expect(screen.queryByRole("option", { name: "Tag Usage" })).not.toBeInTheDocument();
+ });
});
diff --git a/ui/litellm-dashboard/src/components/UsagePage/components/UsageViewSelect/UsageViewSelect.tsx b/ui/litellm-dashboard/src/components/UsagePage/components/UsageViewSelect/UsageViewSelect.tsx
index 11fdb8a7cf5..ba2c7daf655 100644
--- a/ui/litellm-dashboard/src/components/UsagePage/components/UsageViewSelect/UsageViewSelect.tsx
+++ b/ui/litellm-dashboard/src/components/UsagePage/components/UsageViewSelect/UsageViewSelect.tsx
@@ -16,6 +16,7 @@ export interface UsageViewSelectProps {
value: UsageOption;
onChange: (value: UsageOption) => void;
isAdmin: boolean;
+ canViewTagUsage?: boolean;
title?: string;
description?: string;
"data-id"?: string;
@@ -106,12 +107,16 @@ export const UsageViewSelect: React.FC
= ({
value,
onChange,
isAdmin,
+ canViewTagUsage = false,
title = "Usage View",
description = "Select the usage data you want to view",
"data-id": dataId,
}) => {
const getFilteredOptions = () => {
return OPTIONS.filter((option) => {
+ if (option.value === "tag") {
+ return isAdmin || canViewTagUsage;
+ }
if (option.adminOnly && !isAdmin) {
return false;
}