Commit Graph
865 Commits
Author SHA1 Message Date
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