20 Commits

Author SHA1 Message Date
526421e340
Refactor Bitwarden to KeePass conversion logic 2024-12-04 20:06:17 -03:00
4b3e89669a
Added docstrings 2024-12-04 19:32:09 -03:00
David Němec
5104c5c0f3
Set hidden custom fields as protected
Closes #3
2023-07-18 09:43:00 +02:00
diogotito
8a427a9e69 Handle multiple URLs and mobile apps
Multiple androidapp:// go to AndroidApp, AndroidApp_1 and so on
Multiple URLs go to URL_1, URL_2 and so on
This mimics the way the KeePassDX app handles multiple URLs for it's autofill mechanism
2022-10-04 15:01:22 +01:00
David Němec
76604fcbe6
Do not download attachments to tmpfs, instead save them directly to KeePass database 2022-06-11 15:52:33 +02:00
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
jabashque
c59426e4f0 Support nested folders properly
When creating KeePass groups based off Bitwarden folders, make it so
that the KeePass groups follow the same hierarchy as their equivalent
Bitwarden folders.
2021-06-26 01:35:04 -07:00
David Němec
3bb5f3be3b
Catch exceptions for every entry property
Fixes #6
2021-04-21 11:28:29 +02:00
David Němec
12be55fec2
Continue outer loop properly
Relates with previous commit 8e485b184405d34f8de8dacd4f64258c9675e488
2021-03-05 18:23:53 +01:00
David Němec
8e485b1844
Skip item when it cannot be exported for any reason and warn user about it instead of failing export
Fixes #5
2021-03-05 18:04:07 +01:00
David Němec
dc5ffdf00b
Skip exporting identity items 2021-03-05 17:53:24 +01:00
David Němec
17ebc43111
Update logging format 2021-03-05 17:52:29 +01:00
David Němec
ef90e20d42
Use empty string for custom fields name/value when empty (returned as null from api)
Fixes #2
2021-01-09 09:32:12 +01:00
David Němec
9fc8bcf9a8
Make exporting easier with docker-compose 2020-12-25 20:24:54 +01:00
David Němec
99194c40d3
Export fails when there is more than 1 item with the same name
Bitwarden allows this, KeePass does not
2020-12-25 19:45:40 +01:00
Gabriel Proust
c0c31cee5b Use CredentialsError from pykeepass instead of CredentialsIntegrityError 2020-12-25 16:47:16 +01:00
David Němec
9e87a9c313
Create new (empty) KeePass database if specified does not exists 2020-04-15 17:29:56 +02:00
David Němec
36ad48c068
Escape argument values 2020-04-15 17:27:30 +02:00
David Němec
7537044de0
Allow KeePass database with Key File 2019-11-02 10:18:03 +01:00
David Němec
44e8e8dac4
Initial commit 2019-10-06 15:29:38 +02:00