-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Currently the specifications require that deleted messages (and edited messages) are not actually removed from the chat, but marked as deleted and it is up to the client UI to display the message as deleted.
There can be several cases where end-users may not wish their messages to be soft deletes. For example: accidentally sending sensitive information in the chat (eg. yubikey accidental presses), sending an embarrassing message. With the current specs the participants of the chat can still read the original messages.
There is the issue that we only want users to append to the chat file for security reasons. If they can only append they cannot rewrite original messages.
I have a potential concept that may solve the issue? If interested you can view it here (with diagrams and a demo): https://github.com/AreebaAziz/event-based-chat/tree/solid-demo
Essentially:
- end-users send an HTTP PATCH request to the server for new event (such as a new message, delete a message)
- the server either
- appends the event to the event_log (soft delete)
- enqueues the event in a FIFO queue (hard delete)
- another component which could be within the Pod Provider listens for changes in either the
event_logfile or the FIFO queue depending on the type of channel. On a new event, it updates agenerated_chatfile with the updated chat. - clients listen for changes to the
generated_chatfile only
I have a working conceptual demo in the Github repo if you are interested, otherwise we can just discuss the soft vs hard delete.