pfm
d3f1aa3a02
Merge pull request 'Improve error handling' ( #146 ) from error-handling into main
...
Reviewed-on: #146
2024-03-03 08:35:03 +00:00
Piotr F. Mieszkowski
e28864074c
Log exception and traceback when we fail-over to cleartext
2024-03-03 09:26:50 +01:00
Piotr F. Mieszkowski
0ec1bc3056
Set default values for non-nullable lacre_keys columns
2024-03-03 09:25:14 +01:00
Piotr F. Mieszkowski
110ea885f2
Deliver cleartext if Unicode encoding or message serialisation fail
2024-03-02 18:36:41 +01:00
Piotr F. Mieszkowski
3138864d32
Include exception in ExecutionTimeLogger log record
...
Also: cover ExecutionTimeLogger with a unit test.
2024-03-02 18:06:51 +01:00
pfm
1d8acc8eb8
Merge pull request '142_lacreadm' ( #145 ) from 142_lacreadm into main
...
Reviewed-on: #145
2024-03-01 19:50:10 +00:00
Piotr F. Mieszkowski
8006b96df2
Rename lacreadm wrapper, mention it in documentation
2024-03-01 19:47:10 +00:00
Piotr F. Mieszkowski
f80e4ecb9e
Implement a very thin wrapper around 'python -m lacre.admin'
2024-03-01 19:47:10 +00:00
Piotr F. Mieszkowski
676ff47933
Don't ignore 'bin' directory
2024-03-01 19:47:10 +00:00
Piotr F. Mieszkowski
f1c135850c
lacre.admin: Report misconfiguration
...
Also: log more info when the daemon starts.
2024-03-01 19:47:10 +00:00
pfm
ccfaa39501
Merge pull request 'Fix unencrypted delivery' ( #144 ) from v0.2_unencrypted-delivery-fix into main
...
Reviewed-on: #144
2024-03-01 19:34:19 +00:00
Piotr F. Mieszkowski
7806d8c32a
Log message headers on a hard error
...
When we know we need to bounce a message and [daemon]log_headers is enabled,
we record up to 2.5kB of message headers at ERROR level. This could help
diagnosing issues later.
Also: no longer record MIME Type, Charset and Content-Transfer-Encoding, as
the issues related to these properties no longer occur.
2024-03-01 20:28:51 +01:00
Piotr F. Mieszkowski
04ca103494
Fix unencrypted delivery in case of message generation failure
...
When we fail to produce byte representation of the email message being
processed, we may end up bouncing a message. An example of such case would be
a message with a Message-Id header that Python's email parser library cannot
process.
In such cases, just take whatever original content we have received and pass
it to the destination without touching it to minimise any chances of breaking
the overall flow.
2024-03-01 20:14:09 +01:00
pfm
d75ded751e
Merge pull request 'Rename GPG-Mailgate to Lacre' ( #138 ) from 81_rename-to-lacre into main
...
Reviewed-on: #138
2024-02-23 07:35:21 +00:00
Piotr F. Mieszkowski
f601080e87
lacre.admin: Add more 'queue' documentation, clean up
2024-02-23 08:33:47 +01:00
Piotr F. Mieszkowski
80c25f6d2e
lacre.admin: Document new sub-command 'database'
2024-02-23 08:25:52 +01:00
Piotr F. Mieszkowski
aa2eb604d4
lacre.admin: Add a sub-command to manipulate database schema
...
- It supports option '-i' to initialise the schema.
- It logs a warning-level record of the schema manipulation.
2024-02-21 21:10:49 +01:00
Piotr F. Mieszkowski
f7e6708949
Adjust lacre.dbschema to reflect original schema.sql
...
- Set nullability of columns.
- Set up primary keys and auto-increment where necessary.
- Add missing 'lacre_locks' table.
- Implement a function to create tables.
2024-02-21 21:10:49 +01:00
Piotr F. Mieszkowski
be615df6e4
Split webgate-cron.py into small functions
2024-01-21 11:28:46 +01:00
Piotr F. Mieszkowski
bfd3541b18
Retrieve data from db result before returning from Context Manager
...
SQLAlchemy's connection is a Context Manager and if we return a result from
code wrapped in a Context Manager, its cursor might already be closed.
2024-01-20 18:52:47 +01:00
Piotr F. Mieszkowski
8d2bf403a7
Add lacre.admin queue --list option, log query parameters
2024-01-16 20:33:23 +01:00
Piotr F. Mieszkowski
55a369df83
Add debug sqlalchemy logs (disabled by default)
2024-01-08 22:45:59 +01:00
Piotr F. Mieszkowski
cd67b0934e
Unify configuration requirements
2024-01-08 22:19:10 +01:00
Piotr F. Mieszkowski
276e0d0cd4
Use one config for cron and daemon tests
2024-01-07 21:52:52 +01:00
Piotr F. Mieszkowski
bc2fc53416
Update gitignore: generated config, project name
2024-01-06 15:46:33 +01:00
Piotr F. Mieszkowski
260a3f3e9c
Configure pooling for cron tests
2024-01-06 15:26:18 +01:00
Piotr F. Mieszkowski
a943b50adb
Update test configuration after renaming
2024-01-06 15:06:36 +01:00
Piotr F. Mieszkowski
a98ff611ee
Continue renaming: config files, tests, docs
2024-01-06 14:45:09 +01:00
Piotr F. Mieszkowski
ad3a54fcd7
Rename GPG-Mailgate to Lacre
...
Update naming in documentation and the source code.
2024-01-06 14:34:54 +01:00
Piotr F. Mieszkowski
7208f66527
Improve simple filter structure
2024-01-05 22:21:20 +01:00
Piotr F. Mieszkowski
a09fd67a59
Make keys unexpirable
2024-01-05 22:11:14 +01:00
pfm
748fd00957
Merge pull request 'lacre.repositories: Configure SQLAlchemy connection pooling' ( #136 ) from connection-pooling into main
...
Reviewed-on: #136
2024-01-04 18:52:03 +00:00
Piotr F. Mieszkowski
8f8f081d28
Fix key-removal condition, improve logging
2024-01-04 19:45:25 +01:00
Piotr F. Mieszkowski
07539a97d3
Improve logging
...
- Don't re-configure lacre.notify logger.
- Issue more DEBUG logs when deleting keys.
2023-12-20 23:03:04 +01:00
Piotr F. Mieszkowski
5c327b166a
webgate-cron: Log more information, including exceptions
2023-12-19 18:21:00 +01:00
Piotr F. Mieszkowski
41b7535412
Add more logging, add --delete option to admin queue sub-command
2023-12-19 09:02:42 +01:00
Piotr F. Mieszkowski
9b5d578985
lacre.config: Make both enums case-insensitive
...
Also: use PGPStyle in lacre.core.
2023-12-17 20:42:57 +01:00
Piotr F. Mieszkowski
ff429c93e6
Convert pooling parameters to integers
2023-12-17 14:12:52 +01:00
Piotr F. Mieszkowski
90da933bf9
Make disconnect handling configuration explicit
...
- Provide a new reuqired parameter: [database]pooling_mode and use it during
SQLAlchemy engine initialisation.
- Update tests and configuration (including sample configuration).
- Adjust repository unit test to load config during setup.
- Pass an engine instance to repository constructors instead of connections.
Engine keeps a connection pool and we rely on it.
2023-12-17 14:03:20 +01:00
Piotr F. Mieszkowski
86cc27e918
lacre.repositories: Configure SQLAlchemy connection pooling
...
Provide 3 new configuration parameters in database section:
- max_connection_age --- number of seconds before an idle connection is
"recycled", i.e. replaced with a new one;
- pool_size --- number of simultaneous connections kept in the pool;
- max_overflow --- maximum number of simultaneous connections we could make to
the database.
Update sample config, including links to documentation.
2023-12-16 23:32:27 +01:00
pfm
18a64bcd72
Merge pull request 'Add ability to deliver cleartext when keys can't be loaded' ( #135 ) from fix/keys-not-loaded into main
...
Reviewed-on: #135
2023-12-10 20:41:48 +00:00
Piotr F. Mieszkowski
e8d0d248b3
lacre.repositories: Add missing import
2023-12-10 21:39:59 +01:00
Piotr F. Mieszkowski
23a05c11ac
Remove EncryptionException formatting test
2023-12-10 21:35:35 +01:00
Piotr F. Mieszkowski
8cc1136a90
lacre.daemon: When keys can't be loaded, fail gracefully
...
- 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.
2023-12-10 21:27:05 +01:00
pfm
628de8a28d
Merge pull request 'Fix cron script and more' ( #134 ) from fix/cron-script into main
...
Reviewed-on: #134
2023-12-09 20:26:37 +00:00
Piotr F. Mieszkowski
c0b98649d4
lacre.admin: Document import command
2023-12-09 21:14:35 +01:00
Piotr F. Mieszkowski
fe2c0cbf76
Fix unprintable exception issue
2023-12-09 20:57:09 +01:00
Piotr F. Mieszkowski
75c48282b0
Rework encryption exception handling
...
Also: remove misleading comment about message.defects.
2023-12-09 20:38:46 +01:00
Piotr F. Mieszkowski
fc08813bdc
Improve unencryptable message logs
2023-12-09 19:48:20 +01:00
Piotr F. Mieszkowski
d51c675881
lacre.admin: Make import -r option a flag (Boolean)
2023-12-05 21:51:35 +01:00