From 8f01bf48c051278dd001291b1e5e1f1a942ecd21 Mon Sep 17 00:00:00 2001 From: Bart Koelman <104792814+bart-vmware@users.noreply.github.com> Date: Tue, 8 Sep 2026 12:35:37 +0200 Subject: [PATCH 1/4] Package updates --- .config/dotnet-tools.json | 4 +-- shared-test.props | 2 +- ...oe.Bootstrap.AutoConfiguration.Test.csproj | 1 + .../src/Connectors/PublicAPI.Shipped.txt | 2 ++ .../Steeltoe.Connectors.Test.csproj | 3 ++- .../src/Abstractions/PublicAPI.Shipped.txt | 1 + .../Steeltoe.Logging.DynamicSerilog.csproj | 4 +-- versions.props | 27 ++++++++++--------- 8 files changed, 26 insertions(+), 18 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 7022843f4b..436c66fadd 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "jetbrains.resharper.globaltools": { - "version": "2026.2.0.2", + "version": "2026.2.1", "commands": [ "jb" ], @@ -17,7 +17,7 @@ "rollForward": false }, "dotnet-coverage": { - "version": "18.9.0", + "version": "18.11.0", "commands": [ "dotnet-coverage" ], diff --git a/shared-test.props b/shared-test.props index e2a73db54e..0f4925cda1 100644 --- a/shared-test.props +++ b/shared-test.props @@ -15,7 +15,7 @@ - + diff --git a/src/Bootstrap/test/AutoConfiguration.Test/Steeltoe.Bootstrap.AutoConfiguration.Test.csproj b/src/Bootstrap/test/AutoConfiguration.Test/Steeltoe.Bootstrap.AutoConfiguration.Test.csproj index 6e06050f02..eee10bda4b 100644 --- a/src/Bootstrap/test/AutoConfiguration.Test/Steeltoe.Bootstrap.AutoConfiguration.Test.csproj +++ b/src/Bootstrap/test/AutoConfiguration.Test/Steeltoe.Bootstrap.AutoConfiguration.Test.csproj @@ -11,6 +11,7 @@ + diff --git a/src/Connectors/src/Connectors/PublicAPI.Shipped.txt b/src/Connectors/src/Connectors/PublicAPI.Shipped.txt index 013c9d4e4a..e23921371c 100644 --- a/src/Connectors/src/Connectors/PublicAPI.Shipped.txt +++ b/src/Connectors/src/Connectors/PublicAPI.Shipped.txt @@ -112,3 +112,5 @@ Steeltoe.Connectors.SqlServer.SqlServerHostApplicationBuilderExtensions Steeltoe.Connectors.SqlServer.SqlServerOptions Steeltoe.Connectors.SqlServer.SqlServerOptions.SqlServerOptions() -> void Steeltoe.Connectors.SqlServer.SqlServerServiceCollectionExtensions +virtual Steeltoe.Connectors.ConnectorCreateConnection.Invoke(System.IServiceProvider! serviceProvider, string! serviceBindingName) -> object! +virtual Steeltoe.Connectors.ConnectorCreateHealthContributor.Invoke(System.IServiceProvider! serviceProvider, string! serviceBindingName) -> Steeltoe.Common.HealthChecks.IHealthContributor! diff --git a/src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj b/src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj index bf2405d3f8..0bdb306f43 100644 --- a/src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj +++ b/src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj @@ -1,4 +1,4 @@ - + net10.0;net9.0;net8.0 @@ -7,6 +7,7 @@ + diff --git a/src/Logging/src/Abstractions/PublicAPI.Shipped.txt b/src/Logging/src/Abstractions/PublicAPI.Shipped.txt index df3b837d54..230c2eda13 100644 --- a/src/Logging/src/Abstractions/PublicAPI.Shipped.txt +++ b/src/Logging/src/Abstractions/PublicAPI.Shipped.txt @@ -35,3 +35,4 @@ Steeltoe.Logging.MessageProcessingLogger.MessageProcessors.get -> System.Collect virtual Steeltoe.Logging.DynamicLoggerProvider.CreateMessageProcessingLogger(string! categoryName) -> Steeltoe.Logging.MessageProcessingLogger! virtual Steeltoe.Logging.DynamicLoggerProvider.Dispose(bool disposing) -> void virtual Steeltoe.Logging.MessageProcessingLogger.Log(Microsoft.Extensions.Logging.LogLevel logLevel, Microsoft.Extensions.Logging.EventId eventId, TState state, System.Exception? exception, System.Func! formatter) -> void +virtual Steeltoe.Logging.LoggerFilter.Invoke(Microsoft.Extensions.Logging.LogLevel level) -> bool diff --git a/src/Logging/src/DynamicSerilog/Steeltoe.Logging.DynamicSerilog.csproj b/src/Logging/src/DynamicSerilog/Steeltoe.Logging.DynamicSerilog.csproj index 07804c6a7c..f7cb4cd3d5 100644 --- a/src/Logging/src/DynamicSerilog/Steeltoe.Logging.DynamicSerilog.csproj +++ b/src/Logging/src/DynamicSerilog/Steeltoe.Logging.DynamicSerilog.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/versions.props b/versions.props index ee63bf69be..8f1e471901 100644 --- a/versions.props +++ b/versions.props @@ -8,28 +8,29 @@ 9.0.* 10.0.* 7.2.* - 3.58.* - 18.7.* - 5.0.* + 3.62.* + 18.9.* + 5.9.* 7.0.* - 7.0.* - 3.8.* + 7.1.* + 3.11.* 2.6.* - 9.7.* + 26.7.* 13.0.* 6.2.* - 3.3.* + 5.6.* 7.2.* 4.0.* 8.4.* 10.25.0.139117 1.2.0-beta.556 2.0.* - 8.15.* + 8.22.* 4.9.* - 18.5.* + 18.9.* + 10.9.* 3.2.* - 3.1.* + 4.0.* @@ -53,7 +54,7 @@ --> 2.2.* - 1.7.14.* + 1.8.* 9.0.652701 8.0.* @@ -67,8 +68,10 @@ 3.1.23 1.15.*-* 1.15.* - 9.0.* + 10.0.* + 10.0.* 6.1.* + 9.0.* From 43b93b623b748ddfe71f5844943325b4b33ce73c Mon Sep 17 00:00:00 2001 From: Bart Koelman <104792814+bart-vmware@users.noreply.github.com> Date: Tue, 8 Sep 2026 13:26:39 +0200 Subject: [PATCH 2/4] Update Sonar analyzer to latest version Changed rules: -S4792 // Configuring loggers is security-sensitive *S5042 Warning -> None // Guard against "Zip Bomb" attacks +S8949: Warning // Use overload that takes CancellationToken +S8969: Warning, Steeltoe: None (false positives) // ! operators should not be redundant +S8970: Warning // Don't use ! when nullable disabled +S8717 [SonarCloud-only] // Don't use multiple [Key] attributes in EF Core +S8718 [SonarCloud-only] // About EF Core client-evaluated default values +S8733 [SonarCloud-only] // Use AsSplitQuery in EF Core +S8747 [SonarCloud-only] // Don't narrow column types in EF Core migrations +S9022 [SonarCloud-only] // Duplicate Include calls in EF Core +S9129 [SonarCloud-only] // Merge include chains in EF Core --- Steeltoe.Debug.ruleset | 3 ++- Steeltoe.Release.ruleset | 3 ++- src/Common/src/Hosting/HostBuilderWrapper.cs | 2 -- src/Common/src/Logging/BootstrapLoggerFactory.cs | 4 ---- src/Logging/src/DynamicConsole/LoggingBuilderExtensions.cs | 2 -- src/Logging/src/DynamicSerilog/SerilogOptions.cs | 2 -- .../Actuators/Loggers/EndpointServiceCollectionExtensions.cs | 2 -- .../src/Endpoint/CoreActuatorServiceCollectionExtensions.cs | 3 --- .../src/Tracing/TracingServiceCollectionExtensions.cs | 2 -- versions.props | 2 +- 10 files changed, 5 insertions(+), 20 deletions(-) diff --git a/Steeltoe.Debug.ruleset b/Steeltoe.Debug.ruleset index 97dc2006b9..ddd897aac8 100644 --- a/Steeltoe.Debug.ruleset +++ b/Steeltoe.Debug.ruleset @@ -1,5 +1,5 @@  - + @@ -128,6 +128,7 @@ + diff --git a/Steeltoe.Release.ruleset b/Steeltoe.Release.ruleset index 24a6a00a3b..5bc567fce8 100644 --- a/Steeltoe.Release.ruleset +++ b/Steeltoe.Release.ruleset @@ -1,5 +1,5 @@  - + @@ -113,6 +113,7 @@ + diff --git a/src/Common/src/Hosting/HostBuilderWrapper.cs b/src/Common/src/Hosting/HostBuilderWrapper.cs index 07ee6af1c8..ebf8976223 100644 --- a/src/Common/src/Hosting/HostBuilderWrapper.cs +++ b/src/Common/src/Hosting/HostBuilderWrapper.cs @@ -148,9 +148,7 @@ public void ConfigureLogging(Action } else { -#pragma warning disable S4792 // Configuring loggers is security-sensitive _configureServicesActions.Add((contextWrapper, collection) => collection.AddLogging(builder => configureAction(contextWrapper, builder))); -#pragma warning restore S4792 // Configuring loggers is security-sensitive } } diff --git a/src/Common/src/Logging/BootstrapLoggerFactory.cs b/src/Common/src/Logging/BootstrapLoggerFactory.cs index 2ad4ad0ad8..4f5c96ddd1 100644 --- a/src/Common/src/Logging/BootstrapLoggerFactory.cs +++ b/src/Common/src/Logging/BootstrapLoggerFactory.cs @@ -24,9 +24,7 @@ public sealed class BootstrapLoggerFactory : ILoggerFactory private static readonly Action ConfigureConsole = loggingBuilder => { loggingBuilder.SetMinimumLevel(LogLevel.Trace); -#pragma warning disable S4792 // Configuring loggers is security-sensitive loggingBuilder.AddConsole(options => options.MaxQueueLength = 1); -#pragma warning restore S4792 // Configuring loggers is security-sensitive var appSettings = new Dictionary { @@ -81,9 +79,7 @@ public static BootstrapLoggerFactory CreateEmpty(Action configu { ArgumentNullException.ThrowIfNull(configure); -#pragma warning disable S4792 // Configuring loggers is security-sensitive return new BootstrapLoggerFactory(configure); -#pragma warning restore S4792 // Configuring loggers is security-sensitive } /// diff --git a/src/Logging/src/DynamicConsole/LoggingBuilderExtensions.cs b/src/Logging/src/DynamicConsole/LoggingBuilderExtensions.cs index 9bb66887ef..9137293171 100644 --- a/src/Logging/src/DynamicConsole/LoggingBuilderExtensions.cs +++ b/src/Logging/src/DynamicConsole/LoggingBuilderExtensions.cs @@ -51,9 +51,7 @@ private static void EnsureConsoleLoggingIsRegistered(ILoggingBuilder builder) { if (builder.Services.All(descriptor => descriptor.SafeGetImplementationType() != typeof(ConsoleLoggerProvider))) { -#pragma warning disable S4792 // Configuring loggers is security-sensitive builder.AddConsole(); -#pragma warning restore S4792 // Configuring loggers is security-sensitive } } diff --git a/src/Logging/src/DynamicSerilog/SerilogOptions.cs b/src/Logging/src/DynamicSerilog/SerilogOptions.cs index 871e3a9a63..354dce2cd9 100644 --- a/src/Logging/src/DynamicSerilog/SerilogOptions.cs +++ b/src/Logging/src/DynamicSerilog/SerilogOptions.cs @@ -50,9 +50,7 @@ internal void SetSerilogOptions(IConfiguration configuration) MinimumLevel.Default = defaultLevel; } -#pragma warning disable S4792 // Configuring loggers is security-sensitive _serilogConfiguration = new LoggerConfiguration().ReadFrom.Configuration(configuration).ClearLevels(MinimumLevel); -#pragma warning restore S4792 // Configuring loggers is security-sensitive } /// diff --git a/src/Management/src/Endpoint/Actuators/Loggers/EndpointServiceCollectionExtensions.cs b/src/Management/src/Endpoint/Actuators/Loggers/EndpointServiceCollectionExtensions.cs index 3205e465f3..cb48427479 100644 --- a/src/Management/src/Endpoint/Actuators/Loggers/EndpointServiceCollectionExtensions.cs +++ b/src/Management/src/Endpoint/Actuators/Loggers/EndpointServiceCollectionExtensions.cs @@ -40,9 +40,7 @@ public static IServiceCollection AddLoggersActuator(this IServiceCollection serv { ArgumentNullException.ThrowIfNull(services); -#pragma warning disable S4792 // Configuring loggers is security-sensitive services.AddLogging(loggingBuilder => loggingBuilder.AddDynamicConsole()); -#pragma warning restore S4792 // Configuring loggers is security-sensitive services.AddCoreActuatorServices(configureMiddleware); diff --git a/src/Management/src/Endpoint/CoreActuatorServiceCollectionExtensions.cs b/src/Management/src/Endpoint/CoreActuatorServiceCollectionExtensions.cs index 1445569f65..e948691fa7 100644 --- a/src/Management/src/Endpoint/CoreActuatorServiceCollectionExtensions.cs +++ b/src/Management/src/Endpoint/CoreActuatorServiceCollectionExtensions.cs @@ -76,10 +76,7 @@ public static class CoreActuatorServiceCollectionExtensions private static void AddCommonActuatorServices(IServiceCollection services, bool configureMiddleware) { -#pragma warning disable S4792 // Configuring loggers is security-sensitive services.AddLogging(); -#pragma warning restore S4792 // Configuring loggers is security-sensitive - services.AddRouting(); services.TryAddSingleton(); services.TryAddSingleton(); diff --git a/src/Management/src/Tracing/TracingServiceCollectionExtensions.cs b/src/Management/src/Tracing/TracingServiceCollectionExtensions.cs index 5d830b5421..dd61266050 100644 --- a/src/Management/src/Tracing/TracingServiceCollectionExtensions.cs +++ b/src/Management/src/Tracing/TracingServiceCollectionExtensions.cs @@ -31,9 +31,7 @@ public static IServiceCollection AddTracingLogProcessor(this IServiceCollection ArgumentNullException.ThrowIfNull(services); services.AddApplicationInstanceInfo(); -#pragma warning disable S4792 // Configuring loggers is security-sensitive services.AddLogging(loggingBuilder => loggingBuilder.AddDynamicConsole()); -#pragma warning restore S4792 // Configuring loggers is security-sensitive services.TryAddEnumerable(ServiceDescriptor.Singleton()); return services; diff --git a/versions.props b/versions.props index 8f1e471901..e94e82c170 100644 --- a/versions.props +++ b/versions.props @@ -22,7 +22,7 @@ 7.2.* 4.0.* 8.4.* - 10.25.0.139117 + 10.33.0.1635 1.2.0-beta.556 2.0.* 8.22.* From 9f0b96cee95907ff1b5414fe30d59810917953a0 Mon Sep 17 00:00:00 2001 From: Bart Koelman <104792814+bart-vmware@users.noreply.github.com> Date: Tue, 8 Sep 2026 13:42:35 +0200 Subject: [PATCH 3/4] Sort PackageReference entries --- shared-test.props | 2 +- .../test/Connectors.Test/Steeltoe.Connectors.Test.csproj | 8 ++++---- .../Steeltoe.Connectors.EntityFrameworkCore.Test.csproj | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/shared-test.props b/shared-test.props index 0f4925cda1..7e63773b57 100644 --- a/shared-test.props +++ b/shared-test.props @@ -18,8 +18,8 @@ - + diff --git a/src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj b/src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj index 0bdb306f43..7d6d266ce1 100644 --- a/src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj +++ b/src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj @@ -7,16 +7,16 @@ - - - - + + + + diff --git a/src/Connectors/test/EntityFrameworkCore.Test/Steeltoe.Connectors.EntityFrameworkCore.Test.csproj b/src/Connectors/test/EntityFrameworkCore.Test/Steeltoe.Connectors.EntityFrameworkCore.Test.csproj index c20f357982..27f23bfef4 100644 --- a/src/Connectors/test/EntityFrameworkCore.Test/Steeltoe.Connectors.EntityFrameworkCore.Test.csproj +++ b/src/Connectors/test/EntityFrameworkCore.Test/Steeltoe.Connectors.EntityFrameworkCore.Test.csproj @@ -9,9 +9,9 @@ - + From 2b2175dcafba0520f4a13c92d65311a34bb36309 Mon Sep 17 00:00:00 2001 From: Bart Koelman <104792814+bart-vmware@users.noreply.github.com> Date: Wed, 9 Sep 2026 13:01:29 +0200 Subject: [PATCH 4/4] Fix flaky test --- .../RelationalDatabaseHealthContributorTest.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Connectors/test/Connectors.Test/RelationalDatabaseHealthContributorTest.cs b/src/Connectors/test/Connectors.Test/RelationalDatabaseHealthContributorTest.cs index 04ace068da..a7f5abb2dc 100644 --- a/src/Connectors/test/Connectors.Test/RelationalDatabaseHealthContributorTest.cs +++ b/src/Connectors/test/Connectors.Test/RelationalDatabaseHealthContributorTest.cs @@ -32,7 +32,12 @@ public async Task PostgreSQL_Not_Connected_Returns_Down_Status() result.Description.Should().Be("PostgreSQL health check failed"); result.Details.Should().Contain("host", "localhost"); result.Details.Should().Contain("service", "Example"); - result.Details.Should().ContainKey("error").WhoseValue.As().Should().StartWith("NpgsqlException: "); + + string errorMessage = result.Details.Should().ContainKey("error").WhoseValue.As(); + + errorMessage.Should().Match(error => + error.StartsWith("NpgsqlException: Failed to connect", StringComparison.Ordinal) || + error.StartsWith("TimeoutException: ", StringComparison.Ordinal)); } [Fact(Skip = "Integration test - Requires local PostgreSQL server")]