CatConsult.AppConfigConfigurationProvider 2.0.0-beta

This is a prerelease version of CatConsult.AppConfigConfigurationProvider.
There is a newer version of this package available.
See the version list below for details.
dotnet add package CatConsult.AppConfigConfigurationProvider --version 2.0.0-beta
NuGet\Install-Package CatConsult.AppConfigConfigurationProvider -Version 2.0.0-beta
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="CatConsult.AppConfigConfigurationProvider" Version="2.0.0-beta" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CatConsult.AppConfigConfigurationProvider --version 2.0.0-beta
#r "nuget: CatConsult.AppConfigConfigurationProvider, 2.0.0-beta"
#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.
// Install CatConsult.AppConfigConfigurationProvider as a Cake Addin
#addin nuget:?package=CatConsult.AppConfigConfigurationProvider&version=2.0.0-beta&prerelease

// Install CatConsult.AppConfigConfigurationProvider as a Cake Tool
#tool nuget:?package=CatConsult.AppConfigConfigurationProvider&version=2.0.0-beta&prerelease

AWS AppConfig Configuration Provider for .NET

An opinionated .NET Configuration Provider for AWS AppConfig.

Usage

First, download the provider from NuGet:

dotnet add package CatConsult.AppConfigConfigurationProvider

Then add the provider using the AddAppConfig extension method:

builder.Configuration.AddAppConfig();

By default, the provider will look for a configuration section named AppConfig. This can be overriden by specifying a different section name:

builder.Configuration.AddAppConfig("MyCustomName");

Configuration

The provider requires some minimal configuration in order for it to know which AppConfig profiles to load:

{
  "AppConfig": {
    "Profiles": [
      "abc1234:def5678:ghi9123",
      "q2w3e25:po92j45:bt9s090:300"
    ]
  }
}

As you can see in the example above, the AppConfig metadata are encoded as a formatted string:

ApplicationId:EnvironmentId:ProfileId[:ReloadAfter]

ReloadAfter is an optional 4th parameter that configures the reload/refresh period. It is an integer that represents time in seconds. If not specified, it defaults to the provider's default setting, which is 90 seconds.

The default ReloadAfter setting can be overridden as well:

{
  "AppConfig": {
    "Defaults": {
      "ReloadAfter": 120
    }
  }
}

Sample

A sample ASP.NET Web Application is available in the samples/AppConfigTesting folder.

In your own AWS environment, copy the contents of yamltest.yml into a new AppConfig freeform configuration profile.

Then, use dotnet user-secrets to specify the AppConfig profile:

dotnet user-secrets set "AppConfig:Profiles:0" "abc1234:def5678:ghi9123"

Finally, ensure that you have the correct AWS credentials/profile configured in your environment, and run the sample:

dotnet run

Experiment by changing the configuration on AppConfig and deploying. After a while, you should see the application reload the configuration automatically when you refresh the home page.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.5.1 2,365 1/10/2024
2.5.0 83 1/9/2024
2.0.0 115 1/2/2024
2.0.0-beta 112 12/8/2023
2.0.0-alpha 97 12/7/2023
1.1.0 2,647 7/7/2023
1.0.0 4,119 6/25/2023