From e1f9ca05b749a5e22ed3ed47c5499a4d13f36665 Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Tue, 1 Apr 2025 08:20:00 +1100 Subject: [PATCH] wf docs --- docs/WORKFLOWS.md | 29 ++++++++++++----------- docs/img/WORKFLOWS/workflows_diagram.png | Bin 0 -> 50185 bytes 2 files changed, 15 insertions(+), 14 deletions(-) create mode 100755 docs/img/WORKFLOWS/workflows_diagram.png diff --git a/docs/WORKFLOWS.md b/docs/WORKFLOWS.md index f5f2ca45..059b6a79 100755 --- a/docs/WORKFLOWS.md +++ b/docs/WORKFLOWS.md @@ -1,25 +1,29 @@ # Workflows Overview -The workflows module in NetAlertX allows you to automate repetitive tasks, making network management more efficient. Whether you need to assign newly discovered devices to a specific Network Node, auto-group devices from a given vendor, unarchive a device if detected online, or automatically delete or archive devices, this module provides the flexibility to tailor the automations to your needs. +The workflows module in NetAlertX allows to automate repetitive tasks, making network management more efficient. Whether you need to assign newly discovered devices to a specific Network Node, auto-group devices from a given vendor, unarchive a device if detected online, or automatically delete devices, this module provides the flexibility to tailor the automations to your needs. -![Workflow example](./img/WORKFLOWS/workflows.png) +![Workflows diagram](./img/WORKFLOWS/workflows_diagram.png) Below are a few examples that demonstrate how this module can be used to simplify network management tasks. +## Updating Workflows + > [!NOTE] > In order to apply a workflow change, you must first **Save** the changes and then reload the application by clicking **Restart server**. -## Triggers +## Workflow components + +### Triggers Triggers define the event that activates a workflow. They monitor changes to objects within the system, such as updates to devices or the insertion of new entries. When the specified event occurs, the workflow is executed. -### Example Trigger: +#### Example Trigger: - **Object Type**: `Devices` - **Event Type**: `update` This trigger will activate when a `Device` object is updated. -## Conditions +### Conditions ![Conditions example](./img/WORKFLOWS/conditions.png) @@ -31,12 +35,12 @@ Conditions determine whether a workflow should proceed based on certain criteria ### Example Condition: - **Logic**: `AND` - **Field**: `devVendor` - - **Operator**: `contains` + - **Operator**: `contains` (case in-sensitive) - **Value**: `Google` This condition checks if the device's vendor is `Google`. The workflow will only proceed if the condition is true. -## Actions +### Actions ![Actions example](./img/WORKFLOWS/actions.jpg) @@ -56,6 +60,8 @@ You can include multiple actions that should execute once the conditions are met Below you can find a couple of configuration examples. +![Workflow example](./img/WORKFLOWS/workflows.png) + --- ## Example 1: Assign Device to Network Node Based on IP @@ -115,10 +121,5 @@ This workflow automates the process of marking Google devices as not new and del This action deletes the device after it is marked as not new. - - ---- - -### Conclusion - -With workflows, NetAlertX can automatically adjust to network changes, saving time and reducing the manual overhead involved in maintaining your devices. You can create highly tailored automation rules to handle everything from basic updates to more complex device management. +> [!TIP] +> Share your workflows in [Discord](https://discord.com/invite/NczTUTWyRr) or [GitHub Discussions](https://github.com/jokob-sk/NetAlertX/discussions). diff --git a/docs/img/WORKFLOWS/workflows_diagram.png b/docs/img/WORKFLOWS/workflows_diagram.png new file mode 100755 index 0000000000000000000000000000000000000000..016b1abaccdde91d4c3d0a797686d8e807f44f10 GIT binary patch literal 50185 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 z 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 XQMhxCMcB!QO8Bw2b6A(N)+_Qq+=#;Z literal 0 HcmV?d00001