element-hq / element-hq/element-web
Support overriding parts of config.json via .well-known
- Dominant language
- TypeScript
- Stars
- 13.5k
- Forks
- 2.8k
- PR merge metrics
- PR metrics pending
Description
This is a thing that I've considered proposing for a while given there's various minor settings that could be homeserver-specific and need to support desktop users. Now that we're encouraging the desktop app more, we should probably have a way for homeservers to say "my theme is CoolCompany Blue" instead of light, for example.
Some ideas for things that could be covered by this:
* `settingDefaults`
* theme info
* permalinks (https://github.com/vector-im/riot-web/issues/13676)
* other aesthetic things
* piwik?
Stuff like the homeserver/identity server wouldn't matter at this point in the cycle as it's something that should be checked much earlier in the app.
The shape of this could possibly just be an `im.vector.web.settings` object which just gets lumped on top of the in-memory config.
Outstanding questions:
1. Should this override or underride the in-memory amalgamated config?
2. How often should we check the config? Do we only check on startup and never again?
a. If we do check regularly, what do we do if a setting changes? eg: if the theme changes, it might be jarring to have the theme suddenly change without warning. Maybe a prompt to "update", getting the user to reload the app?
3. How does this fit into the setting levels, if at all? We could avoid the over vs underride question if we just make it a level.
4. Do we even want this?
*assigned to myself because I'm interested in making a proof of concept regardless of question 4.*
Contributor guide
Assessment
This issue has not been assessed yet.