-
Notifications
You must be signed in to change notification settings - Fork 176
Add client-side intent signaling to distinguish between file previews and downloads for audit logging #2564
Description
Is your feature request related to a problem? Please describe.
Add client-side intent signaling to distinguish between file previews and downloads for audit logging. This enables fine-grained access control policies (e.g., ban downloads of MP4/PDF while allowing previews).
Describe the solution you'd like
Enable OpenCloud to audit and control file access patterns by distinguishing:
- View: User opens file in browser/app for reading
- Download: User saves file locally
This allows organizations to implement policies like:
- Allow viewing of MP4 videos but ban downloads
- Allow previews of PDFs but track/restrict downloads
- Enforce different rules based on file type and user group
Microsoft 365 implements similar intent signaling, making this a standard pattern for collaborative platforms.
Describe alternatives you've considered
I evaluated Secure View sharing (Collabora), but it currently lacks support for MP4 playback (I understand why). It watermarks documents as well which does not fit/"undermines" my usecase (sharing an art course).
My goal is to leverage the enhanced audit trace to automate enforcement through LDAP; for instance, identifying and restricting users who attempt to download MP4s while still allowing them to stream/view the content. This provides a balance between accessibility and strict content protection for non-redistributable media.
Additional context
- I used Claude Code to develop a Proof of Concept (PoC) for this functionality. The code hasn't been tested yet, but the underlying logic should be ready for architectural review and feasability analysis: feat(audit): add file view event type to distinguish preview from download #2563, 🎉 Release 4.0.3 #2281
- I have OpenCloud deployed with NixOS, all configurations can be found here: https://codeberg.org/yuuhikaze/nixos
Relevant ones are: collabora.nix, opencloud.nix
Related ones are: lldap.nix, authelia.nix, traefik.nix