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
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | |
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 | |