Processors

Table of Contents

AppendHostInfo

Description

Appends host information such as IP address and hostname as an attribute to incoming flowfiles.

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.

NameDefault ValueAllowable ValuesDescription
Network Interface Nameeth0Network interface from which to read an IP v4 address
Hostname Attributesource.hostnameFlowfile attribute to used to record the agent's hostname
IP Attributesource.ipv4Flowfile attribute to used to record the agent's IP address

Relationships

NameDescription
successAll FlowFiles are routed to this relationship.

ExecuteProcess

Description

Runs an operating system command specified by the user and writes the output of that command to a FlowFile. If the command is expected to be long-running, the Processor can output the partial data on a specified interval. When this option is used, the output is expected to be in textual format, as it typically does not make sense to split binary data on arbitrary time-based intervals.

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.

NameDefault ValueAllowable ValuesDescription
CommandSpecifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.
Command ArgumentsThe arguments to supply to the executable delimited by white space. White space can be escaped by enclosing it in double-quotes.
Working DirectoryThe directory to use as the current working directory when executing the command
Batch Duration0If the process is expected to be long-running and produce textual output, a batch duration can be specified.
Redirect Error StreamfalseIf true will redirect any error stream output of the process to the output stream.

Relationships

NameDescription
successAll created FlowFiles are routed to this relationship.

ExecuteScript

Description

Executes a script given the flow file and a process session. The script is responsible for handling the incoming flow file (transfer to SUCCESS or remove, e.g.) as well as any flow files created by the script. If the handling is incomplete or incorrect, the session will be rolled back.

Scripts must define an onTrigger function which accepts NiFi Context and Property objects. For efficiency, scripts are executed once when the processor is run, then the onTrigger method is called for each incoming flowfile. This enables scripts to keep state if they wish, although there will be a script context per concurrent task of the processor. In order to, e.g., compute an arithmetic sum based on incoming flow file information, set the concurrent tasks to 1.

Multiple variables are provided automatically to script contexts:

NamePurpose
logthe logging object used for logging debug, info, warn, and error
REL_SUCCESSthe “success” relationship
REL_FAILUREthe “failure” relationship

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

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

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

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

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

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.

NameDefault ValueAllowable ValuesDescription
Script Enginepythonpython, luaThe engine to execute scripts
Script FilePath to script file to execute. Only one of Script File or Script Body may be used
Script BodyBody of script to execute. Only one of Script File or Script Body may be used
Module DirectoryComma-separated list of paths to files and/or directories which contain modules required by the script

Relationships

NameDescription
successScript successes
failureScript failures

GetFile

Description

Creates FlowFiles from files in a directory. NiFi will ignore files it doesn't have at least read permissions for.

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.

NameDefault ValueAllowable ValuesDescription
Batch Size10The maximum number of files to pull in each iteration
Input Directory.The input directory from which to pull files
Ignore Hidden FilestrueIndicates whether or not hidden files should be ignored
Keep Source FilefalseIf true, the file is not deleted after it has been copied to the Content Repository
Maximum File Age0 secThe 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 Age0 secThe 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 Size0 BThe maximum size that a file can be in order to be pulled
Minimum File Size0 BThe minimum size that a file must be in order to be pulled
Polling Interval0 secIndicates how long to wait before performing a directory listing
Recurse SubdirectoriestrueIndicates whether or not to pull files from subdirectories
File Filter[^\\.].*Only files whose names match the given regular expression will be picked up

Relationships

NameDescription
successAll files are routed to success

GetUSBCamera

Description

Gets images from USB Video Class (UVC)-compatible devices. Outputs one frame per flow file at the rate specified by the FPS property in the format specified by the Format property.

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.

NameDefault ValueAllowable ValuesDescription
FPS1Frames per second to capture from USB camera
FormatPNGPNG, RAWFrame format (currently only PNG and RAW are supported; RAW is a binary pixel buffer of RGB values)
USB Vendor IDUSB Vendor ID of camera device, in hexadecimal format
USB Product IDUSB Product ID of camera device, in hexadecimal format
USB Serial No.USB Serial No. of camera device

Relationships

NameDescription
successSucessfully captured images sent here
failureFailures sent here

GenerateFlowFile

Description

This processor creates FlowFiles with random data or custom content. GenerateFlowFile is useful for load testing, configuration, and simulation.

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.

NameDefault ValueAllowable ValuesDescription
File Size1 kBThe size of the file that will be used
Batch Size1The number of FlowFiles to be transferred in each invocation
Data FormatBinaryBinary, TextSpecifies whether the data should be Text or Binary
Unique FlowFilestruetrue, falseIf true, each FlowFile that is generated will be unique. If false, a random value will be generated and all FlowFiles will get the same content but this offers much higher throughput

Relationships

NameDescription
successGenerated FlowFiles are sent here

InvokeHTTP

Description

An HTTP client processor which can interact with a configurable HTTP Endpoint. The destination URL and HTTP Method are configurable. FlowFile attributes are converted to HTTP headers and the FlowFile contents are included as the body of the request (if the HTTP Method is PUT, POST or PATCH).

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.

NameDefault ValueAllowable ValuesDescription
HTTP MethodGETHTTP request method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS). Arbitrary methods are also supported. Methods other than POST, PUT and PATCH will be sent without a message body.
Remote URLRemote URL which will be connected to, including scheme, host, port, path.
Supports Expression Language: true
Connection Timeout5 secsMax wait time for connection to remote service.
Read Timeout15 secsMax wait time for response from remote service.
Include Date HeaderTrueTrue, FalseInclude an RFC-2616 Date header in the request.
Follow RedirectsTrueFollow HTTP redirects issued by remote server.
Attributes to SendRegular expression that defines which attributes to send as HTTP headers in the request. If not defined, no attributes are sent as headers.
SSL Context ServiceThe SSL Context Service used to provide client certificate information for TLS/SSL (https) connections.
Proxy HostThe fully qualified hostname or IP address of the proxy server
Proxy PortThe port of the proxy server
invokehttp-proxy-userUsername to set when authenticating against proxy
invokehttp-proxy-passwordPassword to set when authenticating against proxy
Content-typeapplication/octet-streamThe Content-Type to specify for when content is being transmitted through a PUT, POST or PATCH. In the case of an empty value after evaluating an expression language expression, Content-Type defaults to application/octet-stream
send-message-bodytruetrue, falseIf true, sends the HTTP message body on POST/PUT/PATCH requests (default). If false, suppresses the message body and content-type header for these requests.
Use Chunked Encodingfalsetrue, falseWhen POST‘ing, PUT’ing or PATCH'ing content set this property to true in order to not pass the ‘Content-length’ header and instead send ‘Transfer-Encoding’ with a value of ‘chunked’. This will enable the data transfer mechanism which was introduced in HTTP 1.1 to pass data of unknown lengths in chunks.
Put Response Body in AttributeIf set, the response body received back will be put into an attribute of the original FlowFile instead of a separate FlowFile. The attribute key to put to is determined by evaluating value of this property.
Always Output Responsefalsetrue, falseWill force a response FlowFile to be generated and routed to the ‘Response’ relationship regardless of what the server status code received is or if the processor is configured to put the server response body in the request attribute. In the later configuration a request FlowFile with the response body in the attribute and a typical response FlowFile will be emitted to their respective relationships.
Penalize on “No Retry”falsetrue, falseEnabling this property will penalize FlowFiles that are routed to the “No Retry” relationship.
Disable Peer Verificationfalsetrue, falseDisables peer verification for the SSL session

Relationships

NameDescription
successAll files are routed to success
responseA Response FlowFile will be routed upon success (2xx status codes). If the ‘Output Response Regardless’ property is true then the response will be sent to this relationship regardless of the status code received.
retryThe original FlowFile will be routed on any status code that can be retried (5xx status codes). It will have new attributes detailing the request.
no retryThe original FlowFile will be routed on any status code that should NOT be retried (1xx, 3xx, 4xx status codes). It will have new attributes detailing the request.
failureThe original FlowFile will be routed on any type of connection failure, timeout or general exception. It will have new attributes detailing the request.

LogAttribute

Description

Logs attributes of flow files in the MiNiFi application log.

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.

NameDefault ValueAllowable ValuesDescription
Log Levelinfotrace, debug, info, warn, errorThe Log Level to use when logging the Attributes
Attributes to LogA comma-separated list of Attributes to Log. If not specified, all attributes will be logged.
Attributes to IgnoreA comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored.
Log Payloadfalsetrue, falseIf true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.
Log prefixLog prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.

Relationships

NameDescription
successAll FlowFiles are routed to this relationship

ListenHTTP

Description

Starts an HTTP Server and listens on a given base path to transform incoming requests into FlowFiles. The default URI of the Service will be http://{hostname}:{port}/contentListener. Only HEAD and POST requests are supported. GET, PUT, and DELETE will result in an error and the HTTP response status code 405.

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.

NameDefault ValueAllowable ValuesDescription
Base PathcontentListenerBase path for incoming connections
Listening PortThe Port to listen on for incoming connections
SSL CertificateFile containing PEM-formatted file including TLS/SSL certificate and key
SSL Certificate AuthorityFile containing trusted PEM-formatted certificates
SSL Verify Peernoyes, noWhether or not to verify the client's certificate
SSL Minimum VersionSSL2SSL2, SSL3, TLS1.0, TLS1.1, TLS1.2Minimum TLS/SSL version allowed
HTTP Headers to receive as Attributes (Regex)Specifies the Regular Expression that determines the names of HTTP Headers that should be passed along as FlowFile attributes

Relationships

NameDescription
successRelationship for successfully received FlowFiles

ListenSyslog

Description

Listens for Syslog messages being sent to a given port over TCP or UDP. Incoming messages are checked against regular expressions for RFC5424 and RFC3164 formatted messages. The format of each message is: (<PRIORITY>)(VERSION )(TIMESTAMP) (HOSTNAME) (BODY) where version is optional. The timestamp can be an RFC5424 timestamp with a format of “yyyy-MM-dd‘T’HH:mm:ss.SZ” or “yyyy-MM-dd‘T’HH:mm:ss.S+hh:mm”, or it can be an RFC3164 timestamp with a format of “MMM d HH:mm:ss”. If an incoming messages matches one of these patterns, the message will be parsed and the individual pieces will be placed in FlowFile attributes, with the original message in the content of the FlowFile. If an incoming message does not match one of these patterns it will not be parsed and the syslog.valid attribute will be set to false with the original message in the content of the FlowFile. Valid messages will be transferred on the success relationship, and invalid messages will be transferred on the invalid relationship.

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.

NameDefault ValueAllowable ValuesDescription
Receive Buffer Size65507 BThe size of each buffer used to receive Syslog messages. Adjust this value appropriately based on the expected size of the incoming Syslog messages. When UDP is selected each buffer will hold one Syslog message. When TCP is selected messages are read from an incoming connection until the buffer is full, or the connection is closed.
Max Size of Socket Buffer1 MBThe maximum size of the socket buffer that should be used. This is a suggestion to the Operating System to indicate how big the socket buffer should be. If this value is set too low, the buffer may fill up before the data can be read, and incoming data will be dropped.
Max Number of TCP Connections2The maximum number of concurrent connections to accept Syslog messages in TCP mode.
Max Batch Size1The maximum number of Syslog events to add to a single FlowFile. If multiple events are available, they will be concatenated along with the <Message Delimiter> up to this configured maximum number of messages
Message Delimiter"\nSpecifies the delimiter to place between Syslog messages when multiple messages are bundled together (see <Max Batch Size> property).
Parse Messagestruetrue, falseIndicates if the processor should parse the Syslog messages. If set to false, each outgoing FlowFile will only contain the sender, protocol, and port, and no additional attributes.
Port514The port for Syslog communication.

Relationships

NameDescription
successSyslog messages that match one of the expected formats will be sent out this relationship as a FlowFile per message.
invalidSyslog messages that do not match one of the expected formats will be sent out this relationship as a FlowFile per message.

PutFile

Description

Writes the contents of a FlowFile to the local file system

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.

NameDefault ValueAllowable ValuesDescription
DirectoryThe directory to which files should be written. You may use expression language such as /aa/bb/${path}
Supports Expression Language: true
Conflict Resolution Strategyfailreplace, ignore, failIndicates what should happen when a file with the same name already exists in the output directory
Create Missing Directoriestruetrue, falseIf true, then missing destination directories will be created. If false, flowfiles are penalized and sent to failure.
Maximum File CountSpecifies the maximum number of files that can exist in the output directory

Relationships

NameDescription
successFiles that have been successfully written to the output directory are transferred to this relationship
failureFiles that could not be written to the output directory for some reason are transferred to this relationship

TailFile

Description

“Tails” a file, or a list of files, ingesting data from the file as it is written to the file. The file is expected to be textual. Data is ingested only when a new line is encountered (carriage return or new-line character or combination). If the file to tail is periodically “rolled over”, as is generally the case with log files, an optional Rolling Filename Pattern can be used to retrieve data from files that have rolled over, even if the rollover occurred while NiFi was not running (provided that the data still exists upon restart of NiFi). It is generally advisable to set the Run Schedule to a few seconds, rather than running with the default value of 0 secs, as this Processor will consume a lot of resources if scheduled very aggressively. At this time, this Processor does not support ingesting files that have been compressed when ‘rolled over’.

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.

NameDefault ValueAllowable ValuesDescription
File to TailFully-qualified filename of the file that should be tailed
State FileTailFileStateSpecifies the file that should be used for storing state about what data has been ingested so that upon restart NiFi can resume from where it left off
Input DelimiterSpecifies the character that should be used for delimiting the data being tailed from the incoming file.

Relationships

NameDescription
successAll FlowFiles are routed to this Relationship.

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.

NameDefault ValueAllowable ValuesDescription
Input NodeThe node of the TensorFlow graph to feed tensor inputs to
Output NodeThe node of the TensorFlow graph to read tensor outputs from

Relationships

NameDescription
successSuccessful graph application outputs as tensor protobufs
retryInputs which fail graph application but may work if sent again
failureFailures 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.

NameDefault ValueAllowable ValuesDescription
Input FormatPNG, RAWThe format of the input image (PNG or RAW). RAW is RGB24.
Input WidthThe width, in pixels, of the input image.
Input HeightThe height, in pixels, of the input image.
Output WidthThe width, in pixels, of the output image.
Output HeightThe height, in pixels, of the output image.
Channels3The number of channels (e.g. 3 for RGB, 4 for RGBA) in the input image.

Relationships

NameDescription
successSuccessfully read tensor protobufs
failureInputs 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.

NameDefault ValueAllowable ValuesDescription

Relationships

NameDescription
successSuccessful FlowFiles are sent here with labels as attributes
retryFailures which might work if retried
failureFailures which will not work if retried

MergeContent

Merges a Group of FlowFiles together based on a user-defined strategy and packages them into a single FlowFile. It is recommended that the Processor be configured with only a single incoming connection, as Group of FlowFiles will not be created from FlowFiles in different connections. This processor updates the mime.type attribute as appropriate.

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.

NameDefault ValueAllowable ValuesDescription
Merge StrategyDefragmentDefragment, Bin-Packing Algorithm
Merge FormatBinary ConcatenationTAR, ZIP, “FlowFile Stream, v3”, “FlowFile Stream, v2”, “FlowFile Tar, v1”, Binary Concatenation, AvroDetermines the format that will be used to merge the content.
Correlation Attribute NameCorrelation Attribute Name
Delimiter StrategyFilenameFilename, TextDetermines if Header, Footer, and Demarcator should point to files containing the respective content, or if the values of the properties should be used as the content.
Header FileFilename specifying the header to use
Footer FileFilename specifying the footer to use
Demarcator FileFilename specifying the demarcator to use
Keep Pathfalsefalse, trueIf using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry

Relationships

NameDescription
originalThe FlowFiles that were used to create the bundle
mergedThe FlowFile containing the merged content
failureIf the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure

ExtractText

Extracts the content of a FlowFile and places it into an attribute.

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.

NameDefault ValueAllowable ValuesDescription
AttributeAttribute to set from content
Size Limit2 MBMaximum number of bytes to read into the attribute. 0 for no limit.

Relationships

NameDescription
successAll FlowFiles are routed to this Relationship.

CompressContent

Compresses or decompresses the contents of FlowFiles using a user-specified compression algorithm and updates the mime.type attribute as appropriate

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.

NameDefault ValueAllowable ValuesDescription
Compression Level10, 1, 2, 3, 4, 5, 6, 7, 8, 9The compression level to use; this is valid only when using GZIP compression.
Modecompresscompress, decompressIndicates whether the processor should compress content or decompress content.
Compression Formatuse mime.type attributegzip, bzip2, xz-lzma2, lzma, snappy, snappy framedThe compression format to use.
Update Filenamefalsetrue, falseIf true, will remove the filename extension when decompressing data (only if the extension indicates the appropriate compression format) and add the appropriate extension when compressing data

Relationships

NameDescription
successFlowFiles will be transferred to the success relationship after successfully being compressed or decompressed
failureFlowFiles will be transferred to the failure relationship if they fail to compress/decompress

FocusArchiveEntry

Allows manipulation of entries within an archive (e.g. TAR) by focusing on one entry within the archive at a time. When an archive entry is focused, that entry is treated as the content of the FlowFile and may be manipulated independently of the rest of the archive. To restore the FlowFile to its original state, use UnfocusArchiveEntry.

Archives may be compressed.

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.

NameDefault ValueAllowable ValuesDescription
PathThe path of the archive entry to focus

Relationships

NameDescription
successThe FlowFile, with the given entry focused, is sent to this relationship

UnfocusArchiveEntry

Restores a FlowFile which has had an archive entry focused via FocusArchiveEntry to its original state.

Relationships

NameDescription
successAll FlowFiles are routed to this Relationship

ManipulateArchive

Performs an operation which manipulates an archive without needing to split the archive into multiple FlowFiles.

Operations

NameDescription
removeRemoves the target
copyCopies the target to a new archive entry
moveMoves the target to a new archive entry
touchCreates a new archive entry

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.

NameDefault ValueAllowable ValuesDescription
Operationtouch, remove, copy, moveOperation to perform on the archive
TargetAn existing entry within the archive to perform the operation on
DestinationDestination for operations (touch, move or copy) which result in new entries.
BeforeFor operations which result in new entries, places the new entry before the entry specified by this property
AfterFor operations which result in new entries, places the new entry after the entry specified by this property

Relationships

NameDescription
successFlowFiles will be transferred to the success relationship if the operation succeeds.
failureFlowFiles will be transferred to the failure relationship if the operation fails.

PublishKafka

This Processor puts the contents of a FlowFile to a Topic in Apache Kafka. The content of a FlowFile becomes the contents of a Kafka message. This message is optionally assigned a key by using the <Kafka Key> Property.

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.

NameDefault ValueAllowable ValuesDescription
Known BrokersA comma-separated list of known Kafka Brokers in the format <host>:<port>
Topic NameThe Kafka Topic of interest
Delivery Guarantee1all, 1, 0Specifies the requirement for guaranteeing that a message is sent to Kafka
Request TimeoutThe ack timeout of the producer request in milliseconds
Client NameClient Name to use when communicating with Kafka
Batch SizeMaximum number of messages batched in one MessageSet
Queue Buffering Max TimeDelay to wait for messages in the producer queue to accumulate before constructing message batches
Queue Max Buffer SizeMaximum total message size sum allowed on the producer queue
Queue Max MessageMaximum number of messages allowed on the producer queue
Compress Codecnonenone, gzip, snappycompression codec to use for compressing message sets
Max Flow Segment SizeMaximum flow content payload segment size for the kafka record
Security Protocolplaintext, ssl, sasl_plaintext, sasl_sslProtocol used to communicate with brokers
Security CertPath to client's public key (PEM) used for authentication
Security Private KeyPath to client's private key (PEM) used for authentication
Security Pass PhrasePrivate key passphrase

Relationships

NameDescription
successAny FlowFile that is successfully sent to Kafka will be routed to this Relationship
failureAny FlowFile that cannot be sent to Kafka will be routed to this Relationship

PublishMQTT

This Processor puts the contents of a FlowFile to a MQTT broker for a sepcified topic. The content of a FlowFile becomes the payload of the MQTT message.

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.

NameDefault ValueAllowable ValuesDescription
Broker URIThe URI to use to connect to the MQTT broker
TopicThe topic to publish the message to
Session stateWhether to start afresh or resume previous flows
Client IDMQTT client ID to use
UsernameUsername to use when connecting to the broker
PasswordPassword to use when connecting to the broker
Keep Alive IntervalDefines the maximum time interval between messages sent or received
Connection TimeoutMaximum time interval the client will wait for the network connection to the MQTT server
Quality of ServiceThe Quality of Service(QoS) to send the message with. Accepts three values ‘0’, ‘1’ and ‘2’
RetainRetain MQTT published record in broker
Max Flow Segment SizeMaximum flow content payload segment size for the MQTT record

Relationships

NameDescription
successAny FlowFile that is successfully sent to broker will be routed to this Relationship
failureAny FlowFile that cannot be sent to broker will be routed to this Relationship

ConsumeMQTT

This Processor gets the contents of a FlowFile from a MQTT broker for a sepcified topic. The the payload of the MQTT message becomes content of a FlowFile

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.

NameDefault ValueAllowable ValuesDescription
Broker URIThe URI to use to connect to the MQTT broker
TopicThe topic to publish the message to
Session stateWhether to start afresh or resume previous flows
Client IDMQTT client ID to use
UsernameUsername to use when connecting to the broker
PasswordPassword to use when connecting to the broker
Keep Alive IntervalDefines the maximum time interval between messages sent or received
Connection TimeoutMaximum time interval the client will wait for the network connection to the MQTT server
Quality of ServiceThe Quality of Service(QoS) to send the message with. Accepts three values ‘0’, ‘1’ and ‘2’
Max Flow Segment SizeMaximum flow content payload segment size for the MQTT record

Relationships

NameDescription
successAny FlowFile that is successfully sent to broker will be routed to this Relationship