[FLI-953] Add OpenFeature Remote Evaluation Protocol Support
markphelps opened this issue · comments
Problem
The OpenFeature org has announced the OpenFeature Remote Evaluation Protocol (OFREP)
https://openfeature.dev/specification/appendix-c/
As far as I understand it, the idea is to invert the way that openfeature currently works, where the providers (Flipt) will implement a set of endpoints server side to conform to openfeature specification for evaluation. This is in contrast to how openfeature currently works, where each provider (Flipt) must develop a provider library to map to the open feature specification for each language we want to support.
This should greatly simplify the amount of code that we will need to write to support OpenFeature going forward, as now we wont have to write a provider for each language that will do the mapping client side, but instead, users can use the official OpenFeature providers such as:
- https://www.npmjs.com/package/@openfeature/ofrep-web-provider
- https://github.com/open-feature/go-sdk-contrib/tree/main/providers/ofrep
- https://www.npmjs.com/package/@openfeature/ofrep-provider
Ideal Solution
Flipt adds new API endpoints that conform to the OFREP spec (https://github.com/open-feature/protocol/blob/main/service/openapi.yaml) that will perform evaluation and be consumable by the above (and future) libraries
We likely will only want to support this for HTTP as there is no equivalent GRPC spec from the OpenFeature side afaik
/cc @beeme1mr
Search
- I searched for other open and closed issues before opening this
Additional Context
No response
I'm going to link this PR here: feat: Specify caching for OFREP in server providers
If we have this support in Flipt it'll be awesome