From 1ebd385c8cae5c61e523cd1e876b6300ecac2371 Mon Sep 17 00:00:00 2001 From: ShvaykaD Date: Tue, 23 May 2023 15:06:13 +0300 Subject: [PATCH] updated rule node details & descriptions --- .../rule/engine/metadata/CalculateDeltaNode.java | 8 +++----- .../metadata/TbFetchDeviceCredentialsNode.java | 4 ++-- .../rule/engine/metadata/TbGetAttributesNode.java | 11 ++++------- .../engine/metadata/TbGetCustomerAttributeNode.java | 8 +++----- .../engine/metadata/TbGetCustomerDetailsNode.java | 10 +++------- .../rule/engine/metadata/TbGetDeviceAttrNode.java | 11 +++-------- .../engine/metadata/TbGetOriginatorFieldsNode.java | 5 +---- .../engine/metadata/TbGetRelatedAttributeNode.java | 12 +++--------- .../rule/engine/metadata/TbGetTelemetryNode.java | 13 +++---------- .../engine/metadata/TbGetTenantAttributeNode.java | 4 ++-- .../engine/metadata/TbGetTenantDetailsNode.java | 6 +++--- 11 files changed, 30 insertions(+), 62 deletions(-) diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java index 71038e934f..1a2ba6d646 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java @@ -47,11 +47,9 @@ import static org.thingsboard.common.util.DonAsynchron.withCallback; @RuleNode(type = ComponentType.ENRICHMENT, name = "calculate delta", relationTypes = {"Success", "Failure", "Other"}, configClazz = CalculateDeltaNodeConfiguration.class, - nodeDescription = "Calculates and adds 'delta' value into message based on the incoming and previous value", - nodeDetails = "Calculates delta and period based on the previous timeseries reading and current data. " + - "Delta calculation is done in scope of the message originator, e.g. device, asset or customer.

" + - "If there is input key, the output relation will be Success unless delta is negative and corresponding configuration parameter is set.
" + - "If there is no input value key in the incoming message, the output relation will be Other.", + nodeDescription = "Calculates delta and amount of time passed between previous timeseries key reading " + + "and current value for this key from the incoming message", + nodeDetails = "Useful for metering use cases, when you need to calculate consumption based on pulse counter reading.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeCalculateDeltaConfig") public class CalculateDeltaNode implements TbNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbFetchDeviceCredentialsNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbFetchDeviceCredentialsNode.java index e044dcbae6..130b50872f 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbFetchDeviceCredentialsNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbFetchDeviceCredentialsNode.java @@ -39,8 +39,8 @@ import java.util.concurrent.ExecutionException; configClazz = TbFetchDeviceCredentialsNodeConfiguration.class, nodeDescription = "Adds device credentials to the message or message metadata", nodeDetails = "if message originator type is Device and device credentials was successfully fetched, " + - "rule node enriches message or message metadata with credentialsType and credentials properties " + - "and send message via Success chain. Otherwise message will be forwarded via Failure chain.", + "rule node enriches message or message metadata with credentialsType and credentials properties. " + + "Useful when you need to fetch device credentials and use them for further message processing. For example, use device credentials to interact with external systems.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeFetchDeviceCredentialsConfig") public class TbFetchDeviceCredentialsNode extends TbAbstractNodeWithFetchTo { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetAttributesNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetAttributesNode.java index 42b0633cb2..2c0eed086c 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetAttributesNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetAttributesNode.java @@ -36,13 +36,10 @@ import org.thingsboard.server.common.msg.TbMsg; @RuleNode(type = ComponentType.ENRICHMENT, name = "originator attributes", configClazz = TbGetAttributesNodeConfiguration.class, - nodeDescription = "Adds originator attributes and/or latest timeseries data for the message originator to the message or message metadata", - nodeDetails = "If attributes enrichment configured, CLIENT/SHARED/SERVER attributes are added into message or message metadata " + - "with specific prefix: cs/shared/ss. Latest telemetry value adds without prefix.

" + - "See the following examples of accessing those attributes in other nodes:
" + - "metadata.cs_serialNumber - to access client side attribute 'serialNumber' that was fetched to message metadata.
" + - "metadata.shared_limit - to access shared side attribute 'limit' that was fetched to message metadata.
" + - "msg.temperature - to access latest telemetry 'temperature' that was fetched to message.
", + nodeDescription = "Adds attributes and/or latest timeseries data for the message originator to the message or message metadata", + nodeDetails = "Useful when you need to retrieve some attributes or the latest telemetry readings from the message originator " + + "that are not included in the incoming message to use them for further message processing. " + + "For example to filter messages based on the threshold value stored in the attributes.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeOriginatorAttributesConfig") public class TbGetAttributesNode extends TbAbstractGetAttributesNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerAttributeNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerAttributeNode.java index 1deae1f5fb..74865da5b9 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerAttributeNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerAttributeNode.java @@ -36,11 +36,9 @@ import org.thingsboard.server.common.data.util.TbPair; name = "customer attributes", configClazz = TbGetEntityDataNodeConfiguration.class, nodeDescription = "Adds message originator customer attributes or latest telemetry into message or message metadata", - nodeDetails = "Enriches incoming message or message metadata with the customer's attributes or latest telemetry values.

" + - "The customer is selected based on the originator of the message. " + - "Supported originator types:

" + - "Customer, User, Asset, Device.

" + - "Useful when you store some parameters on the customer level and would like to use them for message processing.", + nodeDetails = "Useful in multi-customer solutions where each customer has a different configuration or threshold set " + + "that is stored as customer attributes or telemetry data and used for dynamic message filtering, transformation, " + + "or actions such as alarm creation if the threshold is exceeded.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeCustomerAttributesConfig") public class TbGetCustomerAttributeNode extends TbAbstractGetEntityDataNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerDetailsNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerDetailsNode.java index a86aed66d5..723b98a98d 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerDetailsNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetCustomerDetailsNode.java @@ -44,13 +44,9 @@ import java.util.NoSuchElementException; @RuleNode(type = ComponentType.ENRICHMENT, name = "customer details", configClazz = TbGetCustomerDetailsNodeConfiguration.class, - nodeDescription = "Adds originator customer details into message or message metadata", - nodeDetails = "Enriches incoming message or message metadata with the corresponding customer details. " + - "Selected details adds to the message with predefined prefix: customer_. Examples: customer_title, customer_address, etc.

" + - "The customer is selected based on the originator of the message. Supported originator types:

" + - "Device, Asset, Entity view, User, Edge.

" + - "If message originator is not assigned to customer, or originator is not supported - " + - "message will be forwarded via Failure chain, otherwise, Success chain will be used.", + nodeDescription = "Adds message originator customer details into message or message metadata", + nodeDetails = "Useful in multi-customer solutions where we need dynamically use customer contact information " + + "such as email, phone, address, etc., for notifications via email, SMS, and other notification providers.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeEntityDetailsConfig") public class TbGetCustomerDetailsNode extends TbAbstractGetEntityDetailsNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetDeviceAttrNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetDeviceAttrNode.java index 3a55c5d7ca..f776aeaa8c 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetDeviceAttrNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetDeviceAttrNode.java @@ -34,15 +34,10 @@ import org.thingsboard.server.common.msg.TbMsg; @RuleNode(type = ComponentType.ENRICHMENT, name = "related device attributes", configClazz = TbGetDeviceAttrNodeConfiguration.class, - nodeDescription = "Add originators related device attributes and latest telemetry values into message or message metadata", + nodeDescription = "Add originators related device attributes and/or latest telemetry values into message or message metadata", nodeDetails = "Related device lookup based on the configured relation query. " + - "If multiple related devices are found, only first device is used for message enrichment, other entities are discarded.

" + - "If Attributes enrichment configured, CLIENT/SHARED/SERVER attributes are added into message or message metadata " + - "with specific prefix: cs/shared/ss. Latest telemetry value adds into message or message metadata without prefix.

" + - "See the following examples of accessing those attributes in other nodes:
" + - "metadata.cs_serialNumber - to access client side attribute 'serialNumber' that was fetched to message metadata.
" + - "metadata.shared_limit - to access shared side attribute 'limit' that was fetched to message metadata.
" + - "msg.temperature - to access latest telemetry 'temperature' that was fetched to message.
", + "If multiple related devices are found, only first device is used for message enrichment, other entities are discarded. " + + "Useful when you need to retrieve attributes and/or latest telemetry values from device that has a relation to the message originator and use them for further message processing.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeDeviceAttributesConfig") public class TbGetDeviceAttrNode extends TbAbstractGetAttributesNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetOriginatorFieldsNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetOriginatorFieldsNode.java index b0a282af1f..bd775ed4dc 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetOriginatorFieldsNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetOriginatorFieldsNode.java @@ -39,10 +39,7 @@ import java.util.concurrent.ExecutionException; configClazz = TbGetOriginatorFieldsConfiguration.class, nodeDescription = "Adds message originator fields values into message or message metadata", nodeDetails = "Fetches fields values specified in the mapping. If specified field is not part of originator fields it will be ignored. " + - "Supported originator types:

" + - "Tenant, Customer, User, Asset, Device, Alarm, Rule chain, Entity view.

" + - "If message originator is not supported - message will be forwarded via Failure chain, " + - "otherwise, Success chain will be used.", + "Useful when you need to retrieve originator fields and use them for further message processing.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeOriginatorFieldsConfig") public class TbGetOriginatorFieldsNode extends TbAbstractGetMappedDataNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetRelatedAttributeNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetRelatedAttributeNode.java index 109c47dcac..60d684098f 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetRelatedAttributeNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetRelatedAttributeNode.java @@ -36,16 +36,10 @@ import java.util.Arrays; type = ComponentType.ENRICHMENT, name = "related entity data", configClazz = TbGetRelatedDataNodeConfiguration.class, - nodeDescription = "Adds originators related entity data into message or message metadata", + nodeDescription = "Adds originators related entity attributes or latest telemetry or fields into message or message metadata", nodeDetails = "Related entity lookup based on the configured relation query. " + - "If multiple related entities are found, only first entity is used for message enrichment, other entities are discarded.

" + - "Data to fetch configuration:

" + - "Attributes - rule node fetches server scope attributes configured in mapping and adds them into message or message metadata. " + - "Access example in other nodes: metadata.serialNumber, msg.serialNumber.
" + - "Latest telemetry - rule node fetches latest telemetry configured in mapping and adds them into message or message metadata. " + - "Access example in other nodes: metadata.temperature, msg.temperature.
" + - "Fields - rule node fetches fields configured in mapping and adds them into message or message metadata. " + - "Access example in other nodes: metadata.entityName, msg.entityName.", + "If multiple related entities are found, only first entity is used for message enrichment, other entities are discarded. " + + "Useful when you need to retrieve data from an entity that has a relation to the message originator and use them for further message processing.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeRelatedAttributesConfig") public class TbGetRelatedAttributeNode extends TbAbstractGetEntityDataNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTelemetryNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTelemetryNode.java index 97f08ce8fd..569c76c2a2 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTelemetryNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTelemetryNode.java @@ -55,16 +55,9 @@ import static org.thingsboard.rule.engine.metadata.TbGetTelemetryNodeConfigurati name = "originator telemetry", configClazz = TbGetTelemetryNodeConfiguration.class, nodeDescription = "Adds message originator telemetry for selected time range into message metadata", - nodeDetails = "The node allows you to configure fetch interval and fetch strategy. Fetch strategy section allows you to select fetch mode: First/Last/All

" + - "If selected fetch mode First rule node will retrieve the closest telemetry to the fetch interval's start.
" + - "If selected fetch mode Last rule node will retrieve the closest telemetry to the fetch interval's end.
" + - "If selected fetch mode All rule node will retrieve telemetry from the fetch interval with configurable query parameters.

" + - "Query parameters:

" + - "Data aggregation function: Min/Max/Average/Sum/Count/None. " + - "If selected aggregation function None rule node allows you to configure additional query parameters:

" + - "Order by timestamp: Ascending/Descending

" + - "Limit: Min value - 2, max value - 1000.

" + - "Other data aggregation functions useful when you need to get the aggregated telemetry data as a single value for the configured fetch interval.", + nodeDetails = "Useful when you need to get telemetry data set from the message originator for a specific time range " + + "instead of fetching just the latest telemetry or if you need to get the closest telemetry to the fetch interval start or end. " + + "Also, this node can be used for telemetry aggregation within configured fetch interval.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeGetTelemetryFromDatabase") public class TbGetTelemetryNode implements TbNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTenantAttributeNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTenantAttributeNode.java index df1ae1b371..9fc8efe777 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTenantAttributeNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTenantAttributeNode.java @@ -35,8 +35,8 @@ import org.thingsboard.server.common.data.util.TbPair; name = "tenant attributes", configClazz = TbGetEntityDataNodeConfiguration.class, nodeDescription = "Adds message originator tenant attributes or latest telemetry into message or message metadata", - nodeDetails = "Enriches incoming message or message metadata with the tenant's attributes or latest telemetry values. " + - "Useful when you store some parameters on the tenant level and would like to use them for message processing.", + nodeDetails = "Useful when you need to retrieve some common configuration or threshold set " + + "that is stored as tenant attributes or telemetry data and use it for further message processing.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeTenantAttributesConfig") public class TbGetTenantAttributeNode extends TbAbstractGetEntityDataNode { diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTenantDetailsNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTenantDetailsNode.java index e6433b541e..fafa7bf38d 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTenantDetailsNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/TbGetTenantDetailsNode.java @@ -33,9 +33,9 @@ import org.thingsboard.server.common.msg.TbMsg; @RuleNode(type = ComponentType.ENRICHMENT, name = "tenant details", configClazz = TbGetTenantDetailsNodeConfiguration.class, - nodeDescription = "Adds originator tenant details into message or message metadata", - nodeDetails = "Enriches incoming message or message metadata with the corresponding tenant details. " + - "Selected details adds to the message with predefined prefix: tenant_, Examples: tenant_title or tenant_address, etc.", + nodeDescription = "Adds message originator tenant details into message or message metadata", + nodeDetails = "Useful when we need to retrieve contact information from your tenant " + + "such as email, phone, address, etc., for notifications via email, SMS, and other notification providers.", uiResources = {"static/rulenode/rulenode-core-config.js"}, configDirective = "tbEnrichmentNodeEntityDetailsConfig") public class TbGetTenantDetailsNode extends TbAbstractGetEntityDetailsNode {