Confix 2.3.3
dotnet tool install --global Confix --version 2.3.3
dotnet new tool-manifest
dotnet tool install --local Confix --version 2.3.3
#tool dotnet:?package=Confix&version=2.3.3
nuke :add-package Confix --version 2.3.3
Confix
Your Companion for Seamless Application Configuration
Introduction
In the modern development sphere, managing application configuration across various stages from local development to production deployment has become a daunting task. That's where Confix steps in to simplify and streamline the process for you. With Confix, say goodbye to the configuration complexities and hello to a more straightforward, secure, and efficient application setup and deployment.
What if you could just use a simple JSON file to manage your application configuration?
<p align="center"> <img src="images/intro-0.png"> <p>
Confix provides a simplistic yet powerful toolset for managing your application configurations effortlessly. With just the Confix CLI and VSCode, you can seamlessly transition from local development to production deployment, ensuring consistency and reducing configuration errors.
Why Choose Confix?
Simplicity at its Core: Running applications locally is a breeze, but deployment often brings configuration challenges. Confix eradicates these hurdles by allowing you to store configurations in a JSON file in your Git repository. Your IDE, empowered by JSON Schemas, assists in writing accurate configurations with code completion and validation.
Compose with Ease: Reusing shared code across multiple locations or services in enterprise settings is now simplified. Confix enables reusability and easy composition of configuration components, saving you time and ensuring consistency across your projects.
Flexibility for Every Project: Every configuration file in Confix is a JSON file - easy to create and consume. Regardless of your environment, if your application can load JSON files, it can utilize Confix, making your configuration management unified and straightforward.
Secure Your Secrets: While Confix effortlessly manages your application configuration, it also provides a mechanism for representing secrets within your configuration using variables. The actual secret storage is your choice, whether in Azure Key Vault, HashiCorp Vault, or as environment variables, ensuring your application's security is never compromised.
To get started with confix follow the getting started guide
Documentation
Further documentation can be accessed on our documentation page.
Code-first .NET configuration
Opt into project.validation in .confixrc to validate appsettings using ConfixSection,
AddConfixOptions, and data annotations. confix build also initializes the keys your
application cannot supply itself, so a missing setting appears as an empty slot to fill.
See the guide and
the example. Existing GraphQL/dotnet inputs remain supported.
Roadmap: .NET 11 alignment
Code-first validation is meant to extend the .NET options pattern, not to reimplement it.
Recursion already relies on the platform's own [ValidateObjectMembers]
and [ValidateEnumeratedItems]. Confix targets net10.0 today; the items below are tracked for
the move to net11.0.
| Item | Why it matters |
|---|---|
Honour [ConfigurationIgnore] |
Correctness gap. Every public property is currently treated as a bindable key, so a property the binder ignores is reported as valid configuration. Affects key checking and schema export. |
Move to IAsyncStartupValidator |
IStartupValidator is obsolete in .NET 11. |
| Support asynchronous validation | AsyncValidationAttribute, IAsyncValidatableObject, and IAsyncValidateOptions allow rules that perform I/O. Validation is synchronous today, so such rules cannot run. |
| Execute source-generated validators | An [OptionsValidator] partial class produces a reflection-free IValidateOptions<T>. Running the generated validator instead of reflecting over data annotations makes confix validate and application startup agree by construction, and is AOT friendly. |
Reconcile with BinderOptions.ErrorOnUnknownConfiguration |
The binder can already reject unknown keys per bound type. Confix aggregates every error with its full path and is on by default, but the overlap should be an explicit decision rather than an accident. |
Adopt OptionsBuilder<T>.Validate<TValidator>() |
New overload that resolves the validator from DI instead of taking a delegate. |
These remain Confix's own concern, because the platform has no equivalent:
- Coverage — every configured section must belong to an active contract, so orphaned and misspelled sections are reported. The binder only ever sees the sections it is asked to bind.
- Validating without starting the application — contracts execute in a separate process using the application's own runtime and dependencies, before deployment.
- Schema export for editor completion over the composed configuration.
Contributing
We welcome contributions from the community. Please open an issue or discussion with you idea/feature request and we will be happy to help you get started.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
Thanks to all our contributors.
| 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. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.3.3 | 0 | 9/18/2026 |
| 2.3.2 | 0 | 9/18/2026 |
| 2.3.1 | 0 | 9/18/2026 |
| 2.3.0 | 158 | 9/18/2026 |
| 2.2.0 | 761 | 9/16/2026 |
| 2.1.1 | 91 | 9/16/2026 |
| 2.1.0 | 94 | 9/16/2026 |
| 2.1.0-preview.11 | 38 | 9/16/2026 |
| 2.1.0-preview.9 | 38 | 9/16/2026 |
| 2.1.0-preview.5 | 40 | 9/15/2026 |
| 2.1.0-preview.4 | 41 | 9/15/2026 |
| 2.1.0-preview.3 | 54 | 9/11/2026 |
| 2.1.0-preview.2 | 53 | 9/11/2026 |
| 2.1.0-preview.1 | 48 | 9/11/2026 |
| 2.0.0 | 1,039 | 9/11/2026 |
| 2.0.0-preview.1 | 65 | 9/9/2026 |
| 1.10.0 | 15,242 | 8/11/2026 |
| 1.10.0-preview.1 | 69 | 8/11/2026 |
| 1.9.0 | 4,995 | 7/29/2026 |
| 1.8.0 | 19,420 | 4/30/2026 |