Commit Graph

201 Commits

Author SHA1 Message Date
Tom Mairs d285a7f71a Update timeout defaults 2024-03-15 15:18:06 -06:00
Wez Furlong 5a1999a1b1 Add kumo.make_throttle and throttle_insert_ready_queue event
These allow performing arbitrary rate limiting operations
at both reception time and when messages are moved from the
scheduled queue and into the ready queue.

refs:  https://github.com/KumoCorp/kumomta/issues/149
2024-03-15 12:21:57 -07:00
Wez Furlong a16a886f0e add requeue_message event
In the end I decided to implicitly make the message due for immediate
delivery in the case where the queue was changed; I couldn't think
of a good reason not to do that, and it simplifies the implementation
both of the event internals for anyone implementing the event
themselves in their lua policy.

refs: https://github.com/KumoCorp/kumomta/issues/149
2024-03-08 13:35:06 -07:00
Wez Furlong 33c7557afb msg: add num_attempts, set_due and queue_name methods
refs: https://github.com/KumoCorp/kumomta/issues/149
2024-03-08 13:35:03 -07:00
Wez Furlong 8c43dfe209 add scheduled queue max_message_rate throttle
Needs testing, but I think this will do the job at the raw configuration
level. TSA support for adjusting this setting is a bigger endeavor and
is not included in this commit.

refs: https://github.com/KumoCorp/kumomta/issues/143
2024-03-07 11:00:18 -07:00
Wez Furlong 5bf3d4f3e0 docs: apply proper lua formatting to kafka docs 2024-02-28 09:41:20 -07:00
Mike Hillyer c62ee2f8e2 First pass Kafka Docs 2024-02-13 13:47:08 -05:00
Wez Furlong 02cd1ef7bf NEW: dkim over signing by setting over_sign = true in the signer
refs: https://github.com/KumoCorp/kumomta/issues/111
2024-01-18 12:59:41 -07:00
ncai 8954052013 add is_mx to determine if the hosts are mx records 2024-01-16 11:40:20 -07:00
Wez Furlong 580be2c4aa kumo.http: add a default 1 minute timeout to requests
Add a timeout method to control the request duration explicitly.
2024-01-13 07:08:54 -07:00
Mike Hillyer 8558ae88bc Update remaining tables with new fix. 2024-01-05 15:31:05 -05:00
Mike Hillyer 795fc9ba91 Trying another table fix 2024-01-05 15:15:11 -05:00
Mike Hillyer f45696eacc Forgot to add table fix to get_meta 2024-01-05 15:06:55 -05:00
Mike Hillyer ea2ec286b9 Fix formatting of notes. 2024-01-05 15:03:25 -05:00
Mike Hillyer 30d4a7cda9 Adding table workaround to other metadata pages. 2024-01-05 14:57:47 -05:00
Mike Hillyer 1c2fad67ea Trying one more workaround. 2024-01-05 14:54:09 -05:00
Mike Hillyer 2cde2e472d Undo column width fixing attempts. 2024-01-05 14:49:04 -05:00
Mike Hillyer c962577faa Trying another column width fix. 2024-01-05 14:29:50 -05:00
Mike Hillyer 414d5515f8 Attempt to fix column width. 2024-01-05 14:26:45 -05:00
Mike Hillyer 72492df381 Create new master metadata index page, update existing metadata pages to reflect the change. 2024-01-05 13:54:12 -05:00
Wez Furlong b1375f8e6b docs: update for latest release 2024-01-03 13:49:55 -07:00
Wez Furlong 5d206834ce docs: fixup outdated source + pool information
Some sections didn't get updated to match changes
around how pools and sources are retrieved from the
configuration.

Thanks to @farhadhf for raising this

closes: https://github.com/KumoCorp/kumomta/pull/107
2023-12-14 17:17:06 -07:00
Wez Furlong 2925c7f565 docs: add missing socks5 config to reference section 2023-12-14 17:17:06 -07:00
Mike Hillyer 95c3e3b444 Build out new page on inbound SMTP AUTH, update related documents and TOC, rename smtpauth page outbound_auth to differentiate from inbound_auth.md. Update smtp listener page to point to it, update refman auth plain page to reflect latest fields. 2023-12-07 17:00:58 -05:00
Wez Furlong cdfe11cf22 Allow simple wildcard suffixes for header names in logs
refs: https://github.com/KumoCorp/kumomta/issues/74
2023-12-04 12:10:15 -07:00
Wez Furlong ec937b52ef Allow using arbitrary bounce classification labels
refs: https://github.com/KumoCorp/kumomta/issues/98
2023-11-29 12:09:05 -07:00
Wez Furlong 8af7e85c6b docs: update version info for latest release 2023-11-29 12:08:34 -07:00
Wez Furlong c40f86e039 Add suppress-logging option to admin bounces
closes: https://github.com/KumoCorp/kumomta/issues/75
2023-11-23 08:36:07 -07:00
Wez Furlong 9282110479 docs: update openapi snapshots
Meant to include this in the previous commit!

refs: https://github.com/KumoCorp/kumomta/issues/96
2023-11-22 12:54:17 -07:00
Wez Furlong 0fc1108308 openapi: tidy up server URL and auth bits for rapidoc
refs: https://github.com/KumoCorp/kumomta/issues/96
2023-11-22 12:51:10 -07:00
Wez Furlong 0b87c020b4 add openapi.json metadata for http api
Adds `/api-docs/openapi.json` and `/rapidoc` endpoints to both
kumod and tsa-daemon.

The former exposes the subset of the API that is expressable
in the openapi schema as a json file that can be imported into
other tools.

The latter is a single-page web app that consumes the former
to provide an interactive API explorer.
We're using rapidoc for this, because I happen to think it looks
nicest and easiest to use, and we can integrate it into the docs
fairly nicely.

Which leads in nicely to say: I've integrated a read-only version
of rapidoc into the docs, and it even detects and adjusts to the
selected light/dark mode.

The `docs/update-openapi.sh` extracts the openapi.json data from
kumod and tsa-daemon and outputs to the correct place in the docs
directory structure to enable this.

refs: https://github.com/KumoCorp/kumomta/issues/96
2023-11-21 15:30:13 -07:00
Wez Furlong a03fcb2bf1 docs: fix sqlite auth example 2023-11-10 07:01:58 -07:00
Wez Furlong 38179d59c4 docs: fix some broken links 2023-11-06 08:14:11 -07:00
Wez Furlong c1c4ce723e add pre_init event 2023-11-06 08:10:53 -07:00
Wez Furlong 1872dc71a0 shaping: calling shaper.should_enqueue_log_record is no longer required
Allow multiple should_enqueue_log_record hooks to be registered,
and take advantage of that inside the shaping helper.

`shaper.should_enqueue_log_record` no longer needs to be explicitly
plumbed from the config, but we allow calling it still for compatibility
reasons.

We will remove that compatibility after the next stable release.
2023-11-03 08:52:40 -07:00
Wez Furlong 929d51deba events: plumbing for registering multiple handlers
Previously, we'd restrict `kumo.on` to allowing just a single
instance of an event to be registered. The purpose of this was
to help surface logical errors where copypasta would result in
a bogus configuration.

With multiple helper lua modules now wanting to take responsibility
for some portion of the event handling, it is becoming more complex
to stitch things together.

It is desirable to allow multiple handlers for certain events,
so that a module can handle just its area of responsibility
without worry other modules about it.

This commit introduces a CallbackSignature type that allows
defining the function signature for event callbacks.

The signature can be pre-created and registered ahead of setting
up any lua contexts, which allows declaring whether an event
can have multiple callbacks registered.

The `get_queue_config` event handler has been set to allow multiple
callbacks.
2023-11-02 18:11:17 -07:00
Wez Furlong ffc15f2f74 docs: smtp_client_rewrite_delivery_status: see also memoize 2023-11-01 13:45:05 -07:00
Wez Furlong 10bade362b docs: add version info to rewrite and regex set map 2023-11-01 13:41:34 -07:00
Wez Furlong 343411c3d2 Add event for rewriting a failed smtp response
This will only trigger for messages where we've gotten to MAIL FROM or
later, and where we got a non-250 response.

The event is passed the response + the domain, tenant, campaign and
routing domain.  It can return an alternative response code value
or `null` to indicate no change.
2023-11-01 13:25:15 -07:00
Wez Furlong 8942ef7f86 Add regex_set_map type
This is useful for efficiently matching a string simultaneously against
multiple regular expressions.

The motivating use case is to use it together with the
smtp_client_rewrite_delivery_status event.
2023-11-01 12:52:39 -07:00
Wez Furlong 8cbc60410d docs: update for dane 2023-10-26 17:03:00 -07:00
Wez Furlong 903189d873 add tls info to Delivery log records
refs: https://github.com/KumoCorp/kumomta/issues/39
refs: https://github.com/KumoCorp/kumomta/issues/8
2023-10-26 17:03:00 -07:00
Wez Furlong f3241dc3c7 docs: fix typo 2023-10-26 17:03:00 -07:00
Wez Furlong 39a046e07c docs: add missing routing_domain param to get_queue_config event examples 2023-10-18 06:56:01 -07:00
Wez Furlong 4c36489681 First pass at accounting db
This keeps track of the volume of receptions and deliveries over time.
2023-10-12 20:43:58 -04:00
Wez Furlong d943a1fc13 logging: add filter_event
This is useful when combining log hooks with local logging, as it
enables you to filter out the log hooks from the local file logs.
2023-09-15 12:10:46 -07:00
Wez Furlong 3cdab67595 logging: add optional segment_header
This is useful for implementing CSV file style logging.
2023-09-15 11:20:10 -07:00
Wez Furlong e7f20cf814 logs: allow using log_record in templates 2023-09-14 14:34:02 -07:00
Wez Furlong 3b10d637f9 docs: show how to use dkim verification
refs: https://github.com/KumoCorp/kumomta/issues/82
2023-09-14 13:03:41 -07:00
Wez Furlong 18223c7799 docs: add note about http_auth 2023-09-12 12:59:40 -07:00