datasource client { provider = "postgresql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-py" } // Assign prod keys to groups, not individuals model LiteLLM_TeamTable { team_id String @unique team_alias String? admins String[] members String[] members_with_roles Json @default("{}") metadata Json @default("{}") max_budget Float? spend Float @default(0.0) models String[] max_parallel_requests Int? tpm_limit BigInt? rpm_limit BigInt? budget_duration String? budget_reset_at DateTime? created_at DateTime @default(now()) @map("created_at") updated_at DateTime @default(now()) @updatedAt @map("updated_at") model_spend Json @default("{}") model_max_budget Json @default("{}") } // Track spend, rate limit, budget Users model LiteLLM_UserTable { user_id String @unique team_id String? teams String[] @default([]) user_role String? max_budget Float? spend Float @default(0.0) user_email String? models String[] max_parallel_requests Int? tpm_limit BigInt? rpm_limit BigInt? budget_duration String? budget_reset_at DateTime? allowed_cache_controls String[] @default([]) model_spend Json @default("{}") model_max_budget Json @default("{}") } // Generate Tokens for Proxy model LiteLLM_VerificationToken { token String @unique key_name String? key_alias String? spend Float @default(0.0) expires DateTime? models String[] aliases Json @default("{}") config Json @default("{}") user_id String? team_id String? permissions Json @default("{}") max_parallel_requests Int? metadata Json @default("{}") tpm_limit BigInt? rpm_limit BigInt? max_budget Float? budget_duration String? budget_reset_at DateTime? allowed_cache_controls String[] @default([]) model_spend Json @default("{}") model_max_budget Json @default("{}") } // store proxy config.yaml model LiteLLM_Config { param_name String @id param_value Json? } // View spend, model, api_key per request model LiteLLM_SpendLogs { request_id String @unique call_type String api_key String @default ("") spend Float @default(0.0) total_tokens Int @default(0) prompt_tokens Int @default(0) completion_tokens Int @default(0) startTime DateTime // Assuming start_time is a DateTime field endTime DateTime // Assuming end_time is a DateTime field model String @default("") user String @default("") metadata Json @default("{}") cache_hit String @default("") cache_key String @default("") request_tags Json @default("[]") team_id String? end_user String? } // Beta - allow team members to request access to a model model LiteLLM_UserNotifications { request_id String @unique user_id String models String[] justification String status String // approved, disapproved, pending }