Flagpole is a minimal and simple service for hosting feature flagging configurations.
The API - and code - should be intuitive and unsurprising. Less is more is a guiding principle.
Running the service should require minimal resources, both in terms of memory and CPU usage.
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.
Performance is important and desirable, but not as important as the above priorities.
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.
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 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.
See API directory for documentation about the different API requests and examples.
Feature | Enabled by Default | Comment |
---|---|---|
logging |
true | Add support for logging |
redis |
false | Persist feature flags to Redis |