Summary
Enable users in federated Talk conversations to share files and photos across Nextcloud instances with the same experience they have in local (non-federated) conversations.
Motivation / Problem Statement
Nextcloud Talk federation allows users on different instances to communicate in shared rooms. However, sharing files or photos in these conversations is currently not supported. This is a significant gap: file sharing is one of the most-used features in Talk, and its absence in federated rooms makes federation substantially less useful for real collaboration.
Proposed Behavior
| Action |
Expected result |
| User A (Instance A) shares a file in a federated room |
User B (Instance B) receives a message with a file attachment card |
| User B clicks the file |
The file opens via a cross-instance share link (OCM or direct share URL) |
| User A shares a photo/image |
User B sees an inline image preview |
| File is deleted or share revoked on Instance A |
The link degrades gracefully (404 / revoked state shown) |
| User B downloads the file |
Download goes via Instance A's share endpoint; no file copy stored on Instance B |
Technical Scope
-
Sending side — when a file message is sent in a federated room, the sender's instance must:
- Create a public or user-scoped share for the file (or reuse an existing one)
- Attach the share token / OCM resource URL to the chat message payload sent to the remote instance(s)
-
Receiving side — the receiving instance must:
- Parse the file attachment metadata from the federated message
- Render a file card in the chat UI (name, size, icon / thumbnail)
- Fetch a preview/thumbnail via an OCS proxy or the sender's public thumbnail endpoint
-
Preview / thumbnail handling
- Inline images: fetch thumbnail from sender's instance via the public share preview endpoint
- Non-image files: show file icon + metadata (size, mime type)
-
Access control
- The share created for the file must be at minimum "view" scoped
- Optional: password protection, expiry — should not break the federated message card
-
Message format / protocol
- Extend the federated message schema to carry a
file object: { name, size, mimeType, previewUrl, downloadUrl }
- Must be backwards-compatible (older instances ignore unknown fields)
-
UI components (Vue/Talk frontend)
- Message renderer: handle
file message type in federated context
- Distinguish between local-share cards and federated-share cards where behavior differs
Out of Scope (for this issue)
- Editing/renaming files from the receiving instance
- Uploading files from the receiving side (separate issue)
- Video/audio attachments (can follow same pattern but needs separate review)
- End-to-end encryption for federated file transfers
Acceptance Criteria
Summary
Enable users in federated Talk conversations to share files and photos across Nextcloud instances with the same experience they have in local (non-federated) conversations.
Motivation / Problem Statement
Nextcloud Talk federation allows users on different instances to communicate in shared rooms. However, sharing files or photos in these conversations is currently not supported. This is a significant gap: file sharing is one of the most-used features in Talk, and its absence in federated rooms makes federation substantially less useful for real collaboration.
Proposed Behavior
Technical Scope
Sending side — when a file message is sent in a federated room, the sender's instance must:
Receiving side — the receiving instance must:
Preview / thumbnail handling
Access control
Message format / protocol
fileobject:{ name, size, mimeType, previewUrl, downloadUrl }UI components (Vue/Talk frontend)
filemessage type in federated contextOut of Scope (for this issue)
Acceptance Criteria