tag:github.com,2008:https://github.com/aspnet/MicrosoftConfigurationBuilders/releases Release notes from MicrosoftConfigurationBuilders 2023-03-21T20:59:57Z tag:github.com,2008:Repository/97883945/v3.0 2023-04-12T02:58:23Z v3.0 <ul> <li><g-emoji class="g-emoji" alias="warning">⚠️</g-emoji> <em><strong>Breaking Change</strong></em> - <code>Expand</code> mode is gone. It has been <a href="/aspnet/MicrosoftConfigurationBuilders/blob/v3.0/docs/KeyValueConfigBuilders.md#mode">replaced by <code>Token</code> mode</a>.</li> <li><code>Utils.MapPath</code> - This was somewhat broken in ASP.Net scenarios previously. It should now reliably go against <code>Server.MapPath()</code> in ASP.Net scenarios. It has also been updated to fall back against the directory of the config file being processed when resolving the app root in the case of a <code>Configuration</code> object being created by <code>ConfigurationManager.OpenConfiguration*</code> API's rather than being part of a fully-initialized runtime configuration stack.</li> <li>Json use has migrated to use <code>System.Text.Json</code> instead of <code>Newtonsoft.Json</code>.</li> <li>The <a href="/aspnet/MicrosoftConfigurationBuilders/blob/v3.0/docs/KeyValueConfigBuilders.md#azure-config-builders">Azure Config Builders</a> have been updated to require a newer minimum version of <code>Azure.Identity</code> by default which allows for more methods of connecting to Azure, such as <strong>User-Assigned Managed Identity</strong>, or <strong>Client Certificate-based</strong> via environment variables. Also a pair of overloads (<code>GetCredential</code> and <code>GetSecretClientOptions/GetConfigurationClientOptions</code>) have been added for users who need something more than <code>DefaultAzureCredential</code> with default client options can provide.</li> <li>Added <em>RecursionGuard</em> to help detect and prevent situations where a <code>ConfigurationBuilder</code> accessing values from a <code>ConfigurationSection</code> other than the one which it is currently processing could result in stack overflow.</li> <li><code>optional</code> attribute is obsolete =&gt; <a href="/aspnet/MicrosoftConfigurationBuilders/blob/v3.0/docs/KeyValueConfigBuilders.md#enabled"><code>enabled</code></a> attribute which provides more versatility. (The <code>optional</code> attribute is still parsed and recognized in the absence of the newer <a href="/aspnet/MicrosoftConfigurationBuilders/blob/v3.0/docs/KeyValueConfigBuilders.md#enabled"><code>enabled</code></a> attribute, but builders should migrate to use the new attribute name when possible. Installation scripts should try to handle this automatically.)</li> <li>Character Mapping - Some config builders have had an internal mapping of characters that might exist in keys in the config file but are illegal in keys at the source. As more scenarios come to light and individual prefrences are not always unanimous, V3 instead adds the <a href="/aspnet/MicrosoftConfigurationBuilders/blob/v3.0/docs/KeyValueConfigBuilders.md#charmap"><code>charMap</code></a> attribute to allow this character mapping to work with all <strong>KeyValueConfigBuilders</strong> and to be handled in an easily configurable manner.</li> <li><code>ConnectionStringsSectionHandler2</code> - A new section handler for the <code>&lt;connectionStrings&gt;</code> section has been included in the base package. This new handler will allow updating of both the 'connectionString' attribute as well as the 'providerName' attribute. It does require the builders and source of config data to be aware of this new ability though. The default section handler for the <code>&lt;connectionStrings&gt;</code> section has not been updated and remains as it was in previous versions, so apps wishing to take advantage of the new handler will have to wire it up in their config. More details can be found in the <a href="/aspnet/MicrosoftConfigurationBuilders/blob/v3.0/docs/SectionHandlers.md#ConnectionStringsSectionHandler2">SectionHandlers documentation</a>.</li> <li><code>AzureAppConfiguration</code> nuget package version is revved to match the rest of this suite of builders, rather than being 1 major version behind. (ie, <code>AzureAppConfiguration:3.0</code> now depends on <code>Base:3.0</code> rather than <code>AzureAppConfiguration:1.0</code> depending on <code>Base:2.0</code>)</li> </ul> StephenMolloy tag:github.com,2008:Repository/97883945/v2.0 2020-02-22T00:41:52Z v2.0 <ul> <li>Azure App Configuration Support - There is a <a href="#azureappconfigurationbuilder">new builder</a> for drawing values from the new Azure App Configuration service.</li> <li>ConfigBuilder Parameters from AppSettings - This has been one of the most asked for features of these config builders. With V2, it is now possible to<br> read initialization parameters for config builders from <code>appSettings</code>. Read more about it <a href="#appsettings-parameters">here</a>.</li> <li>Lazy Initialization - As part of the work to enable pulling config parameters from <code>appSettings</code>, these key/value configuration builders now support a<br> lazy initialization model. Things that must happen immediately can be left in the existing <code>Initialize(name, config)</code> method, or builders can leverage<br> the <code>LazyInitialize(name, config)</code> method for things that can happen just before retrieving values. All builders in this project have been updated to<br> be lazy whenever possible.</li> <li>Updateable Keys - Builders can now massage key names before inserting into config. The <a href="#azurekeyvaultconfigbuilder">AzureKeyVaultConfigBuilder</a> has been<br> updated to use this feature to allow embedding 'version' tags in key names instead of applying a single 'version' tag to the builder. (Note: This is<br> seperate from, and performed <em>after</em> prefix stripping.)</li> <li>Base Optional Tag - The <a href="#optional">optional</a> tag that some of the builders in this project employed in V1 has been moved into the base class and is now available<br> on all key/value config builders.</li> <li>Section Handlers - This feature allows users to develop extensions that will apply key/value config to sections other than <code>appSettings</code> and <code>connectionStrings</code><br> if desired. Read more about this feature in the <a href="#sectionhandlers">Section Handlers</a> segment below.</li> </ul> StephenMolloy tag:github.com,2008:Repository/97883945/v1.0.2 2018-07-06T22:28:56Z v1.0.2 <p>Introduce KeyPerFile builder which can be used with various container-orchestrators.<br> Fix dependency/assembly version handling.<br> Revamp package install/uninstall(/upgrade) to stash and restore builder declarations in an effort to not lose developer-configured config builder settings when upgrading packages.</p> StephenMolloy tag:github.com,2008:Repository/97883945/v1.0.1 2018-05-30T19:20:11Z v1.0.1 <p>Fix solution items to enable proper assembly signing in the build system.</p> StephenMolloy tag:github.com,2008:Repository/97883945/v1.0 2018-05-30T19:19:24Z v1.0 <p>Initial release.</p> StephenMolloy