README
OpenFlag [Under Development]
Introduction
OpenFlag is an open-source feature flagging, A/B testing, and dynamic configuration service. It delivers the right experience to the right entity and monitors the impact. It has clear Swagger REST APIs for flag management and evaluation.
Features
- Cloud-native and Kubernetes compatible.
- High performance and easily scalable.
- Support gRPC for flag evaluation.
- Clear Swagger REST APIs for flag management and flag evaluation.
- Rule engine and user segmentation using algebra expression as simple as possible for defining complicated flags.
- Showing the history of a flag.
- Evaluation logging for your data pipeline.
- Contexts saving and reuse stored contexts.
- Support Feature Flagging, Experimentation A/B testing, and Dynamic Configuration.
Documentation
You can find documentation in here.
Quick demo
Try it with Docker.
# Download docker-compose file.
wget https://raw.githubusercontent.com/OpenFlag/OpenFlag/master/deployments/docker/openflag/docker-compose.yml
# Start using docker-compose.
docker-compose up -d
# Open the OpenFlag UI and create your feature flag, experiment, or configuration.
open 127.0.0.1:7677
# Sending a request for evaluation in the UI panel or using curl.
curl --location --request POST 'http://127.0.0.1:7677/api/v1/evaluation' \
--header 'Content-Type: application/json' \
--data-raw '{
"entities": [
{
"entity_id": 1234567,
"entity_type": "type1",
"entity_context": {
"state": "CA"
}
}
],
"flags": ["flag1", "flag2"],
"save_contexts": true,
"use_stored_contexts": false
}'
References
https://github.com/golang-standards/project-layout
TODO
- Browser UI.
- Documentation.
- Custom constraints using pluggable languages.
Directories
Path | Synopsis |
---|---|
cmd
|
|
pkg
|
|
internal
|
|