# Release 2023.08.22-4d895015 - Automation

## Breaking Changes
* [kumo.configure_log_hook](../reference/kumo/configure_log_hook.md) now requires
  a name field to be set to identify which instance of a log hook is being considered
  by the [should_enqueue_log_record](../reference/events/should_enqueue_log_record.md) event.
  This change is to support distributing logs to the traffic shaping automation
  service in addition to feeding them into your own reporting infrastructure.

## New: Traffic Shaping Automation

* The `shaping.toml` file now supports automation rules. See [the UserGuide](../userguide/trafficshaping/automation.md) for information on how to deploy this feature.

## Other Changes and Enhancements
* Calling
  [kumo.configure_redis_throttles](../reference/kumo/configure_redis_throttles.md)
  now also enables redis-based shared connection limits. #41
* [kumo.make_egress_path](../reference/kumo/make_egress_path/index.md)
  `max_deliveries_per_connection` now defaults to `1024` rather than unlimited.
  Specifying unlimited deliveries is no longer supported as part of shared
  connection limit lease fairness. #41
* Added
  [message:remove_all_named_headers](../reference/message/remove_all_named_headers.md).
  Thanks to @postmastery! #70
* Ready queue names now factor in the delivery protocol, making it easier to vary
  the protocol by eg: *tenant* or *campaign* while keeping the domain the same.
  You will notice a suffix like `@smtp` on the end of queue names in metrics
  and in the `site_name` field of log records as a result of this change.
* It is now more convenient to do smart hosting using the new smtp protocol `mx_list`
  in [kumo.make_queue_config](../reference/kumo/make_queue_config/index.md).
* Introduced new `routing_domain` meta value (see [predefined
  values](../reference/message/set_meta.md)) which allows you to override the recipient
  domain for routing/delivery, without blending scheduled queues.
* New [kumo.cidr.make_map](../reference/kumo.cidr/make_map.md) function for
  building CIDR lookup tables/mappings.
* The [listener_domains policy
  helper](../userguide/configuration/domains.md#using-the-listener_domainslua-policy-helper)
  now supports `relay_from_authz` to allow listing out authorization identities
  for which relaying from a particular sending domain is permitted.
* The [kumo.digest](../reference/kumo.digest/index.md) module for computing SHA
  digests of strings and other data.
* The [kumo.encode](../reference/kumo.encode/index.md) module for encoding/decoding
  base32, base64 and hex strings.
* [kumo.dns.configure_resolver](../reference/kumo.dns/configure_resolver.md) for
  adjusting DNS resolver configuration.
* [kumo.dkim.ed25519_signer](../reference/kumo.dkim/ed25519_signer.md) now also
  supports loading signing keys that are in PEM encoded PKCS8 format.

## Fixes
* Loading secrets from HashiCorp Vault failed to parse underlying json data into
  a byte array.
* `kumo.reject(421, ...)` didn't disconnect the incoming session. #79
* `kumo.reject` in `smtp_server_message_received` could still produce a `250 ok`
  after the rejection response.


