rover
rover copied to clipboard
Support specifying rover CLI arguments through environment variables
Description
It would be helpful to be able to control cross cutting runtime behaviors in rover
without deploying code changes to the commands being invoked. A primary example of this is to control behavior such as client timeouts, subgraph check parameters (query percentage thresholds, query count thresholds, and validation period) among others.
A helpful way to be able to control these would be though the use of environment variables that conform to CLI options. For example:
CLI param | Environment variable | Example |
---|---|---|
--client-timeout |
ROVER_CLIENT_TIMEOUT |
ROVER_CLIENT_TIMEOUT=60 |
--validation-period |
ROVER_VALIDATION_PERIOD |
ROVER_VALIDATION_PERIOD=15 |
--query-percentage-threshold |
ROVER_QUERY_PERCENTAGE_THRESHOLD |
ROVER_QUERY_PERCENTAGE_THRESHOLD=20 |
--query-count-threshold |
ROVER_COUNT_THRESHOLD |
ROVER_COUNT_THRESHOLD=200 |
This would make it easier to ship configuration without forcing older versions of software to upgrade to more modern common tooling. Also, we'd be able to avoid releasing common tooling updates for config only changes such as client timeouts.