secrets.ymlΒΆ

---
credentials:
  master_key:
    description: "Admin master key of the LiteLLM gateway; consumers use per-consumer virtual keys, never this one"
    algorithm: "alphanumeric"
    validation:
      min_length: 50
  ui_password:
    description: "Login password of the LiteLLM admin UI (served at /ui, proxied by web-app-litellm)"
    algorithm: "alphanumeric"
    validation:
      min_length: 32
  openai_api_key:
    description: "OpenAI API key; empty leaves the openai/* models unpublished. The pattern rejects a truncated or whitespace-carrying paste, not a vendor prefix:
      OpenAI moved from sk- to sk-proj- without notice, and a schema that pinned the prefix would reject a valid key"
    type: "string"
    regex: "\\S{20,}"
    default: "{{ lookup('api', 'openai.api_key') }}"
  anthropic_api_key:
    description: "Anthropic API key; empty leaves the anthropic/* models unpublished"
    type: "string"
    regex: "\\S{20,}"
    default: "{{ lookup('api', 'anthropic.api_key') }}"
  openrouter_api_key:
    description: "OpenRouter API key; empty leaves openrouter/auto unpublished"
    type: "string"
    regex: "\\S{20,}"
    default: "{{ lookup('api', 'openrouter.api_key') }}"