# tsa_load_shaping_data ```lua kumo.on('tsa_load_shaping_data', function() end) ``` {{since('2023.08.22-4d895015')}} Called by the `tsa-daemon` whenever it is going to evaluate a newly received log record. The event must return a `Shaping` object, as can be obtained via [kumo.shaping.load](../kumo.shaping/load.md). It is recommended that you use the same list of filenames that you would use with the shaping helper so that the two services have a consensus on the shaping configuration. `tsa-daemon` is only really concerned with automation rules defined by the shaping configuration. ```lua local tsa = require 'tsa' local kumo = require 'kumo' kumo.on('tsa_init', function() tsa.start_http_listener { listen = '0.0.0.0:8008', trusted_hosts = { '127.0.0.1', '::1' }, } end) local cached_load_shaping_data = kumo.memoize(kumo.shaping.load, { name = 'tsa_load_shaping_data', ttl = '5 minutes', capacity = 4, }) kumo.on('tsa_load_shaping_data', function() local shaping = cached_load_shaping_data { -- This is the default file used by the shaping helper -- in KumoMTA, which references the community shaping rules '/opt/kumomta/share/policy-extras/shaping.toml', -- and maybe you have your own rules '/opt/kumomta/policy/shaping.toml', } return shaping end) ```