From 7a391477e03b5c05d66cdb976939eea131bc4774 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Wed, 18 Feb 2026 13:49:32 -0700 Subject: [PATCH] [OpenAI Connector] Add optional `defaultModel` to Azure OpenAI connector schema (#253575) (cherry picked from commit 14aa4640a0fd6b8f35b8ffd7e26a8d3337b782ea) --- .../openai/schemas/v1.test.ts | 31 +++++++++++++++++++ .../openai/schemas/v1.ts | 1 + .../connector_types.test.ts.snap | 3 ++ 3 files changed, 35 insertions(+) diff --git a/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.test.ts b/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.test.ts index 67d64b00fc54b..a6ca8b57ef3d3 100644 --- a/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.test.ts +++ b/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.test.ts @@ -27,6 +27,37 @@ describe('OpenAI Schema', () => { ).not.toThrow(); }); + it('validates Azure AI config with optional defaultModel', () => { + expect(() => + ConfigSchema.parse({ + apiProvider: 'Azure OpenAI', + apiUrl: 'https://my-resource.openai.azure.com', + defaultModel: 'gpt-4o', + }) + ).not.toThrow(); + }); + + it('validates Azure AI config without defaultModel', () => { + const result = ConfigSchema.parse({ + apiProvider: 'Azure OpenAI', + apiUrl: 'https://my-resource.openai.azure.com', + }); + expect(result.defaultModel).toBeUndefined(); + }); + + it('validates Azure AI config with all optional fields including defaultModel', () => { + expect(() => + ConfigSchema.parse({ + apiProvider: 'Azure OpenAI', + apiUrl: 'https://my-resource.openai.azure.com', + defaultModel: 'gpt-4o', + headers: { 'X-Custom': 'value' }, + contextWindowLength: 128000, + temperature: 0.7, + }) + ).not.toThrow(); + }); + it('validates OpenAI config', () => { expect(() => ConfigSchema.parse({ diff --git a/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.ts b/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.ts index 13fe5f5980028..0dbb11161c263 100644 --- a/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.ts +++ b/src/platform/packages/shared/kbn-connector-schemas/openai/schemas/v1.ts @@ -22,6 +22,7 @@ export const ConfigSchema = z.union([ .object({ apiProvider: z.enum([OpenAiProviderType.AzureAi]), apiUrl: z.string(), + defaultModel: z.string().optional(), headers: z.record(z.string(), z.string()).optional(), contextWindowLength: z.coerce.number().optional(), temperature: z.coerce.number().optional(), diff --git a/x-pack/platform/plugins/shared/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap b/x-pack/platform/plugins/shared/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap index 4931f80d769a6..3ffce53dadf8e 100644 --- a/x-pack/platform/plugins/shared/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap +++ b/x-pack/platform/plugins/shared/actions/server/integration_tests/__snapshots__/connector_types.test.ts.snap @@ -977,6 +977,9 @@ Object { "contextWindowLength": Object { "type": "number", }, + "defaultModel": Object { + "type": "string", + }, "headers": Object { "additionalProperties": Object { "type": "string",