Kododo.ConfigWay 1.0.0

dotnet add package Kododo.ConfigWay --version 1.0.0
                    
NuGet\Install-Package Kododo.ConfigWay -Version 1.0.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="Kododo.ConfigWay" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kododo.ConfigWay" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Kododo.ConfigWay" />
                    
Project file
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 Kododo.ConfigWay --version 1.0.0
                    
#r "nuget: Kododo.ConfigWay, 1.0.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 Kododo.ConfigWay@1.0.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=Kododo.ConfigWay&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Kododo.ConfigWay&version=1.0.0
                    
Install as a Cake Tool

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> or IOptionsMonitor<T> in your code to always get the latest values after a reload.

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.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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