Is it possible to disable "Save" and only allow "Syncronize" for shared/network databases?

Scott J
2013-10-17
2013-10-18
  • Scott J
    Scott J
    2013-10-17

    I have a single database that my family uses to store passwords. Occasionally, when changes have been made by User A, User B attempts to save, which keepass correctly identifies as a sync situation. The problem is, I've had a number of times where User B accidentally clicks "Save" instead of "Synchronize" which destroys changes from User A (or actually anything since the last time User B saved). Obviously this is a pain, we lose data, and I have to manually export the current file and retrieve a backup, then compare the XML exports of the two and manually import any missing data.

    Is there any way to add a database specific option that will not allow overwriting save, and just automatically syncs when it detects a sync is needed at save time? Basically don't show the sync or save dialog, and always assume the answer is sync is this attribute is set in the database? I'm thinking the user still clicks the "Save" button, but KP behind the scenes just automagically executes a sync without asking the user.

    This would prevent plenty of data destructive user accidents, and if you really need to save an additional copy, you could always do a "Save As" outside of that pop-up dialog. This isn't a big deal for single user (or single location) situations, but with more & more people sharing DB's on multiple devices, the chance for accidental overwriting saves increases exponentially. I've NEVER had the desire to save when a sync is offered, I ALWAYS sync, otherwise I know I'm losing data!

    Is this currently possible somehow?

     
  • wellread1
    wellread1
    2013-10-18

    You can avoid this problem, and the confusing three choice dialog, by giving each User their own local copy of the database (A & B etc..) and synchronizing via a third database (X) accessible to both users. You can adapt the dropbox sync trigger example to automate the sync so users never need to sync manually.

    This will prevent data loss because save will always occur to a local database (A or B) while sync will always occur (via the trigger) to database X. Database updates will migrate from database A to B and vice versa via the intermediary database i.e. when A syncs with X and B syncs with X.

    Usually syncing on database Open/Unlock and/or Close/Lock is sufficient, but it is possible to configure more frequent syncs.

     
    Last edit: wellread1 2013-10-18