no_cache = true,
}
+ if not rule.urls then
+ ex_params.flags_mode = 'explicit'
+ ex_params.flags = {}
+ if rule.content_urls then
+ table.insert(ex_params.flags, 'content')
+ end
+ if rule.images then
+ table.insert(ex_params.flags, 'image')
+ end
+ end
+
local urls = lua_util.extract_specific_urls(ex_params)
for _,u in ipairs(urls) do
description[#description + 1] = 'replyto'
end
- if rule.urls then
+ if rule.urls or rule.content_urls or rule.images then
pipeline[#pipeline + 1] = check_urls
description[#description + 1] = 'urls'
end
)
local rule_schema_tbl = {
- enabled = ts.boolean:is_optional(),
+ content_urls = ts.boolean:is_optional(),
+ disable_monitoring = ts.boolean:is_optional(),
disabled = ts.boolean:is_optional(),
- rbl = ts.string,
- selector = ts.string:is_optional(),
- symbol = ts.string:is_optional(),
- returncodes = return_codes_schema:is_optional(),
- return_codes = return_codes_schema:is_optional(),
- returnbits = return_bits_schema:is_optional(),
- return_bits = return_bits_schema:is_optional(),
- whitelist_exception = (
- ts.array_of(ts.string) + (ts.string / function(s) return {s} end)
- ):is_optional(),
- whitelist = lua_maps.map_schema:is_optional(),
- url_compose_map = lua_maps.map_schema:is_optional(),
- local_exclude_ip_map = ts.string:is_optional(),
+ dkim = ts.boolean:is_optional(),
+ dkim_domainonly = ts.boolean:is_optional(),
+ dkim_match_from = ts.boolean:is_optional(),
+ emails = ts.boolean:is_optional(),
+ emails_delimiter = ts.string:is_optional(),
+ emails_domainonly = ts.boolean:is_optional(),
+ enabled = ts.boolean:is_optional(),
+ exclude_local = ts.boolean:is_optional(),
+ exclude_private_ips = ts.boolean:is_optional(),
+ exclude_users = ts.boolean:is_optional(),
+ from = ts.boolean:is_optional(),
hash = ts.one_of{"sha1", "sha256", "sha384", "sha512", "md5", "blake2"}:is_optional(),
hash_format = ts.one_of{"hex", "base32", "base64"}:is_optional(),
hash_len = (ts.integer + ts.string / tonumber):is_optional(),
- monitored_address = ts.string:is_optional(),
- requests_limit = (ts.integer + ts.string / tonumber):is_optional(),
- process_script = ts.string:is_optional(),
- emails_delimiter = ts.string:is_optional(),
- ignore_defaults = ts.boolean:is_optional(),
+ helo = ts.boolean:is_optional(),
ignore_default = ts.boolean:is_optional(), -- alias
+ ignore_defaults = ts.boolean:is_optional(),
ignore_whitelist = ts.boolean:is_optional(),
ignore_whitelists = ts.boolean:is_optional(), -- alias
+ images = ts.boolean:is_optional(),
+ ipv4 = ts.boolean:is_optional(),
+ ipv6 = ts.boolean:is_optional(),
is_whitelist = ts.boolean:is_optional(),
+ local_exclude_ip_map = ts.string:is_optional(),
+ monitored_address = ts.string:is_optional(),
+ no_ip = ts.boolean:is_optional(),
+ process_script = ts.string:is_optional(),
+ rbl = ts.string,
+ rdns = ts.boolean:is_optional(),
+ received = ts.boolean:is_optional(),
+ replyto = ts.boolean:is_optional(),
+ requests_limit = (ts.integer + ts.string / tonumber):is_optional(),
resolve_ip = ts.boolean:is_optional(),
- content_urls = ts.boolean:is_optional(),
- disable_monitoring = ts.boolean:is_optional(),
+ return_bits = return_bits_schema:is_optional(),
+ return_codes = return_codes_schema:is_optional(),
+ returnbits = return_bits_schema:is_optional(),
+ returncodes = return_codes_schema:is_optional(),
+ selector = ts.string:is_optional(),
+ symbol = ts.string:is_optional(),
symbols_prefixes = ts.map_of(ts.string, ts.string):is_optional(),
+ unknown = ts.boolean:is_optional(),
+ url_compose_map = lua_maps.map_schema:is_optional(),
+ urls = ts.boolean:is_optional(),
+ whitelist = lua_maps.map_schema:is_optional(),
+ whitelist_exception = (
+ ts.array_of(ts.string) + (ts.string / function(s) return {s} end)
+ ):is_optional(),
}
-- Add default boolean flags to the schema
for def_k,_ in pairs(default_options) do