Dosaic.Plugins.Management.Unleash
1.0.18
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Dosaic.Plugins.Management.Unleash --version 1.0.18
NuGet\Install-Package Dosaic.Plugins.Management.Unleash -Version 1.0.18
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Dosaic.Plugins.Management.Unleash" Version="1.0.18" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Dosaic.Plugins.Management.Unleash --version 1.0.18
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Dosaic.Plugins.Management.Unleash, 1.0.18"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Dosaic.Plugins.Management.Unleash as a Cake Addin #addin nuget:?package=Dosaic.Plugins.Management.Unleash&version=1.0.18 // Install Dosaic.Plugins.Management.Unleash as a Cake Tool #tool nuget:?package=Dosaic.Plugins.Management.Unleash&version=1.0.18
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Dosaic.Plugins.Management.Unleash
Dosaic.Plugins.Management.Unleash is a plugin
that allows to use feature flags
to enable CI/CD with control when and how are features enabled
.
Installation
To install the nuget package follow these steps:
dotnet add package Dosaic.Plugins.Management.Unleash
or add as package reference to your .csproj
<PackageReference Include="Dosaic.Plugins.Management.Unleash" Version="" />
This plugin uses
- https://github.com/microsoft/FeatureManagement-Dotnet (feature flags abstraction)
- https://github.com/Unleash/unleash-client-dotnet (client sdk)
- https://github.com/Unleash/unleash (server)
Configuration
unleash:
appName: "my-fancy-app"
apiUri: "http://localhost:4242/api/"
apiToken: "[create-in-local-instance-web-ui]"
projectId: "default" //in free/opensource mode there is just one project, always the same
instanceTag: "my-fancy-backup2"
environment: "development"
Usage
Feature flag checks
public class ExampleService
{
private readonly IFeatureManager _featureManager;
public ExampleService(IFeatureManager featureManager)
{
_featureManager = featureManager;
}
public void CheckFeatureFlag()
{
var isEnabled= await featureManager.IsEnabledAsync("myFeatureFlag");
}
public void CheckFeatureFlagWithActivatedContextualUserIdFilter()
{
var isEnabled = await featureManager.IsEnabledAsync("hello", new UserIdContext(){UserId = "id1"});
}
}
Controller & Actions
[ApiController, Route("test")]
[FeatureGate("my-feature-flag-for-a-whole-controller")]
public class TestController : ControllerBase
{
[HttpGet]
[FeatureGate("my-feature-flag-for-get-action")]
public IActionResult Index()
{
return View();
}
[HttpPost]
[FeatureGate("my-feature-flag-for-post-action")]
public IActionResult Create()
{
return View();
}
}
MVC Views
@addTagHelper *, Microsoft.FeatureManagement.AspNetCore
<feature name="FeatureA">
<p>This can only be seen if 'FeatureA' is enabled.</p>
</feature>
MVC Filters
using Microsoft.FeatureManagement.FeatureFilters;
IConfiguration Configuration { get; set;}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options => {
options.Filters.AddForFeature<ThirdPartyActionFilter>(MyFeatureFlags.FeatureA);
});
}
Middleware
app.UseMiddlewareForFeature<ThirdPartyMiddleware>(MyFeatureFlags.FeatureA);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net9.0
- AspNetCore.HealthChecks.Uris (>= 9.0.0)
- Dosaic.Hosting.Abstractions (>= 1.0.18)
- Microsoft.FeatureManagement.AspNetCore (>= 4.0.0)
- Unleash.Client (>= 5.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.