bitwarden / passwordless-server

Bitwarden Passwordless.dev infrastructure/backend (API, database, Docker, etc).
https://bitwarden.com/
Other
86 stars 28 forks source link

[deps]: Update Microsoft.FeatureManagement.AspNetCore to v4 #759

Closed renovate[bot] closed 5 days ago

renovate[bot] commented 6 days ago

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
Microsoft.FeatureManagement.AspNetCore 3.5.0 -> 4.0.0 age adoption passing confidence

Release Notes

microsoft/FeatureManagement-Dotnet (Microsoft.FeatureManagement.AspNetCore) ### [`v4.0.0`](https://redirect.github.com/microsoft/FeatureManagement-Dotnet/releases/tag/4.0.0) [Compare Source](https://redirect.github.com/microsoft/FeatureManagement-Dotnet/compare/3.5.0...4.0.0) #### 4.0.0 - November 1, 2024 ### Microsoft.FeatureManagement Updates The packages associated with this release are - [Microsoft.FeatureManagement 4.0.0](https://www.nuget.org/packages/Microsoft.FeatureManagement/4.0.0) - [Microsoft.FeatureManagement.AspNetCore 4.0.0](https://www.nuget.org/packages/Microsoft.FeatureManagement.AspNetCore/4.0.0) - [Microsoft.FeatureManagement.Telemetry.ApplicationInsights 4.0.0](https://www.nuget.org/packages/Microsoft.FeatureManagement.Telemetry.ApplicationInsights/4.0.0) #### Microsoft.FeatureManagement ##### Enhancements ##### Variant Feature Flags A variant feature flag is an enhanced feature flag that supports multiple states or variations. While it can still be toggled on or off, it also allows for different configurations, ranging from simple primitives to complex JSON objects. Variant feature flags are particularly useful for feature rollouts, configuration rollouts, and feature experimentation (also known as A/B testing). The new `IVariantFeatureManager` has been introduced as the successor to the existing `IFeatureManager`. It retains all the functionalities of `IFeatureManager` while adding new `GetVariantAsync` methods and supporting `CancellationToken` for all methods. ```C# IVariantFeatureManager featureManager; ... Variant variant = await featureManager.GetVariantAsync(MyFeatureFlags.HelpText, CancellationToken.None); model.Text = variant.Configuration.Value; ``` *Note: If reading variant flags from App Configuration, version `8.0.0` or above for the `Microsoft.Extensions.Configuration.AzureAppConfiguration` or `Microsoft.Azure.AppConfiguration.AspNetCore` package is required.* For more details on Variants, see [here](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#variants). ##### Variant Service Provider Variant feature flags can be used in conjunction with dependency injection to surface different implementations of a service for different users. This is accomplished by using the Variant Service Provider. For more details on Variant Service Provider, see [here](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#variants-in-dependency-injection) ##### Telemetry Telemetry provides observability into flag evaluations, offering insights into which users received specific flag results. This enables more powerful metric analysis, such as experimentation. For more details on Telemetry, see [here](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#telemetry). ##### Microsoft Feature Management Schema Added support for variant feature flags defined using [Microsoft Feature Management schema](https://redirect.github.com/microsoft/FeatureManagement/blob/c5fab16dbf1450dce0bbfe7c4207da735ff31916/Schema/FeatureManagement.v2.0.0.schema.json). Variants and telemetry can be declared using [Microsoft Feature Flag schema v2](https://redirect.github.com/microsoft/FeatureManagement/blob/c5fab16dbf1450dce0bbfe7c4207da735ff31916/Schema/FeatureFlag.v2.0.0.schema.json). Here is a [Sample](https://redirect.github.com/microsoft/FeatureManagement-Dotnet/blob/f47e188babea0a91488d2e6a0b2ab4c9405d0794/examples/VariantAndTelemetryDemo/appsettings.json#L12). ##### Performance Optimizations The performance of the feature flag state evaluation has been improved by up to 20%, with a memory reduction of up to 30% for .NET 8 applications compared to the version 3.5.0 release. #### Microsoft.FeatureManagement.AspNetCore ##### Enhancements - Adjusted the `.WithTargeting()` builder method to automatically add `HttpContextAccessor` if it's not already added. - Added `TargetingHttpContextMiddleware` which persists targeting context in the current activity. This is used when setting up [Telemetry](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#telemetry). - Added support for variants in `FeatureTagHelper`. This allows MVC views to use the `` tag to conditionally render content based on whether a specific variant of a feature is assigned. ```HTML+Razor

This can only be seen if variant 'Alpha' of 'FeatureX' is assigned.

``` For more details on ASP.NET views and variants, see [here](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#view). - Updated `Microsoft.FeatureManagement` reference to `4.0.0`. See the [release notes](./Microsoft.Featuremanagement.md) for more information on the changes. - Added support for .NET 9 as a target framework. ##### Breaking Change - The `FeatureTagHelper` constructor now requires an `IVariantFeatureManager` to support new variant functionality. While this class is typically not instantiated directly, any direct instantiation will need to be updated. - Removed .NET 7 as a target framework as .NET 7 is out of support. #### Microsoft.FeatureManagement.Telemetry.ApplicationInsights ##### Enhancements - Added support for Application Insights telemetry. To publish feature flag evaluation data and tag outgoing events with targeting information, register the Application Insights telemetry publisher as shown below. ```csharp builder.Services.AddFeatureManagement() .AddApplicationInsightsTelemetry(); ``` For more details on Application Insights Publishing, see [here](https://learn.microsoft.com/en-us/azure/azure-app-configuration/feature-management-dotnet-reference#application-insights-telemetry-publisher)

Configuration

📅 Schedule: Branch creation - "every 2nd week starting on the 2 week of the year before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR was generated by Mend Renovate. View the repository job log.

codecov[bot] commented 6 days ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 35.20%. Comparing base (e1fb5c3) to head (d8e1335). Report is 5 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #759 +/- ## ======================================= Coverage 35.20% 35.20% ======================================= Files 579 579 Lines 31286 31286 Branches 898 898 ======================================= Hits 11014 11014 Misses 20129 20129 Partials 143 143 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.