diff --git a/x-pack/plugins/actions/server/builtin_action_types/email.ts b/x-pack/plugins/actions/server/builtin_action_types/email.ts index c55b299541d0a..dcfa7db677db6 100644 --- a/x-pack/plugins/actions/server/builtin_action_types/email.ts +++ b/x-pack/plugins/actions/server/builtin_action_types/email.ts @@ -116,11 +116,13 @@ function validateConfig( export type ActionTypeSecretsType = TypeOf; -const SecretsSchema = schema.object({ +const SecretsSchemaProps = { user: schema.nullable(schema.string()), password: schema.nullable(schema.string()), clientSecret: schema.nullable(schema.string()), -}); +}; + +const SecretsSchema = schema.object(SecretsSchemaProps); // params definition @@ -174,8 +176,10 @@ function validateConnector(connector: { const config = connector.config; const secrets = connector.secrets; - if (config.service === AdditionalEmailServices.EXCHANGE && secrets.clientSecret == null) { - return '[clientSecret] is required'; + if (config.service === AdditionalEmailServices.EXCHANGE) { + if (secrets.clientSecret == null) { + return '[clientSecret] is required'; + } } else if (config.hasAuth && (secrets.password == null || secrets.user == null)) { if (secrets.user == null) { return '[user] is required'; diff --git a/x-pack/plugins/actions/server/lib/validate_with_schema.ts b/x-pack/plugins/actions/server/lib/validate_with_schema.ts index fd3b0be08982e..cc454de1541aa 100644 --- a/x-pack/plugins/actions/server/lib/validate_with_schema.ts +++ b/x-pack/plugins/actions/server/lib/validate_with_schema.ts @@ -40,15 +40,8 @@ export function validateConnector< Secrets extends ActionTypeSecrets = ActionTypeSecrets, Params extends ActionTypeParams = ActionTypeParams, ExecutorResultData = void ->( - actionType: ActionType, - config: unknown, - secrets?: unknown -) { - return validateWithSchema(actionType, 'connector', { - config, - secrets, - }); +>(actionType: ActionType, value: unknown) { + return validateWithSchema(actionType, 'connector', value); } type ValidKeys = 'params' | 'config' | 'secrets' | 'connector';