Inconsistency of the Initial State and Capabilities
Open
@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:
- Add all missing in Capabilities API configs from the Initial State
- What about Web Only settings? Should they be a part of Capabilities?
- 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_spacecould be replaced with User Metadataquota.free > 0
See also:
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.