keepassxc/src/fdosecrets
Sami Vänttinen fbdd97b1be
Refactor Database Settings (#9485)
Includes following changes:

* Encryption Settings now has a similar key with the new database wizard for switching between Advanced and Simple Settings
* The extra UI layer DatabaseSettingsDialog.ui has been removed. DatabaseSettingsDialog class now inherits EditWidget instead of DialogyWidget (just like Application Settings).
* Extra classes for separate page settings (DatabaseSettingsPageFdoSecrets, DatabaseSettingsPageKeeShare) have been removed. Instead the widgets are used directly in DatabaseSettingsDialog. Same could be done later to Application 

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-22 07:25:32 -04:00
..
dbus Add support to get process name on FreeBSD 2023-12-21 12:32:51 -05:00
objects Fix all Qt 5.15 deprecation warnings (#7783) 2024-06-22 07:22:44 -04:00
widgets Fix all Qt 5.15 deprecation warnings (#7783) 2024-06-22 07:22:44 -04:00
CMakeLists.txt Refactor Database Settings (#9485) 2024-06-22 07:25:32 -04:00
FdoSecretsPlugin.cpp Optimize includes across code base 2021-07-13 22:08:33 -04:00
FdoSecretsPlugin.h Optimize includes across code base 2021-07-13 22:08:33 -04:00
FdoSecretsSettings.cpp Preserve Secret Service exposed group setting on merge 2024-04-29 08:50:46 -04:00
FdoSecretsSettings.h FdoSecrets: Implement unlock before search 2021-10-16 22:50:04 -04:00
README.md FdoSecrets: reject setting refs via the API (#7043) 2021-10-24 10:22:50 -04:00

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::Service is the top level DBus service
  • There is one and only one FdoSecrets::Collection per opened database tab
  • Each entry under the exposed database group has a corresponding FdoSecrets::Item DBus 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