fix(ui): don't require blank auth fields in model edit context

Auth fields render blank ('leave blank to keep'), but required metadata
(e.g. OpenAI api_key) added a required validation rule that blocked
onFinish entirely — making it impossible to save any unrelated edit
without re-entering the secret. Add a disableRequired prop to
ProviderSpecificFields and set it in the model edit Authentication section.
This commit is contained in:
Ryan Crabbe 2026-05-16 15:18:06 -07:00
parent 61587b4121
commit e50a31ad5c
No known key found for this signature in database
2 changed files with 8 additions and 1 deletions

View file

@ -14,6 +14,11 @@ interface ProviderSpecificFieldsProps {
// inputs (e.g. the model edit form has a dedicated "API Base" field) so we
// don't create a duplicate Form.Item bound to the same name.
excludeKeys?: string[];
// Drop the "required" validation rule from every rendered field. Used in the
// model edit context, where auth fields render blank ("leave blank to keep")
// — a required rule would block onFinish and prevent saving any unrelated
// edit unless the user re-enters the secret.
disableRequired?: boolean;
}
interface ProviderCredentialField {
@ -132,6 +137,7 @@ const ProviderSpecificFields: React.FC<ProviderSpecificFieldsProps> = ({
selectedProvider,
uploadProps,
excludeKeys,
disableRequired,
}) => {
const selectedProviderEnum = Providers[selectedProvider as keyof typeof Providers] as Providers;
const form = Form.useFormInstance(); // Get form instance from context
@ -267,7 +273,7 @@ const ProviderSpecificFields: React.FC<ProviderSpecificFieldsProps> = ({
<Form.Item
label={field.label}
name={field.key}
rules={field.required ? [{ required: true, message: "Required" }] : undefined}
rules={field.required && !disableRequired ? [{ required: true, message: "Required" }] : undefined}
tooltip={field.tooltip}
className={field.key === "vertex_credentials" ? "mb-0" : undefined}
>

View file

@ -1126,6 +1126,7 @@ export default function ModelInfoView({
<ProviderSpecificFields
selectedProvider={authProvider}
excludeKeys={AUTH_FIELD_EXCLUDE_KEYS}
disableRequired
/>
</div>
)}