open-webui/backend/open_webui/routers
DrMelone 5835cd93cf fix: isolate admin-mode state, harden deepMerge, disable stale defaults cache
- InterfaceSettings now reads from a reactive activeSettings alias
  (initialSettings in admin mode, $settings otherwise) instead of
  reading $settings directly. toggleTitleAutoGenerate spreads
  activeSettings.title and the chat-bubble template branch uses the
  local chatBubble state, so the admin defaults modal no longer mixes
  the current admin's personal settings into the payload or the render
  logic.
- deepMerge skips __proto__, constructor, and prototype keys before
  copying. Inputs come from API payloads and localStorage, both
  untrusted channels, and a crafted payload could otherwise mutate the
  object prototype chain or reassign the constructor during app init.
- GET /configs/interface/defaults swaps Cache-Control: private,
  max-age=600 for no-store. The endpoint is fetched on every
  authenticated app load and merged into runtime settings, so a
  10-minute freshness window made admin "save defaults" and "reset all
  users" appear to have no effect for up to ten minutes. The read is
  cheap (in-memory config), so skipping the cache is fine.
2026-04-13 00:58:29 +02:00
..
analytics.py refac: async db 2026-04-12 14:22:11 -05:00
audio.py refac: async db 2026-04-12 14:22:11 -05:00
auths.py refac: async db 2026-04-12 14:22:11 -05:00
automations.py refac: async db 2026-04-12 14:22:11 -05:00
channels.py refac: async db 2026-04-12 14:22:11 -05:00
chats.py refac: async db 2026-04-12 14:22:11 -05:00
configs.py fix: isolate admin-mode state, harden deepMerge, disable stale defaults cache 2026-04-13 00:58:29 +02:00
evaluations.py refac: async db 2026-04-12 14:22:11 -05:00
files.py refac: async db 2026-04-12 14:22:11 -05:00
folders.py refac: async db 2026-04-12 14:22:11 -05:00
functions.py refac: async db 2026-04-12 14:22:11 -05:00
groups.py refac: async db 2026-04-12 14:22:11 -05:00
images.py refac: async db 2026-04-12 14:22:11 -05:00
knowledge.py refac: async db 2026-04-12 14:22:11 -05:00
memories.py refac: async db 2026-04-12 14:22:11 -05:00
models.py refac: async db 2026-04-12 14:22:11 -05:00
notes.py refac: async db 2026-04-12 14:22:11 -05:00
ollama.py refac: async db 2026-04-12 14:22:11 -05:00
openai.py fix: gate OpenAI catch-all proxy behind ENABLE_OPENAI_API_PASSTHROUGH toggle (#23640) 2026-04-12 14:26:12 -05:00
pipelines.py refac 2026-03-24 04:49:48 -05:00
prompts.py refac: async db 2026-04-12 14:22:11 -05:00
retrieval.py refac: async db 2026-04-12 14:22:11 -05:00
scim.py refac: async db 2026-04-12 14:22:11 -05:00
skills.py refac: async db 2026-04-12 14:22:11 -05:00
tasks.py refac 2026-03-17 17:58:01 -05:00
terminals.py refac: async db 2026-04-12 14:22:11 -05:00
tools.py refac 2026-04-12 14:24:08 -05:00
users.py fix: flush child form before modal save, guard localStorage parse, explicit dialect check 2026-04-13 00:40:36 +02:00
utils.py refac 2026-03-26 19:01:33 -05:00