- cross-posted to:
- technology@piefed.social
- cross-posted to:
- technology@piefed.social
1Password faced immediate backlash from customers this week over a $300,000 pledge in support of a Linux distro created by David Heinemeier Hansson, who has regularly published overtly racist blog posts that include comments calling for deportation of ethnic minorities in Europe. The popular password manager is now a “distinguished corporate patron” of Omacom, the nonprofit foundation that oversees a popular Linux distribution known as Omarchy.
Archive: https://archive.is/osNh3


yeah, about that. none of the official bitwarden clients allow editing if the server is not accessible. they didn’t want to have to deal with conflict resolution
sounds like a better idea. but synchronization wise, conflict resolution has to happen somewhere. like when you edit an entry on two devices, and later they try to sync both changes at once. Fortunately tye keepass format has a more comprehensive entry edit history than bitwarden, so clients can figure it out.
keepassxc on linux supports something called keeshare, check how is compatibility for that with your mobile keepass app. original keepass on windows supports some kind of automatic merging on saving and loading, maybe keepassxc does that too? if you end up using synthing, conflicts could occur at that layer, which is not hard but not so straightforward to handle, but keeshare is supposed to help with that I think.
Yeah, I feared that bitwarden might not like that with my scenario.
I’ve been putting off keepass ever since I found lastpass all those years ago and then learned about keepass. I guess I have to dedicate a weekend some time reading and setting everything up keepass between my Linux home base computer, android phone and grumble Windows work laptop.
if you have an always available central storage, and your keepass clients are never offline when you want to use them, I recommend to use that for storing the database file. but this is rare, and things can go wrong such that this central storage is not accessible, like network breaking down.
Otherwise, devices are online at different times, I would recommend using Syncthing, and then all devices can upload/download the database file when they see each other.
when using synthing, you’ll likely get into file conflicts, though. but it is predictable when will it happen, and you can avoid it if you are careful.
lets say, you edit the database on your phone, syncthing on it is sleeping for energy saving, you turn on your computer and you edit the database there too. then computer is kept running, and later the syncthing app on the phone wakes up. syncthing will see that the database file has changed on multiple devices, in a different way, and you will have to choose which one to keep.
if you can’t use keeshare of keepassxc, you’ll be holding your primary database on the syncthing folder. you will lose the changes made on one of your devices, depending on which one you discarded. but syncthing should save the discarded version with a special name, and I think, but you should check, the desktop version can handle this: if it has the database opened and unlocked, and you discard the local version in syncthing on your PC, resaving the database in keepass should merge the changes and no data is lost; if you have edited the same field of an entry on both devices, both values will be in the entry history. if this works this way, the conflict backup made by syncthing is nt needed.
if you can use keeshare, I believe discarding any of the versions in syncthing should fix it up eventually without data loss, because keeshare maintains a copy of the DB where your client can look for the “global state” of the DB, and always add anything to it that it deems to be new local changes not yet present in the global state. but the global state will only get eventually fixed up if all your devices will keep being able to sync to it; because if in the above scenario on your desktop you discarded the updated global state coming from your phone, to be able to accept the updated global state coming from your desktop, later your phone’s syncthing needs to be able to receive the global state you accepted elsewhere, potentially you will need to accept the remote changes here, then your keepass app needs to open the local database, process the global state database (updating it again with the local changes), and sync it to at least one other device (conflict free if there were no changes elsewhere in the meantime).
I don’t know how deletions are handled by keeshare. if it does not keep an index of deleted entries, then keepass on your local devices will keep readding the last version of this entry. that’s likely fine if it is only added back to the trash folder, and all devices know to delete it after a certain time being there.
well this became very long. but if you consider how is the synchronized file treated by the clients, as the main database or just a file known to be shared, then it can be figured out. but always verify your theory in practice, and check the docs of your clients if they have anything to say about synced databases.