/flagpole

Primary LanguageRustMIT LicenseMIT

flagpole

Flagpole is a minimal and simple service for hosting feature flagging configurations.

Project Priorities

Simple

The API - and code - should be intuitive and unsurprising. Less is more is a guiding principle.

Resource Efficient

Running the service should require minimal resources, both in terms of memory and CPU usage.

Secure & Reliable

This project should be built in such way that it has as few attack vectors as possible. Reducing complexity is a corner stone for achieving this.

Performant

Performance is important and desirable, but not as important as the above priorities.

Building & Installing

If you have cargo installed, run cargo install --path . in the root of this repository.

There is also a Dockefile available, if you prefer to run this with Docker.

Usage

Launch the application simply by typing flagpole in a terminal.

See flagpole --help for command line flags, such as configuring API key or port number.

Authorization

Authorization of requests can optionally be enabled, in which case all requests that alters state (PUT and DELETE) requires authorization, while other requests (HEAD and GET) does not require authorization. Authorization can be omitted if this service runs in a context where it is not needed.

API

See API directory for documentation about the different API requests and examples.

Optional Features

Feature Enabled by Default Comment
logging true Add support for logging
redis false Persist feature flags to Redis