From comments to my earlier MiniKeePass articles[1,2], it was clear that there were a couple unanticipated behaviors that some users experienced in the program’s interaction with Dropbox. And while I am certainly no official support channel for either, I thought it would be worthwhile to document & clarify those issues here. It is natural to categorize these behaviors as ‘bugs’, though this is debatable. But just knowing what to expect goes a long way to forgiving.

KeePass Suffixes

The KeePass 2.x database format uses .kdbx as a file suffix, while a 1.x uses .kdb. MiniKeePass can support either type, because a handler has been registered for both. When the Dropbox export function is called, those handlers ensure that MiniKeePass shows as a possible destination. If there is no matching handler, the program will not show up in the list as a possible target. Similarly, in order for MiniKeePass to recognize key files in a Dropbox export, the file must have a .key suffix to correspond to what the Dropbox handler expects.

MiniKeePass not showing as a Dropbox export target? Check your file names, or rather, your file suffixes.

Export To MiniKeePass Not Available

Another reason that “MiniKeePass” would not show up in Dropbox as an export target is if the handler did not properly register. The handler is installed as part of MKP, but its registration in Dropbox is a pure Dropbox-ism.

I had a situation migrating both apps from iPhone to (virgin) iPad where there was no export target available. Deleting and reinstalling MKP did not help. But as soon as I deleted and reinstalled Dropbox, the handler appeared. This is because installing Dropbox forces all handlers to register.

When at wit’s end, reinstall Dropbox.

Importing On The iPad

The iPad version of Dropbox utilizes a dual-pane view for its GUI – directory navigation on the left and file contents on the right. In contrast, the iPhone view is more modal, with the full screen showing directory contents during navigation and view/export options when a file is selected.

iPad users were noticing that the export from Dropbox was often the older version of the KeePass data. It turns out that even though the navigation pane was refreshing with new dates, the file pane did not update.

iPad not importing the updated database? Try viewing a different file in Dropbox before going back to try the kdb/kdbx.

Exporting Database Changes To Dropbox

iOS has no user-accessible filesystem, only storage that exists within each program. So when a ‘file’ is imported or exported within Dropbox, it is not your typical filesystem action but rather just a data stream transfer between programs. iOS acts as the intermediary in this transfer between MiniKeePass and the Dropbox app, writing to an ‘Inbox’ that Dropbox can then pick up via its SDK. It is up to the app to determine what to do with the data in its Inbox, as well as the responsibility to clear the Inbox once the action has been taken.

Some have experienced a situation where a new (numbered) database is created upon export to Dropbox rather than overwriting the intended master copy. There are at least 2 reasons this might happen:

  1. If the iOS-managed Inbox was not cleared by the participating app, there could be a name collision the next time a similar action is taken. If a name collision happens, iOS will automatically resolve by appending a -1, -2, -3, etc in order to ensure uniqueness. There could be any number of reasons for this behavior, including an export occurring while the iDevice was off-net.
  2. If the overwrite flag is not set in the Dropbox API call, Dropbox itself will create numbered revisions. (I’m not sure if this is even likely, or who – MiniKeePass or the iOS intermediary – would be responsible. It was just something I noticed while reading the REST API document.)

Regardless of the possibilities, it would appear that MiniKeePass is not to blame on this one. A check of the Dropbox support forums shows that other apps are similarly affected. There is even a suggested possibility that Dropbox 1.5.3 resolves this issue.

Export to Dropbox creating database-1, database-2, etc? Assuming the new client doesn’t fix, try renaming (or deleting) the file in Dropbox before the export is attempted in MiniKeePass.