The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]
This report summarizes scanner evidence for BerriAI/litellm, a Python project with 60,898 GitHub stars. SynthScan examined 3,718,738 lines of code across 11871 source files, recording 94491 pattern matches distributed across 29 syntactic categories. The legacy adjusted pattern signal is 27.1 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 76222 finding(s).
Are imports declared and package/API names verified? 7648 finding(s).
Are wrappers, guards, and repeated structures necessary? 81282 finding(s).
Which changes need focused human review? 94491 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 94491 distinct pattern matches across 29 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ARCHITECTURE.md | 405 | def test_prompt_caching_transform(): | CODE |
| LOW | ui/litellm-dashboard/src/app/model_hub_table/page.tsx | 6 | function PublicModelHubTableContent() { | CODE |
| LOW | ui/litellm-dashboard/src/app/(dashboard)/layout.tsx | 32 | function PluginModeProviderWithAuth({ children }: { children: React.ReactNode }) { | CODE |
| LOW | …p/(dashboard)/models-and-endpoints/detailNavigation.ts | 50 | export function useModelGroupFilterRouting(): ModelGroupFilterRouting { | CODE |
| LOW | …ashboard)/guardrails/_components/TeamGuardrailsTab.tsx | 141 | function submissionToTeamGuardrail(item: GuardrailSubmissionItem): TeamGuardrail { | CODE |
| LOW | …ashboard)/guardrails/_components/TeamGuardrailsTab.tsx | 213 | function buildEquivalentConfigYaml(g: TeamGuardrail): string { | CODE |
| LOW | …ard)/guardrails/_components/guardrail_info_helpers.tsx | 347 | export function skipSystemMessageToChoice(v: boolean | null | undefined): SkipSystemMessageChoice { | CODE |
| LOW | …ard)/guardrails/_components/guardrail_info_helpers.tsx | 354 | export function choiceToSkipSystemForCreate(choice: SkipSystemMessageChoice | undefined): boolean | undefined { | CODE |
| LOW | …ard)/guardrails/_components/guardrail_info_helpers.tsx | 370 | export function choiceToSkipToolForCreate(choice: SkipToolMessageChoice | undefined): boolean | undefined { | CODE |
| LOW | …/app/(dashboard)/playground/llm_calls/audio_speech.tsx | 7 | export async function makeOpenAIAudioSpeechRequest( | CODE |
| LOW | …c/app/(dashboard)/playground/llm_calls/image_edits.tsx | 6 | export async function makeOpenAIImageEditsRequest( | CODE |
| LOW | …dashboard)/playground/llm_calls/anthropic_messages.tsx | 18 | export async function makeAnthropicMessagesRequest( | CODE |
| LOW | …src/app/(dashboard)/playground/llm_calls/system_one.ts | 97 | export function makePlaygroundDecisionRequest( | CODE |
| LOW | …/(dashboard)/playground/llm_calls/image_generation.tsx | 6 | export async function makeOpenAIImageGenerationRequest( | CODE |
| LOW | …pp/(dashboard)/playground/llm_calls/embeddings_api.tsx | 9 | export async function makeOpenAIEmbeddingsRequest( | CODE |
| LOW | …shboard)/playground/llm_calls/audio_transcriptions.tsx | 6 | export async function makeOpenAIAudioTranscriptionRequest( | CODE |
| LOW | …ayground/components/systemOneUI/lib/validatePayload.ts | 82 | export function validateOpenAIDecisionsPayload(raw: string): PayloadValidation<OpenAIDecisionsRequest> { | CODE |
| LOW | …yground/components/chat_ui/ChatUI.integration.test.tsx | 45 | async function openComboboxByPlaceholder(placeholder: string) { | CODE |
| LOW | …dashboard)/projects/_components/useProjectsUrlState.ts | 71 | export function useClearProjectKeysTableState(): () => void { | CODE |
| LOW | …ts/EndpointUsage/components/EndpointUsageLineChart.tsx | 12 | function transformDailyDataToChart(dailyData: DailyData[]): Array<Record<string, string | number>> { | CODE |
| LOW | …/usage/_components/hooks/useAggregatedDailyActivity.ts | 25 | export function useAggregatedDailyActivity({ fetch, enabled, deps }: Options): Result { | CODE |
| LOW | …ptimization/_components/PromptCachingRequestsTable.tsx | 35 | export default function PromptCachingRequestsTable({ accessToken, dateValue }: PromptCachingRequestsTableProps) { | CODE |
| LOW | …tellm-dashboard/src/app/(dashboard)/hooks/useLogout.ts | 13 | export async function revokeSessionAndClearClientState(accessToken: string | null): Promise<void> { | CODE |
| LOW | …app/(dashboard)/hooks/useHideAutoRouterAnnouncement.ts | 33 | export function useHideAutoRouterAnnouncement() { | CODE |
| LOW | …/app/(dashboard)/users/_components/view_users.test.tsx | 41 | DefaultUserSettingsForm: function DefaultUserSettingsFormMock() { | CODE |
| LOW | …-servers/_components/MCPServerUserCredentialsPanel.tsx | 123 | export function MCPServerUserCredentialsPanel({ | CODE |
| LOW | …cp-servers/_components/PassthroughAuthorizeSection.tsx | 38 | export default function PassthroughAuthorizeSection({ | CODE |
| LOW | ui/litellm-dashboard/src/utils/activityTimestamp.ts | 31 | export function localTimeZoneAbbreviation(at: Date = new Date()): string { | CODE |
| LOW | ui/litellm-dashboard/src/utils/mcpHeaderUtils.ts | 7 | export function sanitizeMcpAliasForHeader(alias: string): string { | CODE |
| LOW | ui/litellm-dashboard/src/utils/mcpHeaderUtils.ts | 22 | export function buildMcpPassthroughAuthHeader( | CODE |
| LOW | ui/litellm-dashboard/src/utils/keyExpiryUtils.ts | 41 | export function calculateExpiryPreviewFromDuration(duration: string | undefined): string | null { | CODE |
| LOW | ui/litellm-dashboard/src/components/networking.tsx | 495 | export function setGlobalLitellmHeaderName(headerName: string = "Authorization") { | CODE |
| LOW | ui/litellm-dashboard/src/components/networking.tsx | 500 | export function getGlobalLitellmHeaderName(): string { | CODE |
| LOW | …oard/src/components/update_model_credentials_modal.tsx | 31 | export default function UpdateModelCredentialsModal({ | CODE |
| LOW | ui/litellm-dashboard/src/components/ui/chart.tsx | 303 | function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) { | CODE |
| LOW | …InterceptionSettings/WebSearchInterceptionSettings.tsx | 128 | function WebSearchInterceptionForm({ accessToken, initial, schema }: WebSearchInterceptionFormProps) { | CODE |
| LOW | …InterceptionSettings/WebSearchInterceptionSettings.tsx | 263 | export default function WebSearchInterceptionSettings() { | CODE |
| LOW | …ings/HashicorpVault/HashicorpVaultEmptyPlaceholder.tsx | 9 | export default function HashicorpVaultEmptyPlaceholder({ onAdd }: HashicorpVaultEmptyPlaceholderProps) { | CODE |
| LOW | …minSettings/SSOSettings/SSOSettingsLoadingSkeleton.tsx | 10 | export default function SSOSettingsLoadingSkeleton() { | CODE |
| LOW | …inSettings/SSOSettings/SSOSettingsEmptyPlaceholder.tsx | 9 | export default function SSOSettingsEmptyPlaceholder({ onAdd }: SSOSettingsEmptyPlaceholderProps) { | CODE |
| LOW | …ettings/UISettings/TeamAdminEditableFieldsSettings.tsx | 52 | export default function TeamAdminEditableFieldsSettings() { | CODE |
| LOW | …ettings/UISettings/TeamAdminEditableFieldsSettings.tsx | 100 | function TeamAdminEditableFieldsForm({ | CODE |
| LOW | …CPSemanticFilterSettings/MCPSemanticFilterSettings.tsx | 103 | export default function MCPSemanticFilterSettings({ accessToken }: MCPSemanticFilterSettingsProps) { | CODE |
| LOW | …PSemanticFilterSettings/MCPSemanticFilterTestPanel.tsx | 24 | export default function MCPSemanticFilterTestPanel({ | CODE |
| LOW | …onents/Settings/RouterSettings/Fallbacks/Fallbacks.tsx | 77 | async function testFallbackModelResponse(selectedModel: string, accessToken: string) { | CODE |
| LOW | …ents/PassThroughSettings/PassThroughEndpointsTable.tsx | 30 | export function PassThroughEndpointsTable({ | CODE |
| LOW | …m-dashboard/src/components/llm_calls/responses_api.tsx | 63 | export async function makeOpenAIResponsesRequest( | CODE |
| LOW | …d/src/components/llm_calls/code_interpreter_handler.ts | 27 | export function handleCodeInterpreterCall(event: any, state: CodeInterpreterState): CodeInterpreterState { | CODE |
| LOW | …d/src/components/llm_calls/code_interpreter_handler.ts | 41 | export function handleCodeInterpreterOutput( | CODE |
| LOW | …dashboard/src/components/llm_calls/chat_completion.tsx | 26 | export async function makeOpenAIChatCompletionRequest( | CODE |
| LOW | …rd/src/components/shared/table_cells/AutoRouterTag.tsx | 14 | export function AutoRouterModelGroupsProvider({ children }: { children: ReactNode }) { | CODE |
| LOW | …rd/src/components/shared/table_cells/AutoRouterTag.tsx | 24 | export function useIsAutoRoutedModelGroup(modelGroup?: string | null): boolean { | CODE |
| LOW | …nents/shared/DataTable/usePersistedColumnVisibility.ts | 75 | export function usePersistedColumnVisibility( | CODE |
| LOW | …src/components/model_add/GithubCopilotConnectModal.tsx | 28 | export default function GithubCopilotConnectModal({ | CODE |
| LOW | …ashboard/src/components/model_add/FederationFields.tsx | 112 | function AnthropicFederationFields({ | CODE |
| LOW | …rd/src/components/model_add/credential_form_helpers.ts | 38 | export function resetCredentialFormOnProviderChange( | CODE |
| LOW | …ard/src/components/logs/detail/RoutingDecisionCard.tsx | 63 | function describeScoreAgainstBoundaries( | CODE |
| LOW | …ard/src/components/logs/detail/RoutingDecisionCard.tsx | 100 | function describeReasoningOverride(tierLabel: string | undefined, floor: number | undefined): string { | CODE |
| LOW | …/litellm-dashboard/src/components/logs/detail/utils.ts | 63 | export function normalizeGuardrailEntries(guardrailInfo: any): any[] { | CODE |
| LOW | …/litellm-dashboard/src/components/logs/detail/utils.ts | 74 | export function calculateTotalMaskedEntities(entries: any[]): number { | CODE |
| 70225 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 62 | // ── design tokens ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 92 | // ── helpers ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 122 | // ── status dot ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 128 | // ── truncated text value ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 147 | // ── metadata card ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 229 | // ── gantt timeline ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 340 | // ── message row ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 359 | // ── collapsible section ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …shboard/src/app/(dashboard)/workflows/WorkflowRuns.tsx | 379 | // ── main component ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/(dashboard)/policies/_components/add_policy_form.tsx | 333 | // ── Mode Picker Step ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/(dashboard)/policies/_components/add_policy_form.tsx | 362 | // ── Simple Form Step ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 106 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 108 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 217 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 219 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 256 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 258 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 516 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 518 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 663 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 665 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 770 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 772 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 1211 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 1213 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 1446 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …hboard)/policies/_components/pipeline_flow_builder.tsx | 1448 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/app/(dashboard)/hooks/guardrails/useGuardrails.ts | 6 | // ── Types ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/app/(dashboard)/hooks/guardrails/useGuardrails.ts | 30 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/(dashboard)/hooks/guardrails/useRegisterGuardrail.ts | 6 | // ── Types ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/(dashboard)/hooks/guardrails/useRegisterGuardrail.ts | 22 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/(dashboard)/hooks/guardrails/useRegisterGuardrail.ts | 50 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/app/(dashboard)/hooks/projects/useProjectDetails.ts | 7 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/app/(dashboard)/hooks/projects/useProjectDetails.ts | 31 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/app/(dashboard)/hooks/projects/useUpdateProject.ts | 6 | // ── Types ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/app/(dashboard)/hooks/projects/useUpdateProject.ts | 23 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/app/(dashboard)/hooks/projects/useUpdateProject.ts | 52 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …oard/src/app/(dashboard)/hooks/projects/useProjects.ts | 7 | // ── Types ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …oard/src/app/(dashboard)/hooks/projects/useProjects.ts | 41 | // ── Query keys (shared across project hooks) ───────────────────────────────── | COMMENT |
| MEDIUM | …oard/src/app/(dashboard)/hooks/projects/useProjects.ts | 45 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …oard/src/app/(dashboard)/hooks/projects/useProjects.ts | 69 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/app/(dashboard)/hooks/projects/useCreateProject.ts | 6 | // ── Types ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/app/(dashboard)/hooks/projects/useCreateProject.ts | 23 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …src/app/(dashboard)/hooks/projects/useCreateProject.ts | 48 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/src/app/(dashboard)/hooks/keys/useResetKeySpend.ts | 6 | // ── Types ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/src/app/(dashboard)/hooks/keys/useResetKeySpend.ts | 16 | // ── Fetch function ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/src/app/(dashboard)/hooks/keys/useResetKeySpend.ts | 41 | // ── Hook ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …dashboard)/hooks/accessGroups/useAccessGroupDetails.ts | 7 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …dashboard)/hooks/accessGroups/useAccessGroupDetails.ts | 31 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …/app/(dashboard)/hooks/accessGroups/useAccessGroups.ts | 8 | // ── Types ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …/app/(dashboard)/hooks/accessGroups/useAccessGroups.ts | 12 | // ── Query keys (shared across access-group hooks) ──────────────────────────── | COMMENT |
| MEDIUM⚡ | …/app/(dashboard)/hooks/accessGroups/useAccessGroups.ts | 16 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/app/(dashboard)/hooks/accessGroups/useAccessGroups.ts | 40 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …(dashboard)/hooks/accessGroups/useDeleteAccessGroup.ts | 6 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …(dashboard)/hooks/accessGroups/useDeleteAccessGroup.ts | 30 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/(dashboard)/hooks/accessGroups/useEditAccessGroup.ts | 6 | // ── Types ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/(dashboard)/hooks/accessGroups/useEditAccessGroup.ts | 23 | // ── Fetch function ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …p/(dashboard)/hooks/accessGroups/useEditAccessGroup.ts | 52 | // ── Hook ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …oard)/mcp-servers/_components/OAuthFormFields.test.tsx | 7 | // ── tests ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …oard)/mcp-servers/_components/OAuthFormFields.test.tsx | 14 | // ── visibility by flow type ───────────────────────────────────────────────── | COMMENT |
| 3160 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tellm-dashboard/scripts/generate_compliance_prompts.py | 85 | print(f"Error: CSV file not found: {csv_path}", file=sys.stderr) | CODE |
| MEDIUM | …tellm-dashboard/scripts/generate_compliance_prompts.py | 95 | print("Error: CSV file is empty.", file=sys.stderr) | CODE |
| LOW | …/litellm-dashboard/src/components/public_model_hub.tsx | 1071 | except Exception as e_extended: | CODE |
| LOW | …/litellm-dashboard/src/components/public_model_hub.tsx | 1120 | except Exception as e_extended: | CODE |
| MEDIUM⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 267 | print(f"An error occurred: {e}") | CODE |
| LOW⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 266 | except Exception as e: | CODE |
| MEDIUM⚡ | ci_cd/baseline_db.py | 52 | print(f"Error running prisma command: {e.stderr}") | CODE |
| LOW⚡ | ci_cd/baseline_db.py | 54 | except Exception as e: | CODE |
| MEDIUM⚡ | ci_cd/baseline_db.py | 55 | print(f"Error creating baseline migration: {str(e)}") | CODE |
| MEDIUM⚡ | ci_cd/run_migration.py | 339 | print(f"Error generating migration: {e.stderr}") | CODE |
| LOW⚡ | ci_cd/run_migration.py | 341 | except Exception as e: | CODE |
| MEDIUM⚡ | ci_cd/run_migration.py | 342 | print(f"Error creating migration: {str(e)}") | CODE |
| LOW | enterprise/litellm_enterprise/proxy/liteadmin.py | 148 | except Exception: | CODE |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 145 | except Exception as e: | CODE |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 215 | except Exception as e: | CODE |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 265 | except Exception as e: | CODE |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 330 | except Exception as e: | CODE |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 372 | except Exception as e: | CODE |
| LOW⚡ | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 141 | except Exception as probe_err: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 171 | except Exception as e: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 186 | except Exception as e: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 199 | except Exception as e: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 221 | except Exception as e: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 233 | except Exception as e: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 357 | except Exception as db_err: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 386 | except Exception as db_err: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 407 | except Exception as db_err: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 494 | except Exception as db_err: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 632 | except Exception: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 672 | except Exception: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 717 | except Exception: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 801 | except Exception: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 854 | except Exception as _e: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 943 | except Exception: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 970 | except Exception as e: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 978 | except Exception as cleanup_err: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 1010 | except Exception as query_err: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 1042 | except Exception as e: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 1065 | except Exception as tracking_err: | CODE |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 1099 | except Exception as db_err: | CODE |
| LOW | …_enterprise/proxy/common_utils/check_responses_cost.py | 156 | except Exception as cleanup_err: | CODE |
| LOW | …_enterprise/proxy/common_utils/check_responses_cost.py | 200 | except Exception as e: | CODE |
| LOW | …_enterprise/proxy/common_utils/check_responses_cost.py | 220 | except Exception as e: | CODE |
| LOW | …ise/litellm_enterprise/proxy/auth/user_api_key_auth.py | 29 | except Exception as e: | CODE |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 153 | except Exception as e: | CODE |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 165 | except Exception as e: | CODE |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2075 | except Exception: | CODE |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2080 | except Exception as e: | CODE |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2149 | except Exception as e: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 212 | except Exception as error: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 467 | except Exception as e: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 750 | except Exception as error: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 819 | except Exception as error: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1083 | except Exception as e: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1848 | except Exception: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1946 | except Exception as error: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1972 | except Exception as e: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2106 | except Exception as e: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2319 | except Exception as e: | CODE |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2385 | except Exception as e: | CODE |
| 5541 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ci_cd/cost_map_guard.py | 11 | CODE | |
| LOW | ci_cd/generate_model_prices_schema.py | 1 | CODE | |
| LOW | enterprise/__init__.py | 1 | CODE | |
| LOW | enterprise/litellm_enterprise/proxy/liteadmin.py | 1 | CODE | |
| LOW | …terprise/litellm_enterprise/proxy/enterprise_routes.py | 7 | CODE | |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 11 | CODE | |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 37 | CODE | |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 5 | CODE | |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 28 | CODE | |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 30 | CODE | |
| LOW | …_enterprise/proxy/common_utils/check_responses_cost.py | 26 | CODE | |
| LOW | enterprise/litellm_enterprise/proxy/auth/__init__.py | 8 | CODE | |
| LOW | …itellm_enterprise/proxy/hooks/managed_vector_stores.py | 28 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 90 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 122 | CODE | |
| LOW | …litellm_enterprise/proxy/ui_crud_endpoints/__init__.py | 1 | CODE | |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 22 | CODE | |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 46 | CODE | |
| LOW | …lm_enterprise/enterprise_callbacks/secret_detection.py | 35 | CODE | |
| LOW | …litellm_enterprise/enterprise_callbacks/llama_guard.py | 18 | CODE | |
| LOW | enterprise/enterprise_hooks/aporia_ai.py | 18 | CODE | |
| LOW | enterprise/enterprise_hooks/aporia_ai.py | 22 | CODE | |
| LOW | tests/_flush_vcr_cache.py | 1 | CODE | |
| LOW | tests/_flush_vcr_cache.py | 3 | CODE | |
| LOW | tests/test_team_logging.py | 4 | CODE | |
| LOW | tests/test_team_logging.py | 5 | CODE | |
| LOW | tests/test_team_logging.py | 6 | CODE | |
| LOW | tests/test_team_logging.py | 8 | CODE | |
| LOW | tests/_openai_record_replay_proxy.py | 34 | CODE | |
| LOW | tests/_vcr_redis_persister.py | 1 | CODE | |
| LOW | tests/fake_openai_endpoint.py | 24 | CODE | |
| LOW | tests/_ws_vcr.py | 20 | CODE | |
| LOW | tests/test_rust_python_harness.py | 1 | CODE | |
| LOW | tests/eval_swe_bench.py | 30 | CODE | |
| LOW | tests/_vcr_conftest_common.py | 6 | CODE | |
| LOW | tests/test_proxy_server_non_root.py | 13 | CODE | |
| LOW | tests/_fake_openai_endpoint_server.py | 18 | CODE | |
| LOW | tests/capturing_transport.py | 1 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 1 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 2 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 3 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 5 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 5 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 5 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 6 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 6 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 6 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 8 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 9 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 10 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 10 | CODE | |
| LOW | tests/logging_callback_tests/base_test.py | 11 | CODE | |
| LOW | tests/logging_callback_tests/conftest.py | 24 | CODE | |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 1 | CODE | |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 8 | CODE | |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 11 | CODE | |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 12 | CODE | |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 16 | CODE | |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 18 | CODE | |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 19 | CODE | |
| 5812 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 778 | except (IndexError, AttributeError): | CODE |
| HIGH | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 801 | except Exception: | CODE |
| HIGH | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2075 | except Exception: | CODE |
| HIGH | …e/litellm_enterprise/enterprise_callbacks/llm_guard.py | 46 | except Exception: | CODE |
| HIGH | …litellm_enterprise/enterprise_callbacks/llama_guard.py | 59 | except Exception: | CODE |
| HIGH | enterprise/enterprise_hooks/google_text_moderation.py | 85 | except Exception: | CODE |
| HIGH | tests/test_keys.py | 81 | except Exception as e: | CODE |
| HIGH | tests/_vcr_conftest_common.py | 83 | except OSError: | CODE |
| HIGH | tests/_vcr_conftest_common.py | 904 | except (AttributeError, TypeError): | CODE |
| HIGH | tests/_vcr_conftest_common.py | 972 | except (AttributeError, TypeError): | CODE |
| HIGH | tests/_vcr_conftest_common.py | 369 | except (TypeError, ValueError): | CODE |
| HIGH | tests/_vcr_conftest_common.py | 942 | except (TypeError, AttributeError): | CODE |
| HIGH | tests/_vcr_conftest_common.py | 978 | except (AttributeError, TypeError): | CODE |
| HIGH | tests/_vcr_conftest_common.py | 101 | except OSError: | CODE |
| HIGH | tests/_vcr_conftest_common.py | 823 | except (KeyError, TypeError): | CODE |
| HIGH | tests/_vcr_conftest_common.py | 1705 | except Exception: | CODE |
| HIGH | tests/_vcr_conftest_common.py | 1714 | except Exception: | CODE |
| HIGH | tests/test_models.py | 142 | except Exception: | CODE |
| HIGH | tests/_process_helpers.py | 41 | except ChildProcessError: | CODE |
| HIGH | tests/logging_callback_tests/test_gcs_pub_sub.py | 79 | except json.JSONDecodeError: | CODE |
| HIGH | tests/logging_callback_tests/test_gcs_pub_sub.py | 84 | except json.JSONDecodeError: | CODE |
| HIGH | tests/logging_callback_tests/test_pagerduty_alerting.py | 31 | except litellm.RateLimitError: | CODE |
| HIGH | tests/logging_callback_tests/test_pagerduty_alerting.py | 52 | except litellm.RateLimitError: | CODE |
| HIGH | tests/logging_callback_tests/test_pagerduty_alerting.py | 65 | except litellm.RateLimitError: | CODE |
| HIGH | tests/unit/test_utils.py | 9449 | except Exception: | CODE |
| HIGH | tests/unit/test_utils.py | 9459 | except Exception as e: | CODE |
| HIGH | tests/unit/test_utils.py | 1917 | except Exception: | CODE |
| HIGH | tests/unit/test_utils.py | 9540 | except Exception: | CODE |
| HIGH | tests/unit/test_utils.py | 9555 | except Exception: | CODE |
| HIGH | tests/unit/test_xai_responses_auto_routing.py | 188 | except Exception: | CODE |
| HIGH | tests/unit/test_exception_mapping_request_attribute.py | 79 | except Exception: | CODE |
| HIGH | tests/unit/test_exception_mapping_request_attribute.py | 170 | except litellm.ContextWindowExceededError: | CODE |
| HIGH | tests/unit/test_exception_mapping_request_attribute.py | 173 | except Exception: | CODE |
| HIGH | tests/unit/test_exception_mapping_request_attribute.py | 199 | except Exception: | CODE |
| HIGH | tests/unit/test_exception_mapping_request_attribute.py | 226 | except APIConnectionError: | CODE |
| HIGH | tests/unit/test_exception_mapping_request_attribute.py | 229 | except Exception: | CODE |
| HIGH | tests/unit/test_exception_mapping_request_attribute.py | 255 | except Exception: | CODE |
| HIGH | tests/unit/test_exception_mapping_request_attribute.py | 144 | except Exception: | CODE |
| HIGH | tests/unit/test_rate_limit_error_unification.py | 1574 | except Exception: | CODE |
| HIGH | tests/unit/test_anthropic_beta_headers_filtering.py | 181 | except Exception: | CODE |
| HIGH | tests/unit/test_anthropic_beta_headers_filtering.py | 231 | except Exception: | CODE |
| HIGH | tests/unit/test_anthropic_beta_headers_filtering.py | 280 | except Exception: | CODE |
| HIGH | tests/unit/test_anthropic_beta_headers_filtering.py | 353 | except Exception: | CODE |
| HIGH | tests/unit/test_scheduler.py | 432 | except Exception: | CODE |
| HIGH | tests/unit/test_cost_calculation_log_level.py | 59 | except Exception: | CODE |
| HIGH | tests/unit/test_cost_calculation_log_level.py | 118 | except Exception: | CODE |
| HIGH | tests/unit/test_vcr_classification.py | 567 | except Exception: | CODE |
| HIGH | tests/unit/test_vcr_classification.py | 571 | except Exception: | CODE |
| HIGH | tests/unit/test_no_top_level_test_invocations.py | 144 | except Exception: | CODE |
| HIGH | tests/unit/test_main.py | 298 | except Exception as e: | CODE |
| HIGH | tests/unit/test_main.py | 5206 | except Exception as e: | CODE |
| HIGH | tests/unit/test_main.py | 5552 | except Exception: | CODE |
| HIGH | tests/unit/test_main.py | 5584 | except Exception: | CODE |
| HIGH | tests/unit/test_pydantic_namespaces.py | 122 | except Exception: | CODE |
| HIGH | tests/unit/test_chat_ui_responses_session.py | 45 | except Exception: | CODE |
| HIGH | tests/unit/test_chat_ui_responses_session.py | 81 | except Exception: | CODE |
| HIGH | tests/unit/test_chat_ui_responses_session.py | 96 | except Exception: | CODE |
| HIGH | tests/unit/test_chat_ui_responses_session.py | 127 | except Exception: | CODE |
| HIGH | …nteractions/test_gemini_interactions_transformation.py | 345 | except StopIteration: | CODE |
| HIGH | …nteractions/test_gemini_interactions_transformation.py | 389 | except StopIteration: | CODE |
| 731 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | terraform/litellm/gcp/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | …aform/litellm/gcp/examples/default/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | terraform/litellm/aws/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | …aform/litellm/aws/examples/default/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM⚡ | …/litellm-dashboard/src/components/public_model_hub.tsx | 1284 | # Create a client that connects to the server | COMMENT |
| MEDIUM⚡ | …/litellm-dashboard/src/components/public_model_hub.tsx | 1324 | # Create a client that connects to the server | COMMENT |
| MEDIUM⚡ | …tellm-dashboard/src/components/AIHub/ModelHubTable.tsx | 1121 | # Create a client that connects to the server | COMMENT |
| MEDIUM | …terprise/enterprise_callbacks/send_emails/endpoints.py | 138 | # Create a response with all events (enabled or disabled) | COMMENT |
| MEDIUM | tests/logging_callback_tests/base_test.py | 35 | # Create a mock response object with the structure you need | COMMENT |
| MEDIUM | tests/logging_callback_tests/test_gcs_pub_sub.py | 189 | # Create a mock for the async_httpx_client's post method | COMMENT |
| MEDIUM | tests/logging_callback_tests/test_gcs_pub_sub.py | 245 | # Create a mock for the async_httpx_client's post method | COMMENT |
| MEDIUM⚡ | tests/litellm_utils_tests/test_secret_manager.py | 23 | # Define the path to the vertex_key.json file | COMMENT |
| MEDIUM | tests/litellm_utils_tests/test_secret_manager.py | 53 | # Create a temporary file | COMMENT |
| MEDIUM | tests/litellm_utils_tests/test_hashicorp.py | 288 | # Create a new instance with TLS cert config | COMMENT |
| MEDIUM | tests/unit/test_redis.py | 1105 | # Create a mock connection pool | COMMENT |
| MEDIUM | tests/unit/test_utils.py | 7819 | # Create a test EmbeddingResponse with usage data | COMMENT |
| MEDIUM | tests/unit/test_utils.py | 8581 | # Create a mock CustomLogger class | COMMENT |
| MEDIUM⚡ | tests/unit/test_video_generation.py | 1574 | # Create an encoded video_id | COMMENT |
| MEDIUM | tests/unit/test_video_generation.py | 1530 | # Create an encoded video_id that includes provider and model_id | COMMENT |
| MEDIUM | tests/unit/test_video_generation.py | 1590 | # Create a coroutine that will be added to tasks | COMMENT |
| MEDIUM | tests/unit/test_video_generation.py | 1643 | # Create an encoded video_id | COMMENT |
| MEDIUM | tests/unit/test_video_generation.py | 1659 | # Create a coroutine that will be added to tasks | COMMENT |
| MEDIUM | tests/unit/test_video_generation.py | 1712 | # Create an encoded video_id | COMMENT |
| MEDIUM | tests/unit/test_video_generation.py | 1728 | # Create a coroutine that will be added to tasks | COMMENT |
| MEDIUM | tests/unit/test_shared_session_integration.py | 58 | # Create a mock session | COMMENT |
| MEDIUM | tests/unit/test_router_google_genai.py | 18 | # Create a router instance | COMMENT |
| MEDIUM | tests/unit/test_router_google_genai.py | 30 | # Create a mock response in Google GenAI format | COMMENT |
| MEDIUM | tests/unit/test_router_google_genai.py | 60 | # Create a router instance | COMMENT |
| MEDIUM | tests/unit/test_router_google_genai.py | 72 | # Create a mock response in Google GenAI format | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 165 | # Create a mock user from team A without user_id | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 186 | # Create a mock user from team A without user_id | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 206 | # Create a mock user from team A without user_id | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 226 | # Create a mock admin user | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 315 | # Create a mock user from team A | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 348 | # Create a mock user from team A without user_id | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 382 | # Create a mock user from team A | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 412 | # Create a mock user from team A | COMMENT |
| MEDIUM | tests/unit/test_responses_id_security.py | 445 | # Create a mock user from team A | COMMENT |
| MEDIUM | tests/unit/test_cost_calculation_log_level.py | 21 | # Create a custom handler to capture log records | COMMENT |
| MEDIUM | tests/unit/test_cost_calculation_log_level.py | 38 | # Create a mock completion response | COMMENT |
| MEDIUM | tests/unit/test_cost_calculation_log_level.py | 93 | # Create a custom handler to capture log records | COMMENT |
| MEDIUM | tests/unit/test_cost_calculation_log_level.py | 110 | # Create a mock usage object | COMMENT |
| MEDIUM | tests/unit/test_lowest_latency_zero_tokens.py | 35 | # Create a ModelResponse with zero completion tokens (as reported in issue) | COMMENT |
| MEDIUM | tests/unit/test_lowest_latency_zero_tokens.py | 103 | # Create a ModelResponse with zero completion tokens | COMMENT |
| MEDIUM | tests/unit/test_main.py | 3171 | # Create a ModelResponse object | COMMENT |
| MEDIUM | tests/unit/test_main.py | 3229 | # Create a ModelResponse object | COMMENT |
| MEDIUM | tests/unit/test_cost_calculator.py | 2108 | # Create a new response without service_tier attribute so it falls back to usage | COMMENT |
| MEDIUM | tests/unit/test_router_per_deployment_num_retries.py | 41 | # Create a mock exception without num_retries | COMMENT |
| MEDIUM | tests/unit/test_router_per_deployment_num_retries.py | 75 | # Create an exception that already has num_retries | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_id_header_propagation.py | 20 | # Create a ProxyBaseLLMRequestProcessing instance | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_id_header_propagation.py | 23 | # Create a mock logging object with model_info in litellm_params | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_id_header_propagation.py | 76 | # Create a processor with model_info in data | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_id_header_propagation.py | 81 | # Create a mock logging object without model_info | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_id_header_propagation.py | 130 | # Create a processor with model_info in both places | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_id_header_propagation.py | 135 | # Create a mock logging object with model_info | COMMENT |
| MEDIUM | tests/unit/proxy/test_model_id_header_propagation.py | 41 | # Create a mock logging object with model_info nested in metadata | COMMENT |
| MEDIUM | tests/unit/proxy/test_model_id_header_propagation.py | 59 | # Create a mock logging object with model_info in kwargs | COMMENT |
| MEDIUM | tests/unit/proxy/test_model_id_header_propagation.py | 96 | # Create a processor with model_info in data | COMMENT |
| MEDIUM | tests/unit/proxy/test_model_id_header_propagation.py | 115 | # Create a mock logging object without model_info anywhere | COMMENT |
| MEDIUM | tests/unit/proxy/test_proxy_config_unit_test.py | 253 | # Create a temporary config file with json_logs: true | COMMENT |
| 889 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_keys.py | 0 | make sure only models user has access to are returned | STRING |
| HIGH | tests/test_users.py | 0 | make sure only models user has access to are returned | STRING |
| HIGH | tests/test_models.py | 0 | make sure only models user has access to are returned | STRING |
| HIGH | tests/large_text.py | 0 | alexander the great this article is about the ancient king of macedonia. for other uses, see alexander the great (disamb | STRING |
| HIGH | tests/proxy_unit_tests/large_text.py | 0 | alexander the great this article is about the ancient king of macedonia. for other uses, see alexander the great (disamb | STRING |
| HIGH | tests/local_testing/large_text.py | 0 | alexander the great this article is about the ancient king of macedonia. for other uses, see alexander the great (disamb | STRING |
| HIGH | tests/logging_callback_tests/base_test.py | 0 | abstract base test class that enforces a common test across all test classes. | STRING |
| HIGH | …sts/pass_through_tests/base_anthropic_messages_test.py | 0 | abstract base test class that enforces a common test across all test classes. | STRING |
| HIGH | tests/vector_store_tests/base_vector_store_test.py | 0 | abstract base test class that enforces a common test across all test classes. | STRING |
| HIGH | tests/llm_translation/base_rerank_unit_tests.py | 0 | abstract base test class that enforces a common test across all test classes. | STRING |
| HIGH | tests/llm_translation/base_embedding_unit_tests.py | 0 | abstract base test class that enforces a common test across all test classes. | STRING |
| HIGH | tests/llm_translation/base_llm_unit_tests.py | 0 | abstract base test class that enforces a common test across all test classes. | STRING |
| HIGH | tests/image_gen_tests/base_image_generation_test.py | 0 | abstract base test class that enforces a common test across all test classes. | STRING |
| HIGH | tests/logging_callback_tests/conftest.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/integrations/test_humanloop.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/integrations/test_opentelemetry.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/integrations/test_posthog.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/integrations/test_custom_logger.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/integrations/test_s3_v2.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/integrations/test_langsmith.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | …/integrations/generic_api/test_generic_api_callback.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | …_core_utils/test_initialize_dynamic_callback_params.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/litellm_core_utils/test_redact_messages.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/litellm_core_utils/test_logging_utils.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/unit/litellm_core_utils/test_litellm_logging.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | …unit/litellm_core_utils/test_custom_logger_registry.py | 0 | per-function isolation fixture. resets litellm state to the true defaults captured at conftest import time, then restore | STRING |
| HIGH | tests/logging_callback_tests/conftest.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/test_utils.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/test_scheduler.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/test_no_top_level_test_invocations.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/test_pydantic_namespaces.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/types/test_guardrails.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/types/test_files.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …sts/unit/proxy/common_utils/test_http_parsing_utils.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …/proxy/guardrails/guardrail_hooks/test_lakera_ai_v2.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …rdrail_hooks/zscaler_ai_guard/test_zscaler_ai_guard.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …nit/proxy/guardrails/guardrail_hooks/noma/test_noma.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …oxy/guardrails/guardrail_hooks/javelin/test_javelin.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …y/guardrails/guardrail_hooks/dynamoai/test_dynamoai.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …il_hooks/litellm_content_filter/test_content_filter.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …ts/unit/proxy/hooks/test_prompt_injection_detection.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/proxy/hooks/test_dynamic_rate_limiter.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …it/proxy/management_endpoints/test_sso_helper_utils.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/test_humanloop.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/test_opentelemetry.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/test_posthog.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/test_helicone.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/test_custom_logger.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/test_s3_v2.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/test_langsmith.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/arize/test_arize_phoenix.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/arize/test_arize.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …/integrations/generic_api/test_generic_api_callback.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/integrations/opik/test_opik.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …unit/litellm_core_utils/test_get_llm_provider_logic.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …sts/unit/litellm_core_utils/test_get_model_cost_map.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | …_core_utils/test_initialize_dynamic_callback_params.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/litellm_core_utils/test_redact_messages.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/litellm_core_utils/test_logging_utils.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| HIGH | tests/unit/litellm_core_utils/test_litellm_logging.py | 0 | module-scoped setup. reloads litellm only in single-process mode (skipped under xdist to avoid cross-worker interference | STRING |
| 505 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ci_cd/run_migration.py | 221 | CODE | |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 156 | CODE | |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 275 | CODE | |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 720 | CODE | |
| LOW | …ellm_enterprise/proxy/common_utils/check_batch_cost.py | 959 | CODE | |
| LOW | …ise/litellm_enterprise/proxy/auth/user_api_key_auth.py | 9 | CODE | |
| LOW | …itellm_enterprise/proxy/hooks/managed_vector_stores.py | 301 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1186 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1389 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1409 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1448 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1765 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1917 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2277 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2410 | CODE | |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 184 | CODE | |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 666 | CODE | |
| LOW | …e/litellm_enterprise/enterprise_callbacks/llm_guard.py | 95 | CODE | |
| LOW | …m_enterprise/enterprise_callbacks/callback_controls.py | 15 | CODE | |
| LOW | …erprise/enterprise_callbacks/send_emails/base_email.py | 446 | CODE | |
| LOW | …terprise/enterprise_callbacks/send_emails/endpoints.py | 26 | CODE | |
| LOW | enterprise/enterprise_hooks/blocked_user_list.py | 62 | CODE | |
| LOW | tests/eval_swe_bench.py | 212 | CODE | |
| LOW | tests/eval_swe_bench.py | 249 | CODE | |
| LOW | tests/eval_swe_bench.py | 359 | CODE | |
| LOW | tests/_vcr_conftest_common.py | 265 | CODE | |
| LOW | tests/logging_callback_tests/test_langfuse_e2e_test.py | 64 | CODE | |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 49 | CODE | |
| LOW | tests/unit/test_utils.py | 761 | CODE | |
| LOW | tests/unit/test_utils.py | 1322 | CODE | |
| LOW | tests/unit/test_utils.py | 8273 | CODE | |
| LOW | tests/unit/test_router_retry_backoff_headers.py | 15 | CODE | |
| LOW | tests/unit/test_video_generation.py | 1769 | CODE | |
| LOW | tests/unit/test_video_generation.py | 1813 | CODE | |
| LOW | tests/unit/test_video_generation.py | 1856 | CODE | |
| LOW | tests/unit/test_video_generation.py | 513 | CODE | |
| LOW | tests/unit/test_add_deployment_no_master_key.py | 117 | CODE | |
| LOW | tests/unit/test_redact_string_in_error_paths.py | 146 | CODE | |
| LOW | tests/unit/test_anthropic_beta_headers_filtering.py | 149 | CODE | |
| LOW | tests/unit/test_anthropic_beta_headers_filtering.py | 197 | CODE | |
| LOW | tests/unit/test_anthropic_beta_headers_filtering.py | 247 | CODE | |
| LOW | tests/unit/test_anthropic_beta_headers_filtering.py | 314 | CODE | |
| LOW | tests/unit/test_responses_id_security.py | 311 | CODE | |
| LOW | tests/unit/test_responses_id_security.py | 344 | CODE | |
| LOW | tests/unit/test_responses_id_security.py | 408 | CODE | |
| LOW | tests/unit/test_responses_id_security.py | 441 | CODE | |
| LOW | tests/unit/test_responses_id_security.py | 499 | CODE | |
| LOW | tests/unit/test_utils_get_model_info.py | 227 | CODE | |
| LOW | tests/unit/test_main.py | 249 | CODE | |
| LOW | tests/unit/test_main.py | 4962 | CODE | |
| LOW | tests/unit/test_main.py | 5471 | CODE | |
| LOW | tests/unit/test_main.py | 5634 | CODE | |
| LOW | tests/unit/test_main.py | 5701 | CODE | |
| LOW | tests/unit/interactions/test_openapi_compliance.py | 107 | CODE | |
| LOW | tests/unit/proxy/test_proxy_reject_logging.py | 135 | CODE | |
| LOW | tests/unit/proxy/test_chat_completion_metadata.py | 46 | CODE | |
| LOW | tests/unit/proxy/test_litellm_pre_call_utils.py | 2870 | CODE | |
| LOW | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 4454 | CODE | |
| LOW | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 6476 | CODE | |
| LOW | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 6871 | CODE | |
| 2080 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | AGENTS.md | 42 | Never use `pytest` commands or the like as "Screenshots / Proof of Fix". We prefer curl'ing a live proxy instance runnin | CODE |
| MEDIUM | terraform/provider/docs/resources/vector_store.md | 118 | ### Vertex AI RAG Engine | COMMENT |
| MEDIUM | terraform/provider/docs/resources/vector_store.md | 243 | ### Vertex AI RAG Engine | COMMENT |
| MEDIUM | terraform/provider/docs/resources/vector_store.md | 247 | vector_store_id = "6917529027641081856" # Your Vertex AI RAG Engine ID | CODE |
| MEDIUM | …shboard)/guardrails/_components/add_guardrail_form.tsx | 588 | // For some guardrails, the config values need to be in litellm_params | COMMENT |
| MEDIUM | …guardrails/_components/custom_code/CustomCodeModal.tsx | 520 | onClick={() => window.open("https://models.litellm.ai/guardrails", "_blank")} | CODE |
| MEDIUM | …guardrails/_components/custom_code/CustomCodeModal.tsx | 725 | <Button size="sm" onClick={() => window.open("https://github.com/BerriAI/litellm-guardrails", "_blank")}> | CODE |
| MEDIUM | …oard)/playground/llm_calls/anthropic_messages.test.tsx | 22 | undefined, // guardrails | CODE |
| MEDIUM⚡ | …/app/(dashboard)/agents/_components/add_agent_form.tsx | 160 | // Tracing & guardrails state | COMMENT |
| MEDIUM | …ard/src/app/(dashboard)/policies/_components/index.tsx | 74 | href="https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies" | CODE |
| MEDIUM | …ard/src/app/(dashboard)/policies/_components/index.tsx | 343 | // Create selected guardrails | COMMENT |
| MEDIUM | …ard/src/app/(dashboard)/policies/_components/index.tsx | 356 | // Refresh guardrails list | COMMENT |
| MEDIUM | …ard/src/app/(dashboard)/policies/_components/index.tsx | 565 | href="https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies#attachments" | CODE |
| MEDIUM | …c/app/(dashboard)/policies/_components/policy_info.tsx | 65 | // Also fetch resolved guardrails | COMMENT |
| MEDIUM | …rd)/policies/_components/guardrail_selection_modal.tsx | 53 | // Initialize selection: select only new guardrails by default | COMMENT |
| MEDIUM | …ashboard)/policies/_components/ai_suggestion_modal.tsx | 293 | // Keep existing guardrails until streaming completes to avoid temporary empty payloads. | COMMENT |
| MEDIUM | …ashboard)/guardrails-monitor/page.integration.test.tsx | 37 | // `/guardrails/usage/*` aggregates across tenants and is listed in | COMMENT |
| MEDIUM | …app/(dashboard)/hooks/guardrails/useGuardrails.test.ts | 220 | // Mock API returning empty guardrails array | COMMENT |
| MEDIUM | ui/litellm-dashboard/src/components/leftnav.test.tsx | 498 | // than degrade into a leaf link to the non-route `?page=agentic`. | COMMENT |
| MEDIUM | …litellm-dashboard/src/components/ModelInfoEditForm.tsx | 578 | href="https://docs.litellm.ai/docs/proxy/guardrails/quick_start" | CODE |
| MEDIUM | ui/litellm-dashboard/src/components/Teams.tsx | 298 | // Add this useEffect to fetch guardrails | COMMENT |
| MEDIUM | ui/litellm-dashboard/src/components/Teams.tsx | 979 | "https://docs.litellm.ai/docs/proxy/guardrails/quick_start", | CODE |
| MEDIUM | ui/litellm-dashboard/src/components/Teams.tsx | 1041 | "https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies", | CODE |
| MEDIUM | …oard/src/components/llm_calls/chat_completion.test.tsx | 105 | undefined, // guardrails | CODE |
| MEDIUM | …oard/src/components/llm_calls/chat_completion.test.tsx | 168 | undefined, // guardrails | CODE |
| MEDIUM | …oard/src/components/llm_calls/chat_completion.test.tsx | 215 | undefined, // guardrails | CODE |
| MEDIUM | …oard/src/components/llm_calls/chat_completion.test.tsx | 274 | undefined, // guardrails | CODE |
| MEDIUM | …oard/src/components/llm_calls/chat_completion.test.tsx | 346 | undefined, // guardrails | CODE |
| MEDIUM | …oard/src/components/llm_calls/chat_completion.test.tsx | 389 | undefined, // guardrails | CODE |
| MEDIUM | …oard/src/components/llm_calls/chat_completion.test.tsx | 526 | undefined, // guardrails | CODE |
| MEDIUM | …hboard/src/components/llm_calls/responses_api.test.tsx | 113 | undefined, // guardrails | CODE |
| MEDIUM | …hboard/src/components/llm_calls/responses_api.test.tsx | 154 | undefined, // guardrails | CODE |
| MEDIUM | …hboard/src/components/llm_calls/responses_api.test.tsx | 322 | undefined, // guardrails | CODE |
| MEDIUM | …hboard/src/components/llm_calls/responses_api.test.tsx | 387 | undefined, // guardrails | CODE |
| MEDIUM | …hboard/src/components/llm_calls/responses_api.test.tsx | 527 | undefined, // guardrails | CODE |
| MEDIUM | …hboard/src/components/llm_calls/responses_api.test.tsx | 571 | undefined, // guardrails | CODE |
| MEDIUM | …gs/detail/sections/GuardrailViewer/GuardrailViewer.tsx | 399 | // Pre-call guardrails — use modeMatches so array modes (e.g. ["pre_call", "post_call"]) | COMMENT |
| MEDIUM | …gs/detail/sections/GuardrailViewer/GuardrailViewer.tsx | 429 | // During-call guardrails (rare) | COMMENT |
| MEDIUM | …gs/detail/sections/GuardrailViewer/GuardrailViewer.tsx | 439 | // Post-call guardrails | COMMENT |
| MEDIUM | ui/litellm-dashboard/src/components/team/TeamInfo.tsx | 782 | // Fetch resolved guardrails for all policies | COMMENT |
| MEDIUM | ui/litellm-dashboard/src/components/team/TeamInfo.tsx | 1951 | "https://docs.litellm.ai/docs/proxy/guardrails/quick_start", | CODE |
| MEDIUM | ui/litellm-dashboard/src/components/team/TeamInfo.tsx | 2016 | "https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies", | CODE |
| MEDIUM | …m-dashboard/src/components/templates/key_info_view.tsx | 150 | // Fetch resolved guardrails for all policies | COMMENT |
| MEDIUM | …shboard/src/components/add_model/advanced_settings.tsx | 157 | href="https://docs.litellm.ai/docs/proxy/guardrails/quick_start" | CODE |
| MEDIUM | …/add_model/ClassifierPromptEditor.integration.test.tsx | 66 | // The editor is how an operator inspects the rubric before replacing it. Prefilling the agentic | COMMENT |
| MEDIUM | …shboard/src/components/organisms/create_key_button.tsx | 1263 | href="https://docs.litellm.ai/docs/proxy/guardrails/quick_start" | CODE |
| MEDIUM | …shboard/src/components/organisms/create_key_button.tsx | 1303 | href="https://docs.litellm.ai/docs/proxy/guardrails/quick_start" | CODE |
| MEDIUM | …shboard/src/components/organisms/create_key_button.tsx | 1339 | href="https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies" | CODE |
| MEDIUM | ui/litellm-dashboard/src/lib/autorouter_presets.test.ts | 135 | // The lite preset ships the LLM classifier with the bundled agentic rubric rather than an inline | COMMENT |
| MEDIUM | ui/litellm-dashboard/src/lib/autorouter_presets.test.ts | 827 | // Bugbot-found bug class from #35199's history: a classifier/embedding model left selected | COMMENT |
| MEDIUM⚡ | tests/unit/test_rate_limit_error_unification.py | 156 | # Some guardrails wrap their error payload as {"error": {"message": "..."}}. | COMMENT |
| MEDIUM | tests/unit/test_azure_ai_grok_4_3_model_metadata.py | 10 | AZURE_AI_GROK_4_3_SOURCE = "https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/introducing-grok-4-3-on-micro | CODE |
| MEDIUM | tests/unit/types/test_guardrails.py | 2 | ## Unit Tests for guardrails config | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_level_guardrails.py | 153 | # Regression test: pre_call hook must run exactly once with model-level guardrails | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_level_guardrails.py | 304 | # Integration test: post_call_success_hook with model-level guardrails | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_level_guardrails.py | 441 | # Integration test: async_post_call_streaming_iterator_hook with model-level guardrails | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/test_model_level_guardrails.py | 569 | # must run BEFORE pre_call_hook so DB/UI-configured guardrails fire on | COMMENT |
| MEDIUM | tests/unit/proxy/test_model_level_guardrails.py | 205 | # Path B: the router spreads the deployment's model-level guardrails into | COMMENT |
| MEDIUM | tests/unit/proxy/test_model_level_guardrails.py | 335 | # Mock router that returns a deployment with guardrails configured | COMMENT |
| MEDIUM | tests/unit/proxy/test_model_level_guardrails.py | 589 | # and union guardrails across all deployments in the group. | COMMENT |
| 444 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ci_cd/run_migration.py | 74 | print(f" git fetch origin && git rebase origin/{base_branch}", file=out) | CODE |
| HIGH | ci_cd/run_migration.py | 200 | " 1. git fetch origin && git status # confirm branch is up to date", file=out | CODE |
| HIGH | …rprise/proxy/management_endpoints/project_endpoints.py | 275 | A valid quota is a positive integer; null, zero, and negative are rejected | STRING |
| HIGH | tests/unit/test_video_generation.py | 1356 | """first_id / last_id may be absent or null; should not raise.""" | STRING |
| HIGH⚡ | tests/unit/test_assert_workflow_dir_hygiene.py | 114 | directory = _populate(tmp_path, {"deploy.yaml": "on: {workflow_call: null}\njobs: {}\n"}) | CODE |
| HIGH⚡ | tests/unit/test_anthropic_beta_headers_filtering.py | 409 | must be forwarded instead of stripped (it was previously mapped to null, | STRING |
| HIGH⚡ | tests/unit/test_anthropic_beta_headers_filtering.py | 421 | mapped to null) silently re-enables Anthropic's server-side buffering of | STRING |
| HIGH | tests/unit/test_check_licenses.py | 5 | legacy ``info.license`` field null, so the checker must read the new field (and | STRING |
| HIGH⚡ | tests/unit/types/test_types_utils.py | 378 | Test that invalid (non-list, non-null) top_logprobs values are still | STRING |
| HIGH⚡ | tests/unit/types/test_types_utils.py | 379 | rejected by Pydantic validation. The validator only normalizes null, | STRING |
| HIGH | tests/unit/types/llms/test_types_llms_openai.py | 319 | status=null). | STRING |
| HIGH | tests/unit/proxy/test_tracing_endpoints.py | 852 | (b'{"sql": null}', "string_type", ("body", "sql")), | CODE |
| HIGH | tests/unit/proxy/test_litellm_pre_call_utils.py | 9918 | """A caller-supplied litellm_credential_name (empty, null, or another credential) | STRING |
| HIGH⚡ | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 11887 | must stay a deliberate config.yaml act (max_ui_session_budget: null).""" | STRING |
| HIGH | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 3962 | null) must be stored as-is and not gain a max_budget key. | STRING |
| HIGH⚡ | tests/unit/proxy/test_common_request_processing.py | 2097 | 'data: {"error": {"code": null, "message": "code is null"}}', | CODE |
| HIGH | tests/unit/proxy/credential_endpoints/test_endpoints.py | 1083 | """Same key-presence rule on the create path: ``{"anthropic_issuer_url": null}`` persists | STRING |
| HIGH | tests/unit/proxy/guardrails/test_guardrail_endpoints.py | 2572 | """List submissions only returns team guardrails (team_id not null).""" | STRING |
| HIGH | …xy/guardrails/guardrail_hooks/test_panw_prisma_airs.py | 2442 | b'data: {"type":"content_block_delta","index":0,"delta":null}\n', | CODE |
| HIGH | …xy/guardrails/guardrail_hooks/test_panw_prisma_airs.py | 2425 | """Non-dict JSON (null, arrays, ints) should be silently skipped.""" | STRING |
| HIGH | …/guardrails/guardrail_hooks/test_bedrock_guardrails.py | 1455 | # No BLOCKED actions found (all lists null) → should return False | COMMENT |
| HIGH | …t/proxy/guardrails/guardrail_hooks/test_model_armor.py | 4381 | (b'event: message_delta\ndata: {"type":"message_delta","error":null}\n\n',), | CODE |
| HIGH | …roxy/spend_tracking/test_spend_management_endpoints.py | 3728 | "metadata": '{"actor_agent_id": null, "target_agent_id": null, "billing_agent_id": null, "agent_exec | CODE |
| HIGH | …roxy/spend_tracking/test_spend_management_endpoints.py | 2083 | /spend/logs/ui does (#29674). Property access on a string is silently undefined, | STRING |
| HIGH | tests/unit/proxy/memory/test_memory_endpoints.py | 810 | expectation of `PUT {"metadata": null}`. | STRING |
| HIGH | …/proxy/_experimental/mcp_server/test_mcp_sigv4_auth.py | 1110 | # Credentials should be cleared. The clear reaches prisma as Json(None) (SQL null), which | COMMENT |
| HIGH | …/proxy/_experimental/mcp_server/test_rest_endpoints.py | 1829 | {"tools": [], "error": null} body a caller cannot distinguish from a toolless server.""" | STRING |
| HIGH | …xy/_experimental/mcp_server/test_mcp_partial_update.py | 820 | # The clear must reach prisma as Json(None) (SQL null), never a raw None, which prisma rejects. | COMMENT |
| HIGH | …xy/_experimental/mcp_server/test_mcp_partial_update.py | 29 | """The clear sentinel after the edge translation: prisma Json(None) (SQL null) or a bare None.""" | STRING |
| HIGH | …xy/_experimental/mcp_server/test_mcp_partial_update.py | 594 | columns null) must move the settings to the columns and drop them from the | STRING |
| HIGH | …xy/_experimental/mcp_server/test_mcp_partial_update.py | 1063 | alias: null, so the fallback name must go through the conflict check too.""" | STRING |
| HIGH | …l/mcp_server/test_mcp_server_tool_calls_and_headers.py | 10039 | left unstamped (null).""" | STRING |
| HIGH⚡ | …roxy/auth/test_auth_checks_object_access_and_lookup.py | 7771 | restriction field null, so a high-cardinality deployment misses the per-pod cache on virtually | STRING |
| HIGH | tests/unit/proxy/roi_calculator/test_github.py | 25 | "merged_at": null, | CODE |
| HIGH | …sts/unit/proxy/hooks/test_autorouter_baseline_cache.py | 58 | "stop_reason":{'"end_turn"' if completed else "null"},"stop_sequence":null, | CODE |
| HIGH | …roxy/ui_crud_endpoints/test_proxy_setting_endpoints.py | 1036 | # Send mixed SSO settings - some null, some valid | COMMENT |
| HIGH⚡ | …xy/management_endpoints/test_access_group_endpoints.py | 1426 | # Verify the DB update was called with [] (not null) for list fields | COMMENT |
| HIGH | …unit/proxy/management_endpoints/test_team_endpoints.py | 6778 | (max_budget=null), which is the strongest possible raise (finite -> unlimited). | STRING |
| HIGH | …unit/proxy/management_endpoints/test_team_endpoints.py | 11855 | When budget_duration is explicitly set to null, _set_budget_reset_at | STRING |
| HIGH | …unit/proxy/management_endpoints/test_team_endpoints.py | 11955 | When team_member_budget is explicitly null, clear_team_member_budget_fields | STRING |
| HIGH | …unit/proxy/management_endpoints/test_team_endpoints.py | 12001 | When team_member_rpm_limit and team_member_tpm_limit are explicitly null, | STRING |
| HIGH | …unit/proxy/management_endpoints/test_team_endpoints.py | 12051 | When all team_member fields are explicitly null, all corresponding | STRING |
| HIGH⚡ | …/proxy/management_endpoints/test_ptu_model_settings.py | 328 | """update_db_model drops a PTU field a patch sends as null, so the merged view has to | STRING |
| HIGH | …/management_endpoints/test_roi_calculator_endpoints.py | 378 | "/roi-calculator/identity-map", content='{"github_login":"casey","email":null}', headers=_JSON_HEADERS | CODE |
| HIGH | …/management_endpoints/test_key_management_endpoints.py | 2451 | """budget_limits=[] / None must serialize to JSON null, never reach Prisma raw.""" | STRING |
| HIGH | …/management_endpoints/test_key_management_endpoints.py | 16308 | When budget_duration is explicitly set to null, prepare_key_update_data | STRING |
| HIGH | tests/unit/proxy/db/test_gateway_request_tracking.py | 559 | asyncio.run(buffer.push(accumulator.drain())) | CODE |
| HIGH | tests/unit/proxy/db/test_exception_handler.py | 852 | '{"is_panic":false,"message":"Error in connector: Error querying the database: FATAL: sorry, too many client | CODE |
| HIGH | tests/unit/proxy/db/test_request_error_tracking.py | 343 | await buffer.push({_key(429): 2}) | CODE |
| HIGH⚡ | …/unit/proxy/proxy_server/test_routes_model_cost_map.py | 328 | """No prisma client → returns the not-scheduled shape (all-null) plus the cost map provenance.""" | STRING |
| HIGH | tests/unit/proxy/client/cli/test_auth_commands.py | 2053 | ('{"detail": "Too many CLI login attempts.", "retry": {"after": [30, null]}}', ": Too many CLI login attempts.") | CODE |
| HIGH⚡ | …_through_endpoints/test_streaming_handler_interrupt.py | 500 | b'"choices":[{"index":0,"delta":{"content":"Hi"}}],"usage":null}\n\n' | CODE |
| HIGH | …_through_endpoints/test_streaming_handler_interrupt.py | 387 | b'"choices":[{"index":0,"delta":{"content":"Hi"}}],"usage":null}\n\n' | CODE |
| HIGH⚡ | …handlers/test_anthropic_passthrough_logging_handler.py | 1198 | 'event: message_start\ndata: {"type":"message_start","message":{"id":"msg_1","type":"message","role":"assist | CODE |
| HIGH⚡ | …handlers/test_anthropic_passthrough_logging_handler.py | 1202 | 'event: message_delta\ndata: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null} | CODE |
| HIGH⚡ | …handlers/test_anthropic_passthrough_logging_handler.py | 1214 | 'event: message_start\ndata: {"type":"message_start","message":{"id":"msg_1","type":"message","role":"assist | CODE |
| HIGH⚡ | …handlers/test_anthropic_passthrough_logging_handler.py | 1224 | 'event: message_start\ndata: {"type":"message_start","message":{"id":"msg_1","type":"message","role":"assist | CODE |
| HIGH⚡ | …handlers/test_anthropic_passthrough_logging_handler.py | 1231 | 'event: message_delta\ndata: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null} | CODE |
| HIGH⚡ | …handlers/test_anthropic_passthrough_logging_handler.py | 1241 | 'event: message_start\ndata: {"type":"message_start","message":{"id":"msg_1","type":"message","role":"assist | CODE |
| HIGH⚡ | …handlers/test_anthropic_passthrough_logging_handler.py | 1245 | 'event: message_delta\ndata: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null} | CODE |
| 225 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | proxy_server_config.yaml | 66 | api_key: fake-key | CODE |
| LOW⚡ | proxy_server_config.yaml | 71 | api_key: my-fake-key | CODE |
| LOW⚡ | proxy_server_config.yaml | 78 | api_key: my-fake-key | CODE |
| LOW⚡ | proxy_server_config.yaml | 85 | api_key: my-fake-key | CODE |
| LOW⚡ | proxy_server_config.yaml | 91 | api_key: my-fake-key | CODE |
| LOW | proxy_server_config.yaml | 155 | api_key: my-fake-key | CODE |
| LOW | proxy_server_config.yaml | 161 | api_key: my-fake-key | CODE |
| LOW | policy_templates.json | 1549 | "placeholder": "e.g. Acme Airlines" | CODE |
| LOW | policy_templates.json | 1923 | "placeholder": "e.g. Acme Airlines" | CODE |
| LOW | terraform/provider/docs/resources/team_member_add.md | 25 | user_email = "user@example.com" | CODE |
| LOW | terraform/provider/litellm/resource_team_member_test.go | 28 | "user_email": "user@example.com", | CODE |
| LOW | …lm-dashboard/tests/CreateKeyPage.expiredToken.test.tsx | 256 | user_email: "user@example.com", | CODE |
| LOW | …lm-dashboard/tests/CreateKeyPage.expiredToken.test.tsx | 287 | user_email: "user@example.com", | CODE |
| LOW | ui/litellm-dashboard/tests/setupTests.ts | 109 | userEmail: "user@example.com", | CODE |
| LOW | ui/litellm-dashboard/src/app/chat/layout.test.tsx | 19 | userEmail: "user@example.com", | CODE |
| LOW | …hboard)/models-and-endpoints/page.integration.test.tsx | 33 | userEmail: "admin@example.com", | CODE |
| LOW | …nd-endpoints/components/ModelRetrySettingsTab.test.tsx | 124 | expect(inputs[2]).toHaveAttribute("placeholder", "7"); // inherited from global | CODE |
| LOW | …nd-endpoints/components/ModelRetrySettingsTab.test.tsx | 126 | expect(inputs[0]).toHaveAttribute("placeholder", "1"); // inherited from defaultRetry | CODE |
| LOW | …pp/(dashboard)/tag-management/_components/tag_info.tsx | 203 | fetchUserModels("dummy-user", "Admin", accessToken, setUserModels); | CODE |
| LOW | …ils/_components/TeamGuardrailsTab.integration.test.tsx | 38 | userEmail: "user@example.com", | CODE |
| LOW | …ard)/guardrails/_components/TeamGuardrailsTab.test.tsx | 52 | userEmail: "user@example.com", | CODE |
| LOW | …omponents/systemOneUI/SystemOneUI.integration.test.tsx | 502 | "placeholder", | CODE |
| LOW | …src/app/(dashboard)/api-keys/ApiKeysDashboard.test.tsx | 18 | userEmail: "admin@example.com", | CODE |
| LOW | …components/components/EntityUsage/EntityUsage.test.tsx | 1370 | expect(userCombobox()).toHaveAttribute("placeholder", "Search users by email…"); | CODE |
| LOW | …hboard/src/app/(dashboard)/hooks/useAuthorized.test.ts | 132 | user_email: "user@example.com", | CODE |
| LOW | …hboard/src/app/(dashboard)/hooks/useAuthorized.test.ts | 153 | expect(result.current.userEmail).toBe("user@example.com"); | CODE |
| LOW | …hboard/src/app/(dashboard)/hooks/useAuthorized.test.ts | 239 | user_email: "user@example.com", | CODE |
| LOW | …hboard/src/app/(dashboard)/hooks/useAuthorized.test.ts | 260 | expect(result.current.userEmail).toBe("user@example.com"); | CODE |
| LOW | …hboard/src/app/(dashboard)/hooks/useAuthorized.test.ts | 298 | user_email: "user@example.com", | CODE |
| LOW | …board)/vector-stores/_components/IndexesTable.test.tsx | 17 | created_by: "admin@example.com", | CODE |
| LOW | …board)/vector-stores/_components/IndexesTable.test.tsx | 25 | created_by: "admin@example.com", | CODE |
| LOW | …board)/vector-stores/_components/IndexesTable.test.tsx | 52 | expect(screen.getByText("admin@example.com")).toBeInTheDocument(); | CODE |
| LOW | …board)/vector-stores/_components/IndexesTable.test.tsx | 89 | const link = screen.getByRole("link", { name: "admin@example.com" }); | CODE |
| LOW | …_components/coordination_redis_settings/index.test.tsx | 187 | expect(password).toHaveAttribute("placeholder", expect.stringMatching(/already set/i)); | CODE |
| LOW | …shboard/src/app/onboarding/OnboardingFormBody.test.tsx | 41 | render(<OnboardingFormBody {...defaultProps} userEmail="user@example.com" />); | CODE |
| LOW | …shboard/src/app/onboarding/OnboardingFormBody.test.tsx | 43 | expect(screen.getByLabelText("Email Address")).toHaveValue("user@example.com"); | CODE |
| LOW | ui/litellm-dashboard/src/utils/jwtUtils.test.ts | 67 | user_email: "user@example.com", | CODE |
| LOW | …/litellm-dashboard/src/components/public_model_hub.tsx | 1062 | 'Authorization': 'Bearer dummy-token-for-extended-card' | CODE |
| LOW | …/litellm-dashboard/src/components/public_model_hub.tsx | 1111 | 'Authorization': 'Bearer dummy-token-for-extended-card' | CODE |
| LOW | …ellm-dashboard/src/components/model_info_view.test.tsx | 1601 | .filter((element) => element.getAttribute("placeholder") === "Select or search for existing credentials") | CODE |
| LOW | …ellm-dashboard/src/components/model_info_view.test.tsx | 1928 | .find((element) => element.getAttribute("placeholder") === "Select or search for existing credentials"); | CODE |
| LOW | ui/litellm-dashboard/src/components/SSOModals.test.tsx | 244 | user_email: "admin@example.com", | CODE |
| LOW | ui/litellm-dashboard/src/components/SSOModals.test.tsx | 289 | expect(emailInput.value).toBe("admin@example.com"); | CODE |
| LOW | ui/litellm-dashboard/src/components/SSOModals.test.tsx | 349 | fireEvent.change(emailInput, { target: { value: "admin@example.com" } }); | CODE |
| LOW | ui/litellm-dashboard/src/components/SSOModals.test.tsx | 385 | user_email: "admin@example.com", | CODE |
| LOW | ui/litellm-dashboard/src/components/SSOModals.test.tsx | 449 | target: { value: "admin@example.com" }, | CODE |
| LOW | …src/components/organization/organization_view.test.tsx | 84 | organization_alias: "Acme Corp", | CODE |
| LOW | …src/components/organization/organization_view.test.tsx | 88 | created_by: "admin@example.com", | CODE |
| LOW | …src/components/organization/organization_view.test.tsx | 122 | const [orgName] = await screen.findAllByText("Acme Corp"); | CODE |
| LOW | …src/components/organization/organization_view.test.tsx | 142 | expect(screen.getByText("Acme Corp")).toBeInTheDocument(); | CODE |
| LOW | …ttings/HashicorpVault/EditHashicorpVaultModal.test.tsx | 191 | "placeholder", | CODE |
| LOW | …ttings/HashicorpVault/EditHashicorpVaultModal.test.tsx | 200 | expect(screen.getByLabelText("Token")).toHaveAttribute("placeholder", "vault_token description"); | CODE |
| LOW | …ings/AdminSettings/CyberArk/EditCyberArkModal.test.tsx | 153 | "placeholder", | CODE |
| LOW | …ings/AdminSettings/CyberArk/EditCyberArkModal.test.tsx | 162 | expect(screen.getByLabelText("API Key")).toHaveAttribute("placeholder", "cyberark_api_key description"); | CODE |
| LOW | …tings/Modals/EditSSOSettingsModal.integration.test.tsx | 17 | user_email: "admin@example.com", | CODE |
| LOW | …tings/Modals/EditSSOSettingsModal.integration.test.tsx | 65 | user_email: "admin@example.com", | CODE |
| LOW | …ttings/SSOSettings/Modals/BaseSSOSettingsForm.test.tsx | 339 | user_email: "admin@example.com", | CODE |
| LOW | …ttings/SSOSettings/Modals/BaseSSOSettingsForm.test.tsx | 409 | user_email: "admin@example.com", | CODE |
| LOW | …ard/src/components/claude_code_plugins/helpers.test.ts | 203 | expect(isValidEmail("user@example.com")).toBe(true); | CODE |
| LOW | …src/components/agent_management/AgentSelector.test.tsx | 56 | expect(screen.getByRole("combobox")).toHaveAttribute("placeholder", "Loading..."); | CODE |
| 1209 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/litellm-dashboard/build_ui_custom_path.sh | 3 | # Check if UI_BASE_PATH argument is provided | COMMENT |
| LOW | ui/litellm-dashboard/build_ui_custom_path.sh | 13 | # Check if nvm is not installed | COMMENT |
| LOW | ui/litellm-dashboard/build_ui_custom_path.sh | 39 | # Check if nvm use was successful | COMMENT |
| LOW | ui/litellm-dashboard/build_ui_custom_path.sh | 48 | # Check if the build was successful | COMMENT |
| LOW | ui/litellm-dashboard/build_ui.sh | 3 | # Check if nvm is not installed | COMMENT |
| LOW | ui/litellm-dashboard/build_ui.sh | 29 | # Check if nvm use was successful | COMMENT |
| LOW | ui/litellm-dashboard/build_ui.sh | 39 | # Check if the build was successful | COMMENT |
| LOW | docker/build_admin_ui.sh | 20 | # Check if we are on macOS | COMMENT |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 94 | # Check if vector store already exists | COMMENT |
| LOW | …se/litellm_enterprise/proxy/vector_stores/endpoints.py | 241 | # Check if vector store exists | COMMENT |
| LOW | …terprise/litellm_enterprise/proxy/auth/route_checks.py | 16 | ## Check if DISABLE_LLM_API_ENDPOINTS is set | COMMENT |
| LOW | …itellm_enterprise/proxy/hooks/managed_vector_stores.py | 335 | # Check if it's a managed vector store ID | COMMENT |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1772 | ## Check if unified_file_id is in the response | COMMENT |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2065 | # Check if the scheduler has the batch cost checking job registered | COMMENT |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2070 | # Check if the check_batch_cost_job exists in the scheduler | COMMENT |
| LOW⚡ | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2140 | # Check if any referenced file ID matches the file we're trying to delete | COMMENT |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1219 | # Check if any files are stored in storage backends and need base64 conversion | COMMENT |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1860 | ## Check if unified_file_id is in the response | COMMENT |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2169 | # Check if batch polling is enabled | COMMENT |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2174 | # Check if file is referenced by any non-terminal batches | COMMENT |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2224 | # Check if file deletion should be blocked due to batch references | COMMENT |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2346 | # Check if this is a base64 encoded unified file ID | COMMENT |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 2438 | # Set format to help Gemini determine mime type | COMMENT |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 574 | # Check if user has permission to create projects for this team | COMMENT |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 596 | # Check if project_id already exists | COMMENT |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 972 | # Check if user is admin (only admins can delete projects) | COMMENT |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 990 | # Check if project exists | COMMENT |
| LOW | …rprise/proxy/management_endpoints/project_endpoints.py | 1001 | # Check if there are any keys associated with this project | COMMENT |
| LOW | …m_enterprise/enterprise_callbacks/callback_controls.py | 91 | # Check if admin has disabled this feature | COMMENT |
| LOW | …erprise/enterprise_callbacks/send_emails/base_email.py | 146 | # Check if API key should be included in email | COMMENT |
| LOW | …erprise/enterprise_callbacks/send_emails/base_email.py | 193 | # Check if API key should be included in email | COMMENT |
| LOW | …se/litellm_enterprise/integrations/custom_guardrail.py | 44 | # Check if any request tag matches a Mode tag key | COMMENT |
| LOW | tests/logging_callback_tests/test_gcs_pub_sub.py | 55 | # Check if current path should be ignored | COMMENT |
| LOW⚡ | tests/litellm_utils_tests/test_secret_manager.py | 31 | # Read the file content | COMMENT |
| LOW | tests/unit/test_utils.py | 1347 | # Check if both max_tokens and max_output_tokens exist | COMMENT |
| LOW | tests/unit/test_utils.py | 8138 | # Set force_ipv4 to True | COMMENT |
| LOW | tests/unit/test_add_deployment_no_master_key.py | 27 | # Set master_key to None | COMMENT |
| LOW⚡ | tests/unit/test_add_deployment_no_master_key.py | 73 | # Set master_key to None | COMMENT |
| LOW⚡ | tests/unit/test_add_deployment_no_master_key.py | 123 | # Set master_key to None | COMMENT |
| LOW | tests/unit/test_router_redis_init.py | 36 | # Check if the underlying cache client is configured with the correct DB | COMMENT |
| LOW | tests/unit/test_acompletion_session_reuse_e2e.py | 146 | # Check if shared_session is being passed (and not commented out) | COMMENT |
| LOW⚡ | tests/unit/proxy/test_proxy_utils.py | 2158 | # Check if all expected models are in the returned list | COMMENT |
| LOW | tests/unit/proxy/test_proxy_utils.py | 2231 | # Check if model was updated correctly | COMMENT |
| LOW | tests/unit/proxy/test_chat_completion_metadata.py | 33 | # Check if ProxyBaseLLMRequestProcessing was initialized with data containing metadata | COMMENT |
| LOW | tests/unit/proxy/test_chat_completion_metadata.py | 78 | # Check if ProxyBaseLLMRequestProcessing was initialized with the correct metadata | COMMENT |
| LOW | tests/unit/proxy/test_litellm_pre_call_utils.py | 3151 | # Check if standard_logging_object was set | COMMENT |
| LOW | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 4282 | # Set store_model_in_db to True | COMMENT |
| LOW | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 4330 | # Set store_model_in_db to False | COMMENT |
| LOW | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 6925 | # Set LITELLM_NON_ROOT to true | COMMENT |
| LOW | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 6967 | # Set LITELLM_NON_ROOT to true | COMMENT |
| LOW⚡ | tests/unit/proxy/test_proxy_server.py | 427 | # Check if the request was successful | COMMENT |
| LOW | …roxy/spend_tracking/test_spend_management_endpoints.py | 3776 | # Check if current path should be ignored | COMMENT |
| LOW | …y/_experimental/mcp_server/test_jwt_mcp_enforcement.py | 150 | # Check if MCP route is allowed for TEAM role | COMMENT |
| LOW | …/_experimental/mcp_server/test_mcp_chat_completions.py | 371 | # Check if this is the follow-up call | COMMENT |
| LOW | …/_experimental/mcp_server/test_mcp_chat_completions.py | 660 | # Check if this is the follow-up call (has tool results in messages) | COMMENT |
| LOW | …/_experimental/mcp_server/test_mcp_chat_completions.py | 756 | # Check if we've seen tool_calls yet | COMMENT |
| LOW | …/_experimental/mcp_server/test_mcp_chat_completions.py | 1015 | # Check if this is the follow-up call (has tool results in messages) | COMMENT |
| LOW | tests/unit/proxy/auth/test_proxy_routes.py | 76 | # Check if base path exists (e.g., /containers or /v1/containers) | COMMENT |
| LOW | …/management_endpoints/test_mcp_management_endpoints.py | 90 | alias=name, # Set alias to match the name for consistency with tests | CODE |
| LOW⚡ | …proxy/management_endpoints/test_key_generate_prisma.py | 1257 | # Check if data gets updated | COMMENT |
| 654 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …se/litellm_enterprise/proxy/audit_logging_endpoints.py | 199 | Get detailed information about a specific audit log entry by its ID. Args: id (str): The unique identi | STRING |
| HIGH | …se/litellm_enterprise/proxy/auth/custom_sso_handler.py | 32 | Allow a user to execute their custom code to parse incoming request headers and return a OpenID object | STRING |
| HIGH | …itellm_enterprise/proxy/hooks/managed_vector_stores.py | 264 | Check if user has access to a managed vector store in request data. Args: data: Re | STRING |
| HIGH | …mock_guardrail_server/mock_bedrock_guardrail_server.py | 164 | Verify the Bearer token from the Authorization header. Args: authorization: The Authorization header v | STRING |
| HIGH | …mpt_management_server/mock_prompt_management_server.py | 207 | Get a prompt by ID with optional filtering. This endpoint implements the LiteLLM Generic Prompt Management API | STRING |
| HIGH | litellm/cost_calculator.py | 2430 | Default image cost calculator for image generation Args: model (str): Model name image_respons | STRING |
| HIGH | litellm/cost_calculator.py | 2520 | Default video cost calculator for video generation Args: model (str): Model name duration_seco | STRING |
| HIGH | litellm/utils.py | 2625 | Check if the given model supports system messages and return a boolean value. Parameters: model (str): The | STRING |
| HIGH | litellm/utils.py | 2646 | Check if the given model supports web search and return a boolean value. Parameters: model (str): The mode | STRING |
| HIGH | litellm/utils.py | 2667 | Check if the given model supports URL context and return a boolean value. Parameters: model (str): The mod | STRING |
| HIGH | litellm/utils.py | 2688 | Check if the given model supports native streaming and return a boolean value. Parameters: model (str): Th | STRING |
| HIGH | litellm/utils.py | 2777 | Check if the given model supports function calling and return a boolean value. Parameters: model (str): Th | STRING |
| HIGH | litellm/utils.py | 2817 | Check if the given model supports function calling and return a boolean value. Parameters: model (str): Th | STRING |
| HIGH | litellm/utils.py | 2983 | Check if the given model supports prompt caching and return a boolean value. Parameters: model (str): The | STRING |
| HIGH | litellm/utils.py | 3020 | Check if the given model supports computer use and return a boolean value. Parameters: model (str): The mo | STRING |
| HIGH | litellm/utils.py | 5505 | Get the maximum number of output tokens allowed for a given model. Parameters: model (str): The name of th | STRING |
| HIGH | litellm/utils.py | 6480 | Get a dict for the maximum tokens (context window), input_cost_per_token, output_cost_per_token for a given model. | STRING |
| HIGH | litellm/utils.py | 8399 | Ensures all user messages are valid OpenAI chat completion messages. Args: messages: List of message d | STRING |
| HIGH | litellm/router.py | 14886 | Returns deployments available for pass-through endpoints (based on load balancing strategy) Similar to | STRING |
| HIGH | litellm/main.py | 478 | Asynchronously executes a litellm.completion() call for any of litellm supported llms (example gpt-4, gpt-3.5-turbo | STRING |
| HIGH | litellm/main.py | 916 | Generate a mock completion response for testing or debugging purposes. This is a helper function that simulate | STRING |
| HIGH | litellm/main.py | 6296 | Embedding function that calls an API to generate embeddings for the given input. Parameters: - model: The | STRING |
| HIGH | …proxy/guardrails/guardrail_hooks/bedrock_guardrails.py | 3158 | Apply Bedrock guardrail to a batch of texts for testing purposes. This method allows users to test Bed | STRING |
| HIGH | …ils/guardrail_hooks/prompt_security/prompt_security.py | 181 | Apply Prompt Security guardrail to the given inputs. This method is called by LiteLLM's guardrail fram | STRING |
| HIGH | …s/guardrail_hooks/zscaler_ai_guard/zscaler_ai_guard.py | 155 | Apply Zscaler AI Guard guardrail to batch of texts. Args: inputs: Dictionary containing te | STRING |
| HIGH | …s/guardrail_hooks/custom_code/custom_code_guardrail.py | 245 | Apply the custom code guardrail to the inputs. This method calls the user-defined apply_guardrail func | STRING |
| HIGH | …s/guardrail_hooks/custom_code/custom_code_guardrail.py | 377 | Process the result from the custom code function. Args: result: The return value from appl | STRING |
| HIGH | …roxy/guardrails/guardrail_hooks/qualifire/qualifire.py | 431 | Apply Qualifire guardrail to the given inputs. This method is called by the unified guardrail system f | STRING |
| HIGH | …ellm/proxy/guardrails/guardrail_hooks/pillar/pillar.py | 331 | Pre-call hook to scan the request for security threats before sending to LLM. Args: user_a | STRING |
| HIGH | …ellm/proxy/guardrails/guardrail_hooks/pillar/pillar.py | 375 | During-call hook to scan the request in parallel with LLM processing. Args: data: Request | STRING |
| HIGH | …ellm/proxy/guardrails/guardrail_hooks/pillar/pillar.py | 409 | Post-call hook to scan LLM responses before returning to user. Args: data: Original reques | STRING |
| HIGH | …ellm/proxy/guardrails/guardrail_hooks/pillar/pillar.py | 457 | Core method to run the Pillar guardrail scan. Args: data: Request data containing messages | STRING |
| HIGH | …ellm/proxy/guardrails/guardrail_hooks/pillar/pillar.py | 503 | Handle API errors based on fallback_on_error configuration. Args: error: The exception tha | STRING |
| HIGH | …/proxy/guardrails/guardrail_hooks/deepkeep/deepkeep.py | 332 | Apply the DeepKeep AI Firewall guardrail to the given inputs. This is the main method called by the Li | STRING |
| HIGH | …s/guardrail_hooks/crowdstrike_aidr/crowdstrike_aidr.py | 331 | Makes the API call to the CrowdStrike AIDR AI Guard endpoint. The function itself will raise an error i | STRING |
| HIGH | …roxy/guardrails/guardrail_hooks/enkryptai/enkryptai.py | 432 | Apply EnkryptAI guardrail to a batch of texts. Args: inputs: Dictionary containing texts a | STRING |
| HIGH | …ils/guardrail_hooks/litellm_content_filter/patterns.py | 62 | Get a compiled regex pattern by name. Args: pattern_name: Name of the prebuilt pattern Returns: | STRING |
| HIGH | …ardrail_hooks/litellm_content_filter/content_filter.py | 385 | Resolve a category file path that may be relative. Paths in policy templates (e.g. category_file) are | STRING |
| HIGH | …ardrail_hooks/litellm_content_filter/content_filter.py | 1373 | Apply all content filtering checks to a single text. This method performs: 1. Category keyword | STRING |
| HIGH | …ardrail_hooks/litellm_content_filter/content_filter.py | 1882 | Apply content filtering guardrail to a batch of texts. This method checks for sensitive patterns and b | STRING |
| HIGH | …/proxy/guardrails/guardrail_hooks/grayswan/grayswan.py | 223 | Apply Gray Swan guardrail to extracted text content. This method is called by the unified guardrail sy | STRING |
| HIGH | …/proxy/guardrails/guardrail_hooks/grayswan/grayswan.py | 496 | Process GraySwan API response and handle violations. Args: response_json: Response from Gr | STRING |
| HIGH | …ellm/proxy/guardrails/guardrail_hooks/pangea/pangea.py | 104 | Makes the API call to the Pangea AI Guard endpoint. The function itself will raise an error in the case | STRING |
| HIGH | …l_hooks/generic_guardrail_api/generic_guardrail_api.py | 404 | Apply the Generic Guardrail API to the given inputs. This is the main method that gets called by the f | STRING |
| HIGH | …proxy/guardrails/guardrail_hooks/openai/moderations.py | 179 | Apply OpenAI moderation guardrail using the unified guardrail interface. This method is called by the | STRING |
| HIGH | …tellm/proxy/_experimental/mcp_server/rest_endpoints.py | 657 | Resolve allowed MCP servers for a tool call with IP filtering. Args: request: The HTTP req | STRING |
| HIGH | …oxy/_experimental/mcp_server/discoverable_endpoints.py | 273 | Decode an encrypted state to retrieve all OAuth session data. Args: encrypted_state: The encrypted str | STRING |
| HIGH | …m/proxy/_experimental/mcp_server/mcp_server_manager.py | 2259 | Join the bounded discovery task and return the resolved server. Concurrent callers share one task per server. A | STRING |
| HIGH | …m/proxy/_experimental/mcp_server/mcp_server_manager.py | 5774 | Filter arguments to only include allowed parameters for the given tool. Args: tool_name: B | STRING |
| HIGH | …m/proxy/_experimental/mcp_server/mcp_server_manager.py | 6197 | Call a regular MCP tool using the MCP client. Args: mcp_server: The MCP server configurati | STRING |
| HIGH | …_experimental/mcp_server/auth/user_api_key_auth_mcp.py | 463 | Process and validate MCP request headers from the ASGI scope. This includes: 1. Extracting and | STRING |
| HIGH | …roxy/openai_files_endpoints/storage_backend_service.py | 46 | Upload a file to a storage backend and create a file object. Args: file_data: File data di | STRING |
| HIGH | litellm/proxy/openai_files_endpoints/common_utils.py | 228 | Encode a file/batch ID with model routing information. Format: <prefix><base64(litellm:<original_id>;model,<mo | STRING |
| HIGH | litellm/proxy/openai_files_endpoints/common_utils.py | 395 | Retrieve API credentials for a model from the LLM Router. Does not check whether the caller may use ``model_id | STRING |
| HIGH | litellm/proxy/openai_files_endpoints/common_utils.py | 694 | Orchestrate model-based credential routing for file operations. The model name comes from the caller (embedded | STRING |
| HIGH | litellm/proxy/auth/route_checks.py | 609 | Check if route matches the allowed_route pattern. Supports both exact match and prefix match. | STRING |
| HIGH | litellm/proxy/auth/login_utils.py | 122 | Get UI username and password from environment variables or master key. Args: master_key: Master key fo | STRING |
| HIGH | litellm/proxy/auth/login_utils.py | 221 | Authenticate a user and generate an API key for UI access. This function handles two login scenarios: 1. A | STRING |
| HIGH | litellm/proxy/auth/auth_checks.py | 3712 | Look up a team by its team_alias (name) in the database. Args: team_alias: The team name/alias to look | STRING |
| HIGH | litellm/proxy/auth/auth_checks.py | 3823 | Look up an organization by its organization_alias in the database. Args: org_alias: The organization n | STRING |
| 135 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/unit/proxy/common_utils/test_check_batch_cost.py | 2443 | instance.prisma_client.db.litellm_usertable.find_unique.assert_not_called() | CODE |
| CRITICAL | …xy/guardrails/guardrail_hooks/test_panw_prisma_airs.py | 2211 | sent_payload = mock_client.client.post.call_args.kwargs.get("json") or mock_client.client.post.call_args[ | CODE |
| CRITICAL | …xy/guardrails/guardrail_hooks/test_panw_prisma_airs.py | 2246 | sent_payload = mock_client.client.post.call_args.kwargs.get("json") or mock_client.client.post.call_args[ | CODE |
| CRITICAL | tests/unit/proxy/memory/test_memory_endpoints.py | 944 | self.prisma.db.litellm_teamtable.teams.append( | CODE |
| CRITICAL | tests/unit/proxy/memory/test_memory_endpoints.py | 969 | self.prisma.db.litellm_teamtable.teams.append( | CODE |
| CRITICAL | tests/unit/proxy/memory/test_memory_endpoints.py | 989 | self.prisma.db.litellm_teamtable.teams.append( | CODE |
| CRITICAL | …perimental/mcp_server/test_openapi_to_mcp_generator.py | 211 | assert destination.calls.last.request.headers.get("authorization") == (resolved or {}).get("Authorization") | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12399 | proxy_server.prisma_client.db.litellm_teamtable.find_unique.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12400 | proxy_server.prisma_client.db.litellm_teamtable.upsert.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12401 | proxy_server.prisma_client.db.litellm_usertable.update.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12527 | proxy_server.prisma_client.db.litellm_teamtable.create.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12528 | proxy_server.prisma_client.db.litellm_usertable.create.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12529 | proxy_server.prisma_client.db.litellm_usertable.update.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12755 | proxy_server.prisma_client.db.litellm_mcpusercredentials.upsert.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12756 | proxy_server.prisma_client.db.litellm_usertable.create.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12757 | proxy_server.prisma_client.db.litellm_teamtable.create.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12825 | proxy_server.prisma_client.db.litellm_mcpusercredentials.upsert.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12826 | proxy_server.prisma_client.db.litellm_usertable.create.assert_not_called() | CODE |
| CRITICAL⚡ | …experimental/mcp_server/test_discoverable_endpoints.py | 12827 | proxy_server.prisma_client.db.litellm_teamtable.create.assert_not_called() | CODE |
| CRITICAL | tests/unit/proxy/auth/test_auth_utils.py | 2731 | authorization = route.calls.last.request.headers.get("authorization") | CODE |
| CRITICAL⚡ | tests/unit/proxy/batches_endpoints/test_endpoints.py | 3126 | metadata = retrieve_harness.router.aretrieve_batch.await_args.kwargs.get("litellm_metadata") or {} | CODE |
| CRITICAL⚡ | tests/unit/proxy/batches_endpoints/test_endpoints.py | 3136 | metadata = retrieve_harness.router.aretrieve_batch.await_args.kwargs.get("litellm_metadata") or {} | CODE |
| CRITICAL⚡ | …nit/proxy/openai_files_endpoint/test_files_endpoint.py | 991 | print(f"Content: {gemini_route.calls.last.request.content.decode()}") | CODE |
| CRITICAL⚡ | …nit/proxy/openai_files_endpoint/test_files_endpoint.py | 992 | print(f"Response: {gemini_route.calls.last.response.content.decode()}") | CODE |
| CRITICAL⚡ | …nit/proxy/openai_files_endpoint/test_files_endpoint.py | 994 | assert "test-file-id" in gemini_route.calls.last.request.content.decode() | CODE |
| CRITICAL | …xy/anthropic_endpoints/test_claude_code_marketplace.py | 631 | stored_plugin: Final = await litellm.proxy.proxy_server.prisma_client.db.litellm_claudecodeplugintable.find_unique( | CODE |
| CRITICAL⚡ | tests/unit/proxy/hooks/test_sensitive_data_routing.py | 635 | handler_with_redis.internal_usage_cache.dual_cache.redis_cache.async_set_cache.assert_called_once() | CODE |
| CRITICAL | …sts/unit/proxy/hooks/test_autorouter_baseline_cache.py | 1005 | wire: Final = route.calls.last.request.content.decode() | CODE |
| CRITICAL | …sts/unit/proxy/hooks/test_autorouter_baseline_cache.py | 1039 | wire: Final = route.calls.last.request.content.decode() | CODE |
| CRITICAL | …gement_endpoints/test_workflow_management_endpoints.py | 195 | self._prisma.db.litellm_workflowrun.create.assert_awaited_once() | CODE |
| CRITICAL | …gement_endpoints/test_workflow_management_endpoints.py | 298 | self._prisma.db.litellm_workflowrun.update.assert_awaited_once() | CODE |
| CRITICAL | …gement_endpoints/test_workflow_management_endpoints.py | 627 | self._prisma.db.litellm_workflowrun.update.assert_not_awaited() | CODE |
| CRITICAL | …gement_endpoints/test_workflow_management_endpoints.py | 725 | self._prisma.db.litellm_workflowrun.update.assert_not_awaited() | CODE |
| CRITICAL⚡ | …xy/management_endpoints/test_organization_endpoints.py | 1246 | proxy_server.prisma_client.db.litellm_organizationtable.find_unique.assert_not_awaited() | CODE |
| CRITICAL⚡ | …xy/management_endpoints/test_organization_endpoints.py | 1247 | proxy_server.prisma_client.db.litellm_organizationtable.update.assert_not_awaited() | CODE |
| CRITICAL | tests/unit/proxy/client/test_models.py | 345 | assert "not found" in exc_info.value.orig_exception.response.text.lower() | CODE |
| CRITICAL | tests/unit/proxy/client/test_models.py | 716 | assert "not found" in exc_info.value.orig_exception.response.text.lower() | CODE |
| CRITICAL | …e/proxy/test_batch_update_db_managed_output_file_id.py | 439 | instance.prisma_client.db.litellm_teamtable.find_unique.assert_not_awaited() | CODE |
| CRITICAL | tests/unit/enterprise/proxy/test_managed_files_hook.py | 413 | managed_files.prisma_client.db.litellm_managedfiletable.find_many.assert_awaited_once_with( | CODE |
| CRITICAL | …it/secret_managers/test_get_azure_ad_token_provider.py | 9 | from azure.core.exceptions import ClientAuthenticationError | CODE |
| CRITICAL | …s/unit/secret_managers/test_cyberark_secret_manager.py | 90 | route.calls.last.request.url.raw_path.decode() == secret["path"] | CODE |
| CRITICAL | …s/unit/secret_managers/test_cyberark_secret_manager.py | 110 | assert policy_route.calls.last.request.content.decode() == secret["policy_body"] | CODE |
| CRITICAL⚡ | tests/unit/repositories/test_repositories.py | 987 | repo._prisma_client.db.litellm_usertable.find_many.assert_awaited_once() | CODE |
| CRITICAL | tests/unit/repositories/test_repositories.py | 1007 | repo._prisma_client.db.litellm_usertable.find_many.assert_not_awaited() | CODE |
| CRITICAL | tests/unit/repositories/test_repositories.py | 1684 | archived = list(repo._prisma_client.db.litellm_deletedverificationtoken._records.values())[0] | CODE |
| CRITICAL⚡ | tests/unit/integrations/test_langfuse.py | 1346 | return logger.tracing.provider.resource.attributes.get(LangfuseOtelSpanAttributes.ENVIRONMENT) | CODE |
| CRITICAL⚡ | tests/unit/integrations/test_langfuse.py | 1366 | return logger.tracing.provider.resource.attributes.get(LangfuseOtelSpanAttributes.RELEASE) | CODE |
| CRITICAL⚡ | …unit/integrations/test_prometheus_rate_limit_labels.py | 430 | logger.litellm_remaining_api_key_requests_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL⚡ | …unit/integrations/test_prometheus_rate_limit_labels.py | 433 | logger.litellm_remaining_api_key_tokens_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | …unit/integrations/test_prometheus_rate_limit_labels.py | 386 | logger.litellm_remaining_api_key_requests_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | …unit/integrations/test_prometheus_rate_limit_labels.py | 389 | logger.litellm_remaining_api_key_tokens_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | …unit/integrations/test_prometheus_rate_limit_labels.py | 411 | logger.litellm_remaining_api_key_requests_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | …unit/integrations/test_prometheus_rate_limit_labels.py | 414 | logger.litellm_remaining_api_key_tokens_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | …unit/integrations/test_prometheus_rate_limit_labels.py | 449 | logger.litellm_remaining_api_key_requests_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | …unit/integrations/test_prometheus_rate_limit_labels.py | 452 | logger.litellm_remaining_api_key_tokens_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | …unit/integrations/test_prometheus_rate_limit_labels.py | 471 | logger.litellm_remaining_api_key_requests_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | …unit/integrations/test_prometheus_rate_limit_labels.py | 474 | logger.litellm_remaining_api_key_tokens_for_model.labels.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | tests/unit/llms/base_llm/test_base_managed_resource.py | 108 | resource.prisma_client.db.litellm_test_resource_table.find_many.assert_not_awaited() | CODE |
| CRITICAL | tests/unit/llms/azure/test_audio_transcriptions.py | 94 | mock_azure_client.audio.transcriptions.with_raw_response.create.assert_called_once() | CODE |
| CRITICAL⚡ | …tion/test_edenai_audio_transcription_transformation.py | 39 | return respx_mock.calls.last.request.content.decode(errors="replace") | CODE |
| 18 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ruff-tests.toml | 1 | # Lint config for the test tree, which ruff.toml excludes from `ruff check`. | COMMENT |
| LOW | ruff-tests.toml | 21 | # that call is dead, so an `assert` sitting there is never checked. Keep the | COMMENT |
| LOW | ruff-tests.toml | 41 | # UnboundLocalError, and in an autouse fixture that takes every test in the | COMMENT |
| LOW | ruff-tests.toml | 61 | # first is always truthy and the second is an attribute nobody calls | COMMENT |
| LOW | ruff-tests.toml | 81 | # a TypeError from the raise itself | COMMENT |
| LOW | pyproject.toml | 401 | # default install; it is pulled in via `uv run --with mutmut==<version>` in CI. | COMMENT |
| LOW | pyproject.toml | 421 | # The score now reads as "mutation score over covered code" — pair with a | COMMENT |
| LOW | ruff-strict.toml | 21 | # in ruff, only file-level. These two files each have a handful of parameters that | COMMENT |
| LOW | packaging/homebrew/lite.rb | 1 | # Homebrew formula for the thin LiteLLM `lite` CLI (litellm[cli]). | COMMENT |
| LOW | terraform/provider/RELEASING.md | 41 | ```bash | COMMENT |
| LOW | …rm/provider/tools/endpointaudit/coverage_allowlist.txt | 1 | # Management endpoints deliberately not covered by a Terraform resource or data source. | COMMENT |
| LOW | terraform/litellm/gcp/locals.tf | 1 | # Gateway path prefixes — mirrored verbatim from gateway/routes/allowlist.py | COMMENT |
| LOW | terraform/litellm/gcp/cloudsql.tf | 1 | # Cloud SQL for PostgreSQL — one primary + one read replica. | COMMENT |
| LOW | terraform/litellm/gcp/bootstrap.tf | 1 | # Auto-runs the prisma schema migration as part of `terraform apply`. Mirrors | COMMENT |
| LOW | terraform/litellm/gcp/examples/default/main.tf | 1 | # One-command deploy of the LiteLLM GCP stack. | COMMENT |
| LOW | terraform/litellm/aws/ecs.tf | 41 | # Shared env block fed to gateway, backend, and the migration task. Mirrors | COMMENT |
| LOW | terraform/litellm/aws/ecs.tf | 341 | # Metering needs a client certificate AND its key. Each secret is created only | COMMENT |
| LOW | terraform/litellm/aws/autoscaling.tf | 1 | # Application Auto Scaling for the three ECS services. Mirrors the HPA values | COMMENT |
| LOW | terraform/litellm/aws/locals.tf | 1 | # Gateway path prefixes — mirrored verbatim from gateway/routes/allowlist.py | COMMENT |
| LOW | terraform/litellm/aws/s3.tf | 1 | # General-purpose S3 bucket for the proxy. LiteLLM uses S3 for: | COMMENT |
| LOW | terraform/litellm/aws/migrations.tf | 1 | # Task definition for the dedicated litellm-migrations image. Mirrors the | COMMENT |
| LOW | terraform/litellm/aws/rds.tf | 1 | # Aurora Postgres cluster with one writer + one reader instance, IAM | COMMENT |
| LOW | terraform/litellm/aws/bootstrap.tf | 1 | # Auto-runs the two manual steps that used to follow `terraform apply`: | COMMENT |
| LOW | terraform/litellm/aws/examples/default/main.tf | 1 | # One-command deploy of the LiteLLM AWS stack. | COMMENT |
| LOW | terraform/litellm/aws/examples/default/providers.tf | 1 | # The provider is configured HERE, in the root, not in the module. That is | COMMENT |
| LOW | terraform/litellm/aws/examples/default/providers.tf | 21 | # "cost-center" = "platform" | COMMENT |
| LOW | ui/litellm-dashboard/src/next-types.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | …dashboard)/agents/_components/agent_card_discovery.tsx | 81 | COMMENT | |
| LOW | …dashboard)/mcp-servers/_components/CreateMCPServer.tsx | 581 | const isAdmin = isAdminRole(userRole); | COMMENT |
| LOW | …dashboard)/mcp-servers/_components/mcp_server_edit.tsx | 481 | return () => { | COMMENT |
| LOW | ui/litellm-dashboard/src/utils/maskedSecretUtils.ts | 1 | // The proxy redacts secrets in API responses by masking them (e.g. "sk-1****2345"), | COMMENT |
| LOW | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 141 | # response_with_file = client.chat.completions.create( | COMMENT |
| LOW | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 201 | # response_with_file = client.responses.create( | COMMENT |
| LOW | ui/litellm-dashboard/src/components/mcp_tools/types.tsx | 101 | // endpoints (authorization_url / token_url / registration_url). Grounded in RFC 8707 / RFC 8693 and the MCP | COMMENT |
| LOW | ui/litellm-dashboard/src/components/mcp_tools/types.tsx | 141 | // is ALWAYS admin-typed in every reachable state: the create form holds the DCR-minted client in a | COMMENT |
| LOW | ui/litellm-dashboard/src/components/mcp_tools/types.tsx | 221 | // from the UI-local OAUTH_FLOW.M2M ("m2m"); this is what the API actually returns. | COMMENT |
| LOW | docker/docker-compose.quickstart.yml | 1 | # LiteLLM quickstart stack: the gateway plus a Postgres database that stores | COMMENT |
| LOW | …e/litellm_enterprise/enterprise_callbacks/llm_guard.py | 221 | COMMENT | |
| LOW | tests/_vcr_conftest_common.py | 41 | ) | COMMENT |
| LOW | tests/_vcr_conftest_common.py | 381 | # Volatile-token body normalization (compare-time only). | COMMENT |
| LOW | tests/_vcr_conftest_common.py | 541 | def _is_telemetry_export_request(request) -> bool: | COMMENT |
| LOW | …ging_callback_tests/test_bedrock_knowledgebase_hook.py | 161 | assert ( | COMMENT |
| LOW | …ging_callback_tests/test_bedrock_knowledgebase_hook.py | 181 | # model="gpt-5.5", | COMMENT |
| LOW | …ging_callback_tests/test_bedrock_knowledgebase_hook.py | 201 | # # 1 vector store request was made, expect 1 vector store request metadata object | COMMENT |
| LOW | tests/unit/test_router_retry_policy_update.py | 361 | COMMENT | |
| LOW | tests/unit/proxy/test_custom_callback_input.py | 21 | COMMENT | |
| LOW | tests/unit/proxy/test_model_level_guardrails.py | 661 | # The pre_call_hook must have received data with the model-level | COMMENT |
| LOW | tests/unit/proxy/test_proxy_utils.py | 2101 | # from litellm.types.utils import ProviderSpecificHeader | COMMENT |
| LOW | tests/unit/proxy/test_proxy_server.py | 2441 | models = resp["data"] | COMMENT |
| LOW | tests/unit/proxy/test_proxy_server.py | 2461 | # await litellm.proxy.proxy_server.prisma_client.connect() | COMMENT |
| LOW | tests/unit/proxy/test_proxy_server.py | 2481 | # ) | COMMENT |
| LOW | tests/unit/proxy/test_proxy_server.py | 2501 | # token=generated_key, | COMMENT |
| LOW | tests/unit/proxy/test_health_check_max_tokens.py | 381 | model_info = {"mode": "embedding", "health_check_reasoning_effort": "low"} | COMMENT |
| LOW | …/guardrails/guardrail_hooks/test_bedrock_guardrails.py | 1281 | # assessment but has no matches. | COMMENT |
| LOW | …/guardrails/guardrail_hooks/test_bedrock_guardrails.py | 2781 | request_data={"messages": request_messages}, | COMMENT |
| LOW | …/guardrails/guardrail_hooks/test_bedrock_guardrails.py | 3441 | assert usage_chunks, "streaming block should carry the upstream call's usage on at least one chunk" | COMMENT |
| LOW | tests/unit/proxy/auth/test_route_checks.py | 2201 | request=request, | COMMENT |
| LOW | tests/unit/proxy/batches_endpoints/test_endpoints.py | 1281 | assert raised.value.headers["x-litellm-call-id"] == call_id | COMMENT |
| LOW | tests/unit/proxy/batches_endpoints/test_endpoints.py | 1301 | # The DB seams (get_batch_from_database, update_batch_in_database, # | COMMENT |
| LOW | tests/unit/proxy/batches_endpoints/test_endpoints.py | 1881 | # =========================================================================== # | COMMENT |
| 446 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …terprise/litellm_enterprise/proxy/enterprise_routes.py | 13 | __all__ = ["router", "ui_crud_endpoints"] | CODE |
| LOW | enterprise/litellm_enterprise/proxy/auth/__init__.py | 10 | __all__ = ["EnterpriseCustomSSOHandler"] | CODE |
| LOW | …litellm_enterprise/proxy/ui_crud_endpoints/__init__.py | 3 | __all__ = ["ui_settings_extensions"] | CODE |
| LOW | …ellm_enterprise/proxy/management_endpoints/__init__.py | 10 | __all__ = ["management_endpoints_router"] | CODE |
| LOW | tests/unit/test_pre_commit_lint.py | 164 | def _set_base_ref(repo: Path, branch: str = "release_branch") -> None: | STRING |
| LOW | tests/unit/test_router_silent_experiment.py | 37 | async def _settle_shared_logging_worker() -> None: | CODE |
| LOW | …drails/guardrail_hooks/_cisco_ai_defense_test_utils.py | 310 | __all__ = [ | CODE |
| LOW | tests/unit/proxy/batches_endpoints/test_endpoints.py | 255 | def set_body(harness: Harness, body: Dict[str, Any]) -> None: | CODE |
| LOW | …it/proxy/anthropic_endpoints/test_gateway_endpoints.py | 87 | def set_cache(self, key: str, value: object, **kwargs: object) -> None: | CODE |
| LOW | …it/proxy/management_endpoints/test_policy_endpoints.py | 28 | def set_return(self, return_inputs: GenericGuardrailAPIInputs) -> None: | CODE |
| LOW | …unit/proxy/management_endpoints/test_team_endpoints.py | 13828 | async def _settle_audit_log_tasks() -> None: | CODE |
| LOW | tests/unit/proxy/db/test_model_access_group_spend.py | 37 | def update_many(self, where: dict, data: dict) -> None: | CODE |
| LOW | tests/unit/secret_managers/test_secret_managers_main.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/unit/repositories/test_unit_of_work.py | 22 | def update_many(self, where: Mapping[str, object], data: Mapping[str, object]) -> None: | CODE |
| LOW⚡ | …s/unit/integrations/test_prometheus_caller_identity.py | 63 | def _set_caller_identity(monkeypatch: pytest.MonkeyPatch, mode: str) -> None: | CODE |
| LOW | …unit/integrations/test_prometheus_rate_limit_labels.py | 355 | def _set_virtual_key_metrics(logger: PrometheusLogger, kwargs: dict) -> None: | CODE |
| LOW | tests/unit/integrations/zerobus/test_zerobus_logger.py | 57 | async def _settle(logger: ZerobusLogger) -> None: | CODE |
| LOW | tests/unit/integrations/pointfive/test_logger.py | 490 | async def _settle(logger) -> None: | CODE |
| LOW | …ass_through/messages/test_anthropic_messages_router.py | 180 | def _set_fake_aws_env(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/caching/test_redis_cluster_node_isolation.py | 38 | def update_active_connections_for_reconnect(self) -> None: ... | CODE |
| LOW | …on/providers/test_responses_websocket_session_limit.py | 837 | def _settled_on_every_worker(written_at: float) -> None: | CODE |
| LOW | …oviders/test_bedrock_converse_lookaround_regex_wire.py | 808 | def _settled_schema(gateway: Gateway, wire: Wire, model: str, expected: Mapping[str, JsonValue]) -> None: | CODE |
| LOW | …viders/test_anthropic_count_tokens_system_lift_wire.py | 200 | def _settled_on_every_worker(gateway: Gateway, body: Mapping[str, JsonValue]) -> None: | CODE |
| LOW | …ion/providers/test_bedrock_kimi_k3_cache_point_wire.py | 1139 | def _settled(gateway: Gateway, name: str, wire: Wire) -> None: | CODE |
| LOW | …tion/observability/test_s3_v2_partition_granularity.py | 186 | def _update_environment(candidate: Gateway, values: Mapping[str, JsonValue]) -> None: | CODE |
| LOW | tests/integration/_support/client.py | 278 | def _set_team_admin_permissions(gateway: Gateway, fields: Sequence[str]) -> None: | CODE |
| LOW | tests/integration/_support/upstream.py | 713 | def set_interaction_state(control_url: str, interaction_id: str, state: InteractionState) -> None: | CODE |
| LOW | tests/integration/sdk/test_http2_wire.py | 172 | def _set_http2(monkeypatch: pytest.MonkeyPatch, enabled: bool) -> None: | CODE |
| LOW | …uting/test_fallback_hop_foreign_encrypted_reasoning.py | 675 | def set_pre_call_checks(gateway: Gateway, checks: Sequence[str]) -> None: | CODE |
| LOW | …ation/authorization/test_passthrough_route_denylist.py | 173 | def set_denied(routes: list[JsonValue]) -> None: | CODE |
| LOW | …ration/authorization/test_alias_chain_budget_waiver.py | 172 | def _settle_both(rig: ChainRig, model: str, key: str, status: int, extra: Mapping[str, JsonValue] = NO_EXTRA) -> None: | CODE |
| LOW | tests/rust-python-harness/__init__.py | 4 | __all__ = ["load_catalog", "main"] | CODE |
| LOW | tests/rust-python-harness/shared/reporting/models.py | 133 | def set_initial_status(self) -> None: | CODE |
| LOW | tests/rust-python-harness/shared/reporting/ui.py | 238 | def _update_result(self, key: str, label: str, status: RunStatus, completed: int, total: int) -> None: | CODE |
| LOW | …/rust-python-harness/shared/reporting/orchestration.py | 11 | __all__ = ["StrategyRunner", "run_strategies"] | CODE |
| LOW | tests/rust-python-harness/shared/parity/test_parity.py | 19 | def set_hidden_param(self, key: str, value: object) -> None: | CODE |
| LOW | tests/rust-python-harness/shared/parity/test_stream.py | 38 | def set_hidden_param(self, key: str, value: object) -> None: | CODE |
| LOW | tests/rust-python-harness/cli/__init__.py | 13 | __all__ = ["load_catalog", "main"] | CODE |
| LOW | tests/e2e/proxy_client.py | 754 | def update_model(self, model_id: str, litellm_params: LiteLLMParamsBody) -> None: | CODE |
| LOW | tests/e2e/proxy_client.py | 950 | def update_team(self, body: TeamUpdateBody) -> None: | CODE |
| LOW | …2e/quota_management/spend_tracking/spend_e2e_client.py | 67 | __all__ = [ | CODE |
| LOW | tests/e2e/management/test_team_management_e2e.py | 195 | def _set_blocked(client: ManagementClient, team_id: str, *, blocked: bool) -> None: | CODE |
| LOW | tests/e2e/management/test_team_management_e2e.py | 398 | def _set_team_admin_editable_fields(client: ManagementClient, fields: list[str]) -> None: | CODE |
| LOW | tests/e2e/management/management_client.py | 171 | def update_key_models(self, key: str, models: list[str]) -> None: | CODE |
| LOW | tests/e2e/management/management_client.py | 335 | def update_team(self, body: TeamUpdateBody) -> None: | CODE |
| LOW | tests/e2e/management/management_client.py | 526 | def update_user(self, body: UserUpdateBody) -> None: | CODE |
| LOW | tests/e2e/management/management_client.py | 604 | def update_org(self, body: OrgUpdateBody) -> None: | CODE |
| LOW⚡ | tests/e2e/mcp/oauth_chat_client.py | 73 | async def set_tokens(self, tokens: OAuthToken) -> None: | CODE |
| LOW⚡ | tests/e2e/mcp/oauth_chat_client.py | 79 | async def set_client_info(self, client_info: OAuthClientInformationFull) -> None: | CODE |
| LOW | tests/e2e/secret_manager/secret_store_cyberark.py | 92 | def _update_root_policy(self, method: Literal["POST", "PATCH"], policy: str, action: str) -> None: | CODE |
| LOW | tests/e2e/access_control/access_control_client.py | 101 | def set_team_models(self, team_id: str, team_alias: str, models: list[str]) -> None: | CODE |
| LOW⚡ | litellm/__init__.py | 1560 | def set_global_bitbucket_config(config: Mapping[str, object]) -> None: | CODE |
| LOW⚡ | litellm/__init__.py | 1570 | def set_global_gitlab_config(config: Mapping[str, object]) -> None: | CODE |
| LOW | litellm/_lazy_imports_registry.py | 1591 | __all__ = [ | CODE |
| LOW | litellm/utils.py | 3297 | def set_live_deployment_replay(replay: Callable[[], None]) -> None: | CODE |
| LOW⚡ | litellm/router.py | 2553 | def set_optional_pre_call_checks(self, optional_pre_call_checks: OptionalPreCallChecks | None) -> None: | CODE |
| LOW | litellm/router.py | 1439 | def update_redis_cache(self, cache: RedisCache) -> None: | CODE |
| LOW | litellm/router.py | 4019 | def _set_deployment_num_retries_on_exception(self, exception: Exception, deployment: dict) -> None: | CODE |
| LOW | litellm/router.py | 4038 | def _set_failed_deployment_id_on_exception(self, exception: Exception, deployment: Mapping[str, Any]) -> None: | CODE |
| LOW | litellm/router.py | 10209 | def _update_deployment_indices_after_removal(self, model_id: str, removal_idx: int) -> None: | CODE |
| 356 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/app/(dashboard)/agents/_components/add_agent_form.tsx | 143 | // Step 3: key assignment state | COMMENT |
| LOW⚡ | …/app/(dashboard)/agents/_components/add_agent_form.tsx | 155 | // Step 4: results | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 35 | # Step 1: litellm.embedding() extracts and passes shared_session | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 39 | # Step 2: OpenAI handlers pass it forward | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 45 | # Step 3: _get_openai_client passes it to AsyncHTTPHandler | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 49 | # Step 4: AsyncHTTPHandler.create_client passes it to create_async_transport | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 53 | # Step 5: create_async_transport passes it to create_aiohttp_transport | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 57 | # Step 6: create_aiohttp_transport uses it | COMMENT |
| LOW⚡ | tests/unit/test_project_alias_tracking.py | 118 | # Step 1: Auth → sanitized metadata | COMMENT |
| LOW⚡ | tests/unit/test_project_alias_tracking.py | 123 | # Step 2: Sanitized metadata → standard logging metadata | COMMENT |
| LOW⚡ | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 423 | # Step 1: login — get code | COMMENT |
| LOW⚡ | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 431 | # Step 2: exchange — get JWT | COMMENT |
| LOW | …y/_experimental/mcp_server/test_jwt_mcp_enforcement.py | 267 | # Step 1: Verify JWT auth returns correct team_id | COMMENT |
| LOW⚡ | …y/_experimental/mcp_server/test_jwt_mcp_enforcement.py | 289 | # Step 2: Create UserAPIKeyAuth with the team_id from JWT auth | COMMENT |
| LOW⚡ | …y/_experimental/mcp_server/test_jwt_mcp_enforcement.py | 296 | # Step 3: Verify MCPRequestHandler returns team's MCP servers | COMMENT |
| LOW⚡ | …/vector_store_endpoints/test_vector_store_endpoints.py | 2050 | # Step 1: Create vector store on Instance 1 | COMMENT |
| LOW⚡ | …/vector_store_endpoints/test_vector_store_endpoints.py | 2056 | # Step 2: Instance 2 fetches and caches the vector store | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1803 | # Step 1: Create vector store on Instance 1 | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1824 | # Step 2: Instance 2 should be able to find it via database fallback | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1842 | # Step 3: Test that Instance 2 can list vector stores from database | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1877 | # Step 4: Delete vector store on Instance 1 | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1902 | # Step 5: Instance 2 should NOT show it in the list (database is source of truth) | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1939 | # Step 6: Test that using a deleted vector store fails gracefully | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 2074 | # Step 3: Instance 1 updates the vector store in the database | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 2106 | # Step 4: Instance 2 calls list endpoint (which should sync with database) | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 2126 | # Step 5: Verify Instance 2 now has the updated data | COMMENT |
| LOW⚡ | …xy/management_endpoints/scim/test_scim_v2_endpoints.py | 414 | # Step 1: Start with no default params (fresh proxy state) | COMMENT |
| LOW⚡ | …xy/management_endpoints/scim/test_scim_v2_endpoints.py | 417 | # Step 2: Simulate the UI saving "Internal User (Create/Delete/View)" as default role | COMMENT |
| LOW | …xy/management_endpoints/scim/test_scim_v2_endpoints.py | 452 | # Step 3: Create a user via SCIM | COMMENT |
| LOW | …xy/management_endpoints/scim/test_scim_v2_endpoints.py | 483 | # Step 4: Verify the user got INTERNAL_USER, not INTERNAL_USER_VIEW_ONLY | COMMENT |
| LOW⚡ | …/unit/integrations/azure_storage/test_azure_storage.py | 102 | # Step 1: Create file | COMMENT |
| LOW⚡ | …/unit/integrations/azure_storage/test_azure_storage.py | 110 | # Step 2: Append data | COMMENT |
| LOW⚡ | …/unit/integrations/azure_storage/test_azure_storage.py | 119 | # Step 3: Flush data | COMMENT |
| LOW | …ms/runwayml/videos/test_runway_video_transformation.py | 314 | # Step 1: Create video | COMMENT |
| LOW | …ms/runwayml/videos/test_runway_video_transformation.py | 333 | # Step 2: Parse creation response | COMMENT |
| LOW | …ms/runwayml/videos/test_runway_video_transformation.py | 352 | # Step 3: Check completion status | COMMENT |
| LOW | tests/unit/llms/gemini/test_gemini_tts.py | 312 | # Step 1: Map OpenAI audio param to speechConfig | COMMENT |
| LOW | tests/unit/llms/gemini/test_gemini_tts.py | 328 | # Step 2: Transform to request body (this is where the bug was) | COMMENT |
| LOW | …llms/gemini/videos/test_gemini_video_transformation.py | 662 | # Step 1: Create request with parameters | COMMENT |
| LOW | …llms/gemini/videos/test_gemini_video_transformation.py | 682 | # Step 2: Parse create response | COMMENT |
| LOW | …llms/gemini/videos/test_gemini_video_transformation.py | 699 | # Step 3: Check status (completed) | COMMENT |
| LOW⚡ | tests/unit/llms/vertex_ai/test_vertex.py | 525 | # Step 1: send the conversation and available functions to the model | COMMENT |
| LOW | …ex_ai/gemini/test_thought_signature_in_tool_call_id.py | 195 | # Step 1: Gemini returns function call with thought signature | COMMENT |
| LOW | …ex_ai/gemini/test_thought_signature_in_tool_call_id.py | 206 | # Step 2: LiteLLM transforms to OpenAI format | COMMENT |
| LOW | …ex_ai/gemini/test_thought_signature_in_tool_call_id.py | 219 | # Step 3: OpenAI client sends back assistant message | COMMENT |
| LOW | …ex_ai/gemini/test_thought_signature_in_tool_call_id.py | 236 | # Step 4: LiteLLM converts back to Gemini format, extracting signature | COMMENT |
| LOW⚡ | …vertex_ai/files/test_vertex_ai_files_transformation.py | 1089 | # Step 1: Transform OpenAI input to Vertex AI format (mixed case exercises raw label) | COMMENT |
| LOW⚡ | …vertex_ai/files/test_vertex_ai_files_transformation.py | 1131 | # Step 3: Transform Vertex AI output back to OpenAI format | COMMENT |
| LOW⚡ | …vertex_ai/files/test_vertex_ai_files_transformation.py | 1136 | # Step 4: Verify custom_id was preserved (original casing, not sanitized label) | COMMENT |
| LOW | …vertex_ai/files/test_vertex_ai_files_transformation.py | 1110 | # Step 2: Simulate Vertex AI batch output (with the label echoed back) | COMMENT |
| LOW | …/vertex_ai/rerank/test_vertex_ai_rerank_integration.py | 40 | # Step 1: Test request transformation | COMMENT |
| LOW | …/vertex_ai/rerank/test_vertex_ai_rerank_integration.py | 72 | # Step 2: Test response transformation | COMMENT |
| LOW | …ropic/chat/test_code_interpreter_results_extraction.py | 224 | # Step 1: Parse chunks through ModelResponseIterator (Anthropic handler) | COMMENT |
| LOW | …ropic/chat/test_code_interpreter_results_extraction.py | 235 | # Step 2: Assemble via stream_chunk_builder (simulates end-of-stream) | COMMENT |
| LOW | …ropic/chat/test_code_interpreter_results_extraction.py | 249 | # Step 3: Extract via _extract_tool_result_output_items (Responses API layer) | COMMENT |
| LOW⚡ | …/unit/llms/mistral/test_mistral_chat_transformation.py | 410 | # Step 1: Map parameters | COMMENT |
| LOW | …/unit/llms/mistral/test_mistral_chat_transformation.py | 422 | # Step 2: Transform request | COMMENT |
| LOW⚡ | tests/unit/caching/test_caching_handler.py | 542 | # Step 1: Cache the embedding response | COMMENT |
| LOW⚡ | tests/unit/caching/test_caching_handler.py | 547 | # Step 2: Retrieve from cache | COMMENT |
| LOW⚡ | tests/unit/caching/test_caching_handler.py | 557 | # Step 3: Verify the model field is preserved | COMMENT |
| 161 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | terraform/provider/docs/index.md | 76 | export LITELLM_API_KEY="your-api-key" | CODE |
| HIGH | …rdrails/_components/custom_code/custom_code_catalog.ts | 61 | headers={"Authorization": "Bearer YOUR_API_KEY"}, | CODE |
| HIGH | …d)/playground/components/chat_ui/SessionManagement.tsx | 121 | -H "Authorization: Bearer your-api-key" \\ | CODE |
| HIGH | …hboard)/api-reference/_components/APIReferenceView.tsx | 54 | api_key="your_api_key", | CODE |
| HIGH | …(dashboard)/mcp-servers/_components/MCPToolsetsTab.tsx | 338 | "headers": { "x-litellm-api-key": "Bearer <your-api-key>" } | CODE |
| HIGH | …/litellm-dashboard/src/components/public_model_hub.tsx | 842 | apiKey: "your_api_key", | CODE |
| HIGH | …/litellm-dashboard/src/components/public_model_hub.tsx | 866 | apiKey: "your_api_key", | CODE |
| HIGH | …lm-dashboard/src/components/AIHub/modelUsageExample.ts | 6 | api_key="your_api_key", | CODE |
| HIGH | …lm-dashboard/src/components/AIHub/modelUsageExample.ts | 26 | headers={${JSON.stringify(keyHeaderName)}: "Bearer your_api_key"}, | CODE |
| HIGH | …shboard/src/components/AIHub/modelUsageExample.test.ts | 17 | 'headers={"Authorization": "Bearer your_api_key"}', | CODE |
| HIGH | …shboard/src/components/AIHub/modelUsageExample.test.ts | 20 | 'headers={"X-Litellm-Key": "Bearer your_api_key"}', | CODE |
| HIGH | …-dashboard/src/components/AIHub/ModelHubTable.test.tsx | 261 | expect(dialog).toHaveTextContent('headers={"X-Litellm-Key": "Bearer your_api_key"}'); | CODE |
| HIGH | cookbook/codellama-server/README.MD | 124 | os.environ['OPENAI_API_KEY]` = "YOUR_API_KEY" | CODE |
| HIGH | cookbook/litellm_proxy_server/readme.md | 145 | os.environ['OPENAI_API_KEY]` = "YOUR_API_KEY" | CODE |
| HIGH⚡ | scripts/health_check/health_check_client_README.md | 21 | export LITELLM_API_KEY="your-api-key" | CODE |
| HIGH⚡ | scripts/health_check/health_check_client_README.md | 28 | export LITELLM_API_KEY="your-api-key" | CODE |
| HIGH⚡ | scripts/health_check/health_check_client_README.md | 36 | export LITELLM_API_KEY="your-api-key" | CODE |
| HIGH | scripts/health_check/health_check_client_README.md | 54 | -e LITELLM_API_KEY="your-api-key" \ | CODE |
| HIGH | scripts/health_check/health_check_client_README.md | 63 | -e LITELLM_API_KEY="your-api-key" \ | CODE |
| HIGH⚡ | scripts/health_check/health_check_client_README.md | 75 | $env:LITELLM_API_KEY="your-api-key" | CODE |
| HIGH⚡ | scripts/health_check/health_check_client_README.md | 82 | export LITELLM_API_KEY="your-api-key" | CODE |
| HIGH⚡ | scripts/health_check/health_check_client_README.md | 89 | $env:LITELLM_API_KEY="your-api-key" | CODE |
| HIGH⚡ | scripts/health_check/health_check_client_README.md | 97 | $env:LITELLM_API_KEY="your-api-key" | CODE |
| HIGH⚡ | scripts/health_check/health_check_client_README.md | 105 | export LITELLM_API_KEY="your-api-key" | CODE |
| HIGH⚡ | litellm/router.py | 1029 | "api_key": <your-api-key>, | STRING |
| HIGH⚡ | litellm/router.py | 1038 | "api_key": <your-api-key>, | STRING |
| HIGH⚡ | litellm/router.py | 1047 | "api_key": <your-api-key>, | STRING |
| HIGH⚡ | litellm/proxy/guardrails/guardrail_endpoints.py | 174 | curl -X GET "http://localhost:4000/guardrails/list" -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH⚡ | litellm/proxy/guardrails/guardrail_endpoints.py | 228 | curl -X GET "http://localhost:4000/v2/guardrails/list" -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH⚡ | litellm/proxy/guardrails/guardrail_endpoints.py | 387 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH⚡ | litellm/proxy/guardrails/guardrail_endpoints.py | 503 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH⚡ | litellm/proxy/guardrails/guardrail_endpoints.py | 630 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH⚡ | litellm/proxy/guardrails/guardrail_endpoints.py | 1208 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH⚡ | litellm/proxy/guardrails/guardrail_endpoints.py | 1400 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH⚡ | litellm/proxy/guardrails/guardrail_endpoints.py | 2155 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | …m/proxy/_experimental/mcp_server/mcp_server_manager.py | 1937 | "url": "https://actions.zapier.com/mcp/<your-api-key>/sse" | STRING |
| HIGH | …m/proxy/_experimental/mcp_server/mcp_server_manager.py | 1943 | "url": "https://actions.zapier.com/mcp/<your-api-key>/sse" | STRING |
| HIGH | litellm/proxy/agent_endpoints/endpoints.py | 601 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/agent_endpoints/endpoints.py | 722 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/agent_endpoints/endpoints.py | 804 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/agent_endpoints/endpoints.py | 911 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/agent_endpoints/endpoints.py | 1016 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/agent_endpoints/endpoints.py | 1081 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/agent_endpoints/endpoints.py | 1142 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/agent_endpoints/endpoints.py | 1245 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/policy_engine/policy_resolve_endpoints.py | 238 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/policy_engine/policy_resolve_endpoints.py | 341 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 97 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 99 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 169 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 396 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 436 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 490 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 542 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 612 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 672 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 726 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 737 | -H "Authorization: Bearer <your_api_key>" \\ | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 815 | -H "Authorization: Bearer <your_api_key>" | STRING |
| HIGH | litellm/proxy/policy_engine/policy_endpoints.py | 853 | -H "Authorization: Bearer <your_api_key>" | STRING |
| 37 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/app/(dashboard)/agents/_components/add_agent_form.tsx | 143 | // Step 3: key assignment state | COMMENT |
| LOW⚡ | …/app/(dashboard)/agents/_components/add_agent_form.tsx | 155 | // Step 4: results | COMMENT |
| LOW | …itellm_enterprise/proxy/hooks/managed_vector_stores.py | 91 | # For TypedDict responses, we need to check if _hidden_params was added | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 35 | # Step 1: litellm.embedding() extracts and passes shared_session | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 39 | # Step 2: OpenAI handlers pass it forward | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 45 | # Step 3: _get_openai_client passes it to AsyncHTTPHandler | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 49 | # Step 4: AsyncHTTPHandler.create_client passes it to create_async_transport | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 53 | # Step 5: create_async_transport passes it to create_aiohttp_transport | COMMENT |
| LOW⚡ | tests/unit/test_aembedding_session_reuse_e2e.py | 57 | # Step 6: create_aiohttp_transport uses it | COMMENT |
| LOW⚡ | tests/unit/test_project_alias_tracking.py | 118 | # Step 1: Auth → sanitized metadata | COMMENT |
| LOW⚡ | tests/unit/test_project_alias_tracking.py | 123 | # Step 2: Sanitized metadata → standard logging metadata | COMMENT |
| LOW⚡ | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 423 | # Step 1: login — get code | COMMENT |
| LOW⚡ | …/unit/proxy/test_proxy_server_endpoints_and_startup.py | 431 | # Step 2: exchange — get JWT | COMMENT |
| LOW | …y/_experimental/mcp_server/test_jwt_mcp_enforcement.py | 267 | # Step 1: Verify JWT auth returns correct team_id | COMMENT |
| LOW⚡ | …y/_experimental/mcp_server/test_jwt_mcp_enforcement.py | 289 | # Step 2: Create UserAPIKeyAuth with the team_id from JWT auth | COMMENT |
| LOW⚡ | …y/_experimental/mcp_server/test_jwt_mcp_enforcement.py | 296 | # Step 3: Verify MCPRequestHandler returns team's MCP servers | COMMENT |
| LOW⚡ | …/vector_store_endpoints/test_vector_store_endpoints.py | 2050 | # Step 1: Create vector store on Instance 1 | COMMENT |
| LOW⚡ | …/vector_store_endpoints/test_vector_store_endpoints.py | 2056 | # Step 2: Instance 2 fetches and caches the vector store | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1803 | # Step 1: Create vector store on Instance 1 | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1824 | # Step 2: Instance 2 should be able to find it via database fallback | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1842 | # Step 3: Test that Instance 2 can list vector stores from database | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1877 | # Step 4: Delete vector store on Instance 1 | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1902 | # Step 5: Instance 2 should NOT show it in the list (database is source of truth) | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 1939 | # Step 6: Test that using a deleted vector store fails gracefully | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 2074 | # Step 3: Instance 1 updates the vector store in the database | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 2106 | # Step 4: Instance 2 calls list endpoint (which should sync with database) | COMMENT |
| LOW | …/vector_store_endpoints/test_vector_store_endpoints.py | 2126 | # Step 5: Verify Instance 2 now has the updated data | COMMENT |
| LOW⚡ | …xy/management_endpoints/scim/test_scim_v2_endpoints.py | 414 | # Step 1: Start with no default params (fresh proxy state) | COMMENT |
| LOW⚡ | …xy/management_endpoints/scim/test_scim_v2_endpoints.py | 417 | # Step 2: Simulate the UI saving "Internal User (Create/Delete/View)" as default role | COMMENT |
| LOW | …xy/management_endpoints/scim/test_scim_v2_endpoints.py | 452 | # Step 3: Create a user via SCIM | COMMENT |
| LOW | …xy/management_endpoints/scim/test_scim_v2_endpoints.py | 483 | # Step 4: Verify the user got INTERNAL_USER, not INTERNAL_USER_VIEW_ONLY | COMMENT |
| LOW⚡ | …/unit/integrations/azure_storage/test_azure_storage.py | 102 | # Step 1: Create file | COMMENT |
| LOW⚡ | …/unit/integrations/azure_storage/test_azure_storage.py | 110 | # Step 2: Append data | COMMENT |
| LOW⚡ | …/unit/integrations/azure_storage/test_azure_storage.py | 119 | # Step 3: Flush data | COMMENT |
| LOW | …ms/runwayml/videos/test_runway_video_transformation.py | 314 | # Step 1: Create video | COMMENT |
| LOW | …ms/runwayml/videos/test_runway_video_transformation.py | 333 | # Step 2: Parse creation response | COMMENT |
| LOW | …ms/runwayml/videos/test_runway_video_transformation.py | 352 | # Step 3: Check completion status | COMMENT |
| LOW | tests/unit/llms/gemini/test_gemini_tts.py | 312 | # Step 1: Map OpenAI audio param to speechConfig | COMMENT |
| LOW | tests/unit/llms/gemini/test_gemini_tts.py | 328 | # Step 2: Transform to request body (this is where the bug was) | COMMENT |
| LOW | …llms/gemini/videos/test_gemini_video_transformation.py | 662 | # Step 1: Create request with parameters | COMMENT |
| LOW | …llms/gemini/videos/test_gemini_video_transformation.py | 682 | # Step 2: Parse create response | COMMENT |
| LOW | …llms/gemini/videos/test_gemini_video_transformation.py | 699 | # Step 3: Check status (completed) | COMMENT |
| LOW⚡ | tests/unit/llms/vertex_ai/test_vertex.py | 525 | # Step 1: send the conversation and available functions to the model | COMMENT |
| LOW | …ex_ai/gemini/test_thought_signature_in_tool_call_id.py | 195 | # Step 1: Gemini returns function call with thought signature | COMMENT |
| LOW | …ex_ai/gemini/test_thought_signature_in_tool_call_id.py | 206 | # Step 2: LiteLLM transforms to OpenAI format | COMMENT |
| LOW | …ex_ai/gemini/test_thought_signature_in_tool_call_id.py | 219 | # Step 3: OpenAI client sends back assistant message | COMMENT |
| LOW | …ex_ai/gemini/test_thought_signature_in_tool_call_id.py | 236 | # Step 4: LiteLLM converts back to Gemini format, extracting signature | COMMENT |
| LOW⚡ | …vertex_ai/files/test_vertex_ai_files_transformation.py | 1089 | # Step 1: Transform OpenAI input to Vertex AI format (mixed case exercises raw label) | COMMENT |
| LOW⚡ | …vertex_ai/files/test_vertex_ai_files_transformation.py | 1131 | # Step 3: Transform Vertex AI output back to OpenAI format | COMMENT |
| LOW⚡ | …vertex_ai/files/test_vertex_ai_files_transformation.py | 1136 | # Step 4: Verify custom_id was preserved (original casing, not sanitized label) | COMMENT |
| LOW | …vertex_ai/files/test_vertex_ai_files_transformation.py | 1110 | # Step 2: Simulate Vertex AI batch output (with the label echoed back) | COMMENT |
| LOW | …/vertex_ai/rerank/test_vertex_ai_rerank_integration.py | 40 | # Step 1: Test request transformation | COMMENT |
| LOW | …/vertex_ai/rerank/test_vertex_ai_rerank_integration.py | 72 | # Step 2: Test response transformation | COMMENT |
| LOW | …ropic/chat/test_code_interpreter_results_extraction.py | 224 | # Step 1: Parse chunks through ModelResponseIterator (Anthropic handler) | COMMENT |
| LOW | …ropic/chat/test_code_interpreter_results_extraction.py | 235 | # Step 2: Assemble via stream_chunk_builder (simulates end-of-stream) | COMMENT |
| LOW | …ropic/chat/test_code_interpreter_results_extraction.py | 249 | # Step 3: Extract via _extract_tool_result_output_items (Responses API layer) | COMMENT |
| LOW⚡ | …/unit/llms/mistral/test_mistral_chat_transformation.py | 410 | # Step 1: Map parameters | COMMENT |
| LOW | …/unit/llms/mistral/test_mistral_chat_transformation.py | 422 | # Step 2: Transform request | COMMENT |
| LOW⚡ | tests/unit/caching/test_caching_handler.py | 542 | # Step 1: Cache the embedding response | COMMENT |
| LOW⚡ | tests/unit/caching/test_caching_handler.py | 547 | # Step 2: Retrieve from cache | COMMENT |
| 136 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …hboard)/api-reference/_components/APIReferenceView.tsx | 68 | print(response)`} | CODE |
| HIGH | …hboard)/api-reference/_components/APIReferenceView.tsx | 102 | print(response)`} | CODE |
| HIGH | …hboard)/api-reference/_components/APIReferenceView.tsx | 133 | print(response)`} | CODE |
| HIGH | …d/src/app/(dashboard)/budgets/_components/constants.ts | 42 | print(completion.choices[0].message)`; | CODE |
| HIGH | …/_components/prompt_editor_view/PromptCodeSnippets.tsx | 144 | print(response)`; | CODE |
| HIGH | …/_components/prompt_editor_view/PromptCodeSnippets.tsx | 162 | print(response)`; | CODE |
| HIGH | …/_components/prompt_editor_view/PromptCodeSnippets.tsx | 176 | print(response)`; | CODE |
| HIGH | ui/litellm-dashboard/src/components/networking.tsx | 6466 | // if 404 - return None | COMMENT |
| HIGH | …/litellm-dashboard/src/components/public_model_hub.tsx | 1157 | print(response.model_dump(mode='json', exclude_none=True))`} | CODE |
| HIGH | …/litellm-dashboard/src/components/public_model_hub.tsx | 1181 | print(response.model_dump(mode='json', exclude_none=True))`; | CODE |
| HIGH⚡ | …/litellm-dashboard/src/components/public_model_hub.tsx | 1291 | print(f"Available tools: {[tool.name for tool in tools]}") | CODE |
| HIGH⚡ | …/litellm-dashboard/src/components/public_model_hub.tsx | 1298 | print(f"Response: {response}") | CODE |
| HIGH⚡ | …/litellm-dashboard/src/components/public_model_hub.tsx | 1331 | print(f"Available tools: {[tool.name for tool in tools]}") | CODE |
| HIGH⚡ | …/litellm-dashboard/src/components/public_model_hub.tsx | 1338 | print(f"Response: {response}") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 259 | print(f"Image saved to {image_path}") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 264 | print("Could not find image URL in response.") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 265 | print("Full response:", json_response) | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 267 | print(f"An error occurred: {e}") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 268 | print("Full response:", json_response) | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 344 | print(f"Image saved to {image_filename}") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 349 | print("No image generated. Model response:") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 350 | print("\\n".join(text_response)) | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 352 | print("No image data found in response.") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 353 | print("Full response for debugging:") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 354 | print(response) | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 428 | print(f"Image saved to {image_filename}") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 433 | print("No image generated. Model response:") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 434 | print("\\n".join(text_response)) | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 436 | print("No image data found in response.") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 437 | print("Full response for debugging:") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 438 | print(response) | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 511 | print(f"Image saved to {image_filename}") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 516 | print("No image generated. Model response:") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 517 | print("\\n".join(text_response)) | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 519 | print("No image data found in response.") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 520 | print("Full response for debugging:") | CODE |
| HIGH⚡ | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 521 | print(response) | CODE |
| HIGH | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 137 | print(response) | CODE |
| HIGH | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 197 | print(response.output_text) | CODE |
| HIGH | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 533 | print(response.data[0].embedding) | CODE |
| HIGH | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 547 | print(response.text) | CODE |
| HIGH | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 562 | print(f"Audio saved to {output_filename}") | CODE |
| HIGH | …c/components/routing_groups/RoutingGroupUsagePanel.tsx | 43 | print(response)`; | CODE |
| HIGH⚡ | …tellm-dashboard/src/components/AIHub/ModelHubTable.tsx | 1128 | print(f"Available tools: {[tool.name for tool in tools]}") | CODE |
| HIGH⚡ | …tellm-dashboard/src/components/AIHub/ModelHubTable.tsx | 1135 | print(f"Response: {response}") | CODE |
| HIGH | …lm-dashboard/src/components/AIHub/modelUsageExample.ts | 20 | print(response.choices[0].message.content)`; | CODE |
| HIGH | …lm-dashboard/src/components/AIHub/modelUsageExample.ts | 39 | print(response.json()["answers"])`; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …se/litellm_enterprise/proxy/audit_logging_endpoints.py | 69 | CODE | |
| LOW | …rprise/litellm_enterprise/proxy/hooks/managed_files.py | 1733 | CODE | |
| LOW | …proxy/management_endpoints/key_management_endpoints.py | 42 | CODE | |
| LOW | tests/test_keys.py | 11 | CODE | |
| LOW | tests/unit/test_video_generation.py | 930 | CODE | |
| LOW | tests/unit/test_video_generation.py | 118 | CODE | |
| LOW | tests/unit/test_video_generation.py | 756 | CODE | |
| LOW | tests/unit/proxy/test_proxy_utils.py | 1651 | CODE | |
| LOW | …drails/guardrail_hooks/_cisco_ai_defense_test_utils.py | 175 | CODE | |
| LOW | …/unit/proxy/guardrails/guardrail_hooks/test_conduct.py | 48 | CODE | |
| LOW | …unit/proxy/_experimental/mcp_server/test_mcp_server.py | 969 | CODE | |
| LOW | …experimental/mcp_server/test_discoverable_endpoints.py | 3609 | CODE | |
| LOW | …rimental/mcp_server/auth/test_user_api_key_auth_mcp.py | 6097 | CODE | |
| LOW | …rver/outbound_credentials/test_authz_code_refresher.py | 14 | CODE | |
| LOW | …sts/unit/proxy/auth/test_model_access_group_budgets.py | 119 | CODE | |
| LOW | tests/unit/proxy/batches_endpoints/test_endpoints.py | 2007 | CODE | |
| LOW | …oxy/batches_endpoints/test_litellm_executed_batches.py | 371 | CODE | |
| LOW | …it/proxy/management_helpers/test_bulk_user_deletion.py | 162 | CODE | |
| LOW | …sts/unit/proxy/policy_engine/test_policy_versioning.py | 24 | CODE | |
| LOW | …unit/proxy/policy_engine/test_policy_versioning_e2e.py | 14 | CODE | |
| LOW | …proxy/hooks/test_unit_test_max_model_budget_limiter.py | 601 | CODE | |
| LOW | …xy/management_endpoints/test_access_group_endpoints.py | 25 | CODE | |
| LOW | …oxy/management_endpoints/test_common_daily_activity.py | 1667 | CODE | |
| LOW | …oxy/management_endpoints/test_auto_router_endpoints.py | 1553 | CODE | |
| LOW | tests/unit/responses/test_text_format_conversion.py | 91 | CODE | |
| LOW | tests/unit/repositories/test_daily_activity_sql.py | 25 | CODE | |
| LOW | tests/unit/integrations/test_shadow_eval_logger.py | 258 | CODE | |
| LOW | …ts/unit/integrations/newrelic/test_newrelic_metrics.py | 34 | CODE | |
| LOW | tests/unit/harness/handlers/test_tool_loop_handler.py | 71 | CODE | |
| LOW | tests/unit/llms/base_llm/auth/test_token_exchange.py | 176 | CODE | |
| LOW | …s/github_copilot/test_github_copilot_transformation.py | 486 | CODE | |
| LOW | …/unit/llms/azure/response/test_azure_transformation.py | 782 | CODE | |
| LOW | …/unit/llms/azure/response/test_azure_transformation.py | 884 | CODE | |
| LOW | …s/searxng/search/test_searxng_search_transformation.py | 206 | CODE | |
| LOW | tests/unit/llms/bedrock/batches/test_handler.py | 676 | CODE | |
| LOW | …hropic/pass_through/context_management/test_compact.py | 1191 | CODE | |
| LOW | …ts/integration/observability/_openinference_support.py | 746 | CODE | |
| LOW | tests/integration/observability/test_grayswan_wire.py | 61 | CODE | |
| LOW | …ts/integration/observability/test_guardrail_effects.py | 2240 | CODE | |
| LOW | …tion/observability/test_cache_hit_guardrail_metrics.py | 185 | CODE | |
| LOW | …_through_unit_tests/test_websearch_interception_e2e.py | 882 | CODE | |
| LOW | tests/proxy_behavior/management/conftest.py | 136 | CODE | |
| LOW | …proxy_behavior/spend/test_autorouter_session_rollup.py | 39 | CODE | |
| LOW | …n/interactions/test_google_interactions_integration.py | 248 | CODE | |
| LOW | tests/e2e/quota_management/budgets/budget_client.py | 228 | CODE | |
| LOW | tests/e2e/claude_code/cli_driver.py | 402 | CODE | |
| LOW | tests/batches_tests/test_bedrock_files_and_batches.py | 70 | CODE | |
| LOW | tests/e2e_harness/test_fixture_canonical.py | 19 | CODE | |
| LOW | tests/multi_instance_e2e_tests/test_update_team_e2e.py | 65 | CODE | |
| LOW | litellm/cost_calculator.py | 385 | CODE | |
| LOW | litellm/cost_calculator.py | 1234 | CODE | |
| LOW | litellm/cost_calculator.py | 1345 | CODE | |
| LOW | litellm/cost_calculator.py | 1991 | CODE | |
| LOW | litellm/utils.py | 2573 | CODE | |
| LOW | litellm/utils.py | 3655 | CODE | |
| LOW | litellm/utils.py | 4481 | CODE | |
| LOW | litellm/exceptions.py | 459 | CODE | |
| LOW | litellm/router.py | 912 | CODE | |
| LOW | litellm/router.py | 8228 | CODE | |
| LOW | litellm/main.py | 425 | CODE | |
| 316 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | terraform/litellm/gcp/network.tf | 43 | # min/max instances are required by the API now (you can't just set | COMMENT |
| MEDIUM | terraform/litellm/aws/iam.tf | 31 | # the first 7 components — robust to any combination of empty/non-empty | COMMENT |
| MEDIUM | …/(dashboard)/prompts/_components/variable_textarea.tsx | 57 | // "Tags Below" approach which is robust and functional. | COMMENT |
| LOW | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 287 | # For this example, we'll just return a placeholder ID | COMMENT |
| LOW | …ellm-dashboard/src/components/chat_ui/CodeSnippets.tsx | 454 | # For this example, we'll just return a placeholder ID | COMMENT |
| MEDIUM | …gement_endpoints/test_callback_management_endpoints.py | 114 | # Add string representations to different callback types to test comprehensive categorization | COMMENT |
| LOW | …/management_endpoints/test_key_management_endpoints.py | 6191 | # Patch attach_object_permission_to_dict to just return the dict unchanged | COMMENT |
| MEDIUM⚡ | tests/unit/proxy/proxy_server/conftest.py | 22 | # — but it lets the harness work in editable-source layouts too. | COMMENT |
| MEDIUM | tests/unit/proxy/proxy_server/_pin_check.py | 114 | # Skip the harness's own smoke tests — they don't count toward | COMMENT |
| MEDIUM⚡ | tests/unit/integrations/newrelic/test_newrelic.py | 807 | # _process_success — comprehensive happy-path | COMMENT |
| MEDIUM | …re_utils/llm_cost_calc/test_tool_call_cost_tracking.py | 520 | # The unit tests in test_azure_assistant_cost_tracking.py provide comprehensive coverage | COMMENT |
| MEDIUM | tests/unit/llms/volcengine/test_volcengine.py | 46 | """Test comprehensive thinking parameter handling scenarios""" | STRING |
| MEDIUM | tests/unit/llms/bedrock/test_base_aws_llm.py | 1097 | # The harness has to have produced real concurrency, or the assertion below proves nothing | COMMENT |
| MEDIUM | tests/unit/llms/anthropic/batches/test_handler.py | 241 | # Await directly - robust under asyncio_mode=auto's session-scoped loop | COMMENT |
| MEDIUM | tests/unit/batches/test_main.py | 50 | # Seam harness - one mock per provider handler instance + the Bedrock ARN | COMMENT |
| MEDIUM | tests/code_coverage_tests/recursive_detector.py | 67 | "strict_json_schema", # harness: max depth set (DEFAULT_MAX_RECURSE_DEPTH); fails closed by raising ValueError at t | CODE |
| MEDIUM | tests/code_coverage_tests/recursive_detector.py | 68 | "toml_value", # harness/codex: max depth set (DEFAULT_MAX_RECURSE_DEPTH); fails closed by raising OptionsMismatch a | CODE |
| MEDIUM | …de_coverage_tests/check_provider_folders_documented.py | 31 | # Agent-harness configs for litellm.agent(), not LLM providers; documented under docs/harness | COMMENT |
| MEDIUM | …proxy_behavior/management/test_f7_coverage_closeout.py | 289 | # cleanup contract uniform with the sibling test and is robust to | COMMENT |
| MEDIUM | …ts/proxy_behavior/management/test_key_budget_limits.py | 381 | # that the harness does not yet ship; pinning it would force a wider | COMMENT |
| MEDIUM | …s/proxy_behavior/management/test_team_member_update.py | 12 | # org may update members; else 403. (The harness forces premium_user, so the | COMMENT |
| MEDIUM⚡ | tests/llm_translation/test_bedrock_completion.py | 887 | "thinking": "Alright, let's get started with resolving this issue about implementing `__len__` f | CODE |
| MEDIUM⚡ | tests/llm_translation/test_bedrock_completion.py | 887 | "thinking": "Alright, let's get started with resolving this issue about implementing `__len__` f | CODE |
| MEDIUM | tests/e2e/e2e_config.py | 169 | # for empty values) means the harness behaves exactly as before this knob | COMMENT |
| MEDIUM | tests/e2e/ui/run_e2e.sh | 36 | # Ports, overridable so two checkouts can run this harness at the same time -- | COMMENT |
| MEDIUM | tests/e2e/claude_code/conftest.py | 466 | # robust to malformed shards, and a stale row landing in | COMMENT |
| MEDIUM | tests/e2e/claude_code/manifest.yaml | 10 | # `feature_id` MUST match the directory name on disk; the test harness | COMMENT |
| MEDIUM | tests/e2e/claude_code/cron_vm/run_daily.sh | 243 | # top-level conftest.py pulls in the full EKS harness (e2e_db, | COMMENT |
| MEDIUM | tests/e2e_harness/pytest.ini | 2 | # Tests of the tests/e2e harness itself. They import harness modules by bare name | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/native.rs | 11 | async fn sdk_client_discovers_and_calls_prefixed_tools(#[future] harness: Harness) { | CODE |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/native.rs | 58 | #[future] harness: Harness, | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/native.rs | 76 | async fn preserves_tool_failures_as_tool_results(#[future] harness: Harness) { | CODE |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/native.rs | 98 | async fn routes_prompts_and_resources_without_rewriting_uris(#[future] harness: Harness) { | CODE |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/native.rs | 168 | async fn retains_healthy_catalogs_and_reports_failed_servers(#[future] harness: Harness) { | CODE |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/native.rs | 238 | #[future] harness: Harness, | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/native.rs | 267 | async fn initialize_checks_the_injected_operation_policy(#[future] harness: Harness) { | CODE |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/native.rs | 290 | #[future] harness: Harness, | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/http.rs | 25 | #[future] harness: Harness, | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/http.rs | 59 | async fn rest_lists_bare_names_and_calls_selected_server(#[future] harness: Harness) { | CODE |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/http.rs | 103 | #[future] harness: Harness, | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/http.rs | 153 | #[future] harness: Harness, | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/http.rs | 233 | #[future] harness: Harness, | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/http.rs | 325 | #[future] harness: Harness, | COMMENT |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/http.rs | 358 | async fn rest_requires_server_and_tool(#[future] harness: Harness, #[case] body: Value) { | CODE |
| MEDIUM | litellm-rust/crates/gateway-mcp/tests/gateway/http.rs | 375 | async fn legacy_sse_initializes_calls_tools_and_rejects_other_owners(#[future] harness: Harness) { | CODE |
| MEDIUM | scripts/benchmark_proxy_vs_provider.py | 559 | # 7. Combined options for comprehensive testing | COMMENT |
| MEDIUM⚡ | scripts/eval_compression.py | 952 | # Main harness | COMMENT |
| MEDIUM | .github/scripts/run_merge_smoke.py | 4 | # ruff: noqa: T201 # CLI harness: stdout/stderr lines are the reported result | COMMENT |
| LOW | litellm/constants.py | 1232 | # supports all together ai models, just pass in the model id e.g. completion(model="together_computer/replit_code_3b",.. | COMMENT |
| MEDIUM | litellm/constants.py | 2277 | # litellm.harness defaults | COMMENT |
| LOW⚡ | litellm/_lazy_imports.py | 272 | # Step 3: If we've already imported it, just return the cached version | COMMENT |
| LOW⚡ | litellm/_lazy_imports.py | 305 | # Most of them just call _generic_lazy_import with their specific import map. | COMMENT |
| LOW⚡ | litellm/_lazy_imports.py | 378 | # If we've already imported it, just return the cached version | COMMENT |
| LOW | litellm/utils.py | 7719 | # do nothing, just return messages | COMMENT |
| LOW | litellm/utils.py | 7780 | except Exception as e: # [NON-Blocking, if error occurs just return final_messages | CODE |
| LOW | litellm/proxy/proxy_server.py | 6549 | ## to pass a complete url, or set ssl=True, etc. just set it as `os.environ[REDIS_URL] = <your-redis | COMMENT |
| LOW | litellm/proxy/utils.py | 4913 | # Check to see if all of the necessary views exist and if they do, simply return | COMMENT |
| MEDIUM | litellm/proxy/common_utils/callback_utils.py | 772 | # prefix check is robust under salt-key rotation; a decrypt-based | COMMENT |
| MEDIUM⚡ | litellm/proxy/common_utils/key_rotation_manager.py | 168 | # Create regenerate request with grace period for seamless cutover | COMMENT |
| MEDIUM⚡ | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 76 | "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your | CODE |
| 27 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/proxy/test_common_request_processing.py | 2493 | CODE | |
| MEDIUM | …unit/proxy/guardrails/guardrail_hooks/test_presidio.py | 3041 | CODE | |
| MEDIUM | tests/unit/proxy/agent_endpoints/test_a2a_endpoints.py | 1483 | CODE | |
| MEDIUM | …/hooks/test_async_post_call_streaming_iterator_hook.py | 170 | CODE | |
| MEDIUM | …/pass_through_endpoints/test_pass_through_endpoints.py | 2154 | CODE | |
| MEDIUM | …/pass_through_endpoints/test_pass_through_endpoints.py | 2214 | CODE | |
| MEDIUM | …/pass_through_endpoints/test_pass_through_endpoints.py | 2279 | CODE | |
| MEDIUM | …/pass_through_endpoints/test_pass_through_endpoints.py | 2433 | CODE | |
| MEDIUM | …it/responses/test_responses_websocket_all_providers.py | 316 | CODE | |
| MEDIUM | …it/responses/test_responses_websocket_all_providers.py | 252 | CODE | |
| MEDIUM | …it/responses/test_responses_websocket_all_providers.py | 459 | CODE | |
| MEDIUM | …it/responses/test_responses_websocket_all_providers.py | 1255 | CODE | |
| MEDIUM | …on_transformation/test_litellm_completion_responses.py | 3898 | CODE | |
| MEDIUM | tests/unit/harness/test_runtime.py | 311 | CODE | |
| MEDIUM | …/unit/a2a_protocol/test_a2a_exception_mapping_utils.py | 152 | CODE | |
| MEDIUM | tests/unit/a2a_protocol/test_a2a_streaming_iterator.py | 68 | CODE | |
| MEDIUM | tests/unit/litellm_core_utils/test_streaming_handler.py | 4417 | CODE | |
| MEDIUM | tests/unit/litellm_core_utils/test_streaming_handler.py | 4471 | CODE | |
| MEDIUM | tests/unit/litellm_core_utils/test_streaming_handler.py | 4517 | CODE | |
| MEDIUM | tests/unit/llms/chat/test_converse_handler.py | 284 | CODE | |
| MEDIUM | tests/unit/llms/chat/test_converse_handler.py | 359 | CODE | |
| MEDIUM | tests/unit/llms/bedrock/chat/test_invoke_handler.py | 643 | CODE | |
| MEDIUM | …oke_transformations/test_base_invoke_transformation.py | 284 | CODE | |
| MEDIUM | …ropic/pass_through/messages/test_streaming_iterator.py | 145 | CODE | |
| MEDIUM | …/responses_adapters/test_responses_adapters_handler.py | 145 | CODE | |
| MEDIUM | …t/llms/sagemaker/test_sagemaker_nova_transformation.py | 341 | CODE | |
| MEDIUM | litellm/proxy/_experimental/post_call_rules.py | 4 | CODE | |
| MEDIUM | …proxy/pass_through_endpoints/pass_through_endpoints.py | 954 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …rdrail_hooks/test_response_rejection_guardrail_code.py | 38 | inputs={"texts": ["Here is how you can do that: step 1, step 2."]}, | CODE |
| MEDIUM⚡ | …rdrail_hooks/test_response_rejection_guardrail_code.py | 42 | assert result["texts"] == ["Here is how you can do that: step 1, step 2."] | CODE |
| MEDIUM | tests/llm_translation/test_openai.py | 538 | "text": '\nYou are an interactive CLI tool that helps users with software engineering tasks. Use | CODE |
| MEDIUM | cookbook/litellm_router/load_test_proxy.py | 113 | # Number of concurrent calls (you can adjust this) | COMMENT |
| MEDIUM⚡ | cookbook/litellm_router/load_test_queuing.py | 135 | # Number of concurrent calls (you can adjust this) | COMMENT |
| MEDIUM | cookbook/litellm_router/load_test_router.py | 108 | # Number of concurrent calls (you can adjust this) | COMMENT |
| MEDIUM | litellm/proxy/proxy_server.py | 19533 | Note: This is a mock endpoint primarily meant for demonstration purposes, and does not actually provide or change an | STRING |
| MEDIUM | litellm/proxy/utils.py | 1712 | # This is a basic implementation - can be enhanced based on specific guardrail formats | COMMENT |
| MEDIUM⚡ | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 76 | "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your | CODE |
| LOW⚡ | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 76 | "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your | CODE |
| MEDIUM⚡ | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 251 | "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your | CODE |
| LOW⚡ | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 251 | "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your | CODE |
| LOW⚡ | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 426 | "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your | CODE |
| LOW⚡ | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 594 | "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your | CODE |
| LOW | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 771 | "instructions_template": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and your | CODE |
| LOW | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 913 | "instructions_template": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and your | CODE |
| LOW | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 1051 | "instructions_template": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and your | CODE |
| LOW | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 1417 | "instructions_template": "You are Codex, a coding agent based on GPT-5. You and the user share one workspace, an | CODE |
| LOW | …m/proxy/common_utils/codex_bundled_models_0.159.3.json | 1543 | "instructions_template": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and your | CODE |
| MEDIUM | …guardrail_hooks/custom_code/response_rejection_code.py | 21 | "i'm unable to help", | CODE |
| MEDIUM | …guardrail_hooks/custom_code/response_rejection_code.py | 50 | "i'm unable to help", | CODE |
| LOW⚡ | litellm/integrations/SlackAlerting/slack_alerting.py | 1798 | # Also, don't forget to update the report_sent time after sending the report! | COMMENT |
| LOW⚡ | litellm/integrations/SlackAlerting/slack_alerting.py | 1798 | # Also, don't forget to update the report_sent time after sending the report! | COMMENT |
| LOW | litellm/llms/anthropic/chat/transformation.py | 754 | else: # use anthropic defaults and make sure to send the disable_parallel_tool_use flag | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/code_coverage_tests/recursive_detector.py | 146 | # Example usage | COMMENT |
| LOW | tests/e2e/ui/run_e2e.sh | 10 | # Usage: | COMMENT |
| LOW | scripts/test_guardrails_register_endpoints.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/create_team_key_and_submit_guardrail.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/test_agent_mcp_endpoints.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/health_check/run_parallel_health_checks.sh | 6 | # Usage: | COMMENT |
| LOW | litellm/proxy/common_utils/load_config_utils.py | 300 | # # Example usage | COMMENT |
| LOW | litellm/litellm_core_utils/sensitive_data_masker.py | 293 | # Usage example: | COMMENT |
| LOW | litellm/router_utils/cooldown_cache.py | 234 | # Usage example: | COMMENT |
| LOW | litellm/router_utils/pattern_match_deployments.py | 243 | # Example usage: | COMMENT |
| LOW | litellm/llms/vertex_ai/vertex_embeddings/types.py | 57 | # Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/llm_translation/test_bedrock_completion.py | 887 | "thinking": "Alright, let's get started with resolving this issue about implementing `__len__` f | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | litellm/proxy/hooks/litellm_skills/main.py | 691 | # Auto-generated code to execute skill | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/capturing_transport.py | 17 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW⚡ | tests/unit/test_compression.py | 173 | "content": "# utils.py\n" + "def helper():\n pass\n" * 2000, | STRING |
| LOW | tests/unit/test_utils.py | 8684 | async def test_function(**kwargs): | CODE |
| LOW | …l/mcp_server/test_mcp_server_tool_calls_and_headers.py | 2006 | async def handle_request(request_scope: Scope, receive: Receive, outgoing: Send) -> None: | CODE |
| LOW | …l/mcp_server/test_mcp_server_tool_calls_and_headers.py | 2193 | async def handle_request(_: Scope, downstream_receive: Receive, __: Send) -> None: | CODE |
| LOW | …l/mcp_server/test_mcp_server_tool_calls_and_headers.py | 2238 | async def handle_request(_: Scope, downstream_receive: Receive, __: Send) -> None: | CODE |
| LOW | …l/mcp_server/test_mcp_server_tool_calls_and_headers.py | 2493 | async def handle_request(_: Scope, downstream_receive: Receive, outgoing: Send) -> None: | CODE |
| LOW | …l/mcp_server/test_mcp_server_tool_calls_and_headers.py | 11620 | async def handle_request(_: Scope, downstream_receive: Receive, __: Send) -> None: | CODE |
| LOW | …ts/unit/llms/base_llm/chat/test_attribution_headers.py | 55 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| LOW | tests/unit/llms/watsonx/test_watsonx.py | 340 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | litellm/llms/custom_httpx/mock_transport.py | 85 | def handle_request(self, request: httpx.Request) -> httpx.Response: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | litellm/secret_managers/main.py | 212 | # TODO: Add caching for HTTP requests | COMMENT |