Static and Dynamic capabilities: provide all configs and preferences as capabilities with 2 hashes for critical and mutable subsets
Open
Nobody has claimed this yet.
client: 💻 desktop
enhancement
feature: api 🛠️
feature: frontend 🖌️
- Dominant language
- JavaScript
- Stars
- 2.2k
- Forks
- 586
- 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.
Current proposal:
- Add all the preferencies to the capabilities (e.g., PlaySound is missing)
InitialStateshould be only used for web-only preloaded initial state of the application (for example, to include all the conversations in the initial response). But never for client-required data- See also:
- Indirectly (without the structure change) divide all the capability values into 2 subsets:
- With actually critical-to-change values requiring application restart to apply
- For instance: backend version,
federation.enabled, HPB-related configs
- For instance: backend version,
- With changeable configs
- The most of the configs and conditional features
- With actually critical-to-change values requiring application restart to apply
- Add two new hash headers for the values above
- Aka
X-Nextcloud-Talk-Capabilities-Static-Hash(or,immutable,persistent) - Aka
X-Nextcloud-Talk-Capabilities-Dynamic-Hash(ormutable,fluid)
- Aka
- The current
'X-Nextcloud-Talk-Hashheader includes both types of values is kept for backward compatibility - On Frontend:
- On top of the existing capability manager, add a reactive store adapter
- Provide public API:
- Get capabilities
- (Un)Subscribe to hashes invalidation
- (Un)Subscribe to capability change
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.
Research direction
No files or tests are named. Start by locating the existing capability manager and handling for the X-Nextcloud-Talk-Hash header, then trace how capabilities are exposed to the frontend; done means the proposed static and dynamic hashes, backward-compatible header, and subscription APIs are defined across the affected layers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100