Skip to content
This repository has been archived by the owner on Jan 6, 2023. It is now read-only.

thomaspoignant/go-feature-flag-relay-proxy

Repository files navigation

⚠️ ⚠️ ⚠️ This repo is not used anymore. The relay proxy has been moved into the main repository for GO Feature Flag in v1.0.0 and is now available directly in the main repository thomaspoignant/go-feature-flag ⚠️ ⚠️ ⚠️

GO feature flag relay proxy

go-feature-flag logo

Build Status Coverage Status Sonarcloud Status Release version GoDoc Go version License Join us on slack

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 tap thomaspoignant/homebrew-tap
brew install go-feature-flag-relay-proxy

Install using Scoop (windows)

scoop bucket add org https://github.com/thomaspoignant/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/examples/file/flags.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.