Strongbox: Offline Editing and Syncing

Created on 31 Jan 2019  ·  12Comments  ·  Source: strongbox-password-safe/Strongbox

when trying to decrypt one of my databases i released it was taking a very long time to decrypt. Or rather it had the "buffering" circle but never said decrypting. After turning on Aeroplane mode on my phone it very quickly went to the "buffering" circle and the decryption text, unlocking the database very quickly.

I have deduced from this that it was syncing my networked database with the local copy, but as i was on a slow network, and i have a large database it was taking a very long time. And it was a pain as I did not need to sync and it was taking a very long time to gain access to my passwords.

As such would it be possible when strongbox is opened to query if the database(s) has been updated, by comparing latest modified dates or something? and then if the local database is the same move directly to decrypting the database. If not then provide a button to sync databases, or if the user decides not to sync make it know that they cannot make changes / the database is out of date?

Is this clear?

enhancement iOS

Most helpful comment

Hi @UtXtiQArZE , Yes reasonably clear. I wonder if something like the following would work. Basically have a Setting called "Open Cache if Unchanged" or something like that?

The easiest way to do this now is to turn on Airplane mode as you've noticed.

This might fit in with the larger project of 'Advanced KeePass Sync', where not only is the timestamp compared, but then also a kind of smart merge of the Database is done, so that you can have multiple editors.

It's definitely a feature I'd like to get in soonish.

All 12 comments

Hi @UtXtiQArZE , Yes reasonably clear. I wonder if something like the following would work. Basically have a Setting called "Open Cache if Unchanged" or something like that?

The easiest way to do this now is to turn on Airplane mode as you've noticed.

This might fit in with the larger project of 'Advanced KeePass Sync', where not only is the timestamp compared, but then also a kind of smart merge of the Database is done, so that you can have multiple editors.

It's definitely a feature I'd like to get in soonish.

yes, an "Open Cache if Unchanged" setting in the short term sounds great.

and the Advanced KeePass Sync sounds brilliant.

thanks so much for the hard work and development in this project. it really is very much appreciated.

Well thanks for the kind words, much appreciated...

Re: this short term measure, it might not be so trivial either, the problem is getting the metadata (last modified date in this case), is a separate operation across all of the providers (Google, Dropbox, iCloud, Local, WebDAV, SFTP, OneDrive), so 7 implementations, and the relevant work to unify this and abstract (Work that would need to be done for the KeePass Sync option anyway).

It could take a while, and so the best thing for the short term might be to flick on Airplane mode (not ideal I know).

no worries, understand that its a lot of work, when i said short term, i only meant in terms of compared to the keypass sync.

I use the sFTP sync method. I have following issues: at setup (access an existing database - sFTP), the host field accepts the form host:port, which is not documented. I just tried it out. Looking at log files on the server, every time the database is opened, sFTP syncs. I haven't found this in the documentation. Finally, I see no way to change the sync method of an existing database, if only to update the credentials, or to set up the use of a key pair instead of a password.

Hi @w-oertl,

You have 3 points there, let me take them in turn:

1) Undocumented host/port format during Connect

  • Yes, that's fair, I'll add or placeholder text indicating this is possible in the next release.

2) "every time the database is opened, sFTP syncs"

  • Yes, well I'm not sure sync's is the right word, but it will READ from your SFTP server every time it is opened. This is standard with all storage providers (Strongbox reads directly from and writes directly to the storage, no caching is involved in the normal path).

I'll add an FAQ for that if you'd like. Could you tell me what other information you'd like in there, or what you were initially expecting?

3) I see no way to change the sync method of an existing database.

  • Yes, that is missing. Typically people just remove and re-add to make changes to storage settings. Hopefully not too much of an inconvenience.

Cheers,
-Mark

Thanks for the quick reply and explanation. I expected Strongbox to work with a local copy and "sync" that occasionally with the provided location. Regarding the changing of the sync method: that's OK.

Hi @mmcguill,

I have to say that I was a bit surprised to see that the database is fetched from the remote sync source(SFTP in my case) each time it is opened. I don't like my password database lying on any cloud storage provider and I sync between my phone and my laptop. So, when I am on the move, the SFTP server is of course not available.

I would expect if Strongbox works with a local copy of the database (there is also an added performance benefit). The synchronization with the remote source can be done in two ways - either when the user chooses to sync manually OR an auto-sync(periodically).

I really like Strongbox and prefer it among other iOS Keepass apps, but this is kind of blocking issue for me. Is there any chance to change the way sync works?

Hi @basekat, this is something I'd like to work on, and something on the list... purely a matter of prioritisation.

With version 1.27.2, you have the option (slide left) to open the offline cache directly from the home screen. This will be read only, but may help you somewhat.

Background synchronisation is a non trivial feature (lots of edge cases/failure modes) and requires significant work across the various storage providers (Dropbox, Google Drive, OneDrive etc)...

Hi devs. Is there any chance of getting a rough update on how this " Advanced Sync (Offline Editing & Merging)" is progressing?

Hi @gitbq - Yes, there are two kind of distinct but related features covered by this issue:

1) Synchronization / Merging of two versions of the same database
2) Offline Editing

2 is actually almost done (you can see this in practice through AutoFill editing)... However I'm reluctant to enable it App wide before 1) just because it is likely to cause conflicts.

1) - Sync/Merging, is actually under development now, but it's a big feature... I'd estimate another 6 weeks or so. So getting close :)

Hi @strongbox-mark - Thanks so much for the heads up.
We'll be getting the pro version of the app as soon as that drops.

Thanks for your hard work and quick responses!

Was this page helpful?
0 / 5 - 0 ratings