README

OpenFlag [Under Development]

Build Status Code Cov MIT Licence Go Report Pkg Go Dev Docker Pulls

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.
Expand ▾ Collapse ▴