- Introduce '[daemon]bounce_on_keys_missing' option to let the admin decide if
they want Lacre to deliver cleartext message when identity database is
unreachable or throws exceptions. It defaults to 'no'.
- In IdentityRepository, use option mentioned above to decide what to do when
an exception is caught.
- Let the user specify a directory, using the one from configuration by
default.
- If user requested identity list without a specific email, list all. Drop
support for '-a' option.
- Don't pass table definitions to repository constructors.
- Keep an internal reference to Engine in lacre.repository.
- Implement KeyConfirmationQueue.count_keys.
- Flush key-collecting structures each time a new public key entry is found.
This will avoid adding sub-keys and overwriting main keys with them.
- Use parseaddr from email.utils to parse emails (and drop realname part).
- Record logs produced during unit tests.
- Fix a small bug in test code.
Also: add basic information about available test identities to testing
documentation.
- Keep only one class to provide access to identities stored in the database.
- Remove old code and its tests.
- Align KeyRing and IdentityRepository APIs.
- Implement a (very) simple unit test for IdentityRepository.
Introduce new Python modules:
- lacre.notify -- to send notifications from the cron script;
- lacre.dbschema -- to keep database schema definition as code (SQLAlchemy);
- lacre.repositories -- to define key and identity repositories with high
level APIs that we can then use elsewhere.
Also:
- rework GnuPG.add_key to return fingerprint so we can use it in the cron
script;
- rename cron-job's logger name, replacing dash with an underscore as logging
module doesn't like dashes.