Kunzisoft / KeePassDX

Lightweight vault and password manager for Android, KeePassDX allows editing encrypted data in a single file in KeePass format and fill in the forms in a secure way.
https://www.keepassdx.com/
GNU General Public License v3.0
4.73k stars 276 forks source link

Buffer database instead of downloading #1912

Open MichiFr opened 1 month ago

MichiFr commented 1 month ago

Is your feature request related to a problem? Please describe. No!

Describe the solution you'd like Each time KeePassDX opens my database it reloads the DB from my NAS again and again. To be precise it reloads when the KeePassDX decided to close before somehow. I'm using a WebDAV storage for the database file.

So, I'm would like KeePassDX to buffer the database locally and reloading it only when necessary, comparing e.g. the modification date time, local buffered file compared with remote one. Modifications should be merged into either the database which is newest and reupload again to remote storage.

Keepass2Android does something similar. This way it does not always have to redownload the database completely.

In my case the database is large and the whole download and decryption takes some time.

pstorch commented 1 month ago

A local buffer/cache would be nice. Also in case of problems. I sync my keepass file via Nextcloud. Due to a bug in the Nextcloud client I had to reinstall it. But then my keepass file was not accessible anymore and I could not login to Nextcloud anymore. Had to use a workaround via the PC. A cached version would solve this kind of issue easily. A warning could indicate, that the file might be outdated and not sync able at the moment.

J-Jamet commented 1 month ago

I'll say it again, KeePassDX is just a file editor. If the synchronization application you're using doesn't have a cache, get another one. It will of course be added to the FileSync project.

MichiFr commented 1 month ago

Sorry, but this comment is ridiculous!

Since when is a file system responsible for caching? This is somehow outdated point of view and not everybody uses OneDrive or similar services for storing their files.

Still there are more and more users which save there files on NAS, away from the big player.

Why would Keepass or Strongbox on iOS offer such a feature and do not rely on the native API pr 3rd party services for buffering?

Because buffering is program logic and not the task of the underlying API alone. Buffering/caching is used for situations when there is no connection to the source. That's it.

But, hey anyway, you are the boss here and I still like KeepassDX because of its clean UI.

Nevertheless, there are some missing features that would feature complete KPDX.

J-Jamet commented 1 month ago

Sorry, but this comment is ridiculous!

It's not ridiculous, the debate has already taken place, and that's what the FileSync application is for : https://github.com/Kunzisoft/KeePassDX/discussions/1525#discussioncomment-6596739

Since when is a file system responsible for caching?

Not a file system, the app sync you use.

Why would Keepass or Strongbox on iOS offer such a feature and do not rely on the native API pr 3rd party services for buffering?

They're not on Android, and don't have the philosophy of separating application layers.

Because buffering is program logic and not the task of the underlying API alone. Buffering/caching is used for situations when there is no connection to the source. That's it.

I understand, and KeePassDX wasn't designed for this, it just reads the data from the data stream provided by the URI of the file provider.

But, hey anyway, you are the boss here and I still like KeepassDX because of its clean UI.

The UI will remain clean thanks to these choices.

Nevertheless, there are some missing features that would feature complete KPDX.

That's why I separate synchronization functionalities by application layer.

cbiere commented 1 day ago

A local buffer/cache would be nice. Also in case of problems. I sync my keepass file via Nextcloud. [...] A cached version would solve this kind of issue easily.

Just my two cents:

I use the local filesystem on each device. Syncing happens via a separate app (foldersync pro) which also takes care of backups including to the SD card. So I can factory reset my smartphone and still have access to my database before even having network access. Admittedly, this is mainly for backup reasons and one-way syncing. A lot of things can go wrong with syncing as it is a beast of its own. Therefore I fully support avoidance to integrate this directly into the app. If you look at issue reports of apps which do integrate syncing you will find more than one where things went wrong (edits not being saved, files corrupted etc.).