-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Flags for different environments like Dev, UAT, Prod #1136
Comments
Hi @shivalkarrahul thanks for the issue! Definitely an interesting one. For the issue on having multiple code versions in different deployment environments we can either:
The second issue is related to the config.json files. For gitflow approach, every deployment would have its own config.json, so it is already solved. For the trunk-based approach which is the standard in data.all we would need to introduce multiple config.json files as you pointed out in point4. Last thing, I am not sure I understand your point number 5, could you give us some more details? Bests |
) ### Feature or Bugfix Feature ### Detail Currently data.all reads the config that is commited to the root directory of the repo. In this PR we allow customers to customize the params as defined in the config.json (or completely overwrite it) using an SSM parameter (`/datall/{ENV}/configjson`). The new workflow will be as follows 1. Read the `config.json` (as always) 2. Read the configjson SSM param and merge it with the contents of config.json (essentially overwriting the specified params) This is useful for the following cases... * Running a CI/CD pipeline directly from GitHub repo and want to customize the behaviour * Running multiple stages/envs (dev, uat, prod etc) and want to customize them separately ### Relates - #1230 - #1136 ### Security Please answer the questions below briefly where applicable, or write `N/A`. Based on [OWASP 10](https://owasp.org/Top10/en/). - Does this PR introduce or modify any input fields or queries - this includes fetching data from storage outside the application (e.g. a database, an S3 bucket)? - Is the input sanitized? - What precautions are you taking before deserializing the data you consume? - Is injection prevented by parametrizing queries? - Have you ensured no `eval` or similar functions are used? - Does this PR introduce any functionality or component that requires authorization? - How have you ensured it respects the existing AuthN/AuthZ mechanisms? - Are you logging failed auth attempts? - Are you using or adding any cryptographic features? - Do you use a standard proven implementations? - Are the used keys controlled by the customer? Where are they stored? - Are you introducing any new policies/roles/users? - Have you used the least-privilege principle? How? By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
@shivalkarrahul currently our config system is a bit convoluted. We have 2 config files In the meantime in #1318 I introduced a way to override config flags using an SSM parameter (i.e |
Thanks @petrkalos. Based on the above, we will be moving this to v2.7 scope. |
Hello,
We have a requirement as follows.
We have 3 different Environments, viz Dev, Staging and Prod.
We should be able to have Dev, Staging & Prod Environment on different versions of Data.all (Dev on 2.3.0, Staging on 2.2.0, Prod on 2.1.0)
There should be a way to Enable or Disable features based on Environments.
e.g. Dev can have modules.dashboards.active enabled, and Staging/Prod can have it disabled. (We believe different config.json would come into picture here)
e.g Dev environment would be having few functionalities which are under development and not present in staging or Prod, Staging Environment would be having few functionalities getting tested but will not be moved to Prod until UAT is done
Do we need to have config-dev.json, config-staging.json, config-prod.json files to enable to disable features?
How do we enable or disable UI for the features?
Any guidance would be appreciated.
Thanx in advance.
The text was updated successfully, but these errors were encountered: