mirror of
https://github.com/mailscope/kumomta.git
synced 2026-10-20 05:22:27 +00:00
Full docs will be written up once the kumod side is done. This commit: * Adds a table to record bounces * bounces can be scoped to scheduled queues (not ready queues) keyed either by: * domain * domain + tenant * domain + tenant + optional campaign Rather than define one websocket endpoint per event type, define a new endpoint that can support more than just suspensions. The existing suspension endpoint taps into the same source of events, but filters it down to just suspension data for backwards compatibility. The integration tests for kumod+tsa that validate suspensions continue to operate correctly with this change, proving that this works. In the next commit, the client side will be adjusted to be aware of the bounces on the new endpoint in a way that will tolerate version splay during deployment. One thing I noticed while implementing this is that we were not reporting the list of scheduled q suspensions in the initial websocket (re)connection. This would impact newly restarted kumod instances the most, but they would eventually right themselves because the node that missed the data would likely pass traffic that would trigger the rule anew, or they wouldn't and it wouldn't matter anyway. refs: https://github.com/KumoCorp/kumomta/issues/272