nextcloud / nextcloud/spreed

Inconsistency of the Initial State and Capabilities

Open
#8,715 1 comment 0 reactions 1 assignee View on GitHub

@ShGKme is already working on this.

Since Oct 29, 2024.

enhancement feature: api 🛠️ feature: frontend 🖌️ feature: integration 📦 medium
Dominant language
PHP
Stars
2.2k
Forks
587
Avg merge
18h 27m
Merged PRs (30d)
333

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are interested into the same feature.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

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

  • Initial State - Server-rendered to <input type="hidden" /> values, used by Talk Web only
  • Capabilities API - used by all clients (frontend, mobile clients, 3rd part clients) for features (depends on the version) and configs

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:

  • attachment_folder_free_space could be replaced with User Metadata quota.free > 0

See also:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.