Skip to content

Fix configuration binding for HTTP client logging data classifications#7553

Draft
Marcus-Kanon wants to merge 1 commit into
dotnet:mainfrom
Marcus-Kanon:fix/httpclient-logging-config-binding
Draft

Fix configuration binding for HTTP client logging data classifications#7553
Marcus-Kanon wants to merge 1 commit into
dotnet:mainfrom
Marcus-Kanon:fix/httpclient-logging-config-binding

Conversation

@Marcus-Kanon

@Marcus-Kanon Marcus-Kanon commented Jun 9, 2026

Copy link
Copy Markdown

Summary

Fixes configuration-based registration for extended HTTP client logging when header data classifications are provided from appsettings.json.

The documented configuration shape for RequestHeadersDataClasses and ResponseHeadersDataClasses uses values like "None" and "Unknown", but the configuration path was relying on default binding behavior that does not bind DataClassification correctly in this scenario. This caused startup failures for AddExtendedHttpClientLogging(configurationSection).

This change:

  • replaces default binding with an explicit LoggingOptions configurator for configuration-based registration
  • parses configured DataClassification values from string representations such as None and Unknown
  • adds regression tests for both IHttpClientBuilder and IServiceCollection registration paths

Testing

  • dotnet test .\test\Libraries\Microsoft.Extensions.Http.Diagnostics.Tests\Microsoft.Extensions.Http.Diagnostics.Tests.csproj --filter "BindsRequestHeadersDataClasses"

Fixes #7551

@Marcus-Kanon Marcus-Kanon changed the title Fix HTTP client logging configuration binding Fix configuration binding for HTTP client logging data classifications Jun 9, 2026
@dotnet-comment-bot

Copy link
Copy Markdown
Collaborator

‼️ Found issues ‼️

Project Coverage Type Expected Actual
Microsoft.Extensions.Http.Diagnostics Line 94 92.37 🔻
Microsoft.Extensions.Http.Diagnostics Branch 94 93.81 🔻
Microsoft.Extensions.Diagnostics.Testing Line 99 98.65 🔻
Microsoft.Extensions.Telemetry Line 93 91.95 🔻
Microsoft.Extensions.AI Line 89 88.59 🔻
Microsoft.Extensions.AI Branch 89 88.53 🔻
Microsoft.Extensions.AI.OpenAI Line 75 62.65 🔻
Microsoft.Extensions.AI.OpenAI Branch 75 49.63 🔻
Microsoft.Extensions.DataIngestion.MarkItDown Line 75 4.46 🔻
Microsoft.Extensions.DataIngestion.MarkItDown Branch 75 0 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring Line 99 96.03 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring Branch 99 94.39 🔻
Microsoft.Extensions.Diagnostics.ResourceMonitoring.Kubernetes Line 99 97.73 🔻
Microsoft.Extensions.ServiceDiscovery.Dns Line 75 69.93 🔻
Microsoft.Extensions.ServiceDiscovery.Abstractions Line 75 42.11 🔻
Microsoft.Extensions.ServiceDiscovery.Abstractions Branch 75 42.86 🔻
Microsoft.Extensions.ServiceDiscovery Line 75 67.96 🔻
Microsoft.Extensions.ServiceDiscovery Branch 75 71.43 🔻
Microsoft.Extensions.ServiceDiscovery.Yarp Line 75 73.85 🔻
Microsoft.Extensions.ServiceDiscovery.Yarp Branch 75 70 🔻
Microsoft.Extensions.VectorData.Abstractions Line 75 37.39 🔻
Microsoft.Extensions.VectorData.Abstractions Branch 75 22.73 🔻

🎉 Good job! The coverage increased 🎉
Update MinCodeCoverage in the project files.

Project Expected Actual
Microsoft.Gen.BuildMetadata 97 100
Microsoft.Gen.MetadataExtractor 57 73
Microsoft.Gen.MetricsReports 67 69
Microsoft.Extensions.AI.Abstractions 82 85
Microsoft.Extensions.AI.Evaluation.NLP 0 78
Microsoft.Extensions.Caching.Hybrid 82 84
Microsoft.Extensions.DataIngestion 75 89
Microsoft.Extensions.DataIngestion.Markdig 75 90
Microsoft.Extensions.Http.Resilience 97 100

Full code coverage report: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1456079&view=codecoverage-tab

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AddExtendedHttpClientLogging(configurationSection) fails with the documented appsettings.json sample for RequestHeadersDataClasses

2 participants