Added synapse notify to preexeccution filtering at the action level. Expanded filter metadata

This commit is contained in:
Lyncoln
2026-10-28 20:57:45 -04:00
parent cdf35a9e68
commit 14b5727923
3 changed files with 21 additions and 4 deletions
+6 -3
View File
@@ -12,10 +12,13 @@ def buildAction (action, outputs, process):
if hasattr(action, "allowaction"): if hasattr(action, "allowaction"):
if not action.allowaction: if not action.allowaction:
return outputs, None return None
if match: if match:
return outputs, None if filter.get("execute", False):
response, outputs = executeRequest(filter["execute"], outputs, resolved)
return None
response, outputs = executeRequest(action, outputs, resolved) response, outputs = executeRequest(action, outputs, resolved)
@@ -27,4 +30,4 @@ def buildAction (action, outputs, process):
if action_log: if action_log:
logging.info(f"{action.name} completed") logging.info(f"{action.name} completed")
return outputs, response return response
+5
View File
@@ -17,6 +17,11 @@ def applyConditions(definition, dictionary, outputs):
if filtervalue is None: if filtervalue is None:
continue continue
if filter.get("filterkey_format", None):
if filter["filterkey_format"] == "length":
resolvedvalue = len(dictionary.get(filter["filterkey"]))
else:
resolvedvalue = dictionary.get(filter["filterkey"]) resolvedvalue = dictionary.get(filter["filterkey"])
if filter["operator"] == ">=": if filter["operator"] == ">=":
@@ -88,6 +88,15 @@ outputs = {
##Filter test against recursiveset ##Filter test against recursiveset
filters = [ filters = [
{
"filterkey": "message_body",
#"filterkey_lib": "outputs",
"filterkey_format": "length",
"execute": synapsenotify,
"operator": "<",
"filtervalue": 5,
"print": f"Message body is less than 5 characters. Notifying with {synapsenotify.name}...",
},
{ {
"filterkey": "msgtype", "filterkey": "msgtype",
"operator": "==", "operator": "==",