From c816a6aac652bf3dcdd6c8138efb4be4be706000 Mon Sep 17 00:00:00 2001 From: Tin Chi Lo Date: Thu, 6 Aug 2026 14:15:15 -0700 Subject: [PATCH] fix(ui): require object JSON for routing_strategy_args and render cleared args as unset --- .../add_model/advanced_settings.tsx | 4 +- .../routing_strategy_options.test.ts | 37 +++++++++++++++++++ .../add_model/routing_strategy_options.ts | 17 +++++++++ .../src/components/model_info_view.tsx | 13 +++++-- 4 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 ui/litellm-dashboard/src/components/add_model/routing_strategy_options.test.ts diff --git a/ui/litellm-dashboard/src/components/add_model/advanced_settings.tsx b/ui/litellm-dashboard/src/components/add_model/advanced_settings.tsx index b5fc8bda755..25377bddd5b 100644 --- a/ui/litellm-dashboard/src/components/add_model/advanced_settings.tsx +++ b/ui/litellm-dashboard/src/components/add_model/advanced_settings.tsx @@ -6,7 +6,7 @@ import TextArea from "antd/es/input/TextArea"; import { InfoCircleOutlined } from "@ant-design/icons"; import { Team } from "../key_team_helpers/key_list"; import CacheControlSettings from "./cache_control_settings"; -import { ROUTING_STRATEGY_OPTIONS } from "./routing_strategy_options"; +import { formItemValidateJSONObject, ROUTING_STRATEGY_OPTIONS } from "./routing_strategy_options"; import VectorStoreSelector from "../vector_store_management/VectorStoreSelector"; import { Tag } from "../tag_management/types"; import { formItemValidateJSON } from "../../utils/textUtils"; @@ -197,7 +197,7 @@ const AdvancedSettings: React.FC = ({ label="Routing Strategy Args" name="routing_strategy_args" className="mb-4" - rules={[{ validator: formItemValidateJSON }]} + rules={[{ validator: formItemValidateJSONObject }]} help="Optional JSON args for the selected strategy, e.g. latency window TTL." >