• This repository has been archived on 17/May/2019
  • Stars
    star
    101
  • Rank 327,519 (Top 7 %)
  • Language
    C#
  • License
    Apache License 2.0
  • Created over 8 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

.NET Configuration providers for Spring Cloud Config Server & CloudFoundry

.NET Configuration Providers

NOTICE: This repository has been relocated as a sub-directory under the Steeltoe repository. All issues and future development will be done under that repository.

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.

Windows Master (Stable): AppVeyor Master

Windows Dev (Less Stable): AppVeyor Dev

Linux/OS X Master (Stable): Travis Master

Linux/OS X Dev (Less Stable): Travis Dev

.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:

  1. .NET Core SDK 2.0.3 or greater
  2. .NET Core Runtime 2.0.3

Building Packages & Running Tests - Windows

To build the packages on windows:

  1. git clone ...
  2. cd clone directory
  3. cd src/<project> (e.g. cd src/Steeltoe.Extensions.Configuration.CloudFoundryBase)
  4. dotnet restore
  5. 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:

  1. git clone ...
  2. cd clone directory
  3. cd test/<test project> (e.g. cd test/Steeltoe.Extensions.Configuration.CloudFoundryBase.Test)
  4. dotnet restore
  5. dotnet xunit -verbose

Building Packages & Running Tests - Linux/OSX

To build the packages on Linux/OSX:

  1. git clone ...
  2. cd clone directory
  3. cd src/<project> (e.g.. cd src/Steeltoe.Extensions.Configuration.CloudFoundryBase)
  4. dotnet restore
  5. 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:

  1. git clone ...
  2. cd clone directory
  3. cd test/<test project> (e.g. cd test/Steeltoe.Extensions.Configuration.CloudFoundryBase.Test)
  4. dotnet restore
  5. 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.

More Repositories

1

Steeltoe

Steeltoe .NET Core Components: CircuitBreaker, Configuration, Connectors, Discovery, Logging, Management, and Security
C#
886
star
2

Samples

Steeltoe samples and reference application collection
C#
634
star
3

Discovery

.NET Clients for Service Discovery and Registration
C#
180
star
4

CircuitBreaker

.NET Circuit Breaker Pattern Frameworks
C#
122
star
5

Home

This is the old home for the Steeltoe project. Please refer to the SteeltoeOSS/steeltoe repository moving forward.
49
star
6

Initializr

Steeltoe Initializr - .NET Microservices Templates
C#
34
star
7

Management

Management Endpoints used to allow insight into your applications
C#
31
star
8

Connectors

Connectors simplify connecting to standalone and CloudFoundry services
C#
28
star
9

Security

ASP.NET Security Providers for CloudFoundry
C#
27
star
10

Tutorials

20
star
11

Common

Interfaces and components used across other Steeltoe packages
C#
17
star
12

Logging

Logging Extensions
C#
16
star
13

Dockerfiles

Dockerfile
16
star
14

Tooling

Steeltoe developer tool collection
C#
12
star
15

configserver

Spring Cloud Config Server for Configuration Samples
Java
11
star
16

Documentation

The documentation, api browser, and getting started guides used for the Steeltoe's website.
JavaScript
8
star
17

steeltoe-site

Content for steeltoe.io
CSS
8
star
18

MainSite

This repository is used for building the steeltoe.io website, along with the Getting Started guides. The docs portion is in the Documentation repository.
HTML
8
star
19

InitializrWeb

Reference implementation of a Steeltoe Initializr UI project generator
Java
5
star
20

musicStore-config

MusicStore Application Config Server Repo
4
star
21

InitializrService

Reference implementation of a Steeltoe Initializr Server project generator
C#
4
star
22

Schema

Steeltoe appsettings.config schema generator for modern IDEs (Visual Studio 2019, Visual Studio Code, and Rider)
C#
3
star
23

config-repo

Configuration files for Samples
2
star
24

.github

Global repository config for all repos
2
star
25

steeltoe-site-ci

Concourse pipeline for steeltoe-site
2
star
26

steeltoe-ci

Continuous Integration resources for Steeltoe
PowerShell
2
star
27

eShopOnContainers-config

Configuration repo for eShopOnContainers
1
star
28

NetCoreToolTemplates

C#
1
star
29

workshop-config-repo

Workshop Config Server Repo
1
star
30

steeltoe-site-tools

Docker image for steeltoe-site Concourse pipeline
1
star