Kododo.ConfigWay
1.0.0
dotnet add package Kododo.ConfigWay --version 1.0.0
NuGet\Install-Package Kododo.ConfigWay -Version 1.0.0
<PackageReference Include="Kododo.ConfigWay" Version="1.0.0" />
<PackageVersion Include="Kododo.ConfigWay" Version="1.0.0" />
<PackageReference Include="Kododo.ConfigWay" />
paket add Kododo.ConfigWay --version 1.0.0
#r "nuget: Kododo.ConfigWay, 1.0.0"
#:package Kododo.ConfigWay@1.0.0
#addin nuget:?package=Kododo.ConfigWay&version=1.0.0
#tool nuget:?package=Kododo.ConfigWay&version=1.0.0
Kododo.ConfigWay
Runtime configuration editor for ASP.NET Core. View and modify IOptions<T> values at runtime through a built-in web UI without restarting the application.
Install
dotnet add package Kododo.ConfigWay
dotnet add package Kododo.ConfigWay.UI
dotnet add package Kododo.ConfigWay.PostgreSQL # optional — for persistence
Setup
builder.AddConfigWay(x =>
{
x.AddOptions<EmailOptions>();
x.AddOptions<AppOptions>();
x.AddUiEditor();
x.UsePostgreSql(builder.Configuration.GetConnectionString("DefaultConnection")!);
});
app.UseConfigWay(); // mounts UI at /config
Registering options
// Section name inferred from type — "Options" suffix stripped
x.AddOptions<EmailOptions>(); // → "Email"
// Override explicitly
x.AddOptions<EmailOptions>("Mail");
Nested types are supported and rendered as subsections in the UI.
Supported field types
ConfigWay maps C# property types to dedicated UI controls automatically:
| C# type | UI control |
|---|---|
string |
Text input |
bool |
Toggle switch |
int, long, double, decimal, … |
Numeric input |
enum |
Dropdown select |
T[], List<T>, IList<T>, … |
Collapsible array editor |
Nullable variants (bool?, int?, etc.) are handled the same way.
Use [Display(Name = "...")] on enum members to customise the labels shown in the dropdown — the underlying member name is still used as the stored value.
Collection properties render as an array editor with add and remove buttons. Simple element types (scalars) show one input per item; class element types show a full sub-form per item.
Validation
// Data annotations
builder.Services.AddOptions<EmailOptions>().ValidateDataAnnotations();
// Custom validator
builder.Services.AddSingleton<IValidateOptions<EmailOptions>, EmailOptionsValidator>();
Errors are shown in the UI and the save is blocked until resolved.
Custom store
builder.AddConfigWay(x =>
{
x.Store = new MyCustomStore(); // implements IStore
x.AddOptions<AppOptions>();
});
Security
The /config route is not protected by default:
app.UseConfigWay()
.RequireAuthorization(policy => policy.RequireRole("Admin"));
Use
IOptionsSnapshot<T>orIOptionsMonitor<T>in your code to always get the latest values after a reload.
Links
| Product | Versions 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. 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. 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
- Kododo.ConfigWay.Core (>= 1.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.7)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.7)
-
net8.0
- Kododo.ConfigWay.Core (>= 1.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.7)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.7)
-
net9.0
- Kododo.ConfigWay.Core (>= 1.0.0)
- Microsoft.Extensions.Configuration (>= 10.0.7)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.7)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Kododo.ConfigWay:
| Package | Downloads |
|---|---|
|
Kododo.ConfigWay.UI
Embedded web UI for ConfigWay. Adds a React-based editor served directly from the host application — no separate deployment required. |
|
|
Kododo.ConfigWay.PostgreSQL
PostgreSQL persistence store for ConfigWay. Retains configuration overrides across application restarts using a single auto-managed database table. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 130 | 5/7/2026 |
| 1.0.0-alpha.5 | 50 | 5/6/2026 |
| 1.0.0-alpha.4 | 50 | 4/30/2026 |
| 1.0.0-alpha.3 | 49 | 4/29/2026 |
| 1.0.0-alpha.2 | 51 | 4/29/2026 |
| 1.0.0-alpha.1 | 52 | 4/21/2026 |
| 0.0.1 | 131 | 4/11/2026 |