Arbeidstilsynet.Common.FeatureFlags
1.1.2
dotnet add package Arbeidstilsynet.Common.FeatureFlags --version 1.1.2
NuGet\Install-Package Arbeidstilsynet.Common.FeatureFlags -Version 1.1.2
<PackageReference Include="Arbeidstilsynet.Common.FeatureFlags" Version="1.1.2" />
<PackageVersion Include="Arbeidstilsynet.Common.FeatureFlags" Version="1.1.2" />
<PackageReference Include="Arbeidstilsynet.Common.FeatureFlags" />
paket add Arbeidstilsynet.Common.FeatureFlags --version 1.1.2
#r "nuget: Arbeidstilsynet.Common.FeatureFlags, 1.1.2"
#:package Arbeidstilsynet.Common.FeatureFlags@1.1.2
#addin nuget:?package=Arbeidstilsynet.Common.FeatureFlags&version=1.1.2
#tool nuget:?package=Arbeidstilsynet.Common.FeatureFlags&version=1.1.2
Introduction
A feature flag library for .NET applications using Unleash as the backing service. This package provides a simple interface for checking feature flags with support for context-based evaluation.
๐ Installation
To install the FeatureFlags package, you can use the following command in your terminal:
dotnet add package Arbeidstilsynet.Common.FeatureFlags
๐งโ๐ป Usage
Configuration
Add feature flag settings to your appsettings.json:
{
"FeatureFlags": {
"Url": "https://unleash.example.com/api",
"ApiKey": "your-api-key-here",
"AppName": "my-application"
}
}
Service Registration
Add to your service collection in Program.cs or Startup.cs:
using Arbeidstilsynet.Common.FeatureFlags.DependencyInjection;
using Arbeidstilsynet.Common.FeatureFlags.Model;
var builder = WebApplication.CreateBuilder(args);
// Bind configuration
var featureFlagSettings = builder.Configuration
.GetSection("FeatureFlags")
.Get<FeatureFlagSettings>();
// Register feature flags service
builder.Services.AddFeatureFlags(
builder.Environment,
featureFlagSettings
);
var app = builder.Build();
Note: If
featureFlagSettingsisnullor has missing configuration, the service will automatically useFakeUnleashfor testing purposes.
Using Feature Flags in Your Code
Inject IFeatureFlags into your services or controllers:
using Arbeidstilsynet.Common.FeatureFlags.Model;
using Arbeidstilsynet.Common.FeatureFlags.Ports;
public class MyService
{
private readonly IFeatureFlags _featureFlags;
public MyService(IFeatureFlags featureFlags)
{
_featureFlags = featureFlags;
}
public void DoSomething()
{
// Simple feature check
if (_featureFlags.IsEnabled("my-new-feature"))
{
// New feature logic
}
else
{
// Old logic
}
}
public void DoSomethingWithContext(string userId)
{
// Feature check with context
var context = new FeatureFlagContext
{
UserId = userId,
};
if (_featureFlags.IsEnabled("user-specific-feature", context))
{
// Context-aware feature logic
}
}
}
Mapping the Feature Flag Endpoint
You can expose an HTTP endpoint to check feature flags remotely:
using Arbeidstilsynet.Common.FeatureFlags.DependencyInjection;
var app = builder.Build();
app.UseRouting();
// Map with default route: POST /feature-flags
app.MapFeatureFlagEndpoint();
// Or with a custom route:
app.MapFeatureFlagEndpoint("/api/features");
app.Run();
Example request:
POST /feature-flags
Content-Type: application/json
{
"featureName": "my-new-feature",
"context": {
"userId": "user123"
}
}
Example response:
{
"featureName": "my-new-feature",
"isEnabled": true
}
๐งช Testing
For testing purposes, when no configuration is provided, the service automatically uses FakeUnleash:
// In your test setup
services.AddFeatureFlags(webHostEnvironment, null);
You can also configure specific features to be enabled in tests:
var fakeUnleash = new FakeUnleash();
fakeUnleash.Enable("test-feature");
services.AddSingleton<IUnleash>(fakeUnleash);
services.AddFeatureFlags(webHostEnvironment, null);
| 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
- Arbeidstilsynet.Common.AspNetCore.Extensions (>= 2.1.3)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.1)
- Unleash.Client (>= 5.6.0)
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.1.2 | 619 | 2/18/2026 |
| 1.1.2-beta1 | 77 | 2/18/2026 |
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added <!-- for new features. -->
### Changed <!-- for changes in existing functionality. -->
### Deprecated <!-- for soon-to-be removed features. -->
### Removed <!-- for now removed features. -->
### Fixed <!-- for any bug fixes. -->
### Security <!-- in case of vulnerabilities. -->
## 1.1.2
### Changed
- chore: moved package to nuget.org
## 1.1.1
### Changed
- fix: add more fields to FeatureFlag context
## 1.1.0
### Changed
- changed(deps): Applied minor and patch updates to dependencies
## 1.0.1
### Changed
- changed(deps): Updated internal package referances (remove prerelease version)
## 1.0.0
### Changed
- changed(deps): Major dotnet updated (v10)
## 0.0.4
### Changed
- fix: make feature flag settings required
## 0.0.3
### Added
- feat: provide environment setting to determine correct context
## 0.0.2
### Changed
- fix: make client return bool instead of dto
## 0.0.1
### Added
- Add DependencyInjection for FeatureFlags
- Add thin endpoint for clients