[8.18.1] - 2025-04-17
Added
SecretStore
class tobuilder.py
for secure storage of sensitive data,
includingpassword
,bearer_auth
,api_key
, andopaque_id
. This
class is integrated into theBuilder
class, ensuring sensitive data is not
exposed in logs or exceptions, and is redacted in__repr__
outputs, and are
removed from the in-memory DotMap representations of the config.- Adding
SecretStore
required the additional dependency of"cryptography>=44.0.2"
- Comprehensive reStructuredText (reST) docstrings for all modules, classes, and
functions inbuilder.py
,logging.py
,config.py
,schemacheck.py
,
utils.py
,exceptions.py
, andcommands.py
, detailing inputs, outputs,
raises, and examples. - Doctests for testable functions and classes across all modules, ensuring
functionality verification without external dependencies (e.g., mocked
click.Context
,Elasticsearch
client). - Custom
__repr__
methods for classes inbuilder.py
(Builder
,
SecretStore
),logging.py
(Whitelist
,Blacklist
,JSONFormatter
),
schemacheck.py
(SchemaCheck
), andexceptions.py
(all exception classes),
enhancing debugging with secure, redacted outputs. - Cloned the
password_filter
function fromschemacheck.py
into
exceptions.py
to avoid circular import, maintaining redaction for sensitive data
in exception messages.
Changed
- Enhanced security by ensuring no sensitive data (e.g., passwords, API keys)
appears in docstrings, doctests, or__repr__
outputs, leveraging
password_filter
for redaction. - Updated
test_builder.py
to align withbuilder.py
’sSecretStore
integration, fixing failing tests (test_pass_but_no_user
,test_proper_api_key
,
test_proper_api_key_token
) by checking_secrets.get_secret
and verifying
sensitive data cleanup. - Preserved all existing functionality, imports, comments, and pylint directives
in all modules, adding only documentation and minor formatting for line length
compliance. - Adjusted
commands.py
to include all three commands (show_all_options
,
test_connection
,test_stderr
) with detailed docstrings and doctests,
retaining extensive comments onSHOW_EVERYTHING
usage. - Bumped version of
tiered-debug
to1.2.1
inpyproject.toml
and
requirements.txt
.