Many thanks to agriesser for the explanation. I can now better understand the reasoning behind introducing this new feature.
However, I still think this feature does cause some trouble.
First, not all Mattermost-server administrators have public IP and high public bandwidth. Many Mattermost server administrators are self-hosters. Typically, Mattermost-server is deployed within an institution. For users inside the institution, they can access through the internal ip. For the users outside the institution, they need to use the NAT traversal technology to access through the external ip. Internal ip access can provide high quality services with high bandwidth and low latency. External ip access ensures high accessibility of the service. Without extra work, forcing every client program to use Mattermost-server’s unique SiteURL can cause a lot of trouble. Using only internal urls makes it completely inaccessible to external users. If only external urls are used, the quality of service for internal users will be severely degraded.
Second, to implement the same flexible service scheme as before requires a significant amount of additional work for both administrators and users. Administrators need to reconfigure domain names and DNS services for different user groups. Users will also need to add different DNS configurations for their devices with the help of their administrator. The configuration cost of all this extra work can be extremely high.
Therefore, I would still recommend implementing this new feature on the server side instead of the desktop/mobile app side. I think one possible solution is to let the server decide which SiteURLs the client can access its service through. The new feature is great for alerting administrators and users about how to securely setup Mattermost, but I hope it puts the choice in the hands of the administrators of Mattermost services, rather than adding restrictions directly.
In addition, my other suggestion is that it might make more sense to implement such new administration-related features on the server side. When implemented on the client side, there are several problems. First, changes on the user side are not easily notified to administrators, so administrators are unaware of the problems and are harder to diagnose. Second, the user’s own diagnostic ability is generally weaker and they are at a loss in the face of service interruption. This can lead to user complaints and distrust of Mattermost. Third, the devices and systems of users are diverse, and the workload and difficulty in diagnosis are greater.
All in all, after reading your explanation, I believe this new feature is quite good but misplaced. I hope you will think about my suggestions. Of course, my suggestions are based on the perspective of part of users, and may be not to the point. If there is somewhere unreasonable, you are always welcome to criticize.
Thank you sincerely!