🚨 Attention: The GO Feature Flag has now transitioned to its own organization. We recommend updating your configurations to use gofeatureflag/go-feature-flag
. We will continue to provide support for the original organization for a certain period of time.
The GO Feature Flag Relay Proxy retrieve your feature flag configuration file using thomaspoignant/go-feature-flag
SDK and expose APIs to get your flags variations.
It lets a number of servers to connect to a single configuration file.
This can be useful if you want to use the same feature flags configuration file for frontend and backend, this allows to be language agnostic by using standard protocol.
For more information about GO Feature Flag Relay Proxy, please visit github.com/thomaspoignant/go-feature-flag.
-
This default distribution is the official distribution for
go-feature-flag
. -
Where to file issues: https://github.com/thomaspoignant/go-feature-flag/issues/.
-
Source are available in
go-feature-flag
repo. -
All versions are available in the tags.
-
Release notes are available here.
go-feature-flag
requires a configuration file to be used.
By default, we expect to have this configuration file in the /goff
directory of the container and the file should be named goff-proxy.yaml
.
The default port used for the service is 1031
.
docker run \
-v $(pwd)/goff-proxy.yaml:/goff/goff-proxy.yaml \
thomaspoignant/go-feature-flag:latest
This is a small example on how to run go-feature-flag
locally.
# Download an example of a basic configuration file.
curl https://raw.githubusercontent.com/thomaspoignant/go-feature-flag/main/cmd/relayproxy/testdata/config/valid-file.yaml -o goff-proxy.yaml
# Launch the container
docker run \
-p 1031:1031 \
-v $(pwd)/goff-proxy.yaml:/goff/goff-proxy.yaml \
thomaspoignant/go-feature-flag:latest
# Call the API
curl -X 'POST' \
'http://localhost:1031/v1/feature/flag-only-for-admin/eval' -H 'accept: application/json' -H 'Content-Type: application/json' \
-d '{ "user": { "key": "[email protected]", "anonymous": true, "custom": { "admin": true, "email": "[email protected]" }}, "defaultValue": "false"}'
View license information for the software contained in this image.
This project is open for contribution, see the contributor's guide for some helpful tips.