Project Description
Provides a single configuration point for the several instances (development, staging, testing, production, etc.) for web sites.

ConfigurationServer
===================

Provides a single configuration point for the several instances (development, staging, testing, production, etc.) for web sites.

It is a configuration server, that acts as a repository for configuration keys, used by client applications.

This project was born due to the mess in managing configuration in different places/technologies for the the same site and its instances (development, production, branches).

The data model explained is:

Owner: (companies, clientes, etc.) that have web sites(or applications).

Bundle: Each web site has a "bundle" of configuration keys.

Set: Each web server or app has a set of instances. One is production or live server, and some other are testing, staging, development, some branch, etc.

Keys: Are the handles for configuration information. I.E. sendCopyOfEmail (true or false), sendCopyTo (someone's email addres), etc.

Values for keys in sets: Is the collection of concrete values for each key in a set (only one value). If there is one default set, that one should be used if no values for other sets are specified.

The server allows a registered user to create owners, add bundles for them (ie. com.thecompany.www and com.theCompany.test, and so on. Naming convention is not enforced).

On each bundle you keys and sets can be created and values added to the matrix. (x-> sets, y-> keys, x,y-> values).

Each bundle can have a different user for configuration reading.

On the client side, there is a library (configurationReader) that can be added to any project that simplifies the keys reading. Main configuration can be specified like :


<serverSettingReader>
<Settings Server="https://yourServer.com/"
BundleName="bundle name"
Set="development"
User="user"
Password="password"
cacheDuration="15">
</Settings>
</serverSettingReader>

Technical stuff:
Language : c#, .Net framework 4.5 MVC 5.0, entity framework code first, and Migrations.
Development, Visual studio express for web version 13.0
database, sql server express 2014.

The server should be hosted in IIS (but OWIN shoul work). It is CRITICAL to use SSL for the channel.

Last edited Sep 21, 2014 at 3:29 PM by jaimeespinosa60, version 2