Skip to main content

What is stored in the DB

The haimaker Proxy uses a PostgreSQL database to store various information. Here's are the main features the DB is used for:

  • Virtual Keys, Organizations, Teams, Users, Budgets, and more.
  • Per request Usage Tracking

You can see the full DB Schema here

DB Tables

Organizations, Teams, Users, End Users

Table NameDescriptionRow Insert Frequency
LiteLLM_OrganizationTableManages organization-level configurations. Tracks organization spend, model access, and metadata. Links to budget configurations and teams.Low
LiteLLM_TeamTableHandles team-level settings within organizations. Manages team members, admins, and their roles. Controls team-specific budgets, rate limits, and model access.Low
LiteLLM_UserTableStores user information and their settings. Tracks individual user spend, model access, and rate limits. Manages user roles and team memberships.Low
LiteLLM_EndUserTableManages end-user configurations. Controls model access and regional requirements. Tracks end-user spend.Low
LiteLLM_TeamMembershipTracks user participation in teams. Manages team-specific user budgets and spend.Low
LiteLLM_OrganizationMembershipManages user roles within organizations. Tracks organization-specific user permissions and spend.Low
LiteLLM_InvitationLinkHandles user invitations. Manages invitation status and expiration. Tracks who created and accepted invitations.Low
LiteLLM_UserNotificationsHandles model access requests. Tracks user requests for model access. Manages approval status.Low

Authentication

Table NameDescriptionRow Insert Frequency
LiteLLM_VerificationTokenManages Virtual Keys and their permissions. Controls token-specific budgets, rate limits, and model access. Tracks key-specific spend and metadata.Medium - stores all Virtual Keys

Model (LLM) Management

Table NameDescriptionRow Insert Frequency
LiteLLM_ProxyModelTableStores model configurations. Defines available models and their parameters. Contains model-specific information and settings.Low - Configuration only

Budget Management

Table NameDescriptionRow Insert Frequency
LiteLLM_BudgetTableStores budget and rate limit configurations for organizations, keys, and end users. Tracks max budgets, soft budgets, TPM/RPM limits, and model-specific budgets. Handles budget duration and reset timing.Low - Configuration only

Tracking & Logging

Table NameDescriptionRow Insert Frequency
LiteLLM_SpendLogsDetailed logs of all API requests. Records token usage, spend, and timing information. Tracks which models and keys were used.Medium - this is a batch process that runs on an interval.
LiteLLM_AuditLogTracks changes to system configuration. Records who made changes and what was modified. Maintains history of updates to teams, users, and models.Off by default, High - Runs on every change to an entity

Disable LiteLLM_SpendLogs

You can disable spend_logs and error_logs by setting disable_spend_logs and disable_error_logs to True on the general_settings section of your proxy_config.yaml file.

general_settings:
disable_spend_logs: True # Disable writing spend logs to DB
disable_error_logs: True # Only disable writing error logs to DB, regular spend logs will still be written unless `disable_spend_logs: True`

What is the impact of disabling these logs?

When disabling spend logs (disable_spend_logs: True):

  • You will not be able to view Usage on the haimaker UI
  • You will continue seeing cost metrics on s3, Prometheus, Langfuse (any other Logging integration you are using)

When disabling error logs (disable_error_logs: True):

  • You will not be able to view Errors on the haimaker UI
  • You will continue seeing error logs in your application logs and any other logging integrations you are using

Migrating Databases

If you need to migrate Databases the following Tables should be copied to ensure continuation of services and no downtime

Table NameDescription
LiteLLM_VerificationTokenRequired to ensure existing virtual keys continue working
LiteLLM_UserTableRequired to ensure existing virtual keys continue working
LiteLLM_TeamTableRequired to ensure Teams are migrated
LiteLLM_TeamMembershipRequired to ensure Teams member budgets are migrated
LiteLLM_BudgetTableRequired to migrate existing budgeting settings
LiteLLM_OrganizationTableOptional Only migrate if you use Organizations in DB
LiteLLM_OrganizationMembershipOptional Only migrate if you use Organizations in DB
LiteLLM_ProxyModelTableOptional Only migrate if you store your LLMs in the DB (i.e you set STORE_MODEL_IN_DB=True)
LiteLLM_SpendLogsOptional Only migrate if you want historical data on haimaker UI
LiteLLM_ErrorLogsOptional Only migrate if you want historical data on haimaker UI