KeePass sync involves comparing the database before writing changes back to it. Comparing records by UUID and timestamp, and then taking the latest entry, and moving the older staler entry to History. This allows for multiple editors to work on the Database and avoid sync conflicts.
It would involve comparing the XML documents, and so applies only to KeePass 2 Databases. It also depends on the History feature which needs to be implemented separately. More info:
Hi Mark, first of all, great work with your KeePass oriented app for iOS/MacOS,
any predictions whether that feature could be implemented ?
that would greatly help with choosing your app as the only one for a solution with e.g. self-hosted nextcloud in order to safely sync keepass master db between multiple platforms
Thank you @jacek-1!
This feature is a bit of a tough one. I think the window for issues here is probably reasonably small for a lot of users. It is also dependent on a few features that need to be implemented first.
1) File Metadata for all Storage Providers (Last Modified dates basically for 6 or 7 different providers like Google Drive, Dropbox, etc). This is kind of grunt work, but required.
2) Managing Password History fully.
3) Finally, implementing full database comparison and merging isn't trivial either, quite a chunky bit of work.
I think there are probably some other features that take precedence before this, so I think I'd really struggle to give you an ETA, but if pressed, I'd say in the next 3-6 months, hopefully sooner.
You could always open your databases in 'Read-Only' mode if you're concerned about overwriting a newer edit for the moment. This way Strongbox can/will not write back to storage.
perfectly fine with it, thanks for giving details.
It would be really nice to have this. I switched to your (paid) product due to one of your competitors failing to do this.
As a forgetful guy, and app(s) without transparency it's very easy to lose passwords when things change on both sides.
I lost numerous passwords in my database do to your competitor apparently deciding to save blindly, not caring that the hosted file may have been changed. In these cases the product didn't update it's cached copy (and didn't notify that it failed) which would have included the updated passwords, and then overwrote with old data along with the one entry I added from my device.
That's fair. I'd like to get this done, but it's a little back on the roadmap at the moment, basically because it's a reasonably big dev task. Hopefully I'll be able to get to this in the next couple of months.
That's fine, just adding my 'vote of support' and giving a use case where it might be more important to more users.
Keep up the good work!
I鈥檒l become a paid customer as soon as this is implemented and working.
Hey @mmcguill - Do you have any news about the schedule of this feature?
Hi @Slummi - I'm afraid not... It has slipped back on the roadmap as other problems and support issues consume resources. I would hope to have something here within the next 3-6 months, but unfortunately it is hard to put a good estimate on this because it's quite a niche feature with a heavy development load
We are becoming more and more mobile these days so I find myself editing on mobile devices far more than traditional desktops. So being able to edit and then sync from mobile is a top 3 feature need for me. Thanks!
Short question, because you recently started implementing of advanced sync: Are you still planning to support UUID sync for KeePass databses and maybe also lock files (for read-only access, if a database has been opened by another application)?
Hi @Slummi, Yes, this is coming in the next few weeks. The first priority was supporting the ability to detect conflict situations and background syncing... This is pretty much done now barring some initial bugs/problems that need to be ironed out.
The next stage is to offer the ability to "Merge" the local/remote copies (optionally automatically without asking). This is the "UUID Sync" I assume you're speaking about. It's a big feature (complex algorithm to get right).
As to Locking Files, I don't see this as connected to the Advanced Sync feature and I'm not sure how it would work. How would Strongbox detect that the database has been opened by another app? Why would you want need this feature if you have the "Merge/UUID Sync" function?
Hi @strongbox-mark Yes, merging the local/remote copies is what I mean with UUID sync. I just wanted to know, if it's still on the roadmap.
Locking files was just an idea, because it's an (optional) available function of KeePass, if you don't use the sync feature.
In this case KeePass can automatically create an additional lock file, which signals that the database file is currently used by another client and can only opened in read-only mode. But I think this is more a KeeePass 1.x feature and merging by UUID comparision is much better.
Here is some information about locking files:
Added option to use database lock files (intended for storage providers that don't lock files while writing to them, like e.g. some FTP servers); the option is turned off by default (and especially for local files and files on a network share it's recommended to leave it turned off).
Source: https://keepass.info/news/n120105_2.18.html (KeePass 2.18 change log)
And the KeePass documentation about multi-user features: https://keepass.info/help/base/multiuser.html
Got it. Yeah, I don't think the lock file is a runner for Strongbox. With all the different storage cloud providers and permissions issues of listing/checking for the existence of a lock file it would be more hassle than I think it's worth...
Merge/Sync should have you covered in the next few weeks :)