Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Option for homeservers to set a default integration manager #4913
Full disclosure: I'm obviously biased for wanting this due to my work on Dimension. Please keep that in mind while considering this proposal.
If individuals want to change their integrations manager then they must deploy their own instance of Riot, or compile it themselves if they are electron users. Instead, power users should be able to set the rest api url and ui url in a synced setting. This does have the downside of people having to enter 2 more urls (see: login page), but ideally it would be put under the "advanced" section to avoid people accidentally changing them. The user should also have the option to disable the integrations manager entirely, or reset the settings to the default (inherit from config.json).
A question would be should the config.json expose flags for overriding the user's preference? This would probably only be useful in corporate environments where security is a concern (force disable or force use corporate deployment).
I'm open to writing the PR for this, but would like feedback from the team/community on the approach. The 2 fields is an option, but it isn't as smooth as it could be. Ideally users would be able to select from a dropdown which manager they'd like to use, but this leaves the question of how do new integration managers get on that list (or in the case of Dimension, self-deployed instances). It could be hardcoded into the source, or provided through a config.json list, but that leaves the question of "should manager X be used on client Y when Y doesn't explicitly list support for manager X?" (I would think yes, and Riot should show the selected manager in the dropdown anyways, even if it isn't supported on the current client).
Hm, technically users don't need to compile it themselves - they can just change the config.json whether it's for riot-desktop or riot-web. But agreed we should support alternative integration management UIs. We haven't really thought this through yet as scalar was a fairly rushed custom job specifically for Riot, but possible directions include:
@rxl881 is leading the integs work and is on holiday this week, but I'll sync with him on his return :)
There's the challenge of not being able to edit the config.json when you're using someone else's service though, like riot.im/app. Ideally people would be able to pick independent of their provider, although I imagine some people (corporate) are going to want control over preventing that.
I like the idea of a app-level widget that would be a mix of both directions. Riot should almost certainly provide a default (Scalar) for users not wanting to fuss with figuring out what the widget does, but also allow for the user to change at a whim. This concept could be taken further to other parts of the UI, if desired. For example, you could 'install' an app-level widget that replaces the room directory or call handling (jitsi, freeswitch, custom, etc).
In the meantime though, I'll eagerly await for Richard's return :)