Create a Feature Service
eitjuh opened this issue · comments
Currently we are using environment variables as feature flags.
We have used this, as a simple hack, to have at least something in place to control feature flags rather than nothing.
Downsides:
- env variables are not runtime, so we need to trigger a new build upon changing them
- env variables are shown as if they are secrets (rightfully so, we just abused them).
- Not everyone has access to Netlify to modify env variables
New solution reqs:
- Would be nice to implement in the UI here: https://admin.emeris.com/
- Would be nice if it's a separate service which can run independently (meaning we could also use it for any other product)
- Would be nice to keep in mind that in the future we might want to encrypt the feature names, to make it more difficult to browse our frontend code
- Would be nice to keep 3 different environments in mind: develop/staging/production , so we can use VUE_APP_FEATURE_USE_DEV and VUE_APP_FEATURE_USE_STAGING
Specific implementation on Emeris:
- Initially we can extend the current FeatureManager with the features coming from the admin UI - to ensure the existing env vars still work.
Similar example you can spy from:
CNS Server (for updating/adding Chains)
https://github.com/allinbits/emeris-cns-server
best to add here: https://github.com/allinbits/emeris-admin-ui