oxen-io / session-ios

A private messenger for iOS.
https://getsession.org
GNU General Public License v3.0
398 stars 88 forks source link

Backing up iPhone Session history by syncing to Session Desktop #801

Open mstroubadour opened 1 year ago

mstroubadour commented 1 year ago

I have a question regarding the following scenario/issue: a user installed Session on an iPhone exclusively, and used it for many months, resulting in a large chat history that either does not seem to have been backed up by iTunes, or if it has is held in a manner inaccessible to them (so, in some cases effectively the same thing).

As a possible solution, if the user subsequently installs Session Desktop on a Mac or PC, and chooses to sync it with that iPhone Session account, is the expected behaviour that the users full pre-existent chat history will be copied from the iPhone to the Desktop?

If so, this might be a path to enable iOS users to export their Session iOS data, by syncing with the Desktop version and exporting/extracting it from there?

mpretty-cyro commented 5 months ago

Only the last 14 days of message history is retained on the network (30 days for user account settings for multi-device), so when linking a new device it will only retrieve the past 14 days of history

If so, this might be a path to enable iOS users to export their Session iOS data, by syncing with the Desktop version and exporting/extracting it from there?

There are currently some technical constraints implementing an approach like this as the structure of the databases between the different platforms currently differs so an export/import is more complicated than it should need to be

I'll update this ticket from a Bug to a Feature Request since this is actually expected behaviour at the moment

mstroubadour commented 2 months ago

Thank you for the explanation, that makes sense.

I wonder if a workable solution could be considered for at least export/backup in the interim, whereby it could be enabled in a standard format across devices, such as JSON or CSV with base64 encode for binary content? Or for a more parsable file, just save any media as its own file type, and include the filename in the JSON/CSV?