BlogDoFT.Libs.Flagr
10.0.1
See the version list below for details.
dotnet add package BlogDoFT.Libs.Flagr --version 10.0.1
NuGet\Install-Package BlogDoFT.Libs.Flagr -Version 10.0.1
<PackageReference Include="BlogDoFT.Libs.Flagr" Version="10.0.1" />
<PackageVersion Include="BlogDoFT.Libs.Flagr" Version="10.0.1" />
<PackageReference Include="BlogDoFT.Libs.Flagr" />
paket add BlogDoFT.Libs.Flagr --version 10.0.1
#r "nuget: BlogDoFT.Libs.Flagr, 10.0.1"
#:package BlogDoFT.Libs.Flagr@10.0.1
#addin nuget:?package=BlogDoFT.Libs.Flagr&version=10.0.1
#tool nuget:?package=BlogDoFT.Libs.Flagr&version=10.0.1
BlogDoFT.Libs.Flagr
HTTP client to evaluate feature flags from a Flagr server. Registers IFlagEvaluator (from BlogDoFT.Libs.Flagr.Abstractions) as a typed HttpClient and evaluates flags by posting to Flagr's v1/evaluation endpoint.
Purpose
- Wire up a typed
HttpClientpointed at a Flagr instance usingIOptions<FlagrOptions>. - Resolve a feature flag's variant for a given entity context.
Configuration
{
"Flagr": {
"BaseUrl": "https://flagr.example.com/api/"
}
}
Quick start
// Composition root
services.AddFlagr();
// or configure options in code
services.AddFlagr(options => options.BaseUrl = "https://flagr.example.com/api/");
public class MyFeature
{
private readonly IFlagEvaluator _FlagEvaluator;
public MyFeature(IFlagEvaluator FlagEvaluator)
{
_FlagEvaluator = FlagEvaluator;
}
public bool IsEnabled()
{
var evaluation = _FlagEvaluator.EvaluateFlag<MyFeature>(new { });
return evaluation.VariantKey == "on";
}
}
Notes
AddFlagrfails fast with anOptionsValidationExceptionwhenFlagr:BaseUrlis missing or empty.- To authenticate requests to Flagr with a Keycloak-issued bearer token, add
BlogDoFT.Libs.Keycloakand attachKeycloakAuthenticationHandlerto the FlagrHttpClientviaAddHttpMessageHandler<KeycloakAuthenticationHandler>().
Versioning
Starting with v10.0.0, this library's version numbering follows the major version of the .NET runtime it targets. For example, this version is compatible with .NET 10, so the major version is 10 — this explains the jump from the previous 1.x version series.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- BlogDoFT.Libs.Flagr.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Configuration (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.