Wez Furlong
3e97cea1f6
docs build: simplify dep logic a little
2023-03-07 11:31:01 -07:00
Wez Furlong
8d529d1692
ci: ensure we use the cargo.lock locked deps for cargo installed stuff
2023-03-07 11:30:24 -07:00
Wez Furlong
7df50feb64
ci: streamline workflows a bit
2023-03-07 11:25:40 -07:00
Wez Furlong
258d9f8f64
docs: add a bit of an explanation about queueing
2023-03-07 08:27:44 -07:00
Wez Furlong
a05724e40c
auto-format generate-toc.py too
2023-03-07 07:36:50 -07:00
Wez Furlong
6d23055570
deps: update to revised maildir PR
2023-03-07 07:20:57 -07:00
Wez Furlong
3e203eb0d1
switch to my redis-cell fork to avoid shared object in the build
2023-03-07 06:47:17 -07:00
Wez Furlong
96350031dc
add index pages for redis and sqlite
2023-03-06 20:19:16 -07:00
Wez Furlong
7054fb31c9
switch to using human time for the queue related time intervals
2023-03-06 19:33:05 -07:00
Wez Furlong
5bb9363aaa
docs: format
2023-03-06 19:16:35 -07:00
Wez Furlong
2ec5f49ea0
docs: fixup dkim page
...
mdbook's mermaid support doesn't like the embedded titles
2023-03-06 19:15:13 -07:00
Wez Furlong
6dfbaf1113
docs: tweak user guide
2023-03-06 19:09:05 -07:00
Wez Furlong
00c253a9dd
add maildir support
...
This is to facilitate end-to-end testing to validate that the
right bits come out at the end.
2023-03-06 19:05:49 -07:00
Tom Mairs
fad4786ac9
fixing dkim diagram
2023-03-07 00:41:30 +00:00
Tom Mairs
63f9aea845
fixing dkim diagram
2023-03-07 00:38:25 +00:00
Tom Mairs
8186354766
fix relative links in files
2023-03-07 00:23:04 +00:00
Tom Mairs
295a33dce3
bulk updated to user guide
2023-03-07 00:11:12 +00:00
Wez Furlong
30e64c577f
tweak simple policy to show sqlite usage for auth
2023-03-06 12:35:25 -07:00
Wez Furlong
265698e4c3
refactor: make task spawning less boilerplatey
2023-03-06 11:01:31 -07:00
Wez Furlong
43155c809b
notes on how to start with tokio-console
2023-03-06 09:48:44 -07:00
Wez Furlong
8e0583b6cf
adopt tokio::task::Builder to label tasks
2023-03-06 09:38:18 -07:00
Wez Furlong
af327d7e21
add tokio-console support
...
We don't show much of anything at the moment; will need to make
a pass through and instrument a bunch of things
2023-03-06 07:53:27 -07:00
Wez Furlong
4ae2c1abca
allow redirecting diagnostic logs to a log directory
...
While in there, expose a few options for the logging format
2023-03-06 07:41:43 -07:00
Wez Furlong
cd5f7efbb0
docs: link to ARF rfc, add note about extensions:
2023-03-05 20:37:45 -07:00
Wez Furlong
c6292440d0
docs: fix a typo and add a missing paragraph
2023-03-05 20:34:29 -07:00
Wez Furlong
1bfa3a42af
Add custom logging
2023-03-05 20:29:14 -07:00
Wez Furlong
a0e73b72b1
allow logging selected meta and headers to the logs
2023-03-05 15:58:19 -07:00
Wez Furlong
1ac929e6b2
add max_segment_duration option to the logger
2023-03-05 15:25:08 -07:00
Wez Furlong
56135506f2
refactor: use any_err in more places
2023-03-05 10:44:54 -07:00
Wez Furlong
0ca585bd5a
Optionally use redis for throttles
2023-03-05 10:39:56 -07:00
Wez Furlong
ca78839a59
docs: add missing require
2023-03-05 09:59:06 -07:00
Wez Furlong
eaaddbb6b6
add redis client
2023-03-05 09:57:03 -07:00
Wez Furlong
139975e886
queue: remove maintainer joinhandle
...
While the logic compiled, a runtim assertion complained about
using blocking locks in a localset.
The lifecycle management stuff made this maintainer handle obsolete,
so we can simply delete at no cost.
2023-03-04 18:14:38 -07:00
Wez Furlong
2cf3d2387c
add sqlite data access
...
A bit of a big commit because I wanted sqlite queries to run
async and there isn't a sane way to tell in mlua whether a
given context is safe to yield for an await, which meant making
every case where we call into lua be fully async.
This adds a simple but powerful binding to sqlite that performs
its IO in a blocking tokio thread pool, and returns the results
back to lua.
There is no implicit caching of queries, and no implicit connection
pooling.
2023-03-04 18:07:31 -07:00
Wez Furlong
beb70061c8
ci: rename some workflows, disable full docker build
...
We're not doing anything with the output, so let's just save
the compute for something else.
2023-03-04 11:07:18 -07:00
Wez Furlong
c184214253
allow loading TLS key+cert from hashicorp vault
...
refactor to allow reusing the same key loader logic for dkim, smtp
and http.
2023-03-04 11:01:35 -07:00
Wez Furlong
38e60f9274
rename vault object fields to have vault_ prefix
...
This disambiguates for future alternative credential storage
systems.
2023-03-04 10:29:25 -07:00
Wez Furlong
c93c9af2eb
refine default list of meta fields for supplemental trace header
2023-03-04 10:21:45 -07:00
Wez Furlong
52f7ab6150
add prohibited_hosts and skip_hosts for outbound resolving
...
While in that part of the code, handle null MX destination domains
(such as `example.com) more nicely.
2023-03-04 10:09:17 -07:00
Wez Furlong
7eb33d2ca5
make smtp server read timeout configurable
...
client_timeout is the config, and it defaults to 1m
2023-03-04 07:52:53 -07:00
Wez Furlong
6204642270
add trace headers configuration and link to ARF parsing
2023-03-04 07:22:02 -07:00
Wez Furlong
61f974d066
adjust listener domains config to support more relaying options
...
a domain can now specify:
* relay_from: mail from the domain is allowed to relay anywhere
if the peer matches the cidr list
* relay_to: mail from anywhere is allowed to relay to the domain
* log_arf: ARF FBL reports are allowed to be received and their
contents will be logged
* log_oob: oob bounces are allowed to be received and their
contents will be logged
2023-03-03 22:53:56 -07:00
Wez Furlong
03c3484cd7
rename fbl -> arf
...
The spec is talking about ARF, so let's use that terminology
2023-03-03 14:34:06 -07:00
Wez Furlong
d0dc6a9737
capture ARF reports as a Feedback type when logging
...
Make separate types for bounces, transfails as well.
2023-03-03 14:31:42 -07:00
Wez Furlong
bfe3c49d77
add rfc5965 ARF report parsing
...
Refactor the rfc3464 parsing to simplify both of them
2023-03-03 13:58:12 -07:00
Wez Furlong
2000be18d4
fix formatting
2023-03-03 11:14:03 -07:00
Wez Furlong
523492da26
docs: fixup dkim signing
2023-03-03 10:56:22 -07:00
Wez Furlong
aa460f52d0
docs: fix typo
2023-03-03 10:34:23 -07:00
Wez Furlong
7d76b3d9d7
add support for retrieving signing keys from hashicorp vault
2023-03-03 10:32:16 -07:00
Wez Furlong
27f9a064cd
fixup inference of num attempts
...
There's probably some smarter way to do this, but this is
at least the correct result and is probably good enough.
2023-03-03 08:31:07 -07:00