Skip to content
/ Recon Public

HA LDAP based key/value solution for projects configuration storing with multi master replication support

License

Notifications You must be signed in to change notification settings

Mnwa/Recon

Repository files navigation

Recon

Github all releases Build Status Go Report Card GitHub license Repository Size

Recon is the simple solution for storing configs of you application. There are no specified instruments, no specified data protocols. For the full power of Recon you only need curl.

Examples

Put the data to project myLittleProduction with default project type

curl -X PUT -d '<<<EOF
TEST_ONE=1
TEST_TWO=2
TEST_THREE=3
' http://localhost:8080/projects/myLittleProduction/default/env

###

TEST_ONE=1
TEST_TWO=2
TEST_THREE=3

Get the data from myLittleProduction with default project type

curl http://localhost:8080/projects/myLittleProduction/default/env

###

TEST_ONE=1
TEST_TWO=2
TEST_THREE=3

Data storing types

Recon DB support two data storing types:

  • default snake case key value store (data_key=data)
  • env environment like data storing (DATA_KEY=data)

Structure of projects

Every project on Recon DB has a default type. Also you can add any types to any projects for differentiation of configs and when you get custom project type, it will be merged with the default project type.

As an example lets imagine a simple application, which is stored on two data centres 1 and 2. This application has a AWS secret key, that is same for all data centres and the application has a Database url, that is different for 1 and 2 data centres. In order not to duplicate configs of AWS secret key we can add it to default project type.

curl -X POST -d 'AWS_KEY=123' http://localhost:8080/projects/myApp/default/env

And after that add DATABASE URL to the different project types

curl -X POST -d 'DATABASE_URL=localhost1' http://localhost:8080/projects/myApp/usa/env
curl -X POST -d 'DATABASE_URL=localhost2' http://localhost:8080/projects/myApp/europe/env

Now you can get a full config for every place

curl http://localhost:8080/projects/myApp/usa/env

###

AWS_KEY=123
DATABASE_URL=localhost1
curl http://localhost:8080/projects/myApp/europe/env

###

AWS_KEY=123
DATABASE_URL=localhost2

Documentation

Recon requirements

Thanks for community! 🎉 🎉 🎉 🎉