Support for multiple accounts/profiles - requirements

This text will be hiddenRequirements on support for multiple accounts

I got directed here to this forum from https://github.com/deltachat/deltachat-android/pull/1298 to gather, discuss, manage, and triage.

Let’s start with that here.

  1. DONE Initial multi account support - see Multi accounts/profiles support - where the goal was to switch between accounts (i.e. no parallel access, no notifications from more than one account at a time). See the corresponding pull request (“PR”) No. 1298.

  2. PENDING Simultaneous use of multiple accounts with notifications working in all of them at the same time. This includes decisions how to “multiplex” network access, DB access, UI access, etc. on all supported platforms.

  3. PENDING Advanced & sensible UI changes. E.g. “merge” conversation lists from multiple accounts into one in a clear & beautiful manner. Make the account list into a checkbox list to choose which accounts shall be active and which not.

Feel free to post your suggestions & idas here.

3 Likes

In order to avoid making mistakes, it would be nice to clearly distinguish which account is open by displaying the avatar or username somewhere. (Maybe on top left of the chat list?) Now you have to tap on qr-code or settings to double-check the current identity. The same for Android and Desktop.

5 Likes

Each account should have option of distinct audio clues, visual clues, vibe cues, and options for third party apps that display a color dot on amoled akin to older phones with non screen LED in colors.

Perhaps wrap or underline a conversation in an elected color ribbon.

1 Like

As @moniato suggests , the current user avatar should be displayed - for example between “Delta Chat” and the looking glass (search) icon.

Multi-account features are critical (most important feature IMHO), and will not be fully useful until we have notifications for all accounts in one place, regardless of which one is the current active one, and also functioning when DC is closed. The developments/perspectives for DC looks great at the moment. Can’t wait for the next improvements :slight_smile:

3 Likes

As of #3 I would like to suggest using a color-code for the accounts. Then the bubbles in a chat as well as the “send” button could be styled in the appropriate color – kind of like Apple‘s Messages app, where blue stands for iMessage and green for a SMS message.

I think, switching between accounts could be done via a force-touch/longer-holding of the send button, which opens a list of the available accounts.

Of course it would make sense to keep the last account used per chat.

+1 for color code (we could also have a look how Telegram is doing this, they also have multi-account btw), but if I use different accounts to chat with the same person, then they will appear as multiple chats on the other person’s device, so I think they should be multiple chats on my device, too (so, I don’t think it should be possible to change the sending account while staying in the same chat)

Here are some considerations on how the backup works as they relate to the use of backup with multiple accounts:

  1. It is not immediately clear if the chat backup concerns only the account in use or all accounts (spoiler: it concerns only the account in use).
    Coming from conversations (xmpp client) this is a bit counterintuitive: in conversations when you make a backup several files are created (each with the name of each account) in the backup folder and when you restore the backup all accounts are restored.
    Personally I think that the system adopted by conversations is better: there is no danger to forget to backup some accounts or to make a backup convinced that it concerns all the accounts and then find yourself to restore the backup of a single account risking the loss of the data of the other accounts.
    The possible solutions I thought of are:
  • Keep the current operation but make it very obvious that you are only backing up the current account.
    Maybe changing the entry from “back up chats …” to “backup of current profile”/“backup of current account” or something similar.
    By the way, since the settings are also saved, I think it’s more correct to call it account backup rather than chats backup anyway.

  • Add another option, just below “back up chats to external storage”, that allows to backup all accounts. This way it would be clear that the first one refers only to the current account.

  • Change how the current backup item works and directly create a backup of all accounts (like in conversations).

  1. Currently when importing a backup the last backup created is always imported, with no choice.
    This behavior could be fine if the backup was for all accounts, but currently you have to create the backup of an account, import it, then create the backup of another account and import it, and so on. It would be more convenient to have the possibility to select which backup to import and maybe have names for the backups that allow easy identification of the account they refer to.
    Also if you import the same backup multiple times you are not warned that the account already exists and duplicate accounts are created.

Probably the solution I would prefer (since I often test DC nightly and I need to create and import multiple accounts) would be to change the name of the “back up chats…” option to “full account back up” and create a file with a recognizable name for each account and then allow to select the individual files when importing.

3 Likes

hi, :tada: your proposal of displaying the account avatar in the left corner of the toolbar has been implemented here:

5 Likes

In conjunction with proxy support, multiple account support should check and ensure that circuit isolation is complete when the proxy used for an account is Tor.

Without complete circuit isolation, multiple accounts share the same circuit paths and exit nodes within the Tor network, and therefore can be easily correlated by an active or passive observer. Multiple accounts in a single circuit breaks compartmentalization, anonymity, and therefore security. Circuit isolation and multi-account support should be inseparable.

Circuit isolation is not something that takes place within Delta Chat, it is a flag than can be set in the Tor daemon or client, which in the case of Android is typically Orbot. However, there are different ways that Delta Chat could access a proxy, and the method used should compartmentalize each connection completely, and ensure that Tor dedicates a separate circuit to each connection.

Can anyone eli5 how Delta Chat calls the proxy? And whether the method aligns with Tor’s requirements for triggering circuit isolation? Does each account call the proxy separately? Or are all accounts bundled as a single connection to the proxy assigned?

I could not find any attention to circuit isolation in any of the PRs at Github, or in topics in this forum. The closest I found was this: Using Tor with socks5 leaks un-anonymized traffic in several situations · Issue #3093 · deltachat/deltachat-desktop · GitHub