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

Create system accounts dynamically from DB #843

Open
5 tasks
rfc2822 opened this issue Jun 9, 2024 · 1 comment
Open
5 tasks

Create system accounts dynamically from DB #843

rfc2822 opened this issue Jun 9, 2024 · 1 comment
Labels
dependent refactoring Internal improvement of existing functions

Comments

@rfc2822
Copy link
Member

rfc2822 commented Jun 9, 2024

We may store accounts in the database and then create system accounts dynamically (e.g. at sync) from the database information. This yields the following benefits:

  • Managed DAVx⁵ Auto-Provisioning (bitfireAT/davx5#120): because accounts are automatically created from the database, the auto-provisioning process only has to detect the services and put them into the database
  • "Samsung update bug" (bitfireAT/davx5#176): in rare cases, Samsung/maybe other devices "forget" all system accounts (or user data stored in the accounts) – wouldn't be a problem anymore when system accounts are dynamically created
  • Android Backup (bitfireAT/davx5#132): dynamically created system accounts, would allow us to only back up the database, i.e. the default "full backup" would back up everything, without further work.
  • AccountManager doesn't reliably store user data / AccountSettings. Sometimes they are not written correctly or get lost for some reason.

Possible steps

Accounts:

  • Add a new accounts table with (auto) migration – Create Accounts table in DB #934
  • Add logic to dynamically create accounts from info in accounts table
    • Calendar/tasks sync: manage CalDAV accounts before sync
    • Contacts sync: manage CardDAV accounts before sync
    • No need for "main accounts" anymore – CardDAV accounts can be used without CalDAV account

Settings:

Depends on #934
Depends on #935

@rfc2822 rfc2822 added the refactoring Internal improvement of existing functions label Jun 9, 2024
@rfc2822 rfc2822 changed the title Store accounts in database, create system accounts dynamically Create system accounts dynamically Jul 24, 2024
@rfc2822 rfc2822 changed the title Create system accounts dynamically Create system accounts dynamically from DB Jul 24, 2024
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependent refactoring Internal improvement of existing functions
Projects
None yet
Development

No branches or pull requests

1 participant