darkwire.io icon indicating copy to clipboard operation
darkwire.io copied to clipboard

Feature/Proposal: Encrypted Ephemeral File Storage (EEFS)

Open seripap opened this issue 6 years ago • 0 comments

Proposal for Encrypted Ephemeral File Storage (EEFS)

Purpose: Provide a sharable link that allows temporary file download and/or image viewing.

Specs

  1. On file upload, assign a unique UUID to the file.
  2. On command, /pin <UUID> <file-key> <{options}> the file will be pinned to the top of the chatroom. This command will also temporarily store the file for up to 24 hours (default), via memory
  3. After pinning, the file will be available through a public URL: darkwire.io/<room-id>/<uuid>?key=file-key (if a key is not provided, the user will be redirected to the room-id)
  4. After 24 hours (default), the file will be removed from memory.
  5. If options is provided, it will change the behavior of the file pinning

Options

  • d (duration, optional): anywhere between 1m - 24hr. Will use shorthand annotation and support minutes and hours only ( m|h, ex:1m / 2m / 24h)

Other notes

  1. File upload handling will change when the file is pinned.
  • If the file has been pinned, it will be re-uploaded with the file-key as its encryption key.
  • Users who are currently in the chatroom will automatically receive the file-key while new users will be required to enter the file-key in order to access the file.
  1. A pinned file cannot be unpinned- only after the set duration of file expiration has passed.

  2. File keys cannot be changed and must have a minimum character count of 12

Target release: v2.1

seripap avatar Jul 01 '19 15:07 seripap