utils.keepass¶
KeePassSettings ¶
Bases: ServiceSettings
Settings for the KeePass service.
Configuration settings for accessing KeePass password databases, supporting authentication using both keyfiles and passwords.
settings_customise_sources
classmethod
¶
settings_customise_sources(
settings_cls: type[BaseSettings],
init_settings: PydanticBaseSettingsSource,
env_settings: PydanticBaseSettingsSource,
dotenv_settings: PydanticBaseSettingsSource,
file_secret_settings: PydanticBaseSettingsSource,
) -> tuple[PydanticBaseSettingsSource, ...]
Customizes the settings sources to include the safe YAML settings source.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settings_cls
|
type[BaseSettings]
|
The settings class |
required |
init_settings
|
PydanticBaseSettingsSource
|
The initial settings source |
required |
env_settings
|
PydanticBaseSettingsSource
|
The environment settings source |
required |
dotenv_settings
|
PydanticBaseSettingsSource
|
The dotenv settings source |
required |
file_secret_settings
|
PydanticBaseSettingsSource
|
The file secret settings source |
required |
Returns:
| Type | Description |
|---|---|
tuple[PydanticBaseSettingsSource, ...]
|
Tuple[PydanticBaseSettingsSource, ...]: A tuple of settings sources |
Source code in src/clabe/services.py
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 | |
KeePass ¶
KeePass(settings: KeePassSettings)
Bases: Service
KeePass password manager service for accessing password database entries.
Provides an interface for connecting to and retrieving entries from KeePass password databases, supporting both keyfile and password-based authentication.
Methods:
| Name | Description |
|---|---|
get_entry |
Retrieves a password entry by title |
Initialize the KeePass service with the provided settings.
Creates a connection to the KeePass database using the authentication credentials specified in the settings. The connection is established immediately upon initialization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settings
|
KeePassSettings
|
Configuration settings containing database path and authentication credentials |
required |
Raises:
| Type | Description |
|---|---|
FileNotFoundError
|
If the database file cannot be found |
CredentialsError
|
If the provided authentication credentials are invalid |
IOError
|
If there's an error reading the database or keyfile |
Example
settings = KeePassSettings(database=Path("passwords.kdbx"))
keepass = KeePass(settings)
Source code in src/clabe/utils/keepass.py
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | |
get_entry ¶
get_entry(title: str) -> Entry
Retrieve a password entry from the database by title.
Searches the KeePass database for entries matching the specified title and returns the first match found. Entry titles are typically unique within a database, but if multiple entries share the same title, only the first one encountered will be returned.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
title
|
str
|
The title of the entry to retrieve. This should match the entry title exactly (case-sensitive) |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Entry |
Entry
|
The KeePass entry object containing username, password, and other metadata associated with the specified title |
Raises:
| Type | Description |
|---|---|
ValueError
|
If no entry is found with the specified title |
Example
# Retrieve credentials for a service
entry = keepass.get_entry("GitHub API Token")
token = entry.password
# Access other entry properties
username = entry.username
url = entry.url
notes = entry.notes
Source code in src/clabe/utils/keepass.py
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | |