Allow importing into a folder, to cordon off the import's results from your well kept vault

feature name: import into an arbitrary folder

import directly into an empty folder

a custom or auto-generated folder, preferably custom I think, but maybe the import form can be pre-filled with a suggested auto-generated result (like that of what mktemp does on a desktop environment)

Feature function

  • What will this feature do differently?
    • before:
      • import UI: specify CSV (and it has row foo)
      • → your vault now has a foo entry
    • after:
      • import UI: specify folder (eg my-imports/bar) and CSV (and it has row foo)
      • → your vault now has a my-imports/bar/foo entry.
  • What benefits will this feature bring?
    1. non-destructive imports: you don’t have to worry about making a mess of your vault if you’ve
    2. keeping your vault fresh with the latest dumps from other applications (eg. Google chrome’s CSV dump)
    3. confident experimental/testing of imports (ie less surprising UX): today, simply not knowing what’s going to happen (after you click import) means this is simply a scary action. There’s no reason to make this so high stakes, when bitwarden supports folders already. This will let users ensure they’re not surprised (and then they can delete the folder and the import and run the import again if it appears everything parsed and laid out correctly).

caveats/considerations

empty folder isn’t a requirement

I’d even caveat that my requirement in the featurename “empty folder” shouldn’t be taken strictly. that is: perhaps if I pass a folder path that’s a non-empty folder, you should warn me, but not prevent me. I can imagine this being useful for myself. For example with keepassxc, I would frequently dump chrome’s CSV directly into a “google chrome” folder. I wouldn’t care what happened to the prior import results necessarily (in fact sometimes I’d delete them just before import), so with bitwarden, I might purposely choose to let the import clobber whatever existing content exists in my hand-crafted hand-imports/google-chrome/ folder.

“kiss”; don’t over-index on “google chrome” case & user-journeys

In the thread linked below there’s evidence of some very specific user journeys that folks want to have solved - and they make sense! But I would be frustrated if a feature was released like “auto-de-duper-importer from Google Accounts passwords” (and this post marked solved as as result), because someone was trying to implement the entire user journey with lots of hand-holding that left me out. I really do want just a general feature here: just let me specify a folder. I’m not always going to be importing from google chrome. In fact I import from my own keepassxc, and I imagine this will be helpful in other unimagined ways in the future too.

Related topics + references

Here’s a possible workaround that we can use until heck freezes ov-, um, i mean, until devs get around to this basic feature request. This process takes a lot more time to explain than to actually do it:

  • Log in to the web vault.
  • Create a new folder called e.g. “existing”.
  • Move all your existing logins to the new folder. Easy way is drop down the “gear” button at the top and “select all”. Click it again and “move”.
  • Do your import as usual. These always land in “No Folder” so don’t have your stuff there when you begin.
  • IMPORTANT: LOG OUT of the web vault after importing! Until you do, you can’t see any of the items you just imported! It looks exactly like the import failed completely, when BW said it succeeded. It probably did work, you just can’t see them. Come on, devs! Got to fix this too!
  • Log in again to web vault.
  • Select all the “No Folder” logins (the imported ones) and “move” them to another folder where you can organize and deduplicate them. You should probably name that folder the same as the device or browser where those logins came from.
  • Move all your existing logins back to “No Folder” if you really want to, or just leave them in “existing” folder (as I’ve done) to be ready for your next import from your next device.