Skip to content

v3.0

Latest
Compare
Choose a tag to compare
@StephenMolloy StephenMolloy released this 12 Apr 02:58
· 23 commits to main since this release
ea50da2
  • ⚠️ Breaking Change - Expand mode is gone. It has been replaced by Token mode.
  • Utils.MapPath - This was somewhat broken in ASP.Net scenarios previously. It should now reliably go against Server.MapPath() 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 Configuration object being created by ConfigurationManager.OpenConfiguration* API's rather than being part of a fully-initialized runtime configuration stack.
  • Json use has migrated to use System.Text.Json instead of Newtonsoft.Json.
  • The Azure Config Builders have been updated to require a newer minimum version of Azure.Identity by default which allows for more methods of connecting to Azure, such as User-Assigned Managed Identity, or Client Certificate-based via environment variables. Also a pair of overloads (GetCredential and GetSecretClientOptions/GetConfigurationClientOptions) have been added for users who need something more than DefaultAzureCredential with default client options can provide.
  • Added RecursionGuard to help detect and prevent situations where a ConfigurationBuilder accessing values from a ConfigurationSection other than the one which it is currently processing could result in stack overflow.
  • optional attribute is obsolete => enabled attribute which provides more versatility. (The optional attribute is still parsed and recognized in the absence of the newer enabled attribute, but builders should migrate to use the new attribute name when possible. Installation scripts should try to handle this automatically.)
  • 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 charMap attribute to allow this character mapping to work with all KeyValueConfigBuilders and to be handled in an easily configurable manner.
  • ConnectionStringsSectionHandler2 - A new section handler for the <connectionStrings> 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 <connectionStrings> 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 SectionHandlers documentation.
  • AzureAppConfiguration nuget package version is revved to match the rest of this suite of builders, rather than being 1 major version behind. (ie, AzureAppConfiguration:3.0 now depends on Base:3.0 rather than AzureAppConfiguration:1.0 depending on Base:2.0)