feat(rollup, coordinator, bridge-history-api): Allow Environment Variables to override config.json #1489
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose or design rationale of this PR
The goal is to allow services to be configured using environmental variables (in addition to the config.json file). This facilitates contexts like Kubernetes, where you want Secrets managed independently from the non-sensitive config information (say, loaded from AWS Secrets).
Here, variables are prefixed with
SCROLL_[SERVICE]_
.Sensitive values include:
SCROLL_ROLLUP_DB_CONFIG_DSN
SCROLL_ROLLUP_L1_CONFIG_RELAYER_CONFIG_GAS_ORACLE_SENDER_PRIVATE_KEY
SCROLL_ROLLUP_L2_CONFIG_RELAYER_CONFIG_GAS_ORACLE_SENDER_PRIVATE_KEY
SCROLL_ROLLUP_L2_CONFIG_RELAYER_CONFIG_COMMIT_SENDER_PRIVATE_KEY
SCROLL_ROLLUP_L2_CONFIG_RELAYER_CONFIG_FINALIZE_SENDER_PRIVATE_KEY
SCROLL_BRIDGE_HISTORY_DB_DSN
SCROLL_BRIDGE_HISTORY_REDIS_PASSWORD
SCROLL_COORDINATOR_AUTH_SECRET
SCROLL_COORDINATOR_DB_DSN
I have not run this code in the Scroll SDK stack, and only a minimal test has been run to see if it works. This at least shows the string is being used as though it came from the JSON file.
Edited to include additional services.
Also see:
PR title
Your PR title must follow conventional commits (as we are doing squash merge for each PR), so it must start with one of the following types:
Deployment tag versioning
Has
tag
incommon/version.go
been updated or have you addedbump-version
label to this PR?Breaking change label
Does this PR have the
breaking-change
label?