GO feature flag relay proxy
What does the GO Feature Flag Relay Proxy do?
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.
When should I use the GO Feature Flag Relay Proxy?
- If you want to access your feature flag using an API instead of the
thomaspoignant/go-feature-flag
SDK.
- If you are not using GOlang to build your application.
- If you want to reduce the number of accesses to your configuration flag by centralizing them.
Installation
Install using Homebrew (mac and linux)
brew install go-feature-flag-relay-proxy
Install using Scoop (windows)
scoop bucket add org https://github.com/go-feature-flag/scoop.git
scoop install go-feature-flag-relay-proxy
Getting started
Before starting your relay proxy you will need to create a minimal configuration file.
# this is a minimal config containing only where your flag file is located
retriever:
kind: http
url: https://raw.githubusercontent.com/thomaspoignant/go-feature-flag/main/cmd/relayproxy/testdata/dockerhub-example/flags.goff.yaml
After that you can launch the relay proxy by using this command:
go-feature-flag-relay-proxy --config=/path/to/your/configfile
The relay proxy will read the configuration file and retrieve all the flags.
After that you can use all the available endpoints (see Service endpoints section) and get the variations for your users.
Deployment options
A common way to run go-feature-flag relay proxy is to use the Docker Container.
An image is available on docker Hub thomaspoignant/go-feature-flag-relay-proxy
.
You can also run it as a service in your application following the Installation section.
Specifying a configuration
To configure the relay proxy you should provide a configuration file when launching the instance.
The easiest way to provide the file is to use the option --config=/path_to_your_file.yaml
.
But if you don't provide this option, the relay proxy will look in these folders if a file named goff-proxy.yaml
is available.
- current folder
/goff/
/etc/opt/goff/
To learn how to configure the relay proxy, read Configuration.
Exporting metrics and traces
To export the data you can use all the capabilities of go-feature-flag
SDK.
To configure it please refer to the type exporter
section of the configuration.
Service endpoints
The Relay Proxy defines many HTTP/HTTPS endpoints.
Most of these are proxies for GO Feature Flag services, to be used by SDKs that connect to the Relay Proxy.
Others are specific to the Relay Proxy, such as for monitoring its status.
Please refer to endpoints documentation to get the full details of what exists in our REST API.
How can I contribute?
This project is open for contribution, see the contributor's guide for some helpful tips.