feat: Make recent webapps compatible with old URL configs #10326
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.
Current situation
The current config code sets
URL
to what is given byenv.URL
or a set of default values.Problem
When you are now launching the webapp with a very old configuration, then
env.URL
might not have entries likeURL.SUPPORT.HISTORY
, so our code fails at statements likeConfig.getConfig().URL.SUPPORT.HISTORY
.Solution
To make new Wire web app versions compatible with old configs, we can set
URL
to a set of defaults first and then spread the config properties of our custom (old) config into the config object. Thus it will be guaranteed that we have a config with meaningful default values.Real-World Scenario
I ran into this problem by using a webapp version (commit ID 14ee262) from 2021 with a config from 2020.