Skip to content

[RFC] Capability handling in federated conversations #10680

@nickvergessen

Description

@nickvergessen

When a remote conversation is used by a local user, some capabilities need to be checked/respected from the remote server, while others need to be considered from the local server.
Here is a list with the current capabilities and my understanding where they should be read from. Having said that, some capabilities can be considered to "not diverge" at the moment, e.g. features that are available. But when a new API version would ever hit that requires us to remove a capability, the Server would say again whether remote or local controls it.

Details

Outdated list, refer to the docs/capabilties.md instead and check the actual capabilities.features-local and capabilities.config-local instead

features Flags

Feature Server Comment
audio ▶️ Remote
video ▶️ Remote
chat-v2 ▶️ Remote
conversation-v4 ▶️ Remote
guest-signaling ▶️ Remote
empty-group-room ▶️ Remote
guest-display-names ▶️ Remote
multi-room-users ▶️ Remote
favorites 🏠 Local
last-room-activity ▶️ Remote
no-ping ▶️ Remote
system-messages ▶️ Remote
delete-messages ▶️ Remote
mention-flag ▶️ Remote
in-call-flags ▶️ Remote
conversation-call-flags ▶️ Remote
notification-levels ▶️ Remote
invite-groups-and-mails ▶️ Remote
locked-one-to-one-rooms ▶️ Remote
read-only-rooms ▶️ Remote
listable-rooms 🏠 Local
chat-read-marker ▶️ Remote
chat-unread ▶️ Remote
webinary-lobby ▶️ Remote
start-call-flag ▶️ Remote
chat-replies ▶️ Remote
circles-support ▶️ Remote
force-mute ▶️ Remote
sip-support ▶️ Remote
sip-support-nopin ▶️ Remote
chat-read-status ▶️ Remote
phonebook-search 🏠 Local
raise-hand ▶️ Remote
room-description ▶️ Remote
rich-object-sharing ▶️ Remote
temp-user-avatar-api 🏠 Local
geo-location-sharing ▶️ Remote
voice-message-sharing ▶️ Remote
signaling-v3 ▶️ Remote
publishing-permissions ▶️ Remote
clear-history ▶️ Remote
direct-mention-flag ▶️ Remote
notification-calls ▶️ Remote
conversation-permissions ▶️ Remote
rich-object-list-media ▶️ Remote
rich-object-delete ▶️ Remote
unified-search 🏠 Local
chat-permission ▶️ Remote
silent-send ▶️ Remote
silent-call ▶️ Remote
send-call-notification ▶️ Remote
talk-polls ▶️ Remote
breakout-rooms-v1 ▶️ Remote
recording-v1 ▶️ Remote
avatar ▶️ Remote Should use remote because we load the image from remote as well?
chat-get-context ▶️ Remote
single-conversation-status ▶️ Remote
chat-keep-notifications ▶️ Remote
typing-privacy 🏠 Local for setting / ▶️ Remote for whether we should send the signaling messages
remind-me-later 🏠 Local ❓ I guess we would want to trigger the reminders on our own server?
bots-v1 ▶️ Remote
markdown-messages ▶️ Remote
session-state ▶️ Remote
note-to-self 🏠 Local
recording-consent ▶️ Remote
message-expiration ▶️ Remote
reactions ▶️ Remote
chat-reference-id ▶️ Remote

config Flags

Feature Server Comment
attachments > allowed 🏠 Local
attachments > folder 🏠 Local
call > enabled ▶️ Remote
call > breakout-rooms ▶️ Remote
call > recording ▶️ Remote
call > recording-consent ▶️ Remote
call > supported-reactions ▶️ Remote
call > predefined-backgrounds 🏠 Local
call > can-upload-background 🏠 Local
chat > max-length ▶️ Remote
chat > read-privacy 🏠 Local
chat > has-translation-providers 🏠 Local / ▶️ Remote Could check both and use the better matching one?
chat > typing-privacy 🏠 Local
conversations > can-create 🏠 Local
previews > max-gif-size 🏠 Local
signaling > session-ping-limit ⛔ Not for user land Used by the HPB only
signaling > hello-v2-token-key ▶️ Remote

cc @Ivansss @SystemKeeper @mahibi @Antreesy In case you want to skim over it and leave a comment.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions