[Feature Request] - Global persistence/file sharing across selected Workspaces
Existing Resources
- [x] Please search the existing issues for related items
- [x] Consult the product documentation : Docs
- [x] Consult the FAQ : FAQ
- [x] Consult the Troubleshooting Guide : Guide
- [x] Reviewed existing training videos: Youtube
Is your feature request related to a problem? Please describe. Workspaces are isolated and independent of each other. When persistence is enabled for a specific Workspace, the user's "home" folders are available (Documents, Uploads, etc.) between sessions making files (and sometimes settings) available to that Workspace. But persistence is exclusive to a specific Workspace, so sharing files across different Workspaces is impossible.
Describe the solution you'd like I would like the ability to globally define a persistent/shared path or volume that multiple Workspaces could share and then selectively enable or disable this path/setting per Workspace. This would selectively provide persistent or shared data and files across multiple Workspaces without corruption or conflict.
Describe alternatives you've considered Per a Reddit post that I made, a "Volume Mapping" solution was provided. If this method makes more sense for a global solution, then bake this in as a user-friendly Setting to define and enable this.
Additional context As an example, I would like to open a browser Workspace to download an image file, then open a GIMP Workspace and edit that image, then open an FTP Workspace to upload that file to a website that I am maintaining, and then open a browser Workspace to view the results on the website. This would be seamless without having to shuffle files back and forth between the Workspaces on the Kasm install and my local device.
Another example would be to open a LibreOffice Workspace and create a new document, then open a browser Workspace to download an image file, then open a Krita Workspace and edit that image, then go back to the LibreOffice Workspace and paste that image into the document, then open a web browser Workspace to upload that document to a website.
As you touched on, I think Volume Mapping gets you most of the way there.
You could either define your Volume Mapping at the Group level , in which case the mapping would apply to every workspace the user(s) within that group launched, or you could define them at an individual Workspace level.
Once configured, this gives you the shared persistent directory you can access across all workspaces as requested.
Similar to Volume Mapping, Kasm now has the ability to allow users to map in their cloud storage accounts to the file systems of the session. So that shared persistent directory could actually be backed by Google Drive, Dropbox, OneDrive, NextCloud, S3 etc. You can read more about those here: https://kasmweb.com/docs/latest/guide/storage_mappings.html . You can view a demo here: https://www.youtube.com/watch?v=QQ9J3lLNar4&t=220s
I understand the desire to make this a more "turn key" , click-to-enable-on feature. Kasm doesn't currently have a built in "Storage" role that would help facilitate this. In the past we've considered bundling a MinIO stack or something similar. While its pretty straight forward to set up Volume Mappings on a single-server deploy, its becomes more complicated to do at scale.
Storage mapping was new in 1.14, and I suspect we will see some more convenience options built on top of that