Skip to content

Conversation

@tmpfs
Copy link
Collaborator

@tmpfs tmpfs commented Nov 29, 2025

Considerations

  • Only the owner should be able to delete shared folders, other people can delete but it must just remove the join for the shared folder not the folder or it's contents on the remote server (but can delete the local content)
  • Deleting an account should delete recipients and pending folder invites
  • Test specs for write access and read-only access
  • Server-side API for creating and searching recipients and querying pending invites
  • When create_shared_folder() is called, automatically create folder invites for all other recipients.
  • Should the folder owner be notified when an invite is declined?
  • Allow the owner to remove a recipient's access to a shared folder which would remove from the join table?
  • Adding and removing recipients will require re-encrypting all the secrets in the folder which has implications for syncing (force update)!
  • Server websocket notifications to all recipients
  • Folder creation for shared folders assumes the folder is empty - how will this affect backups and importing from shared vaults???
  • Moving secrets to and from shared vaults, needs re-encryption and moving out of a shared vault should be disabled?
  • Re-invite a recipient/participant after they have decline an invite
  • Re-invite a recipient/participant after they have deleted the folder (perhaps accidentally)
  • Only allow export of shared folders to the owner account???
  • Websocket notifications for folder invites
  • Folder level operations such as rename, compaction etc must be restricted to the folder owner
  • Files with shared folders??????

Server Operations

  • Create shared folder (POST /api/v1/sharing/folder)
  • Upsert recipient information for account (PUT /api/v1/sharing/recipient)
  • Get my recipient record (GET /api/v1/sharing/recipient)
  • Search recipients using the FTS index (GET /api/v1/sharing/recipient/search)
  • Send folder invite (POST /api/v1/sharing/folder/invites)
  • Accept (or decline) folder invite (PUT /api/v1/sharing/folder/invites)
  • List my sent folder invites (GET /api/v1/sharing/folder/invites/sent)
  • List my received folder invites (GET /api/v1/sharing/folder/invites/inbox)

@tmpfs tmpfs self-assigned this Nov 29, 2025
tmpfs added 30 commits December 5, 2025 08:46
Now we can pull down the folder events on the side of the participant
accepting the folder invite.
After the folder participant has made changes to the folder the owner
syncs but is not seeing the secrets that the participant created.
So the not_authenticated test spec should continue to pass.
Fixes the issue with inadvertently deleting the shared folder when a
participant tries to delete a shared folder.

We also need to make the FolderEntity logic more robust so it always
requires an account.row_id but that will be a much bigger refactor.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants