mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2026-03-11 08:54:48 +00:00
* Entry: re-parent before adding to new group Adding the Entry to the Group will emit signals about the action. Present the object with the correct parent already. * fdosecrets: Item::Create() can fail If an entry cannot be registered on DBus, Item::Create() will return a nullptr. Basically, this can only happen if there is already an item with the same UUID in the collection. The only viable option here is to ignore the new entry. * Merger: prevent duplicate entry when merging histories If the source entry is newer, a copy of the entry is made. But before moving the merged entry to the target group, it must be removed. Otherwise there will be briefly two entries with the same UUID in the same group/database. Even though this is only the case during the transaction, it can still be observed because the operations emit signals. A notable problem is the fdosecrets feature that relies on the uniqueness of the UUID or will otherwise run into problems because the UUID is used as part of the DBus path. |
||
|---|---|---|
| .. | ||
| dbus | ||
| objects | ||
| widgets | ||
| CMakeLists.txt | ||
| DatabaseSettingsPageFdoSecrets.cpp | ||
| DatabaseSettingsPageFdoSecrets.h | ||
| FdoSecretsPlugin.cpp | ||
| FdoSecretsPlugin.h | ||
| FdoSecretsSettings.cpp | ||
| FdoSecretsSettings.h | ||
| README.md | ||
Freedesktop.org Secret Storage Spec Server Side API
This plugin implements the Secret Storage specification version 0.2. While running KeePassXC, it acts as a Secret Service server, registered on DBus, so clients like seahorse, python-secretstorage, or other implementations can connect and access the exposed database in KeePassXC.
Configurable settings
- The user can specify if a database is exposed on DBus, and which group is exposed.
- Whether to show desktop notification is shown when an entry's secret is retrieved.
- Whether to confirm for entries deleted from DBus
- Whether to confirm each entry's access
Implemented Attributes on Item Object
The following attributes are exposed:
| Key | Value |
|---|---|
| Title | The entry title |
| UserName | The entry user name |
| URL | The entry URL |
| Notes | The entry notes |
| TOTP | The TOTP code if the entry has one |
In addition, all non-protected custom attributes are also exposed.
Implementation
FdoSecrets::Serviceis the top level DBus service- There is one and only one
FdoSecrets::Collectionper opened database tab - Each entry under the exposed database group has a corresponding
FdoSecrets::ItemDBus object.
Signal connections
Collection here means the Collection object in code. Not the logical concept "collection"
that the user interacts with.
- Collections are created when a corresponding database tab opened
- If the database is locked, a collection is still created
- When the database is unlocked, collection populates its children
- If the unlocked database's exposed group is none, collection deletes itself
- If the database's exposed group changes, collection repopulates
- If the database's exposed group changes to none, collection deletes itself
- If the database's exposed group changes from none, the service recreates a collection