{t("usage.keyActivity.noDailyDetails")}
; + } + return wildcard ? ( ++ {t(scope === "team" ? "shared.resourceActivity.teamScope" : "shared.resourceActivity.ownUsage")} +
+ )} + {scope === "model" && ( +{t("shared.resourceActivity.modelScope", { model: id })}
+ )} + {content} +
@@ -803,25 +812,12 @@ export default function ModelInfoView({
setIsCredentialModalOpen={setIsCredentialModalOpen}
/>
) : (
-
+ setIsCredentialModalOpen(false)}
+ credentialName={modelData.litellm_params.litellm_credential_name ?? ""}
+ credentials={credentialsList}
+ />
)}
{isUpdateCredentialsModalOpen && accessToken && (
diff --git a/ui/litellm-dashboard/src/components/networking.dailyActivity.test.ts b/ui/litellm-dashboard/src/components/networking.dailyActivity.test.ts
index 6821d26fb33..09ac797c841 100644
--- a/ui/litellm-dashboard/src/components/networking.dailyActivity.test.ts
+++ b/ui/litellm-dashboard/src/components/networking.dailyActivity.test.ts
@@ -41,6 +41,14 @@ afterEach(() => {
});
describe("dailyActivityAggregatedCall", () => {
+ it.each([undefined, true, false])("sends the entity breakdown choice %s without changing defaults", async (value) => {
+ const mockFetch = captureFetch();
+ await dailyActivityAggregatedCall("user", req({ includeEntityBreakdown: value }));
+ expect(requestedUrl(mockFetch).searchParams.get("include_entity_breakdown")).toBe(
+ value === undefined ? null : String(value),
+ );
+ });
+
it.each<[DailyActivityEntity, string]>([
["user", "user_id"],
["team", "team_ids"],
diff --git a/ui/litellm-dashboard/src/components/networking.tsx b/ui/litellm-dashboard/src/components/networking.tsx
index 7be345de09a..32e2d0357f6 100644
--- a/ui/litellm-dashboard/src/components/networking.tsx
+++ b/ui/litellm-dashboard/src/components/networking.tsx
@@ -1395,7 +1395,10 @@ export const dailyActivityAggregatedCall = (
): Promise =>
apiClient.get(`/${entity}/daily/activity/aggregated`, {
accessToken: req.accessToken,
- query: dailyActivityQuery(entity, req, req.apiKeyLimit === undefined ? {} : { api_key_limit: req.apiKeyLimit }),
+ query: dailyActivityQuery(entity, req, {
+ api_key_limit: req.apiKeyLimit,
+ include_entity_breakdown: req.includeEntityBreakdown,
+ }),
});
export const subscriptionUsageCall = (
diff --git a/ui/litellm-dashboard/src/components/team/TeamInfo.tsx b/ui/litellm-dashboard/src/components/team/TeamInfo.tsx
index 69fac298b0f..039a9da71d0 100644
--- a/ui/litellm-dashboard/src/components/team/TeamInfo.tsx
+++ b/ui/litellm-dashboard/src/components/team/TeamInfo.tsx
@@ -1,3 +1,4 @@
+import ResourceActivity from "@/components/UsagePage/ResourceActivity";
import useAuthorized from "@/app/(dashboard)/hooks/useAuthorized";
import type { components } from "@/lib/http/schema";
import useCan from "@/app/(dashboard)/hooks/useCan";
@@ -1607,6 +1608,11 @@ const TeamInfoView: React.FC = ({