MINIFICPP-1109 - Update PROCESSORS.md to be alligned with latest changes
This closes #701.
Signed-off-by: Aldrin Piri <aldrin@apache.org>
diff --git a/PROCESSORS.md b/PROCESSORS.md
index 3f0a1af..0718f6b 100644
--- a/PROCESSORS.md
+++ b/PROCESSORS.md
@@ -10,14 +10,12 @@
- [CaptureRTSPFrame](#capturertspframe)
- [CompressContent](#compresscontent)
- [ConsumeMQTT](#consumemqtt)
-- [ConvertHeartBeat](#convertheartbeat)
-- [ConvertJSONAck](#convertjsonack)
-- [ConvertUpdate](#convertupdate)
- [ExecuteProcess](#executeprocess)
- [ExecutePythonProcessor](#executepythonprocessor)
- [ExecuteSQL](#executesql)
- [ExecuteScript](#executescript)
- [ExtractText](#extracttext)
+- [FetchOPCProcessor](#fetchopcprocessor)
- [FetchSFTP](#fetchsftp)
- [FocusArchiveEntry](#focusarchiveentry)
- [GenerateFlowFile](#generateflowfile)
@@ -33,15 +31,14 @@
- [LogAttribute](#logattribute)
- [ManipulateArchive](#manipulatearchive)
- [MergeContent](#mergecontent)
+- [MotionDetector](#motiondetector)
- [PublishKafka](#publishkafka)
- [PublishMQTT](#publishmqtt)
- [PutFile](#putfile)
+- [PutOPCProcessor](#putopcprocessor)
- [PutSFTP](#putsftp)
- [PutSQL](#putsql)
- [RouteOnAttribute](#routeonattribute)
-- [TFApplyGraph](#tfapplygraph)
-- [TFConvertImageToTensor](#tfconvertimagetotensor)
-- [TFExtractTopLabels](#tfextracttoplabels)
- [TailFile](#tailfile)
- [UnfocusArchiveEntry](#unfocusarchiveentry)
- [UpdateAttribute](#updateattribute)
@@ -124,7 +121,7 @@
|Base Directory|/tmp/||Scratch directory for PCAP files|
|Batch Size|50||The number of packets to combine within a given PCAP|
|Capture Bluetooth|false||True indicates that we support bluetooth interfaces|
-|Network Controller|.*||Regular expression of the network controller(s) to which we will attach|
+|Network Controllers|.*||Regular expression of the network controller(s) to which we will attach|
### Properties
| Name | Description |
@@ -209,67 +206,6 @@
|success|FlowFiles that are sent successfully to the destination are transferred to this relationship|
-## ConvertHeartBeat
-
-### Description
-
-ConvertHeartBeat converts heatrbeats into MQTT messages.
-### Properties
-
-In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.
-
-| Name | Default Value | Allowable Values | Description |
-| - | - | - | - |
-|Listening Topic|||Name of topic to listen to|
-|MQTT Controller Service|||Name of controller service that will be used for MQTT interactivity|
-### Properties
-
-| Name | Description |
-| - | - |
-|success|All files are routed to success|
-
-
-## ConvertJSONAck
-
-### Description
-
-Converts JSON acks into an MQTT consumable by MQTTC2Protocol
-### Properties
-
-In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.
-
-| Name | Default Value | Allowable Values | Description |
-| - | - | - | - |
-|Listening Topic|||Name of topic to listen to|
-|MQTT Controller Service|||Name of controller service that will be used for MQTT interactivity|
-### Properties
-
-| Name | Description |
-| - | - |
-|success|All files are routed to success|
-
-
-## ConvertUpdate
-
-### Description
-
-onverts update messages into the appropriate RESTFul call
-### Properties
-
-In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.
-
-| Name | Default Value | Allowable Values | Description |
-| - | - | - | - |
-|Listening Topic|||Name of topic to listen to|
-|MQTT Controller Service|||Name of controller service that will be used for MQTT interactivity|
-|SSL Context Service|||The SSL Context Service used to provide client certificate information for TLS/SSL (https) connections.|
-### Properties
-
-| Name | Description |
-| - | - |
-|success|All files are routed to success|
-
-
## ExecuteProcess
### Description
@@ -364,109 +300,6 @@
|success|Script successes|
-### Python Notes
-
-- ExecuteScript uses native Python bindings, which means that any environment packages (e.g. those installed by pip) can be referenced.
-- Virtual environments do work.
-- It is possible to build MiNiFi - C++ against implementations which are compatible with CPython. CPython v2.7 as well as v3.4 do work, but only one version can be used at a time for a build.
-- We recommend building multiple MiNiFi - C++ executables if there is a requirement for operating multiple Python versions or implmentations concurrently.
-- Be mindful of the Global Interpreter Lock (GIL); While Python scripts will execute concurrently, execution is multiplexed from a single thread. Generally speaking, Python input/output and library calls with native implementations will release the GIL and enable concurrency, but long-running Python code such as loops will block other threads.
-
-### Lua Notes
-
-- Take care to use the `local` keyword where appropriate (such as inside of onTrigger functions and read/write callbacks) as scripts are long-running and this will help to avoid memory leaks.
-- The following Lua packages are enabled/available for scripts:
- - `base`
- - `os`
- - `coroutine`
- - `math`
- - `io`
- - `string`
- - `table`
- - `utf8`
- - `package`
-
-#### Python Example: Reading a File
-
-```python
-import codecs
-
-class ReadCallback(object):
- def process(self, input_stream):
- content = codecs.getreader('utf-8')(input_stream).read()
- log.info('file content: %s' % content)
- return len(content)
-
-def onTrigger(context, session):
- flow_file = session.get()
-
- if flow_file is not None:
- log.info('got flow file: %s' % flow_file.getAttribute('filename'))
- session.read(flow_file, ReadCallback())
- session.transfer(flow_file, REL_SUCCESS)
-```
-
-#### Python Example: Writing a File
-
-```python
-class WriteCallback(object):
- def process(self, output_stream):
- new_content = 'hello 2'.encode('utf-8')
- output_stream.write(new_content)
- return len(new_content)
-
-def onTrigger(context, session):
- flow_file = session.get()
- if flow_file is not None:
- log.info('got flow file: %s' % flow_file.getAttribute('filename'))
- session.write(flow_file, WriteCallback())
- session.transfer(flow_file, REL_SUCCESS)
-```
-
-#### Lua Example: Reading a File
-
-```lua
-read_callback = {}
-
-function read_callback.process(self, input_stream)
- local content = input_stream:read()
- log:info('file content: ' .. content)
- return #content
-end
-
-function onTrigger(context, session)
- local flow_file = session:get()
-
- if flow_file ~= nil then
- log:info('got flow file: ' .. flow_file:getAttribute('filename'))
- session:read(flow_file, read_callback)
- session:transfer(flow_file, REL_SUCCESS)
- end
-end
-```
-
-#### Lua Example: Writing a File
-
-```lua
-write_callback = {}
-
-function write_callback.process(self, output_stream)
- local new_content = 'hello 2'
- output_stream:write(new_content)
- return #new_content
-end
-
-function onTrigger(context, session)
- local flow_file = session:get()
-
- if flow_file ~= nil then
- log:info('got flow file: ' .. flow_file:getAttribute('filename'))
- session:write(flow_file, write_callback)
- session:transfer(flow_file, REL_SUCCESS)
- end
-end
-```
-
## ExtractText
### Description
@@ -492,6 +325,37 @@
|success|success operational on the flow record|
+## FetchOPCProcessor
+
+### Description
+
+Fetches OPC-UA node
+### Properties
+
+In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.
+
+| Name | Default Value | Allowable Values | Description |
+| - | - | - | - |
+|Application URI|||Application URI of the client in the format 'urn:unconfigured:application'. Mandatory, if using Secure Channel and must match the URI included in the certificate's Subject Alternative Names.|
+|Certificate path|||Path to the DER-encoded cert file|
+|Key path|||Path to the DER-encoded key file|
+|**Lazy mode**|Off|Off<br>On<br>|Only creates flowfiles from nodes with new timestamp from the server.|
+|Max depth|0||Specifiec the max depth of browsing. 0 means unlimited.|
+|Namespace index|0||The index of the namespace. Used only if node ID type is not path.|
+|**Node ID**|||Specifies the ID of the root node to traverse|
+|**Node ID type**||Int<br>Path<br>String<br>|Specifies the type of the provided node ID|
+|**OPC server endpoint**|||Specifies the address, port and relative path of an OPC endpoint|
+|Password|||Password to log in with. Providing this requires cert and key to be provided as well, credentials are always sent encrypted.|
+|Trusted server certificate path|||Path to the DER-encoded trusted server certificate|
+|Username|||Username to log in with.|
+### Properties
+
+| Name | Description |
+| - | - |
+|failure|Retrieved OPC-UA nodes where value cannot be extracted (only if enabled)|
+|success|Successfully retrieved OPC-UA nodes|
+
+
## FetchSFTP
### Description
@@ -593,8 +457,9 @@
|**Input Directory**|.||The input directory from which to pull files<br/>**Supports Expression Language: true**|
|Keep Source File|false||If true, the file is not deleted after it has been copied to the Content Repository|
|Maximum File Age|0 sec||The maximum age that a file must be in order to be pulled; any file older than this amount of time (according to last modification date) will be ignored|
+|Maximum File Size|0 B||The maximum size that a file can be in order to be pulled|
|Minimum File Age|0 sec||The minimum age that a file must be in order to be pulled; any file younger than this amount of time (according to last modification date) will be ignored|
-|Minimum File Size|0 B||The maximum size that a file can be in order to be pulled|
+|Minimum File Size|0 B||The minimum size that a file can be in order to be pulled|
|Polling Interval|0 sec||Indicates how long to wait before performing a directory listing|
|Recurse Subdirectories|true||Indicates whether or not to pull files from subdirectories|
### Properties
@@ -798,7 +663,7 @@
|**Listening Port**|80||The Port to listen on for incoming connections. 0 means port is going to be selected randomly.|
|SSL Certificate|||File containing PEM-formatted file including TLS/SSL certificate and key|
|SSL Certificate Authority|||File containing trusted PEM-formatted certificates|
-|SSL Minimum Version|SSL2|SSL2<br>SSL3<br>TLS1.0<br>TLS1.1<br>TLS1.2<br>|Minimum TLS/SSL version allowed (SSL2, SSL3, TLS1.0, TLS1.1, TLS1.2)|
+|SSL Minimum Version|TLS1.2|TLS1.2<br>|Minimum TLS/SSL version allowed (TLS1.2)|
|SSL Verify Peer|no|no<br>yes<br>|Whether or not to verify the client's certificate (yes/no)|
### Properties
@@ -848,9 +713,11 @@
|Attributes to Ignore|||A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored.|
|Attributes to Log|||A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.|
|FlowFiles To Log|1||Number of flow files to log. If set to zero all flow files will be logged. Please note that this may block other threads from running if not used judiciously.|
+|Hexencode Payload|false||If true, the FlowFile's payload will be logged in a hexencoded format|
|Log Level||debug<br>error<br>info<br>trace<br>warn<br>|The Log Level to use when logging the Attributes|
|Log Payload|false||If true, the FlowFile's payload will be logged, in addition to its attributes.otherwise, just the Attributes will be logged|
|Log Prefix|||Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.|
+|Maximum Payload Line Length|80||The logged payload will be broken into lines this long. 0 means no newlines will be added.|
### Properties
| Name | Description |
@@ -916,6 +783,30 @@
|original|The FlowFiles that were used to create the bundle|
+## MotionDetector
+
+### Description
+
+Detect motion from captured images.
+### Properties
+
+In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.
+
+| Name | Default Value | Allowable Values | Description |
+| - | - | - | - |
+|**Dilate iteration**|10||For image processing, if an object is detected as 2 separate objects, increase this value|
+|**Image Encoding**|.jpg|.jpg<br>.png<br>|The encoding that should be applied to the output|
+|**Minimum Area**|100||We only consider the movement regions with area greater than this.|
+|**Path to background frame**|||If not provided then the processor will take the first input frame as background|
+|**Threshold for segmentation**|42||Pixel greater than this will be white, otherwise black.|
+### Properties
+
+| Name | Description |
+| - | - |
+|failure|Failure to detect motion|
+|success|Successful to detect motion|
+
+
## PublishKafka
### Description
@@ -928,27 +819,30 @@
| Name | Default Value | Allowable Values | Description |
| - | - | - | - |
|Attributes to Send as Headers|||Any attribute whose name matches the regex will be added to the Kafka messages as a Header|
-|Batch Size|||Maximum number of messages batched in one MessageSet|
+|Batch Size|10||Maximum number of messages batched in one MessageSet|
|**Client Name**|||Client Name to use when communicating with Kafka<br/>**Supports Expression Language: true**|
|Compress Codec|none||compression codec to use for compressing message sets|
-|Delivery Guarantee|DELIVERY_ONE_NODE||TSpecifies the requirement for guaranteeing that a message is sent to Kafka<br/>**Supports Expression Language: true**|
+|Debug contexts|||A comma-separated list of debug contexts to enable.Including: generic, broker, topic, metadata, feature, queue, msg, protocol, cgrp, security, fetch, interceptor, plugin, consumer, admin, eos, all|
+|Delivery Guarantee|1||Specifies the requirement for guaranteeing that a message is sent to Kafka. Valid values are 0 (do not wait for acks), -1 or all (block until message is committed by all in sync replicas) or any concrete number of nodes.<br/>**Supports Expression Language: true**|
|Kerberos Keytab Path|||The path to the location on the local filesystem where the kerberos keytab is located. Read permission on the file is required.|
|Kerberos Principal|||Keberos Principal|
|Kerberos Service Name|||Kerberos Service Name|
|**Known Brokers**|||A comma-separated list of known Kafka Brokers in the format <host>:<port><br/>**Supports Expression Language: true**|
-|Max Flow Segment Size|||Maximum flow content payload segment size for the kafka record|
+|Max Flow Segment Size|0 B||Maximum flow content payload segment size for the kafka record. 0 B means unlimited.|
|Max Request Size|||Maximum Kafka protocol request message size|
|Message Key Field|||The name of a field in the Input Records that should be used as the Key for the Kafka message.
Supports Expression Language: true (will be evaluated using flow file attributes)|
+|Message Timeout|30 sec||The total time sending a message could take<br/>**Supports Expression Language: true**|
|Queue Buffering Max Time|||Delay to wait for messages in the producer queue to accumulate before constructing message batches|
|Queue Max Buffer Size|||Maximum total message size sum allowed on the producer queue|
|Queue Max Message|||Maximum number of messages allowed on the producer queue|
-|Request Timeout|||The ack timeout of the producer request in milliseconds<br/>**Supports Expression Language: true**|
+|Request Timeout|10 sec||The ack timeout of the producer request<br/>**Supports Expression Language: true**|
|Security CA|||File or directory path to CA certificate(s) for verifying the broker's key|
|Security Cert|||Path to client's public key (PEM) used for authentication|
|Security Pass Phrase|||Private key passphrase|
|Security Private Key|||Path to client's private key (PEM) used for authentication|
|Security Protocol|||Protocol used to communicate with brokers|
+|Target Batch Payload Size|512 KB||The target total payload size for a batch. 0 B means unlimited (Batch Size is still applied).|
|**Topic Name**|||The Kafka Topic of interest<br/>**Supports Expression Language: true**|
### Properties
@@ -1011,6 +905,40 @@
|success|All files are routed to success|
+## PutOPCProcessor
+
+### Description
+
+Creates/updates OPC nodes
+### Properties
+
+In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.
+
+| Name | Default Value | Allowable Values | Description |
+| - | - | - | - |
+|Application URI|||Application URI of the client in the format 'urn:unconfigured:application'. Mandatory, if using Secure Channel and must match the URI included in the certificate's Subject Alternative Names.|
+|Certificate path|||Path to the DER-encoded cert file|
+|Key path|||Path to the DER-encoded key file|
+|**OPC server endpoint**|||Specifies the address, port and relative path of an OPC endpoint|
+|**Parent node ID**|||Specifies the ID of the root node to traverse|
+|**Parent node ID type**||Int<br>Path<br>String<br>|Specifies the type of the provided node ID|
+|Parent node namespace index|0||The index of the namespace. Used only if node ID type is not path.|
+|Password|||Password to log in with. Providing this requires cert and key to be provided as well, credentials are always sent encrypted.|
+|Target node ID|||ID of target node.<br/>**Supports Expression Language: true**|
+|Target node ID type|||ID type of target node. Allowed values are: Int, String.<br/>**Supports Expression Language: true**|
+|Target node browse name|||Browse name of target node. Only used when new node is created.<br/>**Supports Expression Language: true**|
+|Target node namespace index|||The index of the namespace. Used only if node ID type is not path.<br/>**Supports Expression Language: true**|
+|Trusted server certificate path|||Path to the DER-encoded trusted server certificate|
+|Username|||Username to log in with.|
+|**Value type**||Boolean<br>Double<br>Float<br>Int32<br>Int64<br>String<br>UInt32<br>UInt64<br>|Set the OPC value type of the created nodes|
+### Properties
+
+| Name | Description |
+| - | - |
+|failure|Failed to put OPC-UA node|
+|success|Successfully put OPC-UA node|
+
+
## PutSFTP
### Description
@@ -1102,102 +1030,6 @@
|unmatched|Files which do not match any expression are routed here|
-## TFApplyGraph
-
-### Description
-
-Applies a TensorFlow graph to the tensor protobuf supplied as input. The tensor
-is fed into the node specified by the `Input Node` property. The output
-FlowFile is a tensor protobuf extracted from the node specified by the `Output
-Node` property.
-
-TensorFlow graphs are read dynamically by feeding a graph protobuf to the
-processor with the `tf.type` property set to `graph`.
-
-### Properties
-
-In the list below, the names of required properties appear in bold. Any other
-properties (not in bold) are considered optional. The table also indicates any
-default values, and whether a property supports the NiFi Expression Language.
-
-| Name | Default Value | Allowable Values | Description |
-| - | - | - | - |
-| **Input Node** | | | The node of the TensorFlow graph to feed tensor inputs to |
-| **Output Node** | | | The node of the TensorFlow graph to read tensor outputs from |
-
-### Relationships
-
-| Name | Description |
-| - | - |
-| success | Successful graph application outputs as tensor protobufs |
-| retry | Inputs which fail graph application but may work if sent again |
-| failure | Failures which will not work if retried |
-## TFConvertImageToTensor
-
-### Description
-
-Converts the input image file into a tensor protobuf. The image will be resized
-to the given output tensor dimensions.
-
-### Properties
-
-In the list below, the names of required properties appear in bold. Any other
-properties (not in bold) are considered optional. The table also indicates any
-default values, and whether a property supports the NiFi Expression Language.
-
-| Name | Default Value | Allowable Values | Description |
-| - | - | - | - |
-| **Input Format** | | PNG, RAW | The format of the input image (PNG or RAW). RAW is RGB24. |
-| **Input Width** | | | The width, in pixels, of the input image. |
-| **Input Height** | | | The height, in pixels, of the input image. |
-| Crop Offset X | | | The X (horizontal) offset, in pixels, to crop the input image (relative to top-left corner). |
-| Crop Offset Y | | | The Y (vertical) offset, in pixels, to crop the input image (relative to top-left corner). |
-| Crop Size X | | | The X (horizontal) size, in pixels, to crop the input image. |
-| Crop Size Y | | | The Y (vertical) size, in pixels, to crop the input image. |
-| **Output Width** | | | The width, in pixels, of the output image. |
-| **Output Height** | | | The height, in pixels, of the output image. |
-| **Channels** | 3 | | The number of channels (e.g. 3 for RGB, 4 for RGBA) in the input image. |
-
-### Relationships
-
-| Name | Description |
-| - | - |
-| success | Successfully read tensor protobufs |
-| failure | Inputs which could not be converted to tensor protobufs |
-## TFExtractTopLabels
-
-### Description
-
-Extracts the top 5 labels for categorical inference models.
-
-Labels are fed as newline (`\n`) -delimited files where each line is a label
-for the tensor index equivalent to the line number. Label files must be fed in
-with the `tf.type` property set to `labels`.
-
-The top 5 labels are written to the following attributes:
-
-- `top_label_0`
-- `top_label_1`
-- `top_label_2`
-- `top_label_3`
-- `top_label_4`
-
-### Properties
-
-In the list below, the names of required properties appear in bold. Any other
-properties (not in bold) are considered optional. The table also indicates any
-default values, and whether a property supports the NiFi Expression Language.
-
-| Name | Default Value | Allowable Values | Description |
-| - | - | - | - |
-
-### Relationships
-
-| Name | Description |
-| - | - |
-| success | Successful FlowFiles are sent here with labels as attributes |
-| retry | Failures which might work if retried |
-| failure | Failures which will not work if retried |
## TailFile
### Description