jabashque 1c548daaf4 Overhaul group and subgroup creation to better match Bitwarden behavior
In Bitwarden, one could make it so their account only has a certain set
of folders, like so:
- testfolder/a
- testfolder/a/b/c
- testfolder/a/b/c/d

The resulting hierarchy would look like this:
testfolder/a
`- b/c
   `- d

As shown above, Bitwarden allows one to name a folder something like
"foo/bar" even if a folder "foo" doesn't exist. Bitwarden handles this
by just putting this folder in the root with the name as-is.

In addition, as shown with "testfolder/a/b/c", a folder name may not
necessarily be just anything that comes after the last `/` delimiter.
Instead, it's dependent on which ever existing folder happens to match
the most of the folder's name's prefix.

As such, the following references were used to replicate this behavior
in bitwarden-to-keepass:
ecdd08624f/common/src/services/folder.service.ts (L108)
ecdd08624f/common/src/misc/serviceUtils.ts (L7)
2021-07-26 09:44:11 -07:00
2020-12-25 20:24:54 +01:00
2019-10-06 15:29:38 +02:00
2019-10-06 15:29:38 +02:00
2021-06-26 16:46:55 +02:00

bitwarden-to-keepass

Export (most of) your Bitwarden items into KeePass database.

How it works?

It uses official bitwarden-cli client to export your items from Bitwarden vault and move them into your KeePass database - that includes logins (with TOTP seeds, URIs, custom fields, attachments, notes) and secure notes.

Usage with docker (docker-compose) - recommended

  • Clone this repository
  • Edit .env file
    • ⚠️ make sure to set your own DATABASE_PASSWORD - used as password for KeePass database
  • Run
docker-compose run bitwarden-to-keepass
  • You will be interactively asked to login with bitwarden-cli
  • After the process is finished your database export is in exports directory

Usage without docker (venv)

  • Clone this repository
  • Run
make build
  • You can either create new (empty) KeePass database (tested with KeePassXC but it will probably work with others) right now, otherwise one will be created when the script is executed
  • Go into the virtual environment
source .venv/bin/activate
  • Download official bitwarden-cli and do bw login (you need BW_SESSION for export to work).
  • Run
python3 bitwarden-to-keepass.py --bw-session BW_SESSION --database-path DATABASE_PATH --database-password DATABASE_PASSWORD [--database-keyfile DATABASE_KEYFILE] [--bw-path BW_PATH]
Description
Export (most of) your Bitwarden items into KeePass (kdbx) database. That includes logins - with TOTP seeds, URIs, custom fields, attachments and secure notes This is a mirror from https://github.com/rogsme/bitwarden-to-keepass
Readme GPL-3.0 302 KiB
Languages
Python 91.2%
Shell 5.6%
Dockerfile 3.2%