famedly / matrix-dart-sdk

Matrix SDK written in pure Dart.
GNU Affero General Public License v3.0
59 stars 31 forks source link

feat: implement session export - [merged] #1393

Closed famedly-bot closed 1 year ago

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 26, 2022, 09:52

Merges session-export -> main

Description

Please note, this is not device dehydration but a fully offline session dump eligible for e.g. TOR users.

Checklist

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 26, 2022, 12:30

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @nico-famedly on Apr 26, 2022, 14:51

I think the naming is confusing. The session export is usually exporting your E2EE session keys. That format is defined by the spec, but this does something else. Device dehydration is for storing the device in account data to be able to reuse it later. This also does something else.

What this does, is that it basically dumps the full database to a json file, if I read that correctly? Problem with that is, that outbound sessions might get reused if this is not done immediately before logout. Tbh, I wouldn't include the outbound sessions at all in this. Similarly, the pickled olm account should also not be reused, but that one you need to export, if you want to reuse a device.

I think my problem here is, what is the goal of this code? I.e. in what case do you want to use it and wouldn't it be enough to just dump the decryption keys and generate a new device? Do you want to avoid online key backup and SSSS?

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 26, 2022, 14:58

Well, the use case I wrote this for is using the SDK in the TOR browser or on Tails. There, it's most useful to just dump the entire DB into a file and to restore it next time.

You are right, the naming is confusing. I first started implementing dehydration and afterwards decided that it won't help that easily in that use case.

famedly-bot commented 2 years ago

In GitLab by @nico-famedly on Apr 26, 2022, 15:05

Right, that functionality makes sense then, if you call it export database or so, although I would probably suggest for those users to use the dehydrated devices MSC instead, since it is less error prone

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 26, 2022, 15:15

Well, the users told me they'd just like to have a file to open instead of logging in, selecting backup etc.

I'll rename it.

famedly-bot commented 2 years ago

In GitLab by @nico-famedly on Apr 26, 2022, 15:16

Sure, but they might not have been aware, that using the same backup twice would break their account and they would get signed out.

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 26, 2022, 15:19

Well, most Tails users usually know this behavior from many apps. Moreover, at least in FluffyChat I would implement a corresponding quick-export button when TOR is detected.

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 27, 2022, 11:18

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 27, 2022, 11:18

marked this merge request as ready

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 27, 2022, 14:50

@nico-famedly Does it now look eligible for you?

famedly-bot commented 2 years ago

In GitLab by @nico-famedly on Apr 27, 2022, 16:18

If you add a big fat warning on top of it, that using the old db after the export or importing the export twice will break your olm account and log you out, then I am fine with it :3

famedly-bot commented 2 years ago

In GitLab by @nico-famedly on Apr 27, 2022, 16:18

approved this merge request

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 27, 2022, 16:33

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 27, 2022, 16:34

resolved all threads

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 27, 2022, 16:34

enabled automatic add to merge train when the pipeline for 4622e6e24c3d838e18f6e6d93b5c2d36fb387e36 succeeds

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 27, 2022, 16:37

started a merge train

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 27, 2022, 16:40

removed this merge request from the merge train because pipeline did not succeed

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 28, 2022, 08:32

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 28, 2022, 18:25

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @ghost on Apr 28, 2022, 18:33

marked this merge request as draft

famedly-bot commented 2 years ago

In GitLab by @nico-famedly on May 6, 2022, 15:00

Why is this a draft?

famedly-bot commented 2 years ago

In GitLab by @TheOneWithTheBraid on May 21, 2022, 19:52

Because I could produce an error during import.

famedly-bot commented 2 years ago

In GitLab by @ghost on May 22, 2022, 05:55

added 48 commits

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @TheOneWithTheBraid on May 22, 2022, 05:56

Should be fixed now. I simply forgot to import the _roomsBox from the dump. Where is my mind!?!

famedly-bot commented 2 years ago

In GitLab by @TheOneWithTheBraid on May 22, 2022, 05:56

resolved all threads

famedly-bot commented 2 years ago

In GitLab by @TheOneWithTheBraid on May 22, 2022, 05:56

marked this merge request as ready

famedly-bot commented 2 years ago

In GitLab by @nico-famedly on May 23, 2022, 12:02

approved this merge request

famedly-bot commented 2 years ago

In GitLab by @TheOneWithTheBraid on May 23, 2022, 12:02

started a merge train

famedly-bot commented 2 years ago

In GitLab by @ghost on May 23, 2022, 12:06

removed this merge request from the merge train because source branch was updated

famedly-bot commented 2 years ago

In GitLab by @ghost on May 23, 2022, 12:06

added 3 commits

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @nico-famedly on May 23, 2022, 12:12

approved this merge request

famedly-bot commented 2 years ago

In GitLab by @ghost on May 23, 2022, 14:19

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @ghost on May 23, 2022, 14:23

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @ghost on May 23, 2022, 14:38

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @ghost on May 23, 2022, 14:40

added 1 commit

Compare with previous version

famedly-bot commented 2 years ago

In GitLab by @krille-chan on May 23, 2022, 14:44

approved this merge request

famedly-bot commented 2 years ago

In GitLab by @TheOneWithTheBraid on May 23, 2022, 14:44

started a merge train

famedly-bot commented 2 years ago

In GitLab by @TheOneWithTheBraid on May 23, 2022, 14:46

mentioned in commit 2991fd9ca8d156af54e8bd806cf6446893ea2703