diff --git a/x-pack/plugins/security/public/management/api_keys/api_keys_grid/create_api_key_flyout.tsx b/x-pack/plugins/security/public/management/api_keys/api_keys_grid/create_api_key_flyout.tsx index d13798f1e8622d..4130f3c1e4df50 100644 --- a/x-pack/plugins/security/public/management/api_keys/api_keys_grid/create_api_key_flyout.tsx +++ b/x-pack/plugins/security/public/management/api_keys/api_keys_grid/create_api_key_flyout.tsx @@ -421,6 +421,28 @@ export function validate(values: ApiKeyFormValues) { } } + if (values.includeMetadata) { + if (!values.metadata) { + errors.metadata = i18n.translate( + 'xpack.security.management.apiKeys.createApiKey.metadataRequired', + { + defaultMessage: 'Enter metadata or disable this option.', + } + ); + } else { + try { + JSON.parse(values.metadata); + } catch (e) { + errors.metadata = i18n.translate( + 'xpack.security.management.apiKeys.createApiKey.invalidJsonError', + { + defaultMessage: 'Enter valid JSON.', + } + ); + } + } + } + return errors; }