nextcloud / spreed

πŸ—¨οΈ Nextcloud Talk – chat, video & audio calls for Nextcloud
https://nextcloud.com/talk
GNU Affero General Public License v3.0
1.64k stars 438 forks source link

Inconsistency of the Initial State and Capabilities #8715

Open ShGKme opened 1 year ago

ShGKme commented 1 year ago

How to use GitHub


Currently on the Talk frontend there is two sources of configs and features.

While features are mostly relevant for clients only, config is widely used by Talk Web as well as other clients.

Some configs are available only from one source and not from another one. Initial State (Server Render) Capabilities API (config) Useful for Notes
call_enabled call['enabled'] πŸ“± Any client πŸ—ƒοΈ Server config
❌ call['breakout-rooms'] πŸ“± Any client πŸ—ƒοΈ Server config 🚧
❌ call['recording'] πŸ“± Any client πŸ—ƒοΈ Server config 🚧
signaling_mode ❓Not sure if it is required βš™οΈ Admin Settings πŸ—ƒοΈ Server config
sip_dialin_info ❗Required for Desktop πŸ“± Any client πŸ—ƒοΈ Server config
grid_videos_limit ❗Required for Desktop πŸ’» Web / Desktop πŸ—ƒοΈ Server config
grid_videos_limit_enforced ❗Required for Desktop πŸ’» Web / Desktop πŸ—ƒοΈ Server config
federation_enabled ❗Useful for any clients πŸ“± Any client πŸ—ƒοΈ Server config 🚧
default_permissions ❗Useful for any clients πŸ“± Any client πŸ—ƒοΈ Server config
start_conversations conversations['can-create'] πŸ“± Any client πŸ‘€ User permissions
circles_enabled ❓Not sure if it is useful 🌐 Web only πŸ‘€ User permissions
guests_accounts_enabled ❗Required for Desktop πŸ’» Web / Desktop πŸ—ƒοΈ Server config
❌ chat['max-length'] ❌ Constant
read_status_privacy chat['read-privacy'] πŸ“± Any client πŸ‘€ User permissions
play_sounds ❌ Not needed 🌐 Web only πŸ‘€ User settings
❌ attachments['allowed'] πŸ“± Any client πŸ‘€ True if not a guest
attachment_folder attachment['folder'] πŸ“± Any client πŸ‘€ User settings
attachment_folder_free_space ❗Useful for any clients πŸ“± Any client πŸ‘€ user.quota > 0
❌ previews['max-gif-size'] πŸ“± Any client
enable_matterbridge ❓Not sure if it is useful βš™οΈ Admin Settings πŸ—ƒοΈ Server config
❌ signaling['hello-v2-token-key'] πŸ“± Any client πŸ—ƒοΈ Server config
❌ signaling['session-ping-limit'] πŸ“± Any client πŸ—ƒοΈ Server config

Also, all the Capabilities are available from the Initial State initial-state-core-capabilities.

Proposals:

  1. Add all missing in Capabilities API configs from the Initial State
    • What about Web Only settings? Should they be a part of Capabilities?
  2. Use only one source of config in Talk Web frontend, do not mix.
    • As Capabilities are used in all clients and also available in Talk Web, it seems to be a better choice.

Notes:

See also:

ShGKme commented 1 year ago

I updated the table, and added more info about what capabilities are required for the desktop and other clients and what are not. I'm not sure about some of them, feel free to edit.