From ab22fe64bdd10ba86845dcd46dfd7f619b22366f Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 1 Jul 2026 02:20:50 -0500 Subject: [PATCH] refac Co-Authored-By: Syed Osama Ali Shah <86572800+osamaali313@users.noreply.github.com> --- backend/open_webui/models/config.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/open_webui/models/config.py b/backend/open_webui/models/config.py index 86d325c894..4c0cf0baed 100644 --- a/backend/open_webui/models/config.py +++ b/backend/open_webui/models/config.py @@ -14,6 +14,7 @@ import logging import time from typing import Any, ClassVar +from fastapi.encoders import jsonable_encoder from open_webui.internal.db import Base, get_async_db from sqlalchemy import JSON, BigInteger, Column, Text, delete, select @@ -86,6 +87,10 @@ def _assign_path(target: dict, path: list[str], value: Any) -> None: current[path[-1]] = value +def _json_value(value: Any) -> Any: + return jsonable_encoder(value) + + # ── Model ──────────────────────────────────────────────────────────────────── @@ -191,6 +196,7 @@ class Config(Base): async with get_async_db() as db: now = int(time.time()) for key, value in updates.items(): + value = _json_value(value) existing = await db.get(Config, key) if existing: existing.value = value @@ -232,6 +238,7 @@ class Config(Base): new_count = 0 for key, value in defaults.items(): if key not in existing_keys: + value = _json_value(value) db.add(Config(key=key, value=value, updated_at=now)) existing_keys.add(key) new_count += 1