Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

raygun: Import and export individual conversations #373

Open
dariusc93 opened this issue Nov 29, 2023 · 0 comments
Open

raygun: Import and export individual conversations #373

dariusc93 opened this issue Nov 29, 2023 · 0 comments
Labels
enhancement New feature or request P-Low Low Priority

Comments

@dariusc93
Copy link
Contributor

In the current implementation, conversations are stored encrypted in the block store linking back to the conversation document, however at this point in time, MultiPass::import_identity and MultiPass::export_identity does not store or track conversations (it will in the near future), and even if it did, would not be in an accessible manner since the exported data will be encrypted.

I propose RayGun::export_conversation and RayGun::import_conversation as the following functions to handle importing and exporting individual conversations.

RayGun::export_conversation will handle exporting conversations, either to a file, or a stream (which would be similar to Messages that is returned on RayGun::get_messages). It would be preferred to have it exported as a stream with a option for stating the progression of the export if a file is defined (eg see RayGun::download or RayGun::attach) or exporting messages to stream itself for the end-user to handle messages in their own format.

RayGun::import_conversation will handle importing conversations either from a file or a stream, which would return a progression stream to indicate the messages being imported.

Note:

  • The exported conversation should be signed if it is exported directly to a file to prevent tampering. Streamed messages will include the conversation document first before the messages, however the data streamed would not be signed and would be up to the end-user to handle.
  • Imported conversations, if decided to implement, should not trigger any signaling. Eg if the direct conversation was deleted or the user was removed or left a group conversation and then later imported the conversation, it should not signal to rejoin the group or recreate the direct conversation (which may require a new conversation type).
  • Imported messages to existing conversations should not override the conversation or messages but instead should merge the messages into the document, ignoring existing ones between the exported and current.
    • Messages must be signed and validated when importing. Invalid messages will be rejected.
    • If the message id exist in the conversation currently, it will be ignored (eg previous messages).
    • Imported messages should not be sent to other member(s) of the conversation (similar to above note).
@dariusc93 dariusc93 added the P-Low Low Priority label Nov 29, 2023
@dariusc93 dariusc93 added the enhancement New feature or request label Mar 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request P-Low Low Priority
Projects
None yet
Development

No branches or pull requests

1 participant