Simple Feature Flagging
Ruby HTML Other
Clone or download
Latest commit 1491af0 Jul 17, 2018
Permalink
Failed to load latest commit information.
config Update the Ruby version to 2.3.0 Feb 8, 2016
db/migrations Audit log now logs to a database table (#91) Mar 5, 2018
lib Set the default logging level as INFO Jul 17, 2018
spec Add a Stackdriver JSON log formatter Jul 13, 2018
.dockerignore Make the docker container based on alpine linux. Oct 24, 2016
.env.sample DEPRECATION: remove use of `config/database.yml` Feb 8, 2016
.gitignore add shared examples for the role 'feature service' Sep 16, 2017
.hound.yml Fix HoundCI Sep 15, 2017
.rspec Flesh out the Feature's and FeatureService. Dec 19, 2013
.rubocop.yml Update gem dependencies Sep 21, 2017
.ruby-version Update the base ruby version to 2.4.2 Sep 18, 2017
.travis.yml Build on Ruby 2.5.1 also Jul 13, 2018
CONTRIBUTING.md Move into the `springernature` organisation. Feb 16, 2016
Dockerfile Update the base ruby version to 2.4.2 Sep 18, 2017
Dockerfile.test Bump the supported ruby version to 2.4.1 Apr 24, 2017
Gemfile Add setup/config for Sentry error reporting Jul 13, 2018
Gemfile.lock Add setup/config for Sentry error reporting Jul 13, 2018
Guardfile add shared examples for the role 'feature service' Sep 16, 2017
HISTORY Set the default logging level as INFO Jul 17, 2018
LICENSE Rename LICENSE file Jul 2, 2015
Procfile Add a foreman procfile. Jul 1, 2015
README.md readme: add scala cli link Jun 20, 2018
Rakefile Introduced basic audit logging to console (#89) Mar 2, 2018
app.json Move into the `springernature` organisation. Feb 16, 2016
config.ru Add setup/config for Sentry error reporting Jul 13, 2018
docker-compose.yml Allow CORS (cross-site javascript) requests to the v2 API Sep 27, 2017

README.md

Bandiera

Bandiera is a simple, stand-alone feature flagging service that is not tied to any existing web framework or language as all communication is via a simple REST API. It also has a simple web interface for setting up and configuring flags.

Deploy to Heroku Build status Dependencies GPLv3 licensed

Bandiera Client Libraries

Getting Started (Developers)

There are two ways you can work with/develop the Bandiera code-base - locally on your own machine (connected to your own database etc.); or within docker containers.

We prefer the docker setup as this is most likely closer to a production setup than your local machine (unless you run the same OS and setup as your production boxes).

Docker Setup

To get started, you will need to install docker and docker-compose - see the quick install instructions below for your OS.

Then run the following command:

docker-compose build
docker-compose up -d db

This runs the db in the background under docker.

docker-compose run app bundle exec rake db:migrate
docker-compose up app

This builds the docker containers for Bandiera, sets up your development database, and then starts the service.

You can now visit the web interface at http://127.0.0.1:5000 if you are on Linux, or http://192.168.59.103:5000 on Mac OS X (if this doesn't work check the IP of your docker machine with docker-machine ipdocker-machine active``).

You're all set to develop Bandiera now!

You can also run the test suite within a docker container, simply run the following command in another terminal (or tab):

docker-compose up test

This uses Guard and will run the test suite every time you update one of the files.

Mac OS X

Install Docker for Mac

Linux

Install docker and docker-compose by following the Docker instructions here.

You're now ready to go.

Windows

Install Docker for Windows

Local Setup

First, you will need the version of Ruby defined in the .ruby-version file and bundler installed. You will also need to install phantomjs as this is used by the test suite for integration tests.

After that, set up your database (MySQL or PostgreSQL) ready for Bandiera (just an empty schema for now), and setup an environment variable with a Sequel connection string i.e.

export DATABASE_URL='postgres://bandiera:bandiera@localhost/bandiera'

Now install the dependencies, setup the database and run the app server:

bundle install
bundle exec rake db:migrate
bundle exec shotgun -p 5000 -s puma

You can now visit the web interface at http://127.0.0.1:5000.

Use this command to run the test suite:

bundle exec rspec

Or if you prefer to use Guard:

bundle exec guard -i -p -l 1

Now you're ready to go.

Other Documentation

All other documentation can be found on the Bandiera Wiki

License

© 2015, Springer Nature.

Bandiera is licensed under the GNU General Public License 3.0.