element-hq / element-hq/element-android

Document what/where/how/lifetime of stored data by the app and by the Matrix SDK

Open
#4,098 1 comment 2 reactions 0 assignees View on GitHub
A-Documentation
Dominant language
Kotlin
Stars
3.7k
Forks
917
PR merge metrics
No merged PRs in 30d

Description

#### Problematic

We are often asked about what the app is storing, where (in memory, on disk, server side, ...), in which format (clear, encrypted, ...), and with which lifetime (user session i.e. until signout, cache session i.e. until clear cache is performed, application session i.e. until the app is finished or killed, Activity lifetime i.e. until the Activity is destroyed), and this are legitimate questions for a secured communication app.

We should clarify this in a documentation, attached to the project, and kept up to date with all the changes we may do in the codebase.

Especially the doc should clarify the policy about those elements:

- account password
- access_token for home servers (and refresh token if any)
- access_token for identity servers
- other token (openId tokens)
- olm identity key
- olm signing key
- olm OTK priv keys
- E2EE history
- E2EE search index
- E2EE attachments
- E2EE thumbnails
- attachments from clear rooms
- megolm keys
- SSSS master key
- SSSS passphrase
- Key backup private key
- MSK private key
- SSK private key
- USK private key
- PIN code
- session data (mainly cache of /sync response)
- cache for image (E2EE and clear rooms)
- log files (for rageshakes)
- list to be completed

Also the document could include some information about the disk folder hierarchy for file storage.

#### Definition of done

A doc is added to https://github.com/vector-im/element-android/tree/develop/docs

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.