Giter Site home page Giter Site logo

tallan / quickstartconfig Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 47 KB

This is an example of a project that builds an application configuration object from various sources

Home Page: http://www.tallan.com

C# 100.00%
quickstart configuration cache azure-key-vault azure-app-configuration azure-redis-cache serilog

quickstartconfig's Introduction

QuickStart - Config

Overview

This repo contains code that will help you getting started with creating an application config object that pulls from various sources.

This provides examples on how to connect and configure various services. See Configuration Details below.

How to Use This Repo

This repository is designed to be as modular as possible so that developers can opt to take as much or as little as they want. In addition, it is also meant to explain how and why certain code choices were made.

Configuration Details

QuickStart Config Value Locations

Part of the beauty of this solution is that you can store configuration values in a number of different places. However, for the purposes of the quick start these are where the default values are located. Feel free to change them as you see fit.

Secrets.json

  • AppId
  • TenantId
  • AppSecret
  • AzureAppConfigConnectionString
  • AzureKeyVaultUri
  • AzureConfigUri

Appsettings.json

  • CacheType
  • VerboseLogging
  • LogEntityFrameworkCalls
  • EnableSensitiveDataLogging

Azure Config

  • CacheType
  • RedisEndpoint
  • RedisServiceName
  • LogEntityFrameworkCalls
  • EnableSensitiveDataLogging

Azure Key Vault

  • ClientId
  • Secret
  • TenantId
  • RedisClientId
  • RedisSecret
  • ConnectionString

Assemblies Used

A complete breakdown of which assemblies were used for which functionality lives in the assemblies document.

Config Folder

The config folder holds the main and sub objects that make up our main configuration object. The purpose of having this is to make it so all of our configurations, no matter what the source, all get loaded into this one object.

The AppConfig object is hierarchical, it has beneath it several child objects that each represent various verticals of configuration. For example, There is a CacheConfig object that holds all of the paramters for our cache, as well as a Database Config object that has details about any databases we are using.

ARM Templates

In order to make things as easy as possible on developers trying out this technology, I have created a series of ARM templates that will allow you to deploy these instances as easily as possible.

Key Vault

Deploy To Azure Visualize

FYI, in the Key Vault ARM template it will ask you for ObjectId. This can be the ID of your AD account which can easily be obtained with the following Powershell Code:

Connect-AzAccount

Get-AzADUser -Mail [your email address]

Contributing

This project welcomes contributions and suggestions.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ.

Issues

If there are any issues or improvements you would like to see in the code please submit an issue through the GitHub issue tracking mechinism.

quickstartconfig's People

Contributors

mckruz avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.