diff --git a/src/HotChocolate/Fusion-vnext/src/Fusion.Composition/Options/SourceSchemaPreprocessorOptions.cs b/src/HotChocolate/Fusion-vnext/src/Fusion.Composition/Options/SourceSchemaPreprocessorOptions.cs
index 7fc73b66d5a..161dae4800f 100644
--- a/src/HotChocolate/Fusion-vnext/src/Fusion.Composition/Options/SourceSchemaPreprocessorOptions.cs
+++ b/src/HotChocolate/Fusion-vnext/src/Fusion.Composition/Options/SourceSchemaPreprocessorOptions.cs
@@ -5,6 +5,11 @@ namespace HotChocolate.Fusion.Options;
///
public sealed class SourceSchemaPreprocessorOptions
{
+ ///
+ /// Enables schema validation when preprocessing source schemas.
+ ///
+ public bool EnableSchemaValidation { get; set; } = true;
+
///
/// A list of tags used to exclude type system members from composition.
/// Any members annotated with these tags will be excluded.
diff --git a/src/HotChocolate/Fusion-vnext/src/Fusion.Composition/SourceSchemaPreprocessor.cs b/src/HotChocolate/Fusion-vnext/src/Fusion.Composition/SourceSchemaPreprocessor.cs
index c2e13b331b8..fe835c9622b 100644
--- a/src/HotChocolate/Fusion-vnext/src/Fusion.Composition/SourceSchemaPreprocessor.cs
+++ b/src/HotChocolate/Fusion-vnext/src/Fusion.Composition/SourceSchemaPreprocessor.cs
@@ -59,10 +59,13 @@ public CompositionResult Preprocess()
}
// Additional schema validation will catch issues introduced during preprocessing.
- var validationLog = new ValidationLog();
- if (!new SchemaValidator().Validate(schema, validationLog) && validationLog.HasErrors)
+ if (_options.EnableSchemaValidation)
{
- log.WriteValidationLog(validationLog, schema);
+ var validationLog = new ValidationLog();
+ if (!new SchemaValidator().Validate(schema, validationLog) && validationLog.HasErrors)
+ {
+ log.WriteValidationLog(validationLog, schema);
+ }
}
return log.HasErrors
diff --git a/src/Nitro/CommandLine/src/CommandLine/Extensions/SettingsExtensions.cs b/src/Nitro/CommandLine/src/CommandLine/Extensions/SettingsExtensions.cs
index 779314d162f..d2ed97cc7e9 100644
--- a/src/Nitro/CommandLine/src/CommandLine/Extensions/SettingsExtensions.cs
+++ b/src/Nitro/CommandLine/src/CommandLine/Extensions/SettingsExtensions.cs
@@ -125,6 +125,11 @@ private SourceSchemaPreprocessorOptions ToOptions()
{
var preprocessorOptions = new SourceSchemaPreprocessorOptions();
+ if (preprocessorSettings.EnableSchemaValidation is { } enableSchemaValidation)
+ {
+ preprocessorOptions.EnableSchemaValidation = enableSchemaValidation;
+ }
+
if (preprocessorSettings.InferKeysFromLookups is { } inferKeys)
{
preprocessorOptions.InferKeysFromLookups = inferKeys;
diff --git a/src/Nitro/CommandLine/src/CommandLine/Settings/SourceSchemaSettings.cs b/src/Nitro/CommandLine/src/CommandLine/Settings/SourceSchemaSettings.cs
index f1cf4ad7229..49c1b2b34eb 100644
--- a/src/Nitro/CommandLine/src/CommandLine/Settings/SourceSchemaSettings.cs
+++ b/src/Nitro/CommandLine/src/CommandLine/Settings/SourceSchemaSettings.cs
@@ -19,6 +19,8 @@ internal sealed record ParserSettings
internal sealed record PreprocessorSettings
{
+ public bool? EnableSchemaValidation { get; init; }
+
public bool? InferKeysFromLookups { get; init; }
public bool? InheritInterfaceKeys { get; init; }