ExperimentFramework.Dashboard
0.23.0
dotnet add package ExperimentFramework.Dashboard --version 0.23.0
NuGet\Install-Package ExperimentFramework.Dashboard -Version 0.23.0
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="ExperimentFramework.Dashboard" Version="0.23.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ExperimentFramework.Dashboard" Version="0.23.0" />
<PackageReference Include="ExperimentFramework.Dashboard" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ExperimentFramework.Dashboard --version 0.23.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ExperimentFramework.Dashboard, 0.23.0"
#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.
#:package ExperimentFramework.Dashboard@0.23.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ExperimentFramework.Dashboard&version=0.23.0
#tool nuget:?package=ExperimentFramework.Dashboard&version=0.23.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
ExperimentFramework.Dashboard
Enterprise-grade, embeddable web dashboard for managing A/B tests, feature flags, and experiments in .NET applications.
Features
- Experiment Management: Create, configure, and manage experiments with an intuitive web UI
- Analytics Dashboard: Visualize experiment performance and statistical analysis
- Governance Workflows: Approval workflows, lifecycle management, versioning, and audit trails
- Rollout Management: Gradual rollout with stage-based deployment
- Targeting Rules: Advanced user targeting and segmentation
- Configuration DSL: YAML-based configuration with Monaco editor
- Plugin System: Discover and manage experiment plugins
- Multi-Tenancy: Built-in support for multi-tenant scenarios via
ITenantResolver - Authorization: Delegates to ASP.NET Core authorization (no user management)
Installation
dotnet add package ExperimentFramework.Dashboard
Quick Start
1. Add Dashboard Services
using ExperimentFramework.Dashboard;
var builder = WebApplication.CreateBuilder(args);
// Configure dashboard
builder.Services.AddExperimentDashboard(options =>
{
options.PathBase = "/dashboard";
options.Title = "My Experiments";
options.EnableAnalytics = true;
options.EnableGovernanceUI = true;
});
2. Map Dashboard Endpoint
var app = builder.Build();
// Map dashboard at /dashboard
app.MapExperimentDashboard("/dashboard");
app.Run();
3. Access Dashboard
Navigate to https://localhost:5001/dashboard to access the dashboard.
Configuration Options
builder.Services.AddExperimentDashboard(options =>
{
// Basic settings
options.PathBase = "/dashboard";
options.Title = "Experiment Dashboard";
options.ItemsPerPage = 25;
// Features
options.EnableAnalytics = true;
options.EnableGovernanceUI = true;
// Authorization
options.RequireAuthorization = true;
options.AuthorizationPolicy = "DashboardAccess";
// Multi-tenancy
options.TenantResolver = new HttpHeaderTenantResolver("X-Tenant-Id");
});
Multi-Tenancy
Configure tenant resolution using built-in or custom resolvers:
// HTTP Header
options.TenantResolver = new HttpHeaderTenantResolver("X-Tenant-Id");
// Subdomain
options.TenantResolver = new SubdomainTenantResolver();
// Claims
options.TenantResolver = new ClaimTenantResolver("tenant_id");
// Composite (try multiple strategies)
options.TenantResolver = new CompositeTenantResolver(
new ClaimTenantResolver("tenant_id"),
new HttpHeaderTenantResolver("X-Tenant-Id")
);
Authorization
The dashboard delegates authorization to your existing ASP.NET Core setup:
// Configure authorization
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("DashboardAccess", policy =>
{
policy.RequireAuthenticatedUser();
policy.RequireRole("Admin", "Experimenter");
});
});
// Enable in dashboard
builder.Services.AddExperimentDashboard(options =>
{
options.RequireAuthorization = true;
options.AuthorizationPolicy = "DashboardAccess";
});
// Use authentication middleware
app.UseAuthentication();
app.UseAuthorization();
Extensibility
Custom Tenant Resolver
public class CustomTenantResolver : ITenantResolver
{
public Task<TenantContext?> ResolveAsync(HttpContext context)
{
// Your custom logic
var tenantId = /* ... */;
return Task.FromResult(new TenantContext
{
TenantId = tenantId,
DisplayName = "My Tenant",
Environment = "Production"
});
}
}
Custom Data Provider
public class CustomDataProvider : IDashboardDataProvider
{
public Task<IEnumerable<ExperimentInfo>> GetExperimentsAsync(
string? tenantId,
CancellationToken ct = default)
{
// Your custom data access logic
}
}
// Register
builder.Services.AddSingleton<IDashboardDataProvider, CustomDataProvider>();
API Endpoints
The dashboard exposes REST APIs at /dashboard/api:
GET /api/experiments- List all experimentsGET /api/experiments/{name}- Get experiment detailsPOST /api/experiments/{name}/toggle- Toggle experiment active stateGET /api/configuration/yaml- Export configuration as YAMLGET /api/governance/{name}/state- Get governance stateGET /api/analytics/{name}/statistics- Get statistical analysisGET /api/rollout/{name}/stages- Get rollout stagesGET /api/targeting/{name}/rules- Get targeting rules
Requirements
- .NET 10.0 or later
- ASP.NET Core
- ExperimentFramework package
License
MIT
Links
| 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- ExperimentFramework (>= 0.23.0)
- ExperimentFramework.Admin (>= 0.23.0)
- ExperimentFramework.Dashboard.Abstractions (>= 0.23.0)
- ExperimentFramework.Dashboard.Api (>= 0.23.0)
- ExperimentFramework.Dashboard.UI (>= 0.23.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.