80ff81557e | ||
---|---|---|
config | ||
src | ||
test | ||
.appveyor.yml | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
CONTRIBUTING.md | ||
Configuration.sln | ||
License.txt | ||
README.md | ||
nuget.config | ||
open_source_licenses.txt | ||
stylecop.json | ||
versions.props |
README.md
.NET Configuration Providers
With the introduction of ASP.NET Core, Microsoft is providing a new application configuration model for accessing configuration settings for an application.
This new model supports access to key/value configuration data from a variety of different configuration providers or sources. Out of the box, ASP.NET Core comes with support for JSON, XML and INI files, as well as environment variables and command line parameters. Additionally, Microsoft has also enabled developers to write their own custom configuration providers should those provided by Microsoft not meet your needs.
This repository contains two custom configuration providers. The Steeltoe.Extensions.Configuration.ConfigServer enables using the Spring Cloud Config Server as a provider of configuration data and the Steeltoe.Extensions.Configuration.CloudFoundry provider enables CloudFoundry environment variables to be parsed and accessed as configuration data.
.NET Runtime & Framework Support
Like the ASP.NET Core configuration providers, these providers are intended to support both .NET Full framework and .NET Core (CoreCLR/CoreFX) run-times. The providers are built and unit tested on Windows, Linux and OSX.
While the primary usage of the providers is intended to be with ASP.NET Core applications, they should also work fine with UWP, Console and ASP.NET 4.x apps. An ASP.NET 4.x sample app is available illustrating how this can be done.
Currently all of the code and samples have been tested on .NET Core 2.0, .NET 4.6.1, and on ASP.NET Core 2.0.0.
Usage
See the Steeltoe documentation for information on how to use these components in your applications.
Nuget Feeds
All new configuration provider development is done on the dev branch. More stable versions of the providers can be found on the master branch. The latest prebuilt packages from each branch can be found on one of two MyGet feeds. Released version can be found on nuget.org.
Building Pre-requisites
To build and run the unit tests:
- .NET Core SDK 2.0.3 or greater
- .NET Core Runtime 2.0.3
Building Packages & Running Tests - Windows
To build the packages on windows:
- git clone ...
- cd clone directory
- cd src/
<project>
(e.g. cd src/Steeltoe.Extensions.Configuration.CloudFoundryBase) - dotnet restore
- dotnet pack --configuration Release or Debug
The resulting artifacts can be found in the bin folder under the corresponding project. (e.g. src/Steeltoe.Extensions.Configuration.CloudFoundryBase/bin
To run the unit tests:
- git clone ...
- cd clone directory
- cd test/
<test project>
(e.g. cd test/Steeltoe.Extensions.Configuration.CloudFoundryBase.Test) - dotnet restore
- dotnet xunit -verbose
Building Packages & Running Tests - Linux/OSX
To build the packages on Linux/OSX:
- git clone ...
- cd clone directory
- cd src/
<project>
(e.g.. cd src/Steeltoe.Extensions.Configuration.CloudFoundryBase) - dotnet restore
- dotnet pack --configuration Release or Debug
The resulting artifacts can be found in the bin folder under the corresponding project. (e.g. src/Steeltoe.Extensions.Configuration.CloudFoundryBase/bin
To run the unit tests:
- git clone ...
- cd clone directory
- cd test/
<test project>
(e.g. cd test/Steeltoe.Extensions.Configuration.CloudFoundryBase.Test) - dotnet restore
- dotnet xunit -verbose -framework netcoreapp2.0
Sample Applications
See the Samples repository for examples of how to use these packages.
Known limitations
Unstructured data files
Unlike the Java version of the configuration server client, the Steeltoe client currently only supports property and yaml files; not plain text.
Client decryption
Steeltoe client only supports clear text communication with the configuration server. Client decryption is on our road map, but not currently supported. For now, you cannot send encrypted data to the client.
Server initiated reload
Currently reloads must be initiated by the client, Steeltoe has not implemented handlers to listen for server change events.