bug(web-ng): jdm zen rule editor - cant save rule changes #890

Closed
opened 2026-03-28 04:29:36 +00:00 by mfreeman451 · 0 comments
Owner

Imported from GitHub.

Original GitHub issue: #2550
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/2550
Original created: 2026-01-27T22:37:36Z


Describe the bug
I tried to enter in some descriptions using the JDM zen rule engine editor embedded in our UI, this should have updated the zen rules in our database and synced them with nats KV:

22:33:23.974 request_id=GI63Q3YP5GkDC9cAAH3B [info] GET /settings/rules
22:33:23.994 request_id=GI63Q3YP5GkDC9cAAH3B [info] Sent 200 in 19ms
22:33:24.034 request_id=GI63Q3mi3YYDC9cAAH5B [info] GET /favicon-8a62875e9ac868aea8325079693d201f.ico
22:33:24.034 request_id=GI63Q3mi3YYDC9cAAH5B [info] Sent 404 in 275�s
22:33:24.069 [info] CONNECTED TO Phoenix.LiveView.Socket in 63�s
  Transport: :websocket
  Serializer: Phoenix.Socket.V2.JSONSerializer
  Parameters: %{"_csrf_token" => "FTATIi0XKF5ZYTQMWCJ6GT4iOGR2Gylw8ubATDlnn1Cvuk5NTllIEaA9", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://192.168.2.235/assets/css/app-76f42f004e52a2f54890ac3144ccea19.css?vsn=d", "1" => "https://192.168.2.235/assets/js/app-3b3a31883956d121ce95946e82415dd0.css?vsn=d", "2" => "https://192.168.2.235/assets/js/app-5d1fa133666facee3fe4671fa9efc71c.js?vsn=d"}, "vsn" => "2.0.0"}
22:33:33.025 request_id=GI63RZGMj1uGwCsAACoD [info] GET /
22:33:33.026 request_id=GI63RZGMj1uGwCsAACoD [info] Sent 302 in 330�s
22:33:33.027 request_id=GI63RZGrQDOGwCsAACpD [info] GET /users/log-in
22:33:33.032 request_id=GI63RZGrQDOGwCsAACpD [info] Sent 200 in 4ms
22:34:03.099 request_id=GI63TJIQ7cT2EXoAAH7B [info] GET /
22:34:03.099 request_id=GI63TJIQ7cT2EXoAAH7B [info] Sent 302 in 241�s
22:34:03.101 request_id=GI63TJIu3xv2EXoAAH8B [info] GET /users/log-in
22:34:03.105 request_id=GI63TJIu3xv2EXoAAH8B [info] Sent 200 in 4ms
22:34:33.088 [error] GenServer #PID<0.47097.0> terminating
** (UndefinedFunctionError) function ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.handle_params/3 is undefined or private
    (serviceradar_web_ng 0.1.0) ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.handle_params(%{"id" => "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652"}, "https://192.168.2.235/settings/rules/zen/a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", #Phoenix.LiveView.Socket<id: "phx-GI63Q3aCRjEL134B", endpoint: ServiceRadarWebNGWeb.Endpoint, view: ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive, parent_pid: nil, root_pid: #PID<0.47097.0>, router: ServiceRadarWebNGWeb.Router, assigns: %{dirty: false, mode: :edit, form: %Phoenix.HTML.Form{source: #AshPhoenix.Form<resource: ServiceRadar.Observability.ZenRule, action: :update, type: :update, params: %{}, source: #Ash.Changeset<domain: ServiceRadar.Observability, action_type: :update, action: :update, attributes: %{}, relationships: %{}, errors: [], data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :cef_severity, builder_config: %{}, jdm_definition: nil, compiled_jdm: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "rules" => [%{"_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{"_id" => "r4", "fld_msg" => "", "fld_sev" => "'Unknown'"}]}, "id" => "cefTable", "name" => "CEF Severity", "position" => %{"x" => 300, "y" => 150}, "type" => "decisionTableNode"}, %{"id" => "outputNode", "name" => "Response", "position" => %{"x" => 560, "y" => 150}, ...}]}, ...}, valid?: true>, name: "zen_rule", data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :cef_severity, builder_config: %{}, jdm_definition: nil, compiled_jdm: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "rules" => [%{"_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{"_id" => "r4", "fld_msg" => "", "fld_sev" => "'Unknown'"}]}, "id" => "cefTable", "name" => "CEF Severity", "position" => %{"x" => 300, "y" => 150}, "type" => "decisionTableNode"}, %{"id" => "outputNode", "name" => "Response", "position" => %{...}, ...}]}, ...}, form_keys: [], forms: %{}, domain: ServiceRadar.Observability, method: "put", submit_errors: nil, id: "zen_rule", transform_errors: nil, post_process_errors: nil, original_data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :cef_severity, builder_config: %{}, jdm_definition: nil, compiled_jdm: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "rules" => [%{"_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{"_id" => "r4", "fld_msg" => "", "fld_sev" => "'Unknown'"}]}, "id" => "cefTable", ...}, ...]}, ...}, transform_params: #Function<0.28666475/3 in ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.normalize_params>, prepare_params: nil, prepare_source: nil, raw_params: %{}, warn_on_unhandled_errors?: true, any_removed?: false, added?: false, changed?: false, touched_forms: MapSet.new([]), valid?: true, errors: nil, submitted_once?: false, just_submitted?: false, ...>, impl: Phoenix.HTML.FormData.AshPhoenix.Form, id: "zen_rule", name: "zen_rule", data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :cef_severity, builder_config: %{}, jdm_definition: nil, compiled_jdm: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "rules" => [%{"_id" => " (truncated)
Image
22:37:11.331 [error] GenServer #PID<0.50193.0> terminating
** (UndefinedFunctionError) function ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.handle_params/3 is undefined or private
    (serviceradar_web_ng 0.1.0) ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.handle_params(%{"id" => "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652"}, "https://192.168.2.235/settings/rules/zen/a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", #Phoenix.LiveView.Socket<id: "phx-GI63Q3aCRjEL134B", endpoint: ServiceRadarWebNGWeb.Endpoint, view: ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive, parent_pid: nil, root_pid: #PID<0.50193.0>, router: ServiceRadarWebNGWeb.Router, assigns: %{dirty: false, mode: :edit, form: %Phoenix.HTML.Form{source: #AshPhoenix.Form<resource: ServiceRadar.Observability.ZenRule, action: :update, type: :update, params: %{"agent_id" => "default-agent", "description" => "Map CEF severity values into normalized severity.", "enabled" => "true", "name" => "cef_severity", "order" => 120, "stream_name" => "events", "subject" => "logs.syslog", "template" => "passthrough"}, source: #Ash.Changeset<domain: ServiceRadar.Observability, action_type: :update, action: :update, attributes: %{}, relationships: %{}, errors: [], data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :passthrough, builder_config: %{}, jdm_definition: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"executionMode" => "single", "hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "passThrough" => false, "rules" => [%{"_description" => "convert numerics to low", "_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_description" => "convert numerics to medium", "_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_description" => "convert numerics to high", "_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_description" => "convert numerics to very high", "_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{"_id" => "r4", "fld_msg" => "", ...}]}, ...}, ...]}, ...}, valid?: true>, name: "zen_rule", data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :passthrough, builder_config: %{}, jdm_definition: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"executionMode" => "single", "hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "passThrough" => false, "rules" => [%{"_description" => "convert numerics to low", "_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_description" => "convert numerics to medium", "_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_description" => "convert numerics to high", "_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_description" => "convert numerics to very high", "_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{...}]}, ...}, ...]}, ...}, form_keys: [], forms: %{}, domain: ServiceRadar.Observability, method: "put", submit_errors: nil, id: "zen_rule", transform_errors: nil, post_process_errors: nil, original_data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :passthrough, builder_config: %{}, jdm_definition: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"executionMode" => "single", "hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "passThrough" => false, "rules" => [%{"_description" => "convert numerics to low", "_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_description" => "convert numerics to medium", "_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_description" => "convert numerics to high", ...}, ...]}, ...}, ...]}, ...}, transform_params: #Function<0.28666475/3 in ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.normalize_params>, prepare_params: nil, prepare_source: nil, raw_params: %{"agent_id" => "default-agent", "description" => "Map CEF severity values into normalized severity.", "enabled" => "true", "name" => "cef_severity", "order" => "120", "stream_name" => "events", "subject" => "logs.syslog", "template" => "passthrough"}, warn_on_unhandled_errors?: true, any_removed?: false, added?: false, changed?: false, touched_forms: MapSet.new(["agent_id", "description", "enabled", "name", "order", "stream_name", "subject", "template"]), valid?: true, errors: true, submitted_once?: false, just_submitted?: false, ...>, impl: Phoenix.HTML.FormData.AshPhoenix.Form, id: "zen_rule", name: "zen_rule", data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :passthrough, builder_config: %{}, jdm_definition: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => (truncated)

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Imported from GitHub. Original GitHub issue: #2550 Original author: @mfreeman451 Original URL: https://github.com/carverauto/serviceradar/issues/2550 Original created: 2026-01-27T22:37:36Z --- **Describe the bug** I tried to enter in some descriptions using the JDM zen rule engine editor embedded in our UI, this should have updated the zen rules in our database and synced them with nats KV: ``` 22:33:23.974 request_id=GI63Q3YP5GkDC9cAAH3B [info] GET /settings/rules 22:33:23.994 request_id=GI63Q3YP5GkDC9cAAH3B [info] Sent 200 in 19ms 22:33:24.034 request_id=GI63Q3mi3YYDC9cAAH5B [info] GET /favicon-8a62875e9ac868aea8325079693d201f.ico 22:33:24.034 request_id=GI63Q3mi3YYDC9cAAH5B [info] Sent 404 in 275�s 22:33:24.069 [info] CONNECTED TO Phoenix.LiveView.Socket in 63�s Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "FTATIi0XKF5ZYTQMWCJ6GT4iOGR2Gylw8ubATDlnn1Cvuk5NTllIEaA9", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://192.168.2.235/assets/css/app-76f42f004e52a2f54890ac3144ccea19.css?vsn=d", "1" => "https://192.168.2.235/assets/js/app-3b3a31883956d121ce95946e82415dd0.css?vsn=d", "2" => "https://192.168.2.235/assets/js/app-5d1fa133666facee3fe4671fa9efc71c.js?vsn=d"}, "vsn" => "2.0.0"} 22:33:33.025 request_id=GI63RZGMj1uGwCsAACoD [info] GET / 22:33:33.026 request_id=GI63RZGMj1uGwCsAACoD [info] Sent 302 in 330�s 22:33:33.027 request_id=GI63RZGrQDOGwCsAACpD [info] GET /users/log-in 22:33:33.032 request_id=GI63RZGrQDOGwCsAACpD [info] Sent 200 in 4ms 22:34:03.099 request_id=GI63TJIQ7cT2EXoAAH7B [info] GET / 22:34:03.099 request_id=GI63TJIQ7cT2EXoAAH7B [info] Sent 302 in 241�s 22:34:03.101 request_id=GI63TJIu3xv2EXoAAH8B [info] GET /users/log-in 22:34:03.105 request_id=GI63TJIu3xv2EXoAAH8B [info] Sent 200 in 4ms 22:34:33.088 [error] GenServer #PID<0.47097.0> terminating ** (UndefinedFunctionError) function ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.handle_params/3 is undefined or private (serviceradar_web_ng 0.1.0) ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.handle_params(%{"id" => "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652"}, "https://192.168.2.235/settings/rules/zen/a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", #Phoenix.LiveView.Socket<id: "phx-GI63Q3aCRjEL134B", endpoint: ServiceRadarWebNGWeb.Endpoint, view: ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive, parent_pid: nil, root_pid: #PID<0.47097.0>, router: ServiceRadarWebNGWeb.Router, assigns: %{dirty: false, mode: :edit, form: %Phoenix.HTML.Form{source: #AshPhoenix.Form<resource: ServiceRadar.Observability.ZenRule, action: :update, type: :update, params: %{}, source: #Ash.Changeset<domain: ServiceRadar.Observability, action_type: :update, action: :update, attributes: %{}, relationships: %{}, errors: [], data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :cef_severity, builder_config: %{}, jdm_definition: nil, compiled_jdm: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "rules" => [%{"_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{"_id" => "r4", "fld_msg" => "", "fld_sev" => "'Unknown'"}]}, "id" => "cefTable", "name" => "CEF Severity", "position" => %{"x" => 300, "y" => 150}, "type" => "decisionTableNode"}, %{"id" => "outputNode", "name" => "Response", "position" => %{"x" => 560, "y" => 150}, ...}]}, ...}, valid?: true>, name: "zen_rule", data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :cef_severity, builder_config: %{}, jdm_definition: nil, compiled_jdm: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "rules" => [%{"_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{"_id" => "r4", "fld_msg" => "", "fld_sev" => "'Unknown'"}]}, "id" => "cefTable", "name" => "CEF Severity", "position" => %{"x" => 300, "y" => 150}, "type" => "decisionTableNode"}, %{"id" => "outputNode", "name" => "Response", "position" => %{...}, ...}]}, ...}, form_keys: [], forms: %{}, domain: ServiceRadar.Observability, method: "put", submit_errors: nil, id: "zen_rule", transform_errors: nil, post_process_errors: nil, original_data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :cef_severity, builder_config: %{}, jdm_definition: nil, compiled_jdm: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "rules" => [%{"_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{"_id" => "r4", "fld_msg" => "", "fld_sev" => "'Unknown'"}]}, "id" => "cefTable", ...}, ...]}, ...}, transform_params: #Function<0.28666475/3 in ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.normalize_params>, prepare_params: nil, prepare_source: nil, raw_params: %{}, warn_on_unhandled_errors?: true, any_removed?: false, added?: false, changed?: false, touched_forms: MapSet.new([]), valid?: true, errors: nil, submitted_once?: false, just_submitted?: false, ...>, impl: Phoenix.HTML.FormData.AshPhoenix.Form, id: "zen_rule", name: "zen_rule", data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :cef_severity, builder_config: %{}, jdm_definition: nil, compiled_jdm: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "rules" => [%{"_id" => " (truncated) ``` <img width="1470" height="802" alt="Image" src="https://github.com/user-attachments/assets/54623118-5d9c-4118-8e59-d7bd479163d4" /> ``` 22:37:11.331 [error] GenServer #PID<0.50193.0> terminating ** (UndefinedFunctionError) function ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.handle_params/3 is undefined or private (serviceradar_web_ng 0.1.0) ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.handle_params(%{"id" => "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652"}, "https://192.168.2.235/settings/rules/zen/a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", #Phoenix.LiveView.Socket<id: "phx-GI63Q3aCRjEL134B", endpoint: ServiceRadarWebNGWeb.Endpoint, view: ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive, parent_pid: nil, root_pid: #PID<0.50193.0>, router: ServiceRadarWebNGWeb.Router, assigns: %{dirty: false, mode: :edit, form: %Phoenix.HTML.Form{source: #AshPhoenix.Form<resource: ServiceRadar.Observability.ZenRule, action: :update, type: :update, params: %{"agent_id" => "default-agent", "description" => "Map CEF severity values into normalized severity.", "enabled" => "true", "name" => "cef_severity", "order" => 120, "stream_name" => "events", "subject" => "logs.syslog", "template" => "passthrough"}, source: #Ash.Changeset<domain: ServiceRadar.Observability, action_type: :update, action: :update, attributes: %{}, relationships: %{}, errors: [], data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :passthrough, builder_config: %{}, jdm_definition: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"executionMode" => "single", "hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "passThrough" => false, "rules" => [%{"_description" => "convert numerics to low", "_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_description" => "convert numerics to medium", "_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_description" => "convert numerics to high", "_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_description" => "convert numerics to very high", "_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{"_id" => "r4", "fld_msg" => "", ...}]}, ...}, ...]}, ...}, valid?: true>, name: "zen_rule", data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :passthrough, builder_config: %{}, jdm_definition: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"executionMode" => "single", "hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "passThrough" => false, "rules" => [%{"_description" => "convert numerics to low", "_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_description" => "convert numerics to medium", "_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_description" => "convert numerics to high", "_id" => "r2", "fld_msg" => "contains(short_message, '|7|') or contains(short_message, '|8|')", "fld_sev" => "'High'"}, %{"_description" => "convert numerics to very high", "_id" => "r3", "fld_msg" => "contains(short_message, '|9|') or contains(short_message, '|10|')", "fld_sev" => "'Very High'"}, %{...}]}, ...}, ...]}, ...}, form_keys: [], forms: %{}, domain: ServiceRadar.Observability, method: "put", submit_errors: nil, id: "zen_rule", transform_errors: nil, post_process_errors: nil, original_data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :passthrough, builder_config: %{}, jdm_definition: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => "edge"}], "nodes" => [%{"id" => "inputNode", "name" => "Request", "position" => %{"x" => 80, "y" => 150}, "type" => "inputNode"}, %{"content" => %{"executionMode" => "single", "hitPolicy" => "first", "inputs" => [%{"field" => "short_message", "id" => "fld_msg", "name" => "Short", "type" => "expression"}], "outputs" => [%{"field" => "severity", "id" => "fld_sev", "name" => "Severity", "type" => "expression"}], "passThrough" => false, "rules" => [%{"_description" => "convert numerics to low", "_id" => "r0", "fld_msg" => "contains(short_message, '|0|') or contains(short_message, '|1|') or contains(short_message, '|2|') or contains(short_message, '|3|')", "fld_sev" => "'Low'"}, %{"_description" => "convert numerics to medium", "_id" => "r1", "fld_msg" => "contains(short_message, '|4|') or contains(short_message, '|5|') or contains(short_message, '|6|')", "fld_sev" => "'Medium'"}, %{"_description" => "convert numerics to high", ...}, ...]}, ...}, ...]}, ...}, transform_params: #Function<0.28666475/3 in ServiceRadarWebNGWeb.Settings.ZenRuleEditorLive.normalize_params>, prepare_params: nil, prepare_source: nil, raw_params: %{"agent_id" => "default-agent", "description" => "Map CEF severity values into normalized severity.", "enabled" => "true", "name" => "cef_severity", "order" => "120", "stream_name" => "events", "subject" => "logs.syslog", "template" => "passthrough"}, warn_on_unhandled_errors?: true, any_removed?: false, added?: false, changed?: false, touched_forms: MapSet.new(["agent_id", "description", "enabled", "name", "order", "stream_name", "subject", "template"]), valid?: true, errors: true, submitted_once?: false, just_submitted?: false, ...>, impl: Phoenix.HTML.FormData.AshPhoenix.Form, id: "zen_rule", name: "zen_rule", data: %ServiceRadar.Observability.ZenRule{id: "a8aad42d-d5ed-49bc-ac53-7ef8f8d1a652", name: "cef_severity", description: "Map CEF severity values into normalized severity.", enabled: true, order: 120, stream_name: "events", subject: "logs.syslog", format: :json, template: :passthrough, builder_config: %{}, jdm_definition: %{"edges" => [%{"id" => "e1", "sourceId" => "inputNode", "targetId" => "cefTable", "type" => "edge"}, %{"id" => "e2", "sourceId" => "cefTable", "targetId" => "outputNode", "type" => "edge"}, %{"id" => "e3", "sourceId" => "inputNode", "targetId" => "outputNode", "type" => (truncated) ``` **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. iOS] - Browser [e.g. chrome, safari] - Version [e.g. 22] **Smartphone (please complete the following information):** - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - Browser [e.g. stock browser, safari] - Version [e.g. 22] **Additional context** Add any other context about the problem here.
mfreeman451 added this to the 1.1.0 milestone 2026-03-28 04:29:36 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar#890
No description provided.