Cocoar.Configuration.Secrets.Cli 5.0.0

dotnet tool install --global Cocoar.Configuration.Secrets.Cli --version 5.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Cocoar.Configuration.Secrets.Cli --version 5.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Cocoar.Configuration.Secrets.Cli&version=5.0.0
                    
nuke :add-package Cocoar.Configuration.Secrets.Cli --version 5.0.0
                    

Reactive, strongly-typed configuration layering for .NET

Cocoar.Configuration

License: Apache-2.0 NuGet Downloads

Zero ceremony configuration that updates itself. Define a class, add a rule, inject it — no IOptions<T> wrappers, no Configure<T>() calls.

Install

dotnet add package Cocoar.Configuration              # Core library (console apps)
dotnet add package Cocoar.Configuration.DI            # + Microsoft.Extensions.DI
dotnet add package Cocoar.Configuration.AspNetCore     # + health endpoints, feature flags

You only need one — each includes everything above it. Requires .NET 8+.

Quick Start

var builder = WebApplication.CreateBuilder(args);

builder.AddCocoarConfiguration(c => c
    .UseConfiguration(rule => [
        rule.For<AppSettings>().FromFile("appsettings.json"),
        rule.For<AppSettings>().FromEnvironment("APP_"),
    ]));

var app = builder.Build();

// Inject directly — no wrapper
app.MapGet("/settings", (AppSettings settings) => new
{
    settings.AppName,
    settings.MaxRetries
});

app.Run();

Key Features

  • Zero Ceremony — Define a class, add a rule, inject it. Just your POCO.
  • Reactive by DefaultIReactiveConfig<T> updates automatically when sources change.
  • Atomic UpdatesIReactiveConfig<(T1, T2)> guarantees consistent snapshots across types.
  • Explicit Layering — Rules execute in order, last write wins. File, environment, CLI, HTTP.
  • Memory-Safe SecretsSecret<T> with automatic zeroization and X.509 hybrid encryption.
  • Feature Flags & Entitlements — Strongly-typed, source-generated, with expiry health monitoring.
  • Health Monitoring — Per-rule status tracking, OpenTelemetry metrics, ASP.NET Core health checks.
  • Compile-Time Validation — Roslyn analyzers catch configuration errors in your IDE.
  • First-Class TestingCocoarTestConfiguration with AsyncLocal<T> isolation.

Providers

Provider Fluent API Package
File (JSON) .FromFile("path") Core
Environment Variables .FromEnvironment("PREFIX_") Core
Command Line .FromCommandLine("--prefix") Core
Static / Observable .FromStaticJson() / .FromObservable() Core
HTTP .FromHttp(url) Http
Microsoft IConfiguration .FromIConfiguration(config) MicrosoftAdapter

Examples

Explore real-world scenarios in the examples directory.

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

License

Apache-2.0 — see NOTICE for details.

Product Compatible and additional computed target framework versions.
.NET 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 was computed.  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.

This package has no dependencies.

Version Downloads Last Updated
5.0.0 98 3/24/2026
5.0.0-beta.8 34 3/24/2026
5.0.0-beta.2 46 3/19/2026
4.3.0-flags.4 53 3/10/2026
4.3.0-beta.3 38 3/19/2026
4.2.1 97 2/3/2026
4.2.0 94 2/3/2026
4.2.0-master-backplane-arch... 49 2/3/2026
4.2.0-master-backplane-arch... 49 2/2/2026
4.2.0-master-backplane-arch... 53 2/2/2026
4.2.0-master-backplane-arch... 46 2/1/2026
4.2.0-beta.5 48 1/30/2026
4.2.0-beta.4 48 1/30/2026
4.2.0-beta.3 45 1/30/2026
4.2.0-beta.2 54 1/30/2026
4.2.0-beta.1 52 1/30/2026
4.1.0 107 1/11/2026
4.0.0 112 1/8/2026
3.4.0-secrets.36 209 11/16/2025
3.4.0-beta.6 260 11/16/2025
Loading failed