PiBox.Plugins.Management.Unleash 1.0.51

dotnet add package PiBox.Plugins.Management.Unleash --version 1.0.51
NuGet\Install-Package PiBox.Plugins.Management.Unleash -Version 1.0.51
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="PiBox.Plugins.Management.Unleash" Version="1.0.51" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PiBox.Plugins.Management.Unleash --version 1.0.51
#r "nuget: PiBox.Plugins.Management.Unleash, 1.0.51"
#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 PiBox.Plugins.Management.Unleash as a Cake Addin
#addin nuget:?package=PiBox.Plugins.Management.Unleash&version=1.0.51

// Install PiBox.Plugins.Management.Unleash as a Cake Tool
#tool nuget:?package=PiBox.Plugins.Management.Unleash&version=1.0.51

PiBox.Plugins.Management.Unleash

PiBox framework

PiBox.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 PiBox.Plugins.Management.Unleash

or add as package reference to your .csproj

<PackageReference Include="PiBox.Plugins.Management.Unleash" Version="" />

This plugin uses

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"});
    }
}

see also https://learn.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core?tabs=core6x#feature-flag-checks

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();
        }
    }

see also https://learn.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core?tabs=core6x#controller-actions

MVC Views

@addTagHelper *, Microsoft.FeatureManagement.AspNetCore
<feature name="FeatureA">
    <p>This can only be seen if 'FeatureA' is enabled.</p>
</feature>

see also https://learn.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core?tabs=core6x#controller-actions

MVC Filters

using Microsoft.FeatureManagement.FeatureFilters;

IConfiguration Configuration { get; set;}

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc(options => {
        options.Filters.AddForFeature<ThirdPartyActionFilter>(MyFeatureFlags.FeatureA);
    });
}

see also https://learn.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core?tabs=core6x#controller-actions

Middleware

app.UseMiddlewareForFeature<ThirdPartyMiddleware>(MyFeatureFlags.FeatureA);

see also https://learn.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core?tabs=core6x#middleware

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.51 102 2/27/2024
1.0.49 79 2/27/2024
1.0.47 90 2/21/2024
1.0.45 86 2/20/2024
1.0.43 76 2/13/2024
1.0.41 77 2/13/2024
1.0.39 81 2/8/2024
1.0.38 60 2/8/2024
1.0.37 75 2/8/2024
1.0.35 76 2/2/2024
1.0.32 78 1/30/2024
1.0.25 148 12/27/2023
1.0.23 106 12/19/2023
1.0.22 75 12/19/2023
1.0.21 78 12/19/2023
1.0.19 89 12/11/2023
1.0.17 122 11/23/2023
1.0.7 86 11/23/2023
1.0.5 101 11/23/2023
1.0.3 90 11/23/2023
1.0.0 75 11/21/2023
0.9.9 82 11/21/2023
0.9.7 84 11/21/2023