Skip to content

Instantly share code, notes, and snippets.

@phrocker
Created February 5, 2019 01:36
Show Gist options
  • Select an option

  • Save phrocker/b8e8bf89b4a641703fa59eb782b69e39 to your computer and use it in GitHub Desktop.

Select an option

Save phrocker/b8e8bf89b4a641703fa59eb782b69e39 to your computer and use it in GitHub Desktop.
with nar
{
"operation": "heartbeat",
"agentInfo": {
"agentManifest": {
"buildInfo": {
"compiler": "/Library/Developer/CommandLineTools/usr/bin/c++",
"flags": " -std=c++11 -DOPENSSL_SUPPORT",
"revision": "9d9f3a6c50b2170368a6bbbf07e94e3bcb7a483b",
"timestamp": 1549300359,
"version": "0.6.0"
},
"bundles": [
{
"componentManifest": {
"processors": [
{
"propertyDescriptors": {
"Always Output Response": {
"defaultValue": false,
"description": "Will force a response FlowFile to be generated and routed to the 'Response' relationship regardless of what the server status code received is ",
"expressionLanguageScope": "NONE",
"name": "Always Output Response",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Attributes to Send": {
"description": "Regular expression that defines which attributes to send as HTTP headers in the request. If not defined, no attributes are sent as headers.",
"expressionLanguageScope": "NONE",
"name": "Attributes to Send",
"required": false,
"validator": "VALID"
},
"Connection Timeout": {
"defaultValue": "5 secs",
"description": "Max wait time for connection to remote service.",
"expressionLanguageScope": "NONE",
"name": "Connection Timeout",
"required": false,
"validator": "VALID"
},
"Content-type": {
"defaultValue": "application/octet-stream",
"description": "The 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",
"expressionLanguageScope": "NONE",
"name": "Content-type",
"required": false,
"validator": "VALID"
},
"Disable Peer Verification": {
"defaultValue": false,
"description": "Disables peer verification for the SSL session",
"expressionLanguageScope": "NONE",
"name": "Disable Peer Verification",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"HTTP Method": {
"defaultValue": "GET",
"description": "HTTP 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.",
"expressionLanguageScope": "NONE",
"name": "HTTP Method",
"required": false,
"validator": "VALID"
},
"Include Date Header": {
"defaultValue": true,
"description": "Include an RFC-2616 Date header in the request.",
"expressionLanguageScope": "NONE",
"name": "Include Date Header",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Proxy Host": {
"description": "The fully qualified hostname or IP address of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Host",
"required": false,
"validator": "VALID"
},
"Proxy Port": {
"description": "The port of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Port",
"required": false,
"validator": "VALID"
},
"Read Timeout": {
"defaultValue": "15 secs",
"description": "Max wait time for response from remote service.",
"expressionLanguageScope": "NONE",
"name": "Read Timeout",
"required": false,
"validator": "VALID"
},
"Remote URL": {
"description": "Remote URL which will be connected to, including scheme, host, port, path.",
"expressionLanguageScope": "FLOWFILE_ATTRIBUTES",
"name": "Remote URL",
"required": false,
"validator": "VALID"
},
"SSL Context Service": {
"typeProvidedByValue": {
"artifact": "minifi-system",
"group": "org.apache.nifi.minifi",
"type": "org.apache.nifi.minifi.controllers.SSLContextService"
},
"exclusiveOfProperties": {
"Remote URL": "^http:.*$"
},
"description": "The SSL Context Service used to provide client certificate information for TLS/SSL (https) connections.",
"expressionLanguageScope": "NONE",
"name": "SSL Context Service",
"required": false,
"validator": "VALID"
},
"Use Chunked Encoding": {
"defaultValue": false,
"description": "When 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.",
"expressionLanguageScope": "NONE",
"name": "Use Chunked Encoding",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"invokehttp-proxy-password": {
"description": "Password to set when authenticating against proxy",
"displayName": "Proxy Password",
"expressionLanguageScope": "NONE",
"name": "invokehttp-proxy-password",
"required": false,
"validator": "VALID"
},
"invokehttp-proxy-username": {
"description": "Username to set when authenticating against proxy",
"displayName": "Proxy Username",
"expressionLanguageScope": "NONE",
"name": "invokehttp-proxy-username",
"required": false,
"validator": "VALID"
},
"send-message-body": {
"defaultValue": true,
"description": "If 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.",
"expressionLanguageScope": "NONE",
"name": "send-message-body",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
}
},
"supportedRelationships": [
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.InvokeHTTP",
"typeDescription": "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)."
}
]
},
"artifact": "minifi-http-curl",
"group": "org.apache.nifi.minifi",
"version": "0.6.0"
},
{
"componentManifest": {
"processors": [
{
"propertyDescriptors": {
"Authorized DN Pattern": {
"defaultValue": ".*",
"description": "A Regular Expression to apply against the Distinguished Name of incoming connections. If the Pattern does not match the DN, the connection will be refused.",
"expressionLanguageScope": "NONE",
"name": "Authorized DN Pattern",
"required": false,
"validator": "VALID"
},
"Base Path": {
"defaultValue": "contentListener",
"description": "Base path for incoming connections",
"expressionLanguageScope": "NONE",
"name": "Base Path",
"required": false,
"validator": "VALID"
},
"HTTP Headers to receive as Attributes (Regex)": {
"description": "Specifies the Regular Expression that determines the names of HTTP Headers that should be passed along as FlowFile attributes",
"expressionLanguageScope": "NONE",
"name": "HTTP Headers to receive as Attributes (Regex)",
"required": false,
"validator": "VALID"
},
"Listening Port": {
"defaultValue": 80,
"description": "The Port to listen on for incoming connections",
"expressionLanguageScope": "NONE",
"name": "Listening Port",
"required": true,
"validator": "PORT_VALIDATOR"
},
"SSL Certificate": {
"description": "File containing PEM-formatted file including TLS/SSL certificate and key",
"expressionLanguageScope": "NONE",
"name": "SSL Certificate",
"required": false,
"validator": "VALID"
},
"SSL Certificate Authority": {
"description": "File containing trusted PEM-formatted certificates",
"expressionLanguageScope": "NONE",
"name": "SSL Certificate Authority",
"required": false,
"validator": "VALID"
},
"SSL Minimum Version": {
"allowableValues": [
{
"displayName": "SSL2",
"value": "SSL2"
},
{
"displayName": "SSL3",
"value": "SSL3"
},
{
"displayName": "TLS1.0",
"value": "TLS1.0"
},
{
"displayName": "TLS1.1",
"value": "TLS1.1"
},
{
"displayName": "TLS1.2",
"value": "TLS1.2"
}
],
"defaultValue": "SSL2",
"description": "Minimum TLS/SSL version allowed (SSL2, SSL3, TLS1.0, TLS1.1, TLS1.2)",
"expressionLanguageScope": "NONE",
"name": "SSL Minimum Version",
"required": false,
"validator": "VALID"
},
"SSL Verify Peer": {
"allowableValues": [
{
"displayName": "yes",
"value": "yes"
},
{
"displayName": "no",
"value": "no"
}
],
"defaultValue": "no",
"description": "Whether or not to verify the client's certificate (yes/no)",
"expressionLanguageScope": "NONE",
"name": "SSL Verify Peer",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.ListenHTTP",
"typeDescription": "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, POST, and GET requests are supported. PUT, and DELETE will result in an error and the HTTP response status code 405. The response body text for all requests, by default, is empty (length of 0). A static response body can be set for a given URI by sending input files to ListenHTTP with the http.type attribute set to response_body. The response body FlowFile filename attribute is appended to the Base Path property (separated by a /) when mapped to incoming requests. The mime.type attribute of the response body FlowFile is used for the Content-type header in responses. Response body content can be cleared by sending an empty (size 0) FlowFile for a given URI mapping."
}
]
},
"artifact": "minifi-civet-extensions",
"group": "org.apache.nifi.minifi",
"version": "0.6.0"
},
{
"artifact": "minifi-rocksdb-repos",
"group": "org.apache.nifi.minifi",
"version": "0.6.0"
},
{
"componentManifest": {
"processors": [
{
"propertyDescriptors": {
"Max Bin Age": {
"description": "The maximum age of a Bin that will trigger a Bin to be complete. Expected format is <duration> <time unit>",
"expressionLanguageScope": "NONE",
"name": "Max Bin Age",
"required": false,
"validator": "VALID"
},
"Maximum Group Size": {
"description": "The maximum size for the bundle. If not specified, there is no maximum.",
"expressionLanguageScope": "NONE",
"name": "Maximum Group Size",
"required": false,
"validator": "VALID"
},
"Maximum Number of Entries": {
"description": "The maximum number of files to include in a bundle. If not specified, there is no maximum.",
"expressionLanguageScope": "NONE",
"name": "Maximum Number of Entries",
"required": false,
"validator": "VALID"
},
"Maximum number of Bins": {
"defaultValue": "100",
"description": "Specifies the maximum number of bins that can be held in memory at any one time",
"expressionLanguageScope": "NONE",
"name": "Maximum number of Bins",
"required": false,
"validator": "VALID"
},
"Minimum Group Size": {
"defaultValue": "0",
"description": "The minimum size of for the bundle",
"expressionLanguageScope": "NONE",
"name": "Minimum Group Size",
"required": false,
"validator": "VALID"
},
"Minimum Number of Entries": {
"defaultValue": "1",
"description": "The minimum number of files to include in a bundle",
"expressionLanguageScope": "NONE",
"name": "Minimum Number of Entries",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "If the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure",
"name": "failure"
},
{
"description": "The FlowFiles that were used to create the bundle",
"name": "original"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.BinFiles",
"typeDescription": "Bins flow files into buckets based on the number of entries or size of entries"
},
{
"propertyDescriptors": {
"Correlation Attribute Name": {
"description": "Correlation Attribute Name",
"expressionLanguageScope": "NONE",
"name": "Correlation Attribute Name",
"required": false,
"validator": "VALID"
},
"Delimiter Strategy": {
"defaultValue": "Filename",
"description": "Determines if Header, Footer, and Demarcator should point to files",
"expressionLanguageScope": "NONE",
"name": "Delimiter Strategy",
"required": false,
"validator": "VALID"
},
"Demarcator File": {
"description": "Filename specifying the demarcator to use",
"expressionLanguageScope": "NONE",
"name": "Demarcator File",
"required": false,
"validator": "VALID"
},
"Footer File": {
"description": "Filename specifying the footer to use",
"expressionLanguageScope": "NONE",
"name": "Footer File",
"required": false,
"validator": "VALID"
},
"Header File": {
"description": "Filename specifying the header to use",
"expressionLanguageScope": "NONE",
"name": "Header File",
"required": false,
"validator": "VALID"
},
"Keep Path": {
"defaultValue": false,
"description": "If using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry",
"expressionLanguageScope": "NONE",
"name": "Keep Path",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Max Bin Age": {
"description": "The maximum age of a Bin that will trigger a Bin to be complete. Expected format is <duration> <time unit>",
"expressionLanguageScope": "NONE",
"name": "Max Bin Age",
"required": false,
"validator": "VALID"
},
"Maximum Group Size": {
"description": "The maximum size for the bundle. If not specified, there is no maximum.",
"expressionLanguageScope": "NONE",
"name": "Maximum Group Size",
"required": false,
"validator": "VALID"
},
"Maximum Number of Entries": {
"description": "The maximum number of files to include in a bundle. If not specified, there is no maximum.",
"expressionLanguageScope": "NONE",
"name": "Maximum Number of Entries",
"required": false,
"validator": "VALID"
},
"Maximum number of Bins": {
"defaultValue": "100",
"description": "Specifies the maximum number of bins that can be held in memory at any one time",
"expressionLanguageScope": "NONE",
"name": "Maximum number of Bins",
"required": false,
"validator": "VALID"
},
"Merge Format": {
"defaultValue": "Binary Concatenation",
"description": "Merge Format",
"expressionLanguageScope": "NONE",
"name": "Merge Format",
"required": false,
"validator": "VALID"
},
"Merge Strategy": {
"defaultValue": "Defragment",
"description": "Defragment or Bin-Packing Algorithm",
"expressionLanguageScope": "NONE",
"name": "Merge Strategy",
"required": false,
"validator": "VALID"
},
"Minimum Group Size": {
"defaultValue": "0",
"description": "The minimum size of for the bundle",
"expressionLanguageScope": "NONE",
"name": "Minimum Group Size",
"required": false,
"validator": "VALID"
},
"Minimum Number of Entries": {
"defaultValue": "1",
"description": "The minimum number of files to include in a bundle",
"expressionLanguageScope": "NONE",
"name": "Minimum Number of Entries",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "If the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure",
"name": "failure"
},
{
"description": "The FlowFile containing the merged content",
"name": "merged"
},
{
"description": "The FlowFiles that were used to create the bundle",
"name": "original"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.MergeContent",
"typeDescription": "Merges a Group of FlowFiles together based on a user-defined strategy and packages them into a single FlowFile. MergeContent should be configured with only one incoming connection as it won't create grouped Flow Files.This processor updates the mime.type attribute as appropriate."
},
{
"propertyDescriptors": {
"Compression Format": {
"defaultValue": "use mime.type attribute",
"description": "The compression format to use.",
"expressionLanguageScope": "NONE",
"name": "Compression Format",
"required": false,
"validator": "VALID"
},
"Compression Level": {
"defaultValue": "1",
"description": "The compression level to use; this is valid only when using GZIP compression.",
"expressionLanguageScope": "NONE",
"name": "Compression Level",
"required": false,
"validator": "VALID"
},
"Mode": {
"defaultValue": "compress",
"description": "Indicates whether the processor should compress content or decompress content.",
"expressionLanguageScope": "NONE",
"name": "Mode",
"required": false,
"validator": "VALID"
},
"Update Filename": {
"defaultValue": false,
"description": "Determines if filename extension need to be updated",
"expressionLanguageScope": "NONE",
"name": "Update Filename",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
}
},
"supportedRelationships": [
{
"description": "FlowFiles will be transferred to the failure relationship if they fail to compress/decompress",
"name": "failure"
},
{
"description": "FlowFiles will be transferred to the success relationship after successfully being compressed or decompressed",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.CompressContent",
"typeDescription": "Compresses or decompresses the contents of FlowFiles using a user-specified compression algorithm and updates the mime.type attribute as appropriate"
},
{
"propertyDescriptors": {
"Path": {
"description": "The path within the archive to focus (\"/\" to focus the total archive)",
"expressionLanguageScope": "NONE",
"name": "Path",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "success operational on the flow record",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.FocusArchiveEntry",
"typeDescription": "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."
},
{
"supportedRelationships": [
{
"description": "success operational on the flow record",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.UnfocusArchiveEntry",
"typeDescription": "Restores a FlowFile which has had an archive entry focused via FocusArchiveEntry to its original state."
},
{
"propertyDescriptors": {
"After": {
"description": "For operations which result in new entries, places the new entry after the entry specified by this property.",
"expressionLanguageScope": "NONE",
"name": "After",
"required": false,
"validator": "VALID"
},
"Before": {
"description": "For operations which result in new entries, places the new entry before the entry specified by this property.",
"expressionLanguageScope": "NONE",
"name": "Before",
"required": false,
"validator": "VALID"
},
"Destination": {
"description": "Destination for operations (touch, move or copy) which result in new entries.",
"expressionLanguageScope": "NONE",
"name": "Destination",
"required": false,
"validator": "VALID"
},
"Operation": {
"description": "Operation to perform on the archive (touch, remove, copy, move).",
"expressionLanguageScope": "NONE",
"name": "Operation",
"required": false,
"validator": "VALID"
},
"Target": {
"description": "An existing entry within the archive to perform the operation on.",
"expressionLanguageScope": "NONE",
"name": "Target",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "FlowFiles will be transferred to the failure relationship if the operation fails.",
"name": "failure"
},
{
"description": "FlowFiles will be transferred to the success relationship if the operation succeeds.",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.ManipulateArchive",
"typeDescription": "Performs an operation which manipulates an archive without needing to split the archive into multiple FlowFiles."
}
]
},
"artifact": "minifi-archive-extensions",
"group": "org.apache.nifi.minifi",
"version": "0.6.0"
},
{
"componentManifest": {
"processors": [
{
"propertyDescriptors": {
"JVM Controller Service": {
"description": "Name of controller service defined within this flow",
"expressionLanguageScope": "NONE",
"name": "JVM Controller Service",
"required": true,
"validator": "VALID"
},
"NiFi Processor": {
"description": "Name of NiFi processor to load and run",
"expressionLanguageScope": "NONE",
"name": "NiFi Processor",
"required": true,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": true,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.jni.processors.ExecuteJavaClass",
"typeDescription": "ExecuteJavaClass runs NiFi processors given a provided system path "
}
]
},
"artifact": "minifi-jni",
"group": "org.apache.nifi.minifi",
"version": "0.6.0"
},
{
"componentManifest": {
"processors": [
{
"propertyDescriptors": {
"Module Directory": {
"description": "Comma-separated list of paths to files and/or directories which\n contain modules required by the script",
"expressionLanguageScope": "NONE",
"name": "Module Directory",
"required": false,
"validator": "VALID"
},
"Script Body": {
"description": "Body of script to execute.\n Only one of Script File or Script Body may be used",
"expressionLanguageScope": "NONE",
"name": "Script Body",
"required": false,
"validator": "VALID"
},
"Script Engine": {
"defaultValue": "python",
"description": "The engine to execute scripts (python, lua)",
"expressionLanguageScope": "NONE",
"name": "Script Engine",
"required": false,
"validator": "VALID"
},
"Script File": {
"description": "Path to script file to execute.\n Only one of Script File or Script Body may be used",
"expressionLanguageScope": "NONE",
"name": "Script File",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "Script failures",
"name": "failure"
},
{
"description": "Script successes",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.ExecuteScript",
"typeDescription": "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."
}
]
},
"artifact": "minifi-script-extensions",
"group": "org.apache.nifi.minifi",
"version": "0.6.0"
},
{
"componentManifest": {
"processors": [
{
"propertyDescriptors": {
"Hostname Attribute": {
"defaultValue": "source.hostname",
"description": "Flowfile attribute to used to record the agent's hostname",
"expressionLanguageScope": "NONE",
"name": "Hostname Attribute",
"required": false,
"validator": "VALID"
},
"IP Attribute": {
"defaultValue": "source.ipv4",
"description": "Flowfile attribute to used to record the agent's IP address",
"expressionLanguageScope": "NONE",
"name": "IP Attribute",
"required": false,
"validator": "VALID"
},
"Network Interface Name": {
"defaultValue": "eth0",
"description": "Network interface from which to read an IP v4 address",
"expressionLanguageScope": "NONE",
"name": "Network Interface Name",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "success operational on the flow record",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.AppendHostInfo",
"typeDescription": "Appends host information such as IP address and hostname as an attribute to incoming flowfiles."
},
{
"propertyDescriptors": {
"Batch Duration": {
"defaultValue": "0 sec",
"description": "If the process is expected to be long-running and produce textual output, a batch duration can be specified.",
"expressionLanguageScope": "NONE",
"name": "Batch Duration",
"required": false,
"validator": "TIME_PERIOD_VALIDATOR"
},
"Command": {
"description": "Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.",
"expressionLanguageScope": "FLOWFILE_ATTRIBUTES",
"name": "Command",
"required": false,
"validator": "VALID"
},
"Command Arguments": {
"description": "The arguments to supply to the executable delimited by white space. White space can be escaped by enclosing it in double-quotes.",
"expressionLanguageScope": "FLOWFILE_ATTRIBUTES",
"name": "Command Arguments",
"required": false,
"validator": "VALID"
},
"Redirect Error Stream": {
"defaultValue": false,
"description": "If true will redirect any error stream output of the process to the output stream.",
"expressionLanguageScope": "NONE",
"name": "Redirect Error Stream",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Working Directory": {
"description": "The directory to use as the current working directory when executing the command",
"expressionLanguageScope": "FLOWFILE_ATTRIBUTES",
"name": "Working Directory",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "All created FlowFiles are routed to this relationship.",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.ExecuteProcess",
"typeDescription": "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."
},
{
"propertyDescriptors": {
"Attribute": {
"description": "Attribute to set from content",
"expressionLanguageScope": "NONE",
"name": "Attribute",
"required": false,
"validator": "VALID"
},
"Size Limit": {
"defaultValue": 2097152,
"description": "Maximum number of bytes to read into the attribute. 0 for no limit. Default is 2MB.",
"expressionLanguageScope": "NONE",
"name": "Size Limit",
"required": false,
"validator": "LONG_VALIDATOR"
}
},
"supportedRelationships": [
{
"description": "success operational on the flow record",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.ExtractText",
"typeDescription": "Extracts the content of a FlowFile and places it into an attribute."
},
{
"propertyDescriptors": {
"Batch Size": {
"defaultValue": 1,
"description": "The number of FlowFiles to be transferred in each invocation",
"expressionLanguageScope": "NONE",
"name": "Batch Size",
"required": false,
"validator": "INTEGER_VALIDATOR"
},
"Data Format": {
"allowableValues": [
{
"displayName": "Text",
"value": "Text"
},
{
"displayName": "Binary",
"value": "Binary"
}
],
"defaultValue": "Binary",
"description": "Specifies whether the data should be Text or Binary",
"expressionLanguageScope": "NONE",
"name": "Data Format",
"required": false,
"validator": "VALID"
},
"File Size": {
"defaultValue": "1 kB",
"description": "The size of the file that will be used",
"expressionLanguageScope": "NONE",
"name": "File Size",
"required": false,
"validator": "DATA_SIZE_VALIDATOR"
},
"Unique FlowFiles": {
"defaultValue": true,
"description": "If true, each FlowFile that is generated will be unique. If false, a random value will be generated and all FlowFiles",
"expressionLanguageScope": "NONE",
"name": "Unique FlowFiles",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
}
},
"supportedRelationships": [
{
"description": "success operational on the flow record",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.GenerateFlowFile",
"typeDescription": "This processor creates FlowFiles with random data or custom content. GenerateFlowFile is useful for load testing, configuration, and simulation."
},
{
"propertyDescriptors": {
"Batch Size": {
"defaultValue": 10,
"description": "The maximum number of files to pull in each iteration",
"expressionLanguageScope": "NONE",
"name": "Batch Size",
"required": false,
"validator": "LONG_VALIDATOR"
},
"File Filter": {
"defaultValue": "[^\\.].*",
"description": "Only files whose names match the given regular expression will be picked up",
"expressionLanguageScope": "NONE",
"name": "File Filter",
"required": false,
"validator": "VALID"
},
"Ignore Hidden Files": {
"defaultValue": true,
"description": "Indicates whether or not hidden files should be ignored",
"expressionLanguageScope": "NONE",
"name": "Ignore Hidden Files",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Input Directory": {
"defaultValue": ".",
"description": "The input directory from which to pull files",
"expressionLanguageScope": "FLOWFILE_ATTRIBUTES",
"name": "Input Directory",
"required": true,
"validator": "VALID"
},
"Keep Source File": {
"defaultValue": false,
"description": "If true, the file is not deleted after it has been copied to the Content Repository",
"expressionLanguageScope": "NONE",
"name": "Keep Source File",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Maximum File Age": {
"defaultValue": "0 sec",
"description": "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",
"expressionLanguageScope": "NONE",
"name": "Maximum File Age",
"required": false,
"validator": "TIME_PERIOD_VALIDATOR"
},
"Minimum File Age": {
"defaultValue": "0 sec",
"description": "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",
"expressionLanguageScope": "NONE",
"name": "Minimum File Age",
"required": false,
"validator": "TIME_PERIOD_VALIDATOR"
},
"Minimum File Size": {
"defaultValue": "0 B",
"description": "The maximum size that a file can be in order to be pulled",
"expressionLanguageScope": "NONE",
"name": "Minimum File Size",
"required": false,
"validator": "DATA_SIZE_VALIDATOR"
},
"Polling Interval": {
"defaultValue": "0 sec",
"description": "Indicates how long to wait before performing a directory listing",
"expressionLanguageScope": "NONE",
"name": "Polling Interval",
"required": false,
"validator": "TIME_PERIOD_VALIDATOR"
},
"Recurse Subdirectories": {
"defaultValue": true,
"description": "Indicates whether or not to pull files from subdirectories",
"expressionLanguageScope": "NONE",
"name": "Recurse Subdirectories",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
}
},
"supportedRelationships": [
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.GetFile",
"typeDescription": "Creates FlowFiles from files in a directory. MiNiFi will ignore files for which it doesn't have read permissions."
},
{
"propertyDescriptors": {
"SSL Context Service": {
"typeProvidedByValue": {
"artifact": "minifi-system",
"group": "org.apache.nifi.minifi",
"type": "org.apache.nifi.minifi.controllers.SSLContextService"
},
"description": "SSL Context Service Name",
"expressionLanguageScope": "NONE",
"name": "SSL Context Service",
"required": false,
"validator": "VALID"
},
"Stay Connected": {
"defaultValue": true,
"description": "Determines if we keep the same socket despite having no data",
"expressionLanguageScope": "NONE",
"name": "Stay Connected",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"concurrent-handler-count": {
"defaultValue": 1,
"description": "Number of concurrent handlers for this session",
"expressionLanguageScope": "NONE",
"name": "concurrent-handler-count",
"required": false,
"validator": "INTEGER_VALIDATOR"
},
"connection-attempt-timeout": {
"defaultValue": 3,
"description": "Maximum number of connection attempts before attempting backup hosts, if configured",
"expressionLanguageScope": "NONE",
"name": "connection-attempt-timeout",
"required": false,
"validator": "INTEGER_VALIDATOR"
},
"end-of-message-byte": {
"defaultValue": "13",
"description": "Byte value which denotes end of message. Must be specified as integer within the valid byte range (-128 thru 127). For example, '13' = Carriage return and '10' = New line. Default '13'.",
"expressionLanguageScope": "NONE",
"name": "end-of-message-byte",
"required": false,
"validator": "VALID"
},
"endpoint-list": {
"description": "A comma delimited list of the endpoints to connect to. The format should be <server_address>:<port>.",
"expressionLanguageScope": "NONE",
"name": "endpoint-list",
"required": true,
"validator": "VALID"
},
"receive-buffer-size": {
"defaultValue": "16 MB",
"description": "The size of the buffer to receive data in. Default 16384 (16MB).",
"expressionLanguageScope": "NONE",
"name": "receive-buffer-size",
"required": false,
"validator": "DATA_SIZE_VALIDATOR"
}
},
"supportedRelationships": [
{
"description": "Indicates an incomplete message as a result of encountering the end of message byte trigger",
"name": "partial"
},
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.GetTCP",
"typeDescription": "Establishes a TCP Server that defines and retrieves one or more byte messages from clients"
},
{
"propertyDescriptors": {
"Hash Algorithm": {
"defaultValue": "SHA256",
"description": "Name of the algorithm used to generate checksum",
"expressionLanguageScope": "NONE",
"name": "Hash Algorithm",
"required": false,
"validator": "VALID"
},
"Hash Attribute": {
"defaultValue": "Checksum",
"description": "Attribute to store checksum to",
"expressionLanguageScope": "NONE",
"name": "Hash Attribute",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "failure operational on the flow record",
"name": "failure"
},
{
"description": "success operational on the flow record",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.HashContent",
"typeDescription": "HashContent calculates the checksum of the content of the flowfile and adds it as an attribute. Configuration options exist to select hashing algorithm and set the name of the attribute."
},
{
"propertyDescriptors": {
"Max Batch Size": {
"defaultValue": 1,
"description": "The maximum number of Syslog events to add to a single FlowFile.",
"expressionLanguageScope": "NONE",
"name": "Max Batch Size",
"required": false,
"validator": "INTEGER_VALIDATOR"
},
"Max Number of TCP Connections": {
"defaultValue": 2,
"description": "The maximum number of concurrent connections to accept Syslog messages in TCP mode.",
"expressionLanguageScope": "NONE",
"name": "Max Number of TCP Connections",
"required": false,
"validator": "INTEGER_VALIDATOR"
},
"Max Size of Socket Buffer": {
"defaultValue": "1 MB",
"description": "The maximum size of the socket buffer that should be used.",
"expressionLanguageScope": "NONE",
"name": "Max Size of Socket Buffer",
"required": false,
"validator": "DATA_SIZE_VALIDATOR"
},
"Message Delimiter": {
"defaultValue": "\n",
"description": "Specifies the delimiter to place between Syslog messages when multiple messages are bundled together (see <Max Batch Size> core::Property).",
"expressionLanguageScope": "NONE",
"name": "Message Delimiter",
"required": false,
"validator": "VALID"
},
"Parse Messages": {
"defaultValue": false,
"description": "Indicates if the processor should parse the Syslog messages. If set to false, each outgoing FlowFile will only.",
"expressionLanguageScope": "NONE",
"name": "Parse Messages",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Port": {
"defaultValue": 514,
"description": "The port for Syslog communication",
"expressionLanguageScope": "NONE",
"name": "Port",
"required": false,
"validator": "PORT_VALIDATOR"
},
"Protocol": {
"allowableValues": [
{
"displayName": "UDP",
"value": "UDP"
},
{
"displayName": "TCP",
"value": "TCP"
}
],
"defaultValue": "UDP",
"description": "The protocol for Syslog communication.",
"expressionLanguageScope": "NONE",
"name": "Protocol",
"required": false,
"validator": "VALID"
},
"Receive Buffer Size": {
"defaultValue": "65507 B",
"description": "The size of each buffer used to receive Syslog messages.",
"expressionLanguageScope": "NONE",
"name": "Receive Buffer Size",
"required": false,
"validator": "DATA_SIZE_VALIDATOR"
}
},
"supportedRelationships": [
{
"description": "SysLog message format invalid",
"name": "invalid"
},
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.ListenSyslog",
"typeDescription": "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."
},
{
"propertyDescriptors": {
"Attributes to Ignore": {
"description": "A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored.",
"expressionLanguageScope": "NONE",
"name": "Attributes to Ignore",
"required": false,
"validator": "VALID"
},
"Attributes to Log": {
"description": "A comma-separated list of Attributes to Log. If not specified, all attributes will be logged.",
"expressionLanguageScope": "NONE",
"name": "Attributes to Log",
"required": false,
"validator": "VALID"
},
"Log Level": {
"allowableValues": [
{
"displayName": "debug",
"value": "debug"
},
{
"displayName": "error",
"value": "error"
},
{
"displayName": "info",
"value": "info"
},
{
"displayName": "trace",
"value": "trace"
},
{
"displayName": "warn",
"value": "warn"
}
],
"description": "The Log Level to use when logging the Attributes",
"expressionLanguageScope": "NONE",
"name": "Log Level",
"required": false,
"validator": "VALID"
},
"Log Payload": {
"defaultValue": false,
"description": "If true, the FlowFile's payload will be logged, in addition to its attributes.otherwise, just the Attributes will be logged",
"expressionLanguageScope": "NONE",
"name": "Log Payload",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Log Prefix": {
"description": "Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.",
"expressionLanguageScope": "NONE",
"name": "Log Prefix",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "success operational on the flow record",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.LogAttribute",
"typeDescription": "Logs attributes of flow files in the MiNiFi application log."
},
{
"propertyDescriptors": {
"Conflict Resolution Strategy": {
"allowableValues": [
{
"displayName": "fail",
"value": "fail"
},
{
"displayName": "ignore",
"value": "ignore"
},
{
"displayName": "replace",
"value": "replace"
}
],
"defaultValue": "fail",
"description": "Indicates what should happen when a file with the same name already exists in the output directory",
"expressionLanguageScope": "NONE",
"name": "Conflict Resolution Strategy",
"required": false,
"validator": "VALID"
},
"Create Missing Directories": {
"dependentProperties": [
"Directory"
],
"defaultValue": true,
"description": "If true, then missing destination directories will be created. If false, flowfiles are penalized and sent to failure.",
"expressionLanguageScope": "NONE",
"name": "Create Missing Directories",
"required": true,
"validator": "BOOLEAN_VALIDATOR"
},
"Directory": {
"defaultValue": ".",
"description": "The output directory to which to put files",
"expressionLanguageScope": "FLOWFILE_ATTRIBUTES",
"name": "Directory",
"required": false,
"validator": "VALID"
},
"Maximum File Count": {
"defaultValue": -1,
"description": "Specifies the maximum number of files that can exist in the output directory",
"expressionLanguageScope": "NONE",
"name": "Maximum File Count",
"required": false,
"validator": "INTEGER_VALIDATOR"
}
},
"supportedRelationships": [
{
"description": "Failed files (conflict, write failure, etc.) are transferred to failure",
"name": "failure"
},
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.PutFile",
"typeDescription": "Writes the contents of a FlowFile to the local file system"
},
{
"supportsDynamicProperties": true,
"supportsDynamicRelationships": true,
"type": "org.apache.nifi.minifi.processors.RouteOnAttribute",
"typeDescription": "Routes FlowFiles based on their Attributes using the Attribute Expression Language."
},
{
"propertyDescriptors": {
"File to Tail": {
"description": "Fully-qualified filename of the file that should be tailed",
"expressionLanguageScope": "NONE",
"name": "File to Tail",
"required": false,
"validator": "VALID"
},
"Input Delimiter": {
"description": "Specifies the character that should be used for delimiting the data being tailedfrom the incoming file.",
"expressionLanguageScope": "NONE",
"name": "Input Delimiter",
"required": false,
"validator": "VALID"
},
"State File": {
"defaultValue": "TailFileState",
"description": "Specifies 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",
"expressionLanguageScope": "NONE",
"name": "State File",
"required": false,
"validator": "VALID"
}
},
"supportedRelationships": [
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.TailFile",
"typeDescription": "\"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'."
},
{
"supportedRelationships": [
{
"description": "Failed files are transferred to failure",
"name": "failure"
},
{
"description": "All files are routed to success",
"name": "success"
}
],
"supportsDynamicProperties": true,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.processors.UpdateAttribute",
"typeDescription": "This processor updates the attributes of a FlowFile using properties that are added by the user. This allows you to set default attribute changes that affect every FlowFile going through the processor, equivalent to the \"basic\" usage in Apache NiFi."
}
],
"controllerServices": [
{
"propertyDescriptors": {
"CA Certificate": {
"description": "CA certificate file",
"expressionLanguageScope": "NONE",
"name": "CA Certificate",
"required": false,
"validator": "VALID"
},
"Client Certificate": {
"description": "Client Certificate",
"expressionLanguageScope": "NONE",
"name": "Client Certificate",
"required": false,
"validator": "VALID"
},
"Passphrase": {
"description": "Client passphrase. Either a file or unencrypted text",
"expressionLanguageScope": "NONE",
"name": "Passphrase",
"required": false,
"validator": "VALID"
},
"Private Key": {
"description": "Private Key file",
"expressionLanguageScope": "NONE",
"name": "Private Key",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.controllers.SSLContextService",
"typeDescription": "Controller service that provides SSL/TLS capabilities to consuming interfaces"
},
{
"propertyDescriptors": {
"Allow All Properties": {
"defaultValue": false,
"description": "Allows all properties, which are also not disallowed, to be updated",
"expressionLanguageScope": "NONE",
"name": "Allow All Properties",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Allowed Properties": {
"description": "Properties for which we will allow updates",
"expressionLanguageScope": "NONE",
"name": "Allowed Properties",
"required": false,
"validator": "VALID"
},
"Disallowed Properties": {
"description": "Properties for which we will not allow updates",
"expressionLanguageScope": "NONE",
"name": "Disallowed Properties",
"required": false,
"validator": "VALID"
},
"Persist Updates": {
"defaultValue": false,
"description": "Property that dictates whether updates should persist after a restart",
"expressionLanguageScope": "NONE",
"name": "Persist Updates",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.controllers.UpdatePolicyControllerService",
"typeDescription": "UpdatePolicyControllerService allows a flow specific policy on allowing or disallowing updates. Since the flow dictates the purpose of a device it will also be used to dictate updates to specific components."
},
{
"propertyDescriptors": {
"Battery Capacity Path": {
"defaultValue": "/sys/class/power_supply/BAT0/capacity",
"description": "Path to the battery level",
"expressionLanguageScope": "NONE",
"name": "Battery Capacity Path",
"required": true,
"validator": "VALID"
},
"Battery Status Path": {
"defaultValue": "/sys/class/power_supply/BAT0/status",
"description": "Path to the battery status ( Discharging/Battery )",
"expressionLanguageScope": "NONE",
"name": "Battery Status Path",
"required": true,
"validator": "VALID"
},
"Low Battery Threshold": {
"defaultValue": 50,
"description": "Battery threshold before which we will aggressively reduce. Should be a number from 1-100",
"expressionLanguageScope": "NONE",
"name": "Low Battery Threshold",
"required": true,
"validator": "INTEGER_VALIDATOR"
},
"Trigger Threshold": {
"defaultValue": 75,
"description": "Battery threshold before which we consider a slow reduction. Should be a number from 1-100",
"expressionLanguageScope": "NONE",
"name": "Trigger Threshold",
"required": true,
"validator": "INTEGER_VALIDATOR"
},
"Wait Period": {
"defaultValue": "100 msec",
"description": "Decay between checking threshold and determining if a reduction is needed",
"expressionLanguageScope": "NONE",
"name": "Wait Period",
"required": true,
"validator": "TIME_PERIOD_VALIDATOR"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.controllers.LinuxPowerManagerService",
"typeDescription": "Linux power management service that enables control of power usage in the agent through Linux power management information. Use name \"ThreadPoolManager\" to throttle battery consumption"
},
{
"propertyDescriptors": {
"Default Prioritizer": {
"defaultValue": false,
"description": "Sets this controller service as the default prioritizer for all comms",
"expressionLanguageScope": "NONE",
"name": "Default Prioritizer",
"required": false,
"validator": "BOOLEAN_VALIDATOR"
},
"Max Payload": {
"defaultValue": "1 GB",
"description": "Maximum payload for these network controllers",
"expressionLanguageScope": "NONE",
"name": "Max Payload",
"required": true,
"validator": "DATA_SIZE_VALIDATOR"
},
"Max Throughput": {
"defaultValue": "1 MB",
"description": "Max throughput ( per second ) for these network controllers",
"expressionLanguageScope": "NONE",
"name": "Max Throughput",
"required": true,
"validator": "DATA_SIZE_VALIDATOR"
},
"Network Controllers": {
"description": "Comma separated list of network controllers in order of priority for this prioritizer",
"expressionLanguageScope": "NONE",
"name": "Network Controllers",
"required": false,
"validator": "VALID"
},
"Verify Interfaces": {
"defaultValue": true,
"description": "Verify that interfaces are operational",
"expressionLanguageScope": "NONE",
"name": "Verify Interfaces",
"required": true,
"validator": "BOOLEAN_VALIDATOR"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.minifi.controllers.NetworkPrioritizerService",
"typeDescription": "Enables selection of networking interfaces on defined parameters to include ouput and payload size"
}
]
},
"artifact": "minifi-system",
"group": "org.apache.nifi.minifi",
"version": "0.6.0"
},
{
"componentManifest": {
"processors": [
{
"propertyDescriptors": {
"attribute-list": {
"description": "Comma separated list of attributes to be included in the resulting CSV. If this value is left empty then all existing Attributes will be included. This list of attributes is case sensitive and supports attribute names that contain commas. If an attribute specified in the list is not found it will be emitted to the resulting CSV with an empty string or null depending on the 'Null Value' property. If a core attribute is specified in this list and the 'Include Core Attributes' property is false, the core attribute will be included. The attribute list ALWAYS wins.",
"expressionLanguageScope": "NONE",
"name": "attribute-list",
"required": false,
"validator": "VALID"
},
"attributes-regex": {
"description": "Regular expression that will be evaluated against the flow file attributes to select the matching attributes. This property can be used in combination with the attributes list property. The final output will contain a combination of matches found in the ATTRIBUTE_LIST and ATTRIBUTE_REGEX.",
"expressionLanguageScope": "NONE",
"name": "attributes-regex",
"required": false,
"validator": "VALID"
},
"destination": {
"defaultValue": "flowfile-attribute",
"description": "Control if CSV value is written as a new flowfile attribute 'CSVData' or written in the flowfile content.",
"expressionLanguageScope": "NONE",
"name": "destination",
"required": true,
"validator": "VALID"
},
"include-core-attributes": {
"defaultValue": "true",
"description": "Determines if the FlowFile org.apache.nifi.flowfile.attributes.CoreAttributes, which are contained in every FlowFile, should be included in the final CSV value generated. Core attributes will be added to the end of the CSVData and CSVSchema strings. The Attribute List property overrides this setting.",
"expressionLanguageScope": "NONE",
"name": "include-core-attributes",
"required": true,
"validator": "VALID"
},
"include-schema": {
"defaultValue": "false",
"description": "If true the schema (attribute names) will also be converted to a CSV string which will either be applied to a new attribute named 'CSVSchema' or applied at the first row in the content depending on the DESTINATION property setting.",
"expressionLanguageScope": "NONE",
"name": "include-schema",
"required": true,
"validator": "VALID"
},
"null-value": {
"defaultValue": "false",
"description": "If true a non existing or empty attribute will be 'null' in the resulting CSV. If false an empty string will be placed in the CSV",
"expressionLanguageScope": "NONE",
"name": "null-value",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.AttributesToCSV"
},
{
"propertyDescriptors": {
"Attributes List": {
"description": "Comma separated list of attributes to be included in the resulting JSON. If this value is left empty then all existing Attributes will be included. This list of attributes is case sensitive. If an attribute specified in the list is not found it will be be emitted to the resulting JSON with an empty string or NULL value.",
"expressionLanguageScope": "NONE",
"name": "Attributes List",
"required": false,
"validator": "VALID"
},
"Destination": {
"defaultValue": "flowfile-attribute",
"description": "Control if JSON value is written as a new flowfile attribute 'JSONAttributes' or written in the flowfile content. Writing to flowfile content will overwrite any existing flowfile content.",
"expressionLanguageScope": "NONE",
"name": "Destination",
"required": true,
"validator": "VALID"
},
"Include Core Attributes": {
"defaultValue": "true",
"description": "Determines if the FlowFile org.apache.nifi.flowfile.attributes.CoreAttributes which are contained in every FlowFile should be included in the final JSON value generated.",
"expressionLanguageScope": "NONE",
"name": "Include Core Attributes",
"required": true,
"validator": "VALID"
},
"Null Value": {
"defaultValue": "false",
"description": "If true a non existing or empty attribute will be NULL in the resulting JSON. If false an empty string will be placed in the JSON",
"expressionLanguageScope": "NONE",
"name": "Null Value",
"required": true,
"validator": "VALID"
},
"attributes-to-json-regex": {
"description": "Regular expression that will be evaluated against the flow file attributes to select the matching attributes. This property can be used in combination with the attributes list property.",
"expressionLanguageScope": "NONE",
"name": "attributes-to-json-regex",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.AttributesToJSON"
},
{
"propertyDescriptors": {
"Mode": {
"defaultValue": "Encode",
"description": "Specifies whether the content should be encoded or decoded",
"expressionLanguageScope": "NONE",
"name": "Mode",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.Base64EncodeContent"
},
{
"propertyDescriptors": {
"Compression Format": {
"defaultValue": "use mime.type attribute",
"description": "The compression format to use. Valid values are: GZIP, BZIP2, XZ-LZMA2, LZMA, Snappy, and Snappy Framed",
"expressionLanguageScope": "NONE",
"name": "Compression Format",
"required": true,
"validator": "VALID"
},
"Compression Level": {
"defaultValue": "1",
"description": "The compression level to use; this is valid only when using GZIP compression. A lower value results in faster processing but less compression; a value of 0 indicates no compression but simply archiving",
"expressionLanguageScope": "NONE",
"name": "Compression Level",
"required": true,
"validator": "VALID"
},
"Mode": {
"defaultValue": "compress",
"description": "Indicates whether the processor should compress content or decompress content. Must be either 'compress' or 'decompress'",
"expressionLanguageScope": "NONE",
"name": "Mode",
"required": true,
"validator": "VALID"
},
"Update Filename": {
"defaultValue": "false",
"description": "If 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",
"expressionLanguageScope": "NONE",
"name": "Update Filename",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.CompressContent",
"typeDescription": "Compresses or decompresses the contents of FlowFiles using a user-specified compression algorithm and updates the mime.type attribute as appropriate"
},
{
"propertyDescriptors": {
"Grouping Attribute": {
"description": "By default, a single \"throttle\" is used for all FlowFiles. If this value is specified, a separate throttle is used for each value specified by the attribute with this name. Changing this value resets the rate counters.",
"expressionLanguageScope": "NONE",
"name": "Grouping Attribute",
"required": false,
"validator": "VALID"
},
"Maximum Rate": {
"description": "The maximum rate at which data should pass through this processor. The format of this property is expected to be a positive integer, or a Data Size (such as '1 MB') if Rate Control Criteria is set to 'data rate'.",
"expressionLanguageScope": "NONE",
"name": "Maximum Rate",
"required": true,
"validator": "VALID"
},
"Rate Control Criteria": {
"defaultValue": "data rate",
"description": "Indicates the criteria that is used to control the throughput rate. Changing this value resets the rate counters.",
"expressionLanguageScope": "NONE",
"name": "Rate Control Criteria",
"required": true,
"validator": "VALID"
},
"Rate Controlled Attribute": {
"description": "The name of an attribute whose values build toward the rate limit if Rate Control Criteria is set to 'attribute value'. The value of the attribute referenced by this property must be a positive long, or the FlowFile will be routed to failure. This value is ignored if Rate Control Criteria is not set to 'attribute value'. Changing this value resets the rate counters.",
"expressionLanguageScope": "NONE",
"name": "Rate Controlled Attribute",
"required": false,
"validator": "VALID"
},
"Time Duration": {
"defaultValue": "1 min",
"description": "The amount of time to which the Maximum Rate pertains. Changing this value resets the rate counters.",
"expressionLanguageScope": "NONE",
"name": "Time Duration",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ControlRate"
},
{
"propertyDescriptors": {
"Input Character Set": {
"description": "The name of the CharacterSet to expect for Input",
"expressionLanguageScope": "NONE",
"name": "Input Character Set",
"required": true,
"validator": "VALID"
},
"Output Character Set": {
"description": "The name of the CharacterSet to convert to",
"expressionLanguageScope": "NONE",
"name": "Output Character Set",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ConvertCharacterSet"
},
{
"propertyDescriptors": {
"character-encoding": {
"defaultValue": "UTF-8",
"description": "Specifies a character encoding to use.",
"expressionLanguageScope": "NONE",
"name": "character-encoding",
"required": true,
"validator": "VALID"
},
"split-words-on-symbols": {
"defaultValue": "false",
"description": "If enabled, the word count will identify strings separated by common logical delimiters [ _ - . ] as independent words (ex. split-words-on-symbols = 4 words).",
"expressionLanguageScope": "NONE",
"name": "split-words-on-symbols",
"required": true,
"validator": "VALID"
},
"text-character-count": {
"defaultValue": "false",
"description": "If enabled, will count the number of characters (including whitespace and symbols, but not including newlines and carriage returns) present in the incoming text.",
"expressionLanguageScope": "NONE",
"name": "text-character-count",
"required": true,
"validator": "VALID"
},
"text-line-count": {
"defaultValue": "true",
"description": "If enabled, will count the number of lines present in the incoming text.",
"expressionLanguageScope": "NONE",
"name": "text-line-count",
"required": true,
"validator": "VALID"
},
"text-line-nonempty-count": {
"defaultValue": "false",
"description": "If enabled, will count the number of lines that contain a non-whitespace character present in the incoming text.",
"expressionLanguageScope": "NONE",
"name": "text-line-nonempty-count",
"required": true,
"validator": "VALID"
},
"text-word-count": {
"defaultValue": "false",
"description": "If enabled, will count the number of words (alphanumeric character groups bounded by whitespace) present in the incoming text. Common logical delimiters [_-.] do not bound a word unless 'Split Words on Symbols' is true.",
"expressionLanguageScope": "NONE",
"name": "text-word-count",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.CountText"
},
{
"propertyDescriptors": {
"character_set": {
"defaultValue": "UTF-8",
"description": "The Character Set used to decode the attribute being hashed -- this applies to the incoming data encoding, not the resulting hash encoding. ",
"expressionLanguageScope": "NONE",
"name": "character_set",
"required": true,
"validator": "VALID"
},
"fail_when_empty": {
"defaultValue": "true",
"description": "Route to failure when none of the attributes that are configured for hashing are found. If set to false, then flow files that do not contain any of the attributes that are configured for hashing will just pass through to success.",
"expressionLanguageScope": "NONE",
"name": "fail_when_empty",
"required": true,
"validator": "VALID"
},
"hash_algorithm": {
"defaultValue": "SHA-256",
"description": "The cryptographic hash algorithm to use. Note that not all of the algorithms available are recommended for use (some are provided for legacy use). There are many things to consider when picking an algorithm; it is recommended to use the most secure algorithm possible.",
"expressionLanguageScope": "NONE",
"name": "hash_algorithm",
"required": true,
"validator": "VALID"
},
"missing_attr_policy": {
"defaultValue": "ALLOW",
"description": "Policy for how the processor handles attributes that are configured for hashing but are not found in the flowfile.",
"expressionLanguageScope": "NONE",
"name": "missing_attr_policy",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.CryptographicHashAttribute"
},
{
"propertyDescriptors": {
"fail_when_empty": {
"defaultValue": "false",
"description": "Route to failure if the content is empty. While hashing an empty value is valid, some flows may want to detect empty input.",
"expressionLanguageScope": "NONE",
"name": "fail_when_empty",
"required": true,
"validator": "VALID"
},
"hash_algorithm": {
"defaultValue": "SHA-256",
"description": "The hash algorithm to use. Note that not all of the algorithms available are recommended for use (some are provided for legacy compatibility). There are many things to consider when picking an algorithm; it is recommended to use the most secure algorithm possible.",
"expressionLanguageScope": "NONE",
"name": "hash_algorithm",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.CryptographicHashContent"
},
{
"propertyDescriptors": {
"@OnScheduled Pause Time": {
"defaultValue": "0 sec",
"description": "Specifies how long the processor should sleep in the @OnScheduled method, so that the processor can be forced to take a long time to start up",
"expressionLanguageScope": "NONE",
"name": "@OnScheduled Pause Time",
"required": true,
"validator": "VALID"
},
"@OnStopped Pause Time": {
"defaultValue": "0 sec",
"description": "Specifies how long the processor should sleep in the @OnStopped method, so that the processor can be forced to take a long time to shutdown",
"expressionLanguageScope": "NONE",
"name": "@OnStopped Pause Time",
"required": true,
"validator": "VALID"
},
"@OnUnscheduled Pause Time": {
"defaultValue": "0 sec",
"description": "Specifies how long the processor should sleep in the @OnUnscheduled method, so that the processor can be forced to take a long time to respond when user clicks stop",
"expressionLanguageScope": "NONE",
"name": "@OnUnscheduled Pause Time",
"required": true,
"validator": "VALID"
},
"Content Size": {
"defaultValue": "1 KB",
"description": "The number of bytes to write each time that the FlowFile is written to",
"expressionLanguageScope": "NONE",
"name": "Content Size",
"required": true,
"validator": "VALID"
},
"CustomValidate Pause Time": {
"defaultValue": "0 sec",
"description": "Specifies how long the processor should sleep in the customValidate() method",
"expressionLanguageScope": "NONE",
"name": "CustomValidate Pause Time",
"required": true,
"validator": "VALID"
},
"Fail When @OnScheduled called": {
"defaultValue": "false",
"description": "Specifies whether or not the Processor should throw an Exception when the methods annotated with @OnScheduled are called",
"expressionLanguageScope": "NONE",
"name": "Fail When @OnScheduled called",
"required": true,
"validator": "VALID"
},
"Fail When @OnStopped called": {
"defaultValue": "false",
"description": "Specifies whether or not the Processor should throw an Exception when the methods annotated with @OnStopped are called",
"expressionLanguageScope": "NONE",
"name": "Fail When @OnStopped called",
"required": true,
"validator": "VALID"
},
"Fail When @OnUnscheduled called": {
"defaultValue": "false",
"description": "Specifies whether or not the Processor should throw an Exception when the methods annotated with @OnUnscheduled are called",
"expressionLanguageScope": "NONE",
"name": "Fail When @OnUnscheduled called",
"required": true,
"validator": "VALID"
},
"FlowFile Exception Class": {
"defaultValue": "java.lang.RuntimeException",
"description": "Exception class to be thrown (must extend java.lang.RuntimeException).",
"expressionLanguageScope": "NONE",
"name": "FlowFile Exception Class",
"required": true,
"validator": "VALID"
},
"FlowFile Exception Iterations": {
"defaultValue": "0",
"description": "Number of FlowFiles to throw exception.",
"expressionLanguageScope": "NONE",
"name": "FlowFile Exception Iterations",
"required": true,
"validator": "VALID"
},
"FlowFile Failure Iterations": {
"defaultValue": "0",
"description": "Number of FlowFiles to forward to failure relationship.",
"expressionLanguageScope": "NONE",
"name": "FlowFile Failure Iterations",
"required": true,
"validator": "VALID"
},
"FlowFile Rollback Iterations": {
"defaultValue": "0",
"description": "Number of FlowFiles to roll back (without penalty).",
"expressionLanguageScope": "NONE",
"name": "FlowFile Rollback Iterations",
"required": true,
"validator": "VALID"
},
"FlowFile Rollback Penalty Iterations": {
"defaultValue": "0",
"description": "Number of FlowFiles to roll back with penalty.",
"expressionLanguageScope": "NONE",
"name": "FlowFile Rollback Penalty Iterations",
"required": true,
"validator": "VALID"
},
"FlowFile Rollback Yield Iterations": {
"defaultValue": "0",
"description": "Number of FlowFiles to roll back and yield.",
"expressionLanguageScope": "NONE",
"name": "FlowFile Rollback Yield Iterations",
"required": true,
"validator": "VALID"
},
"FlowFile Success Iterations": {
"defaultValue": "1",
"description": "Number of FlowFiles to forward to success relationship.",
"expressionLanguageScope": "NONE",
"name": "FlowFile Success Iterations",
"required": true,
"validator": "VALID"
},
"Ignore Interrupts When Paused": {
"defaultValue": "false",
"description": "If the Processor's thread(s) are sleeping (due to one of the \"Pause Time\" properties above), and the thread is interrupted, this indicates whether the Processor should ignore the interrupt and continue sleeping or if it should allow itself to be interrupted.",
"expressionLanguageScope": "NONE",
"name": "Ignore Interrupts When Paused",
"required": true,
"validator": "VALID"
},
"No FlowFile Exception Class": {
"defaultValue": "java.lang.RuntimeException",
"description": "Exception class to be thrown if no FlowFile (must extend java.lang.RuntimeException).",
"expressionLanguageScope": "NONE",
"name": "No FlowFile Exception Class",
"required": true,
"validator": "VALID"
},
"No FlowFile Exception Iterations": {
"defaultValue": "0",
"description": "Number of times to throw NPE exception if no FlowFile.",
"expressionLanguageScope": "NONE",
"name": "No FlowFile Exception Iterations",
"required": true,
"validator": "VALID"
},
"No FlowFile Skip Iterations": {
"defaultValue": "1",
"description": "Number of times to skip onTrigger if no FlowFile.",
"expressionLanguageScope": "NONE",
"name": "No FlowFile Skip Iterations",
"required": true,
"validator": "VALID"
},
"No FlowFile Yield Iterations": {
"defaultValue": "0",
"description": "Number of times to yield if no FlowFile.",
"expressionLanguageScope": "NONE",
"name": "No FlowFile Yield Iterations",
"required": true,
"validator": "VALID"
},
"OnTrigger Pause Time": {
"defaultValue": "0 sec",
"description": "Specifies how long the processor should sleep in the onTrigger() method, so that the processor can be forced to take a long time to perform its task",
"expressionLanguageScope": "NONE",
"name": "OnTrigger Pause Time",
"required": true,
"validator": "VALID"
},
"Write Iterations": {
"defaultValue": "0",
"description": "Number of times to write to the FlowFile",
"expressionLanguageScope": "NONE",
"name": "Write Iterations",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.DebugFlow"
},
{
"propertyDescriptors": {
"Number of Copies": {
"defaultValue": "100",
"description": "Specifies how many copies of each incoming FlowFile will be made",
"expressionLanguageScope": "NONE",
"name": "Number of Copies",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.DuplicateFlowFile"
},
{
"propertyDescriptors": {
"Encryption Algorithm": {
"defaultValue": "MD5_128AES",
"description": "The Encryption Algorithm to use",
"expressionLanguageScope": "NONE",
"name": "Encryption Algorithm",
"required": true,
"validator": "VALID"
},
"Mode": {
"defaultValue": "Encrypt",
"description": "Specifies whether the content should be encrypted or decrypted",
"expressionLanguageScope": "NONE",
"name": "Mode",
"required": true,
"validator": "VALID"
},
"Password": {
"description": "The Password to use for encrypting or decrypting the data",
"expressionLanguageScope": "NONE",
"name": "Password",
"required": false,
"validator": "VALID"
},
"allow-weak-crypto": {
"defaultValue": "not-allowed",
"description": "Overrides the default behavior to prevent unsafe combinations of encryption algorithms and short passwords on JVMs with limited strength cryptographic jurisdiction policies",
"expressionLanguageScope": "NONE",
"name": "allow-weak-crypto",
"required": true,
"validator": "VALID"
},
"key-derivation-function": {
"defaultValue": "BCRYPT",
"description": "Specifies the key derivation function to generate the key from the password (and salt)",
"expressionLanguageScope": "NONE",
"name": "key-derivation-function",
"required": true,
"validator": "VALID"
},
"private-keyring-file": {
"description": "In a PGP decrypt mode, this keyring contains the private key of the recipient",
"expressionLanguageScope": "NONE",
"name": "private-keyring-file",
"required": false,
"validator": "VALID"
},
"private-keyring-passphrase": {
"description": "In a PGP decrypt mode, this is the private keyring passphrase",
"expressionLanguageScope": "NONE",
"name": "private-keyring-passphrase",
"required": false,
"validator": "VALID"
},
"public-key-user-id": {
"description": "In a PGP encrypt mode, this user id of the recipient",
"expressionLanguageScope": "NONE",
"name": "public-key-user-id",
"required": false,
"validator": "VALID"
},
"public-keyring-file": {
"description": "In a PGP encrypt mode, this keyring contains the public key of the recipient",
"expressionLanguageScope": "NONE",
"name": "public-keyring-file",
"required": false,
"validator": "VALID"
},
"raw-key-hex": {
"description": "In keyed encryption, this is the raw key, encoded in hexadecimal",
"expressionLanguageScope": "NONE",
"name": "raw-key-hex",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.EncryptContent"
},
{
"propertyDescriptors": {
"batch-count": {
"defaultValue": "1000",
"description": "The maximum number of FlowFiles that EnforceOrder can process at an execution.",
"expressionLanguageScope": "NONE",
"name": "batch-count",
"required": true,
"validator": "VALID"
},
"group-id": {
"defaultValue": "${filename}",
"description": "EnforceOrder is capable of multiple ordering groups. 'Group Identifier' is used to determine which group a FlowFile belongs to. This property will be evaluated with each incoming FlowFile. If evaluated result is empty, the FlowFile will be routed to failure.",
"expressionLanguageScope": "NONE",
"name": "group-id",
"required": true,
"validator": "VALID"
},
"inactive-timeout": {
"defaultValue": "30 min",
"description": "Indicates the duration after which state for an inactive group will be cleared from managed state. Group is determined as inactive if any new incoming FlowFile has not seen for a group for specified duration. Inactive Timeout must be longer than Wait Timeout. If a FlowFile arrives late after its group is already cleared, it will be treated as a brand new group, but will never match the order since expected preceding FlowFiles are already gone. The FlowFile will eventually timeout for waiting and routed to 'overtook'. To avoid this, group states should be kept long enough, however, shorter duration would be helpful for reusing the same group identifier again.",
"expressionLanguageScope": "NONE",
"name": "inactive-timeout",
"required": true,
"validator": "VALID"
},
"initial-order": {
"defaultValue": "0",
"description": "When the first FlowFile of a group arrives, initial target order will be computed and stored in the managed state. After that, target order will start being tracked by EnforceOrder and stored in the state management store. If Expression Language is used but evaluated result was not an integer, then the FlowFile will be routed to failure, and initial order will be left unknown until consecutive FlowFiles provide a valid initial order.",
"expressionLanguageScope": "NONE",
"name": "initial-order",
"required": true,
"validator": "VALID"
},
"maximum-order": {
"description": "If specified, any FlowFiles that have larger order will be routed to failure. This property is computed only once for a given group. After a maximum order is computed, it will be persisted in the state management store and used for other FlowFiles belonging to the same group. If Expression Language is used but evaluated result was not an integer, then the FlowFile will be routed to failure, and maximum order will be left unknown until consecutive FlowFiles provide a valid maximum order.",
"expressionLanguageScope": "NONE",
"name": "maximum-order",
"required": false,
"validator": "VALID"
},
"order-attribute": {
"description": "A name of FlowFile attribute whose value will be used to enforce order of FlowFiles within a group. If a FlowFile does not have this attribute, or its value is not an integer, the FlowFile will be routed to failure.",
"expressionLanguageScope": "NONE",
"name": "order-attribute",
"required": true,
"validator": "VALID"
},
"wait-timeout": {
"defaultValue": "10 min",
"description": "Indicates the duration after which waiting FlowFiles will be routed to the 'overtook' relationship.",
"expressionLanguageScope": "NONE",
"name": "wait-timeout",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.EnforceOrder"
},
{
"propertyDescriptors": {
"Destination": {
"defaultValue": "flowfile-content",
"description": "Indicates whether the results of the JsonPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one JsonPath may be specified, and the property name is ignored.",
"expressionLanguageScope": "NONE",
"name": "Destination",
"required": true,
"validator": "VALID"
},
"Null Value Representation": {
"defaultValue": "empty string",
"description": "Indicates the desired representation of JSON Path expressions resulting in a null value.",
"expressionLanguageScope": "NONE",
"name": "Null Value Representation",
"required": true,
"validator": "VALID"
},
"Path Not Found Behavior": {
"defaultValue": "ignore",
"description": "Indicates how to handle missing JSON path expressions when destination is set to 'flowfile-attribute'. Selecting 'warn' will generate a warning when a JSON path expression is not found.",
"expressionLanguageScope": "NONE",
"name": "Path Not Found Behavior",
"required": true,
"validator": "VALID"
},
"Return Type": {
"defaultValue": "auto-detect",
"description": "Indicates the desired return type of the JSON Path expressions. Selecting 'auto-detect' will set the return type to 'json' for a Destination of 'flowfile-content', and 'scalar' for a Destination of 'flowfile-attribute'.",
"expressionLanguageScope": "NONE",
"name": "Return Type",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.EvaluateJsonPath"
},
{
"propertyDescriptors": {
"Destination": {
"defaultValue": "flowfile-content",
"description": "Indicates whether the results of the XPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one XPath may be specified, and the property name is ignored.",
"expressionLanguageScope": "NONE",
"name": "Destination",
"required": true,
"validator": "VALID"
},
"Return Type": {
"defaultValue": "auto-detect",
"description": "Indicates the desired return type of the Xpath expressions. Selecting 'auto-detect' will set the return type to 'nodeset' for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.",
"expressionLanguageScope": "NONE",
"name": "Return Type",
"required": true,
"validator": "VALID"
},
"Validate DTD": {
"defaultValue": "true",
"description": "Specifies whether or not the XML content should be validated against the DTD.",
"expressionLanguageScope": "NONE",
"name": "Validate DTD",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.EvaluateXPath"
},
{
"propertyDescriptors": {
"Destination": {
"defaultValue": "flowfile-content",
"description": "Indicates whether the results of the XQuery evaluation are written to the FlowFile content or a FlowFile attribute. If set to <flowfile-content>, only one XQuery may be specified and the property name is ignored. If set to <flowfile-attribute> and the XQuery returns more than one result, multiple attributes will be added to theFlowFile, each named with a '.n' one-up number appended to the specified attribute name",
"expressionLanguageScope": "NONE",
"name": "Destination",
"required": true,
"validator": "VALID"
},
"Output: Indent": {
"defaultValue": "false",
"description": "Specifies whether the processor may add additional whitespace when outputting a result tree.",
"expressionLanguageScope": "NONE",
"name": "Output: Indent",
"required": true,
"validator": "VALID"
},
"Output: Method": {
"defaultValue": "xml",
"description": "Identifies the overall method that should be used for outputting a result tree.",
"expressionLanguageScope": "NONE",
"name": "Output: Method",
"required": true,
"validator": "VALID"
},
"Output: Omit XML Declaration": {
"defaultValue": "false",
"description": "Specifies whether the processor should output an XML declaration when transforming a result tree.",
"expressionLanguageScope": "NONE",
"name": "Output: Omit XML Declaration",
"required": true,
"validator": "VALID"
},
"Validate DTD": {
"defaultValue": "true",
"description": "Specifies whether or not the XML content should be validated against the DTD.",
"expressionLanguageScope": "NONE",
"name": "Validate DTD",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.EvaluateXQuery"
},
{
"propertyDescriptors": {
"Argument Delimiter": {
"defaultValue": " ",
"description": "Delimiter to use to separate arguments for a command [default: space]. Must be a single character.",
"expressionLanguageScope": "NONE",
"name": "Argument Delimiter",
"required": true,
"validator": "VALID"
},
"Batch Duration": {
"description": "If the process is expected to be long-running and produce textual output, a batch duration can be specified so that the output will be captured for this amount of time and a FlowFile will then be sent out with the results and a new FlowFile will be started, rather than waiting for the process to finish before sending out the results",
"expressionLanguageScope": "NONE",
"name": "Batch Duration",
"required": false,
"validator": "VALID"
},
"Command": {
"description": "Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.",
"expressionLanguageScope": "NONE",
"name": "Command",
"required": true,
"validator": "VALID"
},
"Command Arguments": {
"description": "The arguments to supply to the executable delimited by white space. White space can be escaped by enclosing it in double-quotes.",
"expressionLanguageScope": "NONE",
"name": "Command Arguments",
"required": false,
"validator": "VALID"
},
"Redirect Error Stream": {
"defaultValue": "false",
"description": "If true will redirect any error stream output of the process to the output stream. This is particularly helpful for processes which write extensively to the error stream or for troubleshooting.",
"expressionLanguageScope": "NONE",
"name": "Redirect Error Stream",
"required": false,
"validator": "VALID"
},
"Working Directory": {
"description": "The directory to use as the current working directory when executing the command",
"expressionLanguageScope": "NONE",
"name": "Working Directory",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ExecuteProcess",
"typeDescription": "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."
},
{
"propertyDescriptors": {
"Argument Delimiter": {
"defaultValue": ";",
"description": "Delimiter to use to separate arguments for a command [default: ;]. Must be a single character",
"expressionLanguageScope": "NONE",
"name": "Argument Delimiter",
"required": true,
"validator": "VALID"
},
"Command Arguments": {
"description": "The arguments to supply to the executable delimited by the ';' character.",
"expressionLanguageScope": "NONE",
"name": "Command Arguments",
"required": false,
"validator": "VALID"
},
"Command Path": {
"description": "Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.",
"expressionLanguageScope": "NONE",
"name": "Command Path",
"required": true,
"validator": "VALID"
},
"Ignore STDIN": {
"defaultValue": "false",
"description": "If true, the contents of the incoming flowfile will not be passed to the executing command",
"expressionLanguageScope": "NONE",
"name": "Ignore STDIN",
"required": false,
"validator": "VALID"
},
"Max Attribute Length": {
"defaultValue": "256",
"description": "If routing the output of the stream command to an attribute, the number of characters put to the attribute value will be at most this amount. This is important because attributes are held in memory and large attributes will quickly cause out of memory issues. If the output goes longer than this value, it will truncated to fit. Consider making this smaller if able.",
"expressionLanguageScope": "NONE",
"name": "Max Attribute Length",
"required": false,
"validator": "VALID"
},
"Output Destination Attribute": {
"description": "If set, the output of the stream command will be put into an attribute of the original FlowFile instead of a separate FlowFile. There will no longer be a relationship for 'output stream' or 'nonzero status'. The value of this property will be the key for the output attribute.",
"expressionLanguageScope": "NONE",
"name": "Output Destination Attribute",
"required": false,
"validator": "VALID"
},
"Working Directory": {
"description": "The directory to use as the current working directory when executing the command",
"expressionLanguageScope": "NONE",
"name": "Working Directory",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ExecuteStreamCommand"
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "The Character Set in which the file is encoded",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
},
"Destination": {
"defaultValue": "flowfile-attribute",
"description": "Control if Grok output value is written as a new flowfile attributes, in this case each of the Grok identifier that is matched in the flowfile will be added as an attribute, prefixed with \"grok.\" or written in the flowfile content. Writing to flowfile content will overwrite any existing flowfile content.",
"expressionLanguageScope": "NONE",
"name": "Destination",
"required": true,
"validator": "VALID"
},
"Grok Expression": {
"description": "Grok expression. If other Grok expressions are referenced in this expression, they must be provided in the Grok Pattern File if set or exist in the default Grok patterns",
"expressionLanguageScope": "NONE",
"name": "Grok Expression",
"required": true,
"validator": "VALID"
},
"Grok Pattern file": {
"description": "Grok Pattern file definition. This file will be loaded after the default Grok patterns file. If not set, then only the Grok Expression and the default Grok patterns will be used.",
"expressionLanguageScope": "NONE",
"name": "Grok Pattern file",
"required": false,
"validator": "VALID"
},
"Keep Empty Captures": {
"defaultValue": "true",
"description": "If true, then empty capture values will be included in the returned capture map.",
"expressionLanguageScope": "NONE",
"name": "Keep Empty Captures",
"required": true,
"validator": "VALID"
},
"Maximum Buffer Size": {
"defaultValue": "1 MB",
"description": "Specifies the maximum amount of data to buffer (per file) in order to apply the Grok expressions. Files larger than the specified maximum will not be fully evaluated.",
"expressionLanguageScope": "NONE",
"name": "Maximum Buffer Size",
"required": true,
"validator": "VALID"
},
"Named captures only": {
"defaultValue": "false",
"description": "Only store named captures from grok",
"expressionLanguageScope": "NONE",
"name": "Named captures only",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ExtractGrok"
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "The Character Set in which the file is encoded",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
},
"Enable Canonical Equivalence": {
"defaultValue": "false",
"description": "Indicates that two characters match only when their full canonical decompositions match.",
"expressionLanguageScope": "NONE",
"name": "Enable Canonical Equivalence",
"required": true,
"validator": "VALID"
},
"Enable Case-insensitive Matching": {
"defaultValue": "false",
"description": "Indicates that two characters match even if they are in a different case. Can also be specified via the embedded flag (?i).",
"expressionLanguageScope": "NONE",
"name": "Enable Case-insensitive Matching",
"required": true,
"validator": "VALID"
},
"Enable DOTALL Mode": {
"defaultValue": "false",
"description": "Indicates that the expression '.' should match any character, including a line terminator. Can also be specified via the embedded flag (?s).",
"expressionLanguageScope": "NONE",
"name": "Enable DOTALL Mode",
"required": true,
"validator": "VALID"
},
"Enable Literal Parsing of the Pattern": {
"defaultValue": "false",
"description": "Indicates that Metacharacters and escape characters should be given no special meaning.",
"expressionLanguageScope": "NONE",
"name": "Enable Literal Parsing of the Pattern",
"required": true,
"validator": "VALID"
},
"Enable Multiline Mode": {
"defaultValue": "false",
"description": "Indicates that '^' and '$' should match just after and just before a line terminator or end of sequence, instead of only the beginning or end of the entire input. Can also be specified via the embeded flag (?m).",
"expressionLanguageScope": "NONE",
"name": "Enable Multiline Mode",
"required": true,
"validator": "VALID"
},
"Enable Unicode Predefined Character Classes": {
"defaultValue": "false",
"description": "Specifies conformance with the Unicode Technical Standard #18: Unicode Regular Expression Annex C: Compatibility Properties. Can also be specified via the embedded flag (?U).",
"expressionLanguageScope": "NONE",
"name": "Enable Unicode Predefined Character Classes",
"required": true,
"validator": "VALID"
},
"Enable Unicode-aware Case Folding": {
"defaultValue": "false",
"description": "When used with 'Enable Case-insensitive Matching', matches in a manner consistent with the Unicode Standard. Can also be specified via the embedded flag (?u).",
"expressionLanguageScope": "NONE",
"name": "Enable Unicode-aware Case Folding",
"required": true,
"validator": "VALID"
},
"Enable Unix Lines Mode": {
"defaultValue": "false",
"description": "Indicates that only the '\n' line terminator is recognized in the behavior of '.', '^', and '$'. Can also be specified via the embedded flag (?d).",
"expressionLanguageScope": "NONE",
"name": "Enable Unix Lines Mode",
"required": true,
"validator": "VALID"
},
"Include Capture Group 0": {
"defaultValue": "true",
"description": "Indicates that Capture Group 0 should be included as an attribute. Capture Group 0 represents the entirety of the regular expression match, is typically not used, and could have considerable length.",
"expressionLanguageScope": "NONE",
"name": "Include Capture Group 0",
"required": true,
"validator": "VALID"
},
"Maximum Buffer Size": {
"defaultValue": "1 MB",
"description": "Specifies the maximum amount of data to buffer (per file) in order to apply the regular expressions. Files larger than the specified maximum will not be fully evaluated.",
"expressionLanguageScope": "NONE",
"name": "Maximum Buffer Size",
"required": true,
"validator": "VALID"
},
"Maximum Capture Group Length": {
"defaultValue": "1024",
"description": "Specifies the maximum number of characters a given capture group value can have. Any characters beyond the max will be truncated.",
"expressionLanguageScope": "NONE",
"name": "Maximum Capture Group Length",
"required": false,
"validator": "VALID"
},
"Permit Whitespace and Comments in Pattern": {
"defaultValue": "false",
"description": "In this mode, whitespace is ignored, and embedded comments starting with # are ignored until the end of a line. Can also be specified via the embedded flag (?x).",
"expressionLanguageScope": "NONE",
"name": "Permit Whitespace and Comments in Pattern",
"required": true,
"validator": "VALID"
},
"extract-text-enable-repeating-capture-group": {
"defaultValue": "false",
"description": "If set to true, every string matching the capture groups will be extracted. Otherwise, if the Regular Expression matches more than once, only the first match will be extracted.",
"expressionLanguageScope": "NONE",
"name": "extract-text-enable-repeating-capture-group",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ExtractText",
"typeDescription": "Extracts the content of a FlowFile and places it into an attribute."
},
{
"propertyDescriptors": {
"Completion Strategy": {
"defaultValue": "None",
"description": "Specifies what to do with the original file on the file system once it has been pulled into NiFi",
"expressionLanguageScope": "NONE",
"name": "Completion Strategy",
"required": true,
"validator": "VALID"
},
"File to Fetch": {
"defaultValue": "${absolute.path}/${filename}",
"description": "The fully-qualified filename of the file to fetch from the file system",
"expressionLanguageScope": "NONE",
"name": "File to Fetch",
"required": true,
"validator": "VALID"
},
"Log level when file not found": {
"defaultValue": "ERROR",
"description": "Log level to use in case the file does not exist when the processor is triggered",
"expressionLanguageScope": "NONE",
"name": "Log level when file not found",
"required": true,
"validator": "VALID"
},
"Log level when permission denied": {
"defaultValue": "ERROR",
"description": "Log level to use in case user mparisi does not have sufficient permissions to read the file",
"expressionLanguageScope": "NONE",
"name": "Log level when permission denied",
"required": true,
"validator": "VALID"
},
"Move Conflict Strategy": {
"defaultValue": "Rename",
"description": "If Completion Strategy is set to Move File and a file already exists in the destination directory with the same name, this property specifies how that naming conflict should be resolved",
"expressionLanguageScope": "NONE",
"name": "Move Conflict Strategy",
"required": true,
"validator": "VALID"
},
"Move Destination Directory": {
"description": "The directory to the move the original file to once it has been fetched from the file system. This property is ignored unless the Completion Strategy is set to \"Move File\". If the directory does not exist, it will be created.",
"expressionLanguageScope": "NONE",
"name": "Move Destination Directory",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.FetchFile"
},
{
"propertyDescriptors": {
"Completion Strategy": {
"defaultValue": "None",
"description": "Specifies what to do with the original file on the server once it has been pulled into NiFi. If the Completion Strategy fails, a warning will be logged but the data will still be transferred.",
"expressionLanguageScope": "NONE",
"name": "Completion Strategy",
"required": true,
"validator": "VALID"
},
"Connection Mode": {
"defaultValue": "Passive",
"description": "The FTP Connection Mode",
"expressionLanguageScope": "NONE",
"name": "Connection Mode",
"required": false,
"validator": "VALID"
},
"Connection Timeout": {
"defaultValue": "30 sec",
"description": "Amount of time to wait before timing out while creating a connection",
"expressionLanguageScope": "NONE",
"name": "Connection Timeout",
"required": true,
"validator": "VALID"
},
"Create Directory": {
"defaultValue": "false",
"description": "Used when 'Completion Strategy' is 'Move File'. Specifies whether or not the remote directory should be created if it does not exist.",
"expressionLanguageScope": "NONE",
"name": "Create Directory",
"required": false,
"validator": "VALID"
},
"Data Timeout": {
"defaultValue": "30 sec",
"description": "When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems",
"expressionLanguageScope": "NONE",
"name": "Data Timeout",
"required": true,
"validator": "VALID"
},
"Hostname": {
"description": "The fully-qualified hostname or IP address of the host to fetch the data from",
"expressionLanguageScope": "NONE",
"name": "Hostname",
"required": true,
"validator": "VALID"
},
"Http Proxy Password": {
"description": "Http Proxy Password",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Password",
"required": false,
"validator": "VALID"
},
"Http Proxy Username": {
"description": "Http Proxy Username",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Username",
"required": false,
"validator": "VALID"
},
"Internal Buffer Size": {
"defaultValue": "16KB",
"description": "Set the internal buffer size for buffered data streams",
"expressionLanguageScope": "NONE",
"name": "Internal Buffer Size",
"required": false,
"validator": "VALID"
},
"Move Destination Directory": {
"description": "The directory on the remote server to move the original file to once it has been ingested into NiFi. This property is ignored unless the Completion Strategy is set to 'Move File'. The specified directory must already exist on the remote system if 'Create Directory' is disabled, or the rename will fail.",
"expressionLanguageScope": "NONE",
"name": "Move Destination Directory",
"required": false,
"validator": "VALID"
},
"Password": {
"description": "Password for the user account",
"expressionLanguageScope": "NONE",
"name": "Password",
"required": false,
"validator": "VALID"
},
"Port": {
"defaultValue": "21",
"description": "The port to connect to on the remote host to fetch the data from",
"expressionLanguageScope": "NONE",
"name": "Port",
"required": true,
"validator": "VALID"
},
"Proxy Host": {
"description": "The fully qualified hostname or IP address of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Host",
"required": false,
"validator": "VALID"
},
"Proxy Port": {
"description": "The port of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Port",
"required": false,
"validator": "VALID"
},
"Proxy Type": {
"defaultValue": "DIRECT",
"description": "Proxy type used for file transfers",
"expressionLanguageScope": "NONE",
"name": "Proxy Type",
"required": false,
"validator": "VALID"
},
"Remote File": {
"description": "The fully qualified filename on the remote system",
"expressionLanguageScope": "NONE",
"name": "Remote File",
"required": true,
"validator": "VALID"
},
"Transfer Mode": {
"defaultValue": "Binary",
"description": "The FTP Transfer Mode",
"expressionLanguageScope": "NONE",
"name": "Transfer Mode",
"required": false,
"validator": "VALID"
},
"Use Compression": {
"defaultValue": "false",
"description": "Indicates whether or not ZLIB compression should be used when transferring files",
"expressionLanguageScope": "NONE",
"name": "Use Compression",
"required": true,
"validator": "VALID"
},
"Username": {
"description": "Username",
"expressionLanguageScope": "NONE",
"name": "Username",
"required": true,
"validator": "VALID"
},
"proxy-configuration-service": {
"description": "Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: SOCKS, HTTP + AuthN",
"expressionLanguageScope": "NONE",
"name": "proxy-configuration-service",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.FetchFTP"
},
{
"propertyDescriptors": {
"Completion Strategy": {
"defaultValue": "None",
"description": "Specifies what to do with the original file on the server once it has been pulled into NiFi. If the Completion Strategy fails, a warning will be logged but the data will still be transferred.",
"expressionLanguageScope": "NONE",
"name": "Completion Strategy",
"required": true,
"validator": "VALID"
},
"Connection Timeout": {
"defaultValue": "30 sec",
"description": "Amount of time to wait before timing out while creating a connection",
"expressionLanguageScope": "NONE",
"name": "Connection Timeout",
"required": true,
"validator": "VALID"
},
"Create Directory": {
"defaultValue": "false",
"description": "Used when 'Completion Strategy' is 'Move File'. Specifies whether or not the remote directory should be created if it does not exist.",
"expressionLanguageScope": "NONE",
"name": "Create Directory",
"required": false,
"validator": "VALID"
},
"Data Timeout": {
"defaultValue": "30 sec",
"description": "When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems",
"expressionLanguageScope": "NONE",
"name": "Data Timeout",
"required": true,
"validator": "VALID"
},
"Disable Directory Listing": {
"defaultValue": "false",
"description": "Control how 'Move Destination Directory' is created when 'Completion Strategy' is 'Move File' and 'Create Directory' is enabled. If set to 'true', directory listing is not performed prior to create missing directories. By default, this processor executes a directory listing command to see target directory existence before creating missing directories. However, there are situations that you might need to disable the directory listing such as the following. Directory listing might fail with some permission setups (e.g. chmod 100) on a directory. Also, if any other SFTP client created the directory after this processor performed a listing and before a directory creation request by this processor is finished, then an error is returned because the directory already exists.",
"expressionLanguageScope": "NONE",
"name": "Disable Directory Listing",
"required": false,
"validator": "VALID"
},
"Host Key File": {
"description": "If supplied, the given file will be used as the Host Key; otherwise, no use host key file will be used",
"expressionLanguageScope": "NONE",
"name": "Host Key File",
"required": false,
"validator": "VALID"
},
"Hostname": {
"description": "The fully-qualified hostname or IP address of the host to fetch the data from",
"expressionLanguageScope": "NONE",
"name": "Hostname",
"required": true,
"validator": "VALID"
},
"Http Proxy Password": {
"description": "Http Proxy Password",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Password",
"required": false,
"validator": "VALID"
},
"Http Proxy Username": {
"description": "Http Proxy Username",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Username",
"required": false,
"validator": "VALID"
},
"Move Destination Directory": {
"description": "The directory on the remote server to move the original file to once it has been ingested into NiFi. This property is ignored unless the Completion Strategy is set to 'Move File'. The specified directory must already exist on the remote system if 'Create Directory' is disabled, or the rename will fail.",
"expressionLanguageScope": "NONE",
"name": "Move Destination Directory",
"required": false,
"validator": "VALID"
},
"Password": {
"description": "Password for the user account",
"expressionLanguageScope": "NONE",
"name": "Password",
"required": false,
"validator": "VALID"
},
"Port": {
"defaultValue": "22",
"description": "The port to connect to on the remote host to fetch the data from",
"expressionLanguageScope": "NONE",
"name": "Port",
"required": true,
"validator": "VALID"
},
"Private Key Passphrase": {
"description": "Password for the private key",
"expressionLanguageScope": "NONE",
"name": "Private Key Passphrase",
"required": false,
"validator": "VALID"
},
"Private Key Path": {
"description": "The fully qualified path to the Private Key file",
"expressionLanguageScope": "NONE",
"name": "Private Key Path",
"required": false,
"validator": "VALID"
},
"Proxy Host": {
"description": "The fully qualified hostname or IP address of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Host",
"required": false,
"validator": "VALID"
},
"Proxy Port": {
"description": "The port of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Port",
"required": false,
"validator": "VALID"
},
"Proxy Type": {
"defaultValue": "DIRECT",
"description": "Proxy type used for file transfers",
"expressionLanguageScope": "NONE",
"name": "Proxy Type",
"required": false,
"validator": "VALID"
},
"Remote File": {
"description": "The fully qualified filename on the remote system",
"expressionLanguageScope": "NONE",
"name": "Remote File",
"required": true,
"validator": "VALID"
},
"Send Keep Alive On Timeout": {
"defaultValue": "true",
"description": "Indicates whether or not to send a single Keep Alive message when SSH socket times out",
"expressionLanguageScope": "NONE",
"name": "Send Keep Alive On Timeout",
"required": true,
"validator": "VALID"
},
"Strict Host Key Checking": {
"defaultValue": "false",
"description": "Indicates whether or not strict enforcement of hosts keys should be applied",
"expressionLanguageScope": "NONE",
"name": "Strict Host Key Checking",
"required": true,
"validator": "VALID"
},
"Use Compression": {
"defaultValue": "false",
"description": "Indicates whether or not ZLIB compression should be used when transferring files",
"expressionLanguageScope": "NONE",
"name": "Use Compression",
"required": true,
"validator": "VALID"
},
"Username": {
"description": "Username",
"expressionLanguageScope": "NONE",
"name": "Username",
"required": true,
"validator": "VALID"
},
"proxy-configuration-service": {
"description": "Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN",
"expressionLanguageScope": "NONE",
"name": "proxy-configuration-service",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.FetchSFTP"
},
{
"propertyDescriptors": {
"flatten-json-separator": {
"defaultValue": ".",
"description": "The separator character used for joining keys. Must be a JSON-legal character.",
"expressionLanguageScope": "NONE",
"name": "flatten-json-separator",
"required": false,
"validator": "VALID"
},
"flatten-mode": {
"defaultValue": "keep arrays",
"description": "Specifies how json is flattened",
"expressionLanguageScope": "NONE",
"name": "flatten-mode",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.FlattenJson"
},
{
"propertyDescriptors": {
"Batch Size": {
"defaultValue": "1",
"description": "The number of FlowFiles to be transferred in each invocation",
"expressionLanguageScope": "NONE",
"name": "Batch Size",
"required": true,
"validator": "VALID"
},
"Data Format": {
"defaultValue": "Text",
"description": "Specifies whether the data should be Text or Binary",
"expressionLanguageScope": "NONE",
"name": "Data Format",
"required": true,
"validator": "VALID"
},
"File Size": {
"defaultValue": "0B",
"description": "The size of the file that will be used",
"expressionLanguageScope": "NONE",
"name": "File Size",
"required": true,
"validator": "VALID"
},
"Unique FlowFiles": {
"defaultValue": "false",
"description": "If 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",
"expressionLanguageScope": "NONE",
"name": "Unique FlowFiles",
"required": true,
"validator": "VALID"
},
"character-set": {
"defaultValue": "UTF-8",
"description": "Specifies the character set to use when writing the bytes of Custom Text to a flow file.",
"expressionLanguageScope": "NONE",
"name": "character-set",
"required": true,
"validator": "VALID"
},
"generate-ff-custom-text": {
"description": "If Data Format is text and if Unique FlowFiles is false, then this custom text will be used as content of the generated FlowFiles and the File Size will be ignored. Finally, if Expression Language is used, evaluation will be performed only once per batch of generated FlowFiles",
"expressionLanguageScope": "NONE",
"name": "generate-ff-custom-text",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.GenerateFlowFile",
"typeDescription": "This processor creates FlowFiles with random data or custom content. GenerateFlowFile is useful for load testing, configuration, and simulation."
},
{
"propertyDescriptors": {
"Batch Size": {
"defaultValue": "10",
"description": "The maximum number of files to pull in each iteration",
"expressionLanguageScope": "NONE",
"name": "Batch Size",
"required": true,
"validator": "VALID"
},
"File Filter": {
"defaultValue": "[^\\.].*",
"description": "Only files whose names match the given regular expression will be picked up",
"expressionLanguageScope": "NONE",
"name": "File Filter",
"required": true,
"validator": "VALID"
},
"Ignore Hidden Files": {
"defaultValue": "true",
"description": "Indicates whether or not hidden files should be ignored",
"expressionLanguageScope": "NONE",
"name": "Ignore Hidden Files",
"required": true,
"validator": "VALID"
},
"Input Directory": {
"description": "The input directory from which to pull files",
"expressionLanguageScope": "NONE",
"name": "Input Directory",
"required": true,
"validator": "VALID"
},
"Keep Source File": {
"defaultValue": "false",
"description": "If true, the file is not deleted after it has been copied to the Content Repository; this causes the file to be picked up continually and is useful for testing purposes. If not keeping original NiFi will need write permissions on the directory it is pulling from otherwise it will ignore the file.",
"expressionLanguageScope": "NONE",
"name": "Keep Source File",
"required": true,
"validator": "VALID"
},
"Maximum File Age": {
"description": "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",
"expressionLanguageScope": "NONE",
"name": "Maximum File Age",
"required": false,
"validator": "VALID"
},
"Maximum File Size": {
"description": "The maximum size that a file can be in order to be pulled",
"expressionLanguageScope": "NONE",
"name": "Maximum File Size",
"required": false,
"validator": "VALID"
},
"Minimum File Age": {
"defaultValue": "0 sec",
"description": "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",
"expressionLanguageScope": "NONE",
"name": "Minimum File Age",
"required": true,
"validator": "VALID"
},
"Minimum File Size": {
"defaultValue": "0 B",
"description": "The minimum size that a file must be in order to be pulled",
"expressionLanguageScope": "NONE",
"name": "Minimum File Size",
"required": true,
"validator": "VALID"
},
"Path Filter": {
"description": "When Recurse Subdirectories is true, then only subdirectories whose path matches the given regular expression will be scanned",
"expressionLanguageScope": "NONE",
"name": "Path Filter",
"required": false,
"validator": "VALID"
},
"Polling Interval": {
"defaultValue": "0 sec",
"description": "Indicates how long to wait before performing a directory listing",
"expressionLanguageScope": "NONE",
"name": "Polling Interval",
"required": true,
"validator": "VALID"
},
"Recurse Subdirectories": {
"defaultValue": "true",
"description": "Indicates whether or not to pull files from subdirectories",
"expressionLanguageScope": "NONE",
"name": "Recurse Subdirectories",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.GetFile",
"typeDescription": "Creates FlowFiles from files in a directory. MiNiFi will ignore files for which it doesn't have read permissions."
},
{
"propertyDescriptors": {
"Connection Mode": {
"defaultValue": "Passive",
"description": "The FTP Connection Mode",
"expressionLanguageScope": "NONE",
"name": "Connection Mode",
"required": false,
"validator": "VALID"
},
"Connection Timeout": {
"defaultValue": "30 sec",
"description": "Amount of time to wait before timing out while creating a connection",
"expressionLanguageScope": "NONE",
"name": "Connection Timeout",
"required": true,
"validator": "VALID"
},
"Data Timeout": {
"defaultValue": "30 sec",
"description": "When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems",
"expressionLanguageScope": "NONE",
"name": "Data Timeout",
"required": true,
"validator": "VALID"
},
"Delete Original": {
"defaultValue": "true",
"description": "Determines whether or not the file is deleted from the remote system after it has been successfully transferred",
"expressionLanguageScope": "NONE",
"name": "Delete Original",
"required": true,
"validator": "VALID"
},
"File Filter Regex": {
"description": "Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched",
"expressionLanguageScope": "NONE",
"name": "File Filter Regex",
"required": false,
"validator": "VALID"
},
"Hostname": {
"description": "The fully qualified hostname or IP address of the remote system",
"expressionLanguageScope": "NONE",
"name": "Hostname",
"required": true,
"validator": "VALID"
},
"Http Proxy Password": {
"description": "Http Proxy Password",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Password",
"required": false,
"validator": "VALID"
},
"Http Proxy Username": {
"description": "Http Proxy Username",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Username",
"required": false,
"validator": "VALID"
},
"Ignore Dotted Files": {
"defaultValue": "true",
"description": "If true, files whose names begin with a dot (\".\") will be ignored",
"expressionLanguageScope": "NONE",
"name": "Ignore Dotted Files",
"required": true,
"validator": "VALID"
},
"Internal Buffer Size": {
"defaultValue": "16KB",
"description": "Set the internal buffer size for buffered data streams",
"expressionLanguageScope": "NONE",
"name": "Internal Buffer Size",
"required": false,
"validator": "VALID"
},
"Max Selects": {
"defaultValue": "100",
"description": "The maximum number of files to pull in a single connection",
"expressionLanguageScope": "NONE",
"name": "Max Selects",
"required": true,
"validator": "VALID"
},
"Password": {
"description": "Password for the user account",
"expressionLanguageScope": "NONE",
"name": "Password",
"required": false,
"validator": "VALID"
},
"Path Filter Regex": {
"description": "When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned",
"expressionLanguageScope": "NONE",
"name": "Path Filter Regex",
"required": false,
"validator": "VALID"
},
"Polling Interval": {
"defaultValue": "60 sec",
"description": "Determines how long to wait between fetching the listing for new files",
"expressionLanguageScope": "NONE",
"name": "Polling Interval",
"required": true,
"validator": "VALID"
},
"Port": {
"defaultValue": "21",
"description": "The port that the remote system is listening on for file transfers",
"expressionLanguageScope": "NONE",
"name": "Port",
"required": true,
"validator": "VALID"
},
"Proxy Host": {
"description": "The fully qualified hostname or IP address of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Host",
"required": false,
"validator": "VALID"
},
"Proxy Port": {
"description": "The port of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Port",
"required": false,
"validator": "VALID"
},
"Proxy Type": {
"defaultValue": "DIRECT",
"description": "Proxy type used for file transfers",
"expressionLanguageScope": "NONE",
"name": "Proxy Type",
"required": false,
"validator": "VALID"
},
"Remote Path": {
"description": "The path on the remote system from which to pull or push files",
"expressionLanguageScope": "NONE",
"name": "Remote Path",
"required": false,
"validator": "VALID"
},
"Remote Poll Batch Size": {
"defaultValue": "5000",
"description": "The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical. Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.",
"expressionLanguageScope": "NONE",
"name": "Remote Poll Batch Size",
"required": true,
"validator": "VALID"
},
"Search Recursively": {
"defaultValue": "false",
"description": "If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories",
"expressionLanguageScope": "NONE",
"name": "Search Recursively",
"required": true,
"validator": "VALID"
},
"Transfer Mode": {
"defaultValue": "Binary",
"description": "The FTP Transfer Mode",
"expressionLanguageScope": "NONE",
"name": "Transfer Mode",
"required": false,
"validator": "VALID"
},
"Use Natural Ordering": {
"defaultValue": "false",
"description": "If true, will pull files in the order in which they are naturally listed; otherwise, the order in which the files will be pulled is not defined",
"expressionLanguageScope": "NONE",
"name": "Use Natural Ordering",
"required": true,
"validator": "VALID"
},
"Username": {
"description": "Username",
"expressionLanguageScope": "NONE",
"name": "Username",
"required": true,
"validator": "VALID"
},
"ftp-use-utf8": {
"defaultValue": "false",
"description": "Tells the client to use UTF-8 encoding when processing files and filenames. If set to true, the server must also support UTF-8 encoding.",
"expressionLanguageScope": "NONE",
"name": "ftp-use-utf8",
"required": true,
"validator": "VALID"
},
"proxy-configuration-service": {
"description": "Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: SOCKS, HTTP + AuthN",
"expressionLanguageScope": "NONE",
"name": "proxy-configuration-service",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.GetFTP"
},
{
"propertyDescriptors": {
"Connection Timeout": {
"defaultValue": "30 sec",
"description": "Amount of time to wait before timing out while creating a connection",
"expressionLanguageScope": "NONE",
"name": "Connection Timeout",
"required": true,
"validator": "VALID"
},
"Data Timeout": {
"defaultValue": "30 sec",
"description": "When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems",
"expressionLanguageScope": "NONE",
"name": "Data Timeout",
"required": true,
"validator": "VALID"
},
"Delete Original": {
"defaultValue": "true",
"description": "Determines whether or not the file is deleted from the remote system after it has been successfully transferred",
"expressionLanguageScope": "NONE",
"name": "Delete Original",
"required": true,
"validator": "VALID"
},
"File Filter Regex": {
"description": "Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched",
"expressionLanguageScope": "NONE",
"name": "File Filter Regex",
"required": false,
"validator": "VALID"
},
"Host Key File": {
"description": "If supplied, the given file will be used as the Host Key; otherwise, no use host key file will be used",
"expressionLanguageScope": "NONE",
"name": "Host Key File",
"required": false,
"validator": "VALID"
},
"Hostname": {
"description": "The fully qualified hostname or IP address of the remote system",
"expressionLanguageScope": "NONE",
"name": "Hostname",
"required": true,
"validator": "VALID"
},
"Http Proxy Password": {
"description": "Http Proxy Password",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Password",
"required": false,
"validator": "VALID"
},
"Http Proxy Username": {
"description": "Http Proxy Username",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Username",
"required": false,
"validator": "VALID"
},
"Ignore Dotted Files": {
"defaultValue": "true",
"description": "If true, files whose names begin with a dot (\".\") will be ignored",
"expressionLanguageScope": "NONE",
"name": "Ignore Dotted Files",
"required": true,
"validator": "VALID"
},
"Max Selects": {
"defaultValue": "100",
"description": "The maximum number of files to pull in a single connection",
"expressionLanguageScope": "NONE",
"name": "Max Selects",
"required": true,
"validator": "VALID"
},
"Password": {
"description": "Password for the user account",
"expressionLanguageScope": "NONE",
"name": "Password",
"required": false,
"validator": "VALID"
},
"Path Filter Regex": {
"description": "When Search Recursively is true, then only subdirectories whose path matches the given Regular Expression will be scanned",
"expressionLanguageScope": "NONE",
"name": "Path Filter Regex",
"required": false,
"validator": "VALID"
},
"Polling Interval": {
"defaultValue": "60 sec",
"description": "Determines how long to wait between fetching the listing for new files",
"expressionLanguageScope": "NONE",
"name": "Polling Interval",
"required": true,
"validator": "VALID"
},
"Port": {
"defaultValue": "22",
"description": "The port that the remote system is listening on for file transfers",
"expressionLanguageScope": "NONE",
"name": "Port",
"required": true,
"validator": "VALID"
},
"Private Key Passphrase": {
"description": "Password for the private key",
"expressionLanguageScope": "NONE",
"name": "Private Key Passphrase",
"required": false,
"validator": "VALID"
},
"Private Key Path": {
"description": "The fully qualified path to the Private Key file",
"expressionLanguageScope": "NONE",
"name": "Private Key Path",
"required": false,
"validator": "VALID"
},
"Proxy Host": {
"description": "The fully qualified hostname or IP address of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Host",
"required": false,
"validator": "VALID"
},
"Proxy Port": {
"description": "The port of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Port",
"required": false,
"validator": "VALID"
},
"Proxy Type": {
"defaultValue": "DIRECT",
"description": "Proxy type used for file transfers",
"expressionLanguageScope": "NONE",
"name": "Proxy Type",
"required": false,
"validator": "VALID"
},
"Remote Path": {
"description": "The path on the remote system from which to pull or push files",
"expressionLanguageScope": "NONE",
"name": "Remote Path",
"required": false,
"validator": "VALID"
},
"Remote Poll Batch Size": {
"defaultValue": "5000",
"description": "The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical. Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.",
"expressionLanguageScope": "NONE",
"name": "Remote Poll Batch Size",
"required": true,
"validator": "VALID"
},
"Search Recursively": {
"defaultValue": "false",
"description": "If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories",
"expressionLanguageScope": "NONE",
"name": "Search Recursively",
"required": true,
"validator": "VALID"
},
"Send Keep Alive On Timeout": {
"defaultValue": "true",
"description": "Indicates whether or not to send a single Keep Alive message when SSH socket times out",
"expressionLanguageScope": "NONE",
"name": "Send Keep Alive On Timeout",
"required": true,
"validator": "VALID"
},
"Strict Host Key Checking": {
"defaultValue": "false",
"description": "Indicates whether or not strict enforcement of hosts keys should be applied",
"expressionLanguageScope": "NONE",
"name": "Strict Host Key Checking",
"required": true,
"validator": "VALID"
},
"Use Compression": {
"defaultValue": "false",
"description": "Indicates whether or not ZLIB compression should be used when transferring files",
"expressionLanguageScope": "NONE",
"name": "Use Compression",
"required": true,
"validator": "VALID"
},
"Use Natural Ordering": {
"defaultValue": "false",
"description": "If true, will pull files in the order in which they are naturally listed; otherwise, the order in which the files will be pulled is not defined",
"expressionLanguageScope": "NONE",
"name": "Use Natural Ordering",
"required": true,
"validator": "VALID"
},
"Username": {
"description": "Username",
"expressionLanguageScope": "NONE",
"name": "Username",
"required": true,
"validator": "VALID"
},
"proxy-configuration-service": {
"description": "Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN",
"expressionLanguageScope": "NONE",
"name": "proxy-configuration-service",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.GetSFTP"
},
{
"propertyDescriptors": {
"Hash Value Attribute Key": {
"description": "The name of the flowfile attribute where the hash value should be stored",
"expressionLanguageScope": "NONE",
"name": "Hash Value Attribute Key",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.HashAttribute"
},
{
"propertyDescriptors": {
"Hash Algorithm": {
"defaultValue": "MD5",
"description": "Determines what hashing algorithm should be used to perform the hashing function",
"expressionLanguageScope": "NONE",
"name": "Hash Algorithm",
"required": true,
"validator": "VALID"
},
"Hash Attribute Name": {
"defaultValue": "hash.value",
"description": "The name of the FlowFile Attribute into which the Hash Value should be written. If the value already exists, it will be overwritten",
"expressionLanguageScope": "NONE",
"name": "Hash Attribute Name",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.HashContent",
"typeDescription": "HashContent calculates the checksum of the content of the flowfile and adds it as an attribute. Configuration options exist to select hashing algorithm and set the name of the attribute."
},
{
"propertyDescriptors": {
"use-filename-in-detection": {
"defaultValue": "true",
"description": "If true will pass the filename to Tika to aid in detection.",
"expressionLanguageScope": "NONE",
"name": "use-filename-in-detection",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.IdentifyMimeType"
},
{
"propertyDescriptors": {
"Transform Cache Size": {
"defaultValue": "1",
"description": "Compiling a Jolt Transform can be fairly expensive. Ideally, this will be done only once. However, if the Expression Language is used in the transform, we may need a new Transform for each FlowFile. This value controls how many of those Transforms we cache in memory in order to avoid having to compile the Transform each time.",
"expressionLanguageScope": "NONE",
"name": "Transform Cache Size",
"required": true,
"validator": "VALID"
},
"jolt-custom-class": {
"description": "Fully Qualified Class Name for Custom Transformation",
"expressionLanguageScope": "NONE",
"name": "jolt-custom-class",
"required": false,
"validator": "VALID"
},
"jolt-custom-modules": {
"description": "Comma-separated list of paths to files and/or directories which contain modules containing custom transformations (that are not included on NiFi's classpath).",
"expressionLanguageScope": "NONE",
"name": "jolt-custom-modules",
"required": false,
"validator": "VALID"
},
"jolt-spec": {
"description": "Jolt Specification for transform of JSON data. This value is ignored if the Jolt Sort Transformation is selected.",
"expressionLanguageScope": "NONE",
"name": "jolt-spec",
"required": false,
"validator": "VALID"
},
"jolt-transform": {
"defaultValue": "jolt-transform-chain",
"description": "Specifies the Jolt Transformation that should be used with the provided specification.",
"expressionLanguageScope": "NONE",
"name": "jolt-transform",
"required": true,
"validator": "VALID"
},
"pretty_print": {
"defaultValue": "false",
"description": "Apply pretty print formatting to the output of the Jolt transform",
"expressionLanguageScope": "NONE",
"name": "pretty_print",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.JoltTransformJSON"
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "Specifies the character set of the received data.",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
},
"Local Network Interface": {
"description": "The name of a local network interface to be used to restrict listening to a specific LAN.",
"expressionLanguageScope": "NONE",
"name": "Local Network Interface",
"required": false,
"validator": "VALID"
},
"Max Batch Size": {
"defaultValue": "1",
"description": "The maximum number of messages to add to a single FlowFile. If multiple messages are available, they will be concatenated along with the <Message Delimiter> up to this configured maximum number of messages",
"expressionLanguageScope": "NONE",
"name": "Max Batch Size",
"required": true,
"validator": "VALID"
},
"Max Size of Message Queue": {
"defaultValue": "10000",
"description": "The maximum size of the internal queue used to buffer messages being transferred from the underlying channel to the processor. Setting this value higher allows more messages to be buffered in memory during surges of incoming messages, but increases the total memory used by the processor.",
"expressionLanguageScope": "NONE",
"name": "Max Size of Message Queue",
"required": true,
"validator": "VALID"
},
"Max Size of Socket Buffer": {
"defaultValue": "1 MB",
"description": "The 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.",
"expressionLanguageScope": "NONE",
"name": "Max Size of Socket Buffer",
"required": true,
"validator": "VALID"
},
"Message Delimiter": {
"defaultValue": "\\n",
"description": "Specifies the delimiter to place between messages when multiple messages are bundled together (see <Max Batch Size> property).",
"expressionLanguageScope": "NONE",
"name": "Message Delimiter",
"required": true,
"validator": "VALID"
},
"Port": {
"description": "The port to listen on for communication.",
"expressionLanguageScope": "NONE",
"name": "Port",
"required": true,
"validator": "VALID"
},
"Receive Buffer Size": {
"defaultValue": "65507 B",
"description": "The size of each buffer used to receive messages. Adjust this value appropriately based on the expected size of the incoming messages.",
"expressionLanguageScope": "NONE",
"name": "Receive Buffer Size",
"required": true,
"validator": "VALID"
},
"Sending Host": {
"description": "IP, or name, of a remote host. Only Datagrams from the specified Sending Host Port and this host will be accepted. Improves Performance. May be a system property or an environment variable.",
"expressionLanguageScope": "NONE",
"name": "Sending Host",
"required": false,
"validator": "VALID"
},
"Sending Host Port": {
"description": "Port being used by remote host to send Datagrams. Only Datagrams from the specified Sending Host and this port will be accepted. Improves Performance. May be a system property or an environment variable.",
"expressionLanguageScope": "NONE",
"name": "Sending Host Port",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ListenUDP"
},
{
"propertyDescriptors": {
"Attributes to Ignore": {
"description": "A comma-separated list of Attributes to ignore. If not specified, no attributes will be ignored unless `Attributes to Ignore by Regular Expression` is modified. There's an OR relationship between the two properties.",
"expressionLanguageScope": "NONE",
"name": "Attributes to Ignore",
"required": false,
"validator": "VALID"
},
"Attributes to Log": {
"description": "A comma-separated list of Attributes to Log. If not specified, all attributes will be logged unless `Attributes to Log by Regular Expression` is modified. There's an AND relationship between the two properties.",
"expressionLanguageScope": "NONE",
"name": "Attributes to Log",
"required": false,
"validator": "VALID"
},
"Log Level": {
"defaultValue": "info",
"description": "The Log Level to use when logging the Attributes",
"expressionLanguageScope": "NONE",
"name": "Log Level",
"required": true,
"validator": "VALID"
},
"Log Payload": {
"defaultValue": "false",
"description": "If true, the FlowFile's payload will be logged, in addition to its attributes; otherwise, just the Attributes will be logged.",
"expressionLanguageScope": "NONE",
"name": "Log Payload",
"required": true,
"validator": "VALID"
},
"Log prefix": {
"description": "Log prefix appended to the log lines. It helps to distinguish the output of multiple LogAttribute processors.",
"expressionLanguageScope": "NONE",
"name": "Log prefix",
"required": false,
"validator": "VALID"
},
"attributes-to-ignore-regex": {
"description": "A regular expression indicating the Attributes to Ignore. If not specified, no attributes will be ignored unless `Attributes to Ignore` is modified. There's an OR relationship between the two properties.",
"expressionLanguageScope": "NONE",
"name": "attributes-to-ignore-regex",
"required": false,
"validator": "VALID"
},
"attributes-to-log-regex": {
"defaultValue": ".*",
"description": "A regular expression indicating the Attributes to Log. If not specified, all attributes will be logged unless `Attributes to Log` is modified. There's an AND relationship between the two properties.",
"expressionLanguageScope": "NONE",
"name": "attributes-to-log-regex",
"required": false,
"validator": "VALID"
},
"character-set": {
"defaultValue": "UTF-8",
"description": "The name of the CharacterSet to use",
"expressionLanguageScope": "NONE",
"name": "character-set",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.LogAttribute",
"typeDescription": "Logs attributes of flow files in the MiNiFi application log."
},
{
"propertyDescriptors": {
"log-level": {
"defaultValue": "info",
"description": "The Log Level to use when logging the message",
"expressionLanguageScope": "NONE",
"name": "log-level",
"required": true,
"validator": "VALID"
},
"log-message": {
"description": "The log message to emit",
"expressionLanguageScope": "NONE",
"name": "log-message",
"required": false,
"validator": "VALID"
},
"log-prefix": {
"description": "Log prefix appended to the log lines. It helps to distinguish the output of multiple LogMessage processors.",
"expressionLanguageScope": "NONE",
"name": "log-prefix",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.LogMessage"
},
{
"propertyDescriptors": {
"Attribute Strategy": {
"defaultValue": "Keep Only Common Attributes",
"description": "Determines which FlowFile attributes should be added to the bundle. If 'Keep All Unique Attributes' is selected, any attribute on any FlowFile that gets bundled will be kept unless its value conflicts with the value from another FlowFile. If 'Keep Only Common Attributes' is selected, only the attributes that exist on all FlowFiles in the bundle, with the same value, will be preserved.",
"expressionLanguageScope": "NONE",
"name": "Attribute Strategy",
"required": true,
"validator": "VALID"
},
"Compression Level": {
"defaultValue": "1",
"description": "Specifies the compression level to use when using the Zip Merge Format; if not using the Zip Merge Format, this value is ignored",
"expressionLanguageScope": "NONE",
"name": "Compression Level",
"required": true,
"validator": "VALID"
},
"Correlation Attribute Name": {
"description": "If specified, like FlowFiles will be binned together, where 'like FlowFiles' means FlowFiles that have the same value for this Attribute. If not specified, FlowFiles are bundled by the order in which they are pulled from the queue.",
"expressionLanguageScope": "NONE",
"name": "Correlation Attribute Name",
"required": false,
"validator": "VALID"
},
"Delimiter Strategy": {
"defaultValue": "Filename",
"description": "Determines 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.",
"expressionLanguageScope": "NONE",
"name": "Delimiter Strategy",
"required": true,
"validator": "VALID"
},
"Demarcator File": {
"description": "Filename specifying the demarcator to use. If not specified, no demarcator is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.",
"expressionLanguageScope": "NONE",
"name": "Demarcator File",
"required": false,
"validator": "VALID"
},
"Footer File": {
"description": "Filename specifying the footer to use. If not specified, no footer is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.",
"expressionLanguageScope": "NONE",
"name": "Footer File",
"required": false,
"validator": "VALID"
},
"Header File": {
"description": "Filename specifying the header to use. If not specified, no header is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.",
"expressionLanguageScope": "NONE",
"name": "Header File",
"required": false,
"validator": "VALID"
},
"Keep Path": {
"defaultValue": "false",
"description": "If using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry names; if using other merge strategy, this value is ignored",
"expressionLanguageScope": "NONE",
"name": "Keep Path",
"required": true,
"validator": "VALID"
},
"Max Bin Age": {
"description": "The maximum age of a Bin that will trigger a Bin to be complete. Expected format is <duration> <time unit> where <duration> is a positive integer and time unit is one of seconds, minutes, hours",
"expressionLanguageScope": "NONE",
"name": "Max Bin Age",
"required": false,
"validator": "VALID"
},
"Maximum Group Size": {
"description": "The maximum size for the bundle. If not specified, there is no maximum.",
"expressionLanguageScope": "NONE",
"name": "Maximum Group Size",
"required": false,
"validator": "VALID"
},
"Maximum Number of Entries": {
"defaultValue": "1000",
"description": "The maximum number of files to include in a bundle",
"expressionLanguageScope": "NONE",
"name": "Maximum Number of Entries",
"required": true,
"validator": "VALID"
},
"Maximum number of Bins": {
"defaultValue": "5",
"description": "Specifies the maximum number of bins that can be held in memory at any one time",
"expressionLanguageScope": "NONE",
"name": "Maximum number of Bins",
"required": true,
"validator": "VALID"
},
"Merge Format": {
"defaultValue": "Binary Concatenation",
"description": "Determines the format that will be used to merge the content.",
"expressionLanguageScope": "NONE",
"name": "Merge Format",
"required": true,
"validator": "VALID"
},
"Merge Strategy": {
"defaultValue": "Bin-Packing Algorithm",
"description": "Specifies the algorithm used to merge content. The 'Defragment' algorithm combines fragments that are associated by attributes back into a single cohesive FlowFile. The 'Bin-Packing Algorithm' generates a FlowFile populated by arbitrarily chosen FlowFiles",
"expressionLanguageScope": "NONE",
"name": "Merge Strategy",
"required": true,
"validator": "VALID"
},
"Minimum Group Size": {
"defaultValue": "0 B",
"description": "The minimum size of for the bundle",
"expressionLanguageScope": "NONE",
"name": "Minimum Group Size",
"required": true,
"validator": "VALID"
},
"Minimum Number of Entries": {
"defaultValue": "1",
"description": "The minimum number of files to include in a bundle",
"expressionLanguageScope": "NONE",
"name": "Minimum Number of Entries",
"required": true,
"validator": "VALID"
},
"Tar Modified Time": {
"defaultValue": "${file.lastModifiedTime}",
"description": "If using the Tar Merge Format, specifies if the Tar entry should store the modified timestamp either by expression (e.g. ${file.lastModifiedTime} or static value, both of which must match the ISO8601 format 'yyyy-MM-dd'T'HH:mm:ssZ'; if using other merge strategy or left blank, this value is ignored",
"expressionLanguageScope": "NONE",
"name": "Tar Modified Time",
"required": false,
"validator": "VALID"
},
"mergecontent-metadata-strategy": {
"defaultValue": "Do Not Merge Uncommon Metadata",
"description": "For FlowFiles whose input format supports metadata (Avro, e.g.), this property determines which metadata should be added to the bundle. If 'Use First Metadata' is selected, the metadata keys/values from the first FlowFile to be bundled will be used. If 'Keep Only Common Metadata' is selected, only the metadata that exists on all FlowFiles in the bundle, with the same value, will be preserved. If 'Ignore Metadata' is selected, no metadata is transferred to the outgoing bundled FlowFile. If 'Do Not Merge Uncommon Metadata' is selected, any FlowFile whose metadata values do not match those of the first bundled FlowFile will not be merged.",
"expressionLanguageScope": "NONE",
"name": "mergecontent-metadata-strategy",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.MergeContent",
"typeDescription": "Merges a Group of FlowFiles together based on a user-defined strategy and packages them into a single FlowFile. MergeContent should be configured with only one incoming connection as it won't create grouped Flow Files.This processor updates the mime.type attribute as appropriate."
},
{
"propertyDescriptors": {
"End Offset": {
"defaultValue": "0 B",
"description": "Number of bytes removed at the end of the file.",
"expressionLanguageScope": "NONE",
"name": "End Offset",
"required": true,
"validator": "VALID"
},
"Remove All Content": {
"defaultValue": "false",
"description": "Remove all content from the FlowFile superseding Start Offset and End Offset properties.",
"expressionLanguageScope": "NONE",
"name": "Remove All Content",
"required": true,
"validator": "VALID"
},
"Start Offset": {
"defaultValue": "0 B",
"description": "Number of bytes removed at the beginning of the file.",
"expressionLanguageScope": "NONE",
"name": "Start Offset",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ModifyBytes"
},
{
"propertyDescriptors": {
"Activity Restored Message": {
"defaultValue": "Activity restored at time: ${now():format('yyyy/MM/dd HH:mm:ss')} after being inactive for ${inactivityDurationMillis:toNumber():divide(60000)} minutes",
"description": "The message that will be the content of FlowFiles that are sent to 'activity.restored' relationship",
"expressionLanguageScope": "NONE",
"name": "Activity Restored Message",
"required": true,
"validator": "VALID"
},
"Continually Send Messages": {
"defaultValue": "false",
"description": "If true, will send inactivity indicator continually every Threshold Duration amount of time until activity is restored; if false, will send an indicator only when the flow first becomes inactive",
"expressionLanguageScope": "NONE",
"name": "Continually Send Messages",
"required": true,
"validator": "VALID"
},
"Copy Attributes": {
"defaultValue": "false",
"description": "If true, will copy all flow file attributes from the flow file that resumed activity to the newly created indicator flow file",
"expressionLanguageScope": "NONE",
"name": "Copy Attributes",
"required": false,
"validator": "VALID"
},
"Inactivity Message": {
"defaultValue": "Lacking activity as of time: ${now():format('yyyy/MM/dd HH:mm:ss')}; flow has been inactive for ${inactivityDurationMillis:toNumber():divide(60000)} minutes",
"description": "The message that will be the content of FlowFiles that are sent to the 'inactive' relationship",
"expressionLanguageScope": "NONE",
"name": "Inactivity Message",
"required": true,
"validator": "VALID"
},
"Monitoring Scope": {
"defaultValue": "node",
"description": "Specify how to determine activeness of the flow. 'node' means that activeness is examined at individual node separately. It can be useful if DFM expects each node should receive flow files in a distributed manner. With 'cluster', it defines the flow is active while at least one node receives flow files actively. If NiFi is running as standalone mode, this should be set as 'node', if it's 'cluster', NiFi logs a warning message and act as 'node' scope.",
"expressionLanguageScope": "NONE",
"name": "Monitoring Scope",
"required": true,
"validator": "VALID"
},
"Reporting Node": {
"defaultValue": "all",
"description": "Specify which node should send notification flow-files to inactive and activity.restored relationships. With 'all', every node in this cluster send notification flow-files. 'primary' means flow-files will be sent only from a primary node. If NiFi is running as standalone mode, this should be set as 'all', even if it's 'primary', NiFi act as 'all'.",
"expressionLanguageScope": "NONE",
"name": "Reporting Node",
"required": true,
"validator": "VALID"
},
"Threshold Duration": {
"defaultValue": "5 min",
"description": "Determines how much time must elapse before considering the flow to be inactive",
"expressionLanguageScope": "NONE",
"name": "Threshold Duration",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.MonitorActivity"
},
{
"propertyDescriptors": {
"APPEND_RAW_MESSAGE_TO_JSON": {
"defaultValue": "true",
"description": "When using flowfile-content (i.e. JSON output), add the original CEF message to the resulting JSON object. The original message is added as a string to _raw.",
"expressionLanguageScope": "NONE",
"name": "APPEND_RAW_MESSAGE_TO_JSON",
"required": true,
"validator": "VALID"
},
"DATETIME_REPRESENTATION": {
"defaultValue": "en-US",
"description": "The IETF BCP 47 representation of the Locale to be used when parsing date fields with long or short month names (e.g. may <en-US> vs. mai. <fr-FR>. The defaultvalue is generally safe. Only change if having issues parsing CEF messages",
"expressionLanguageScope": "NONE",
"name": "DATETIME_REPRESENTATION",
"required": true,
"validator": "VALID"
},
"FIELDS_DESTINATION": {
"defaultValue": "flowfile-content",
"description": "Indicates whether the results of the CEF parser are written to the FlowFile content or a FlowFile attribute; if using flowfile-attributeattribute, fields will be populated as attributes. If set to flowfile-content, the CEF extension field will be converted into a flat JSON object.",
"expressionLanguageScope": "NONE",
"name": "FIELDS_DESTINATION",
"required": true,
"validator": "VALID"
},
"TIME_REPRESENTATION": {
"defaultValue": "Local Timezone (system Default)",
"description": "Timezone to be used when representing date fields. UTC will convert all dates to UTC, while Local Timezone will convert them to the timezone used by NiFi.",
"expressionLanguageScope": "NONE",
"name": "TIME_REPRESENTATION",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ParseCEF"
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "Specifies which character set of the Syslog messages",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ParseSyslog"
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "Specifies which character set of the Syslog messages",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
},
"include_policy": {
"defaultValue": "true",
"description": "If true, then the Syslog Message body will be included in the attributes.",
"expressionLanguageScope": "NONE",
"name": "include_policy",
"required": false,
"validator": "VALID"
},
"nil_policy": {
"defaultValue": "NULL",
"description": "Defines how NIL values are handled for header fields.",
"expressionLanguageScope": "NONE",
"name": "nil_policy",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ParseSyslog5424"
},
{
"propertyDescriptors": {
"Attach File": {
"defaultValue": "false",
"description": "Specifies whether or not the FlowFile content should be attached to the email",
"expressionLanguageScope": "NONE",
"name": "Attach File",
"required": true,
"validator": "VALID"
},
"BCC": {
"description": "The recipients to include in the BCC-Line of the email. Comma separated sequence of addresses following RFC822 syntax.",
"expressionLanguageScope": "NONE",
"name": "BCC",
"required": false,
"validator": "VALID"
},
"CC": {
"description": "The recipients to include in the CC-Line of the email. Comma separated sequence of addresses following RFC822 syntax.",
"expressionLanguageScope": "NONE",
"name": "CC",
"required": false,
"validator": "VALID"
},
"Content Type": {
"defaultValue": "text/plain",
"description": "Mime Type used to interpret the contents of the email, such as text/plain or text/html",
"expressionLanguageScope": "NONE",
"name": "Content Type",
"required": true,
"validator": "VALID"
},
"From": {
"description": "Specifies the Email address to use as the sender. Comma separated sequence of addresses following RFC822 syntax.",
"expressionLanguageScope": "NONE",
"name": "From",
"required": true,
"validator": "VALID"
},
"Include All Attributes In Message": {
"defaultValue": "false",
"description": "Specifies whether or not all FlowFile attributes should be recorded in the body of the email message",
"expressionLanguageScope": "NONE",
"name": "Include All Attributes In Message",
"required": true,
"validator": "VALID"
},
"Message": {
"description": "The body of the email message",
"expressionLanguageScope": "NONE",
"name": "Message",
"required": false,
"validator": "VALID"
},
"SMTP Auth": {
"defaultValue": "true",
"description": "Flag indicating whether authentication should be used",
"expressionLanguageScope": "NONE",
"name": "SMTP Auth",
"required": true,
"validator": "VALID"
},
"SMTP Hostname": {
"description": "The hostname of the SMTP host",
"expressionLanguageScope": "NONE",
"name": "SMTP Hostname",
"required": true,
"validator": "VALID"
},
"SMTP Password": {
"description": "Password for the SMTP account",
"expressionLanguageScope": "NONE",
"name": "SMTP Password",
"required": false,
"validator": "VALID"
},
"SMTP Port": {
"defaultValue": "25",
"description": "The Port used for SMTP communications",
"expressionLanguageScope": "NONE",
"name": "SMTP Port",
"required": true,
"validator": "VALID"
},
"SMTP Socket Factory": {
"defaultValue": "javax.net.ssl.SSLSocketFactory",
"description": "Socket Factory to use for SMTP Connection",
"expressionLanguageScope": "NONE",
"name": "SMTP Socket Factory",
"required": true,
"validator": "VALID"
},
"SMTP TLS": {
"defaultValue": "false",
"description": "Flag indicating whether TLS should be enabled",
"expressionLanguageScope": "NONE",
"name": "SMTP TLS",
"required": true,
"validator": "VALID"
},
"SMTP Username": {
"description": "Username for the SMTP account",
"expressionLanguageScope": "NONE",
"name": "SMTP Username",
"required": false,
"validator": "VALID"
},
"SMTP X-Mailer Header": {
"defaultValue": "NiFi",
"description": "X-Mailer used in the header of the outgoing email",
"expressionLanguageScope": "NONE",
"name": "SMTP X-Mailer Header",
"required": true,
"validator": "VALID"
},
"Subject": {
"defaultValue": "Message from NiFi",
"description": "The email subject",
"expressionLanguageScope": "NONE",
"name": "Subject",
"required": true,
"validator": "VALID"
},
"To": {
"description": "The recipients to include in the To-Line of the email. Comma separated sequence of addresses following RFC822 syntax.",
"expressionLanguageScope": "NONE",
"name": "To",
"required": false,
"validator": "VALID"
},
"attribute-name-regex": {
"description": "A Regular Expression that is matched against all FlowFile attribute names. Any attribute whose name matches the regex will be added to the Email messages as a Header. If not specified, no FlowFile attributes will be added as headers.",
"expressionLanguageScope": "NONE",
"name": "attribute-name-regex",
"required": false,
"validator": "VALID"
},
"email-ff-content-as-message": {
"defaultValue": "false",
"description": "Specifies whether or not the FlowFile content should be the message of the email. If true, the 'Message' property is ignored.",
"expressionLanguageScope": "NONE",
"name": "email-ff-content-as-message",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.PutEmail"
},
{
"propertyDescriptors": {
"Conflict Resolution Strategy": {
"defaultValue": "fail",
"description": "Indicates what should happen when a file with the same name already exists in the output directory",
"expressionLanguageScope": "NONE",
"name": "Conflict Resolution Strategy",
"required": true,
"validator": "VALID"
},
"Create Missing Directories": {
"defaultValue": "true",
"description": "If true, then missing destination directories will be created. If false, flowfiles are penalized and sent to failure.",
"expressionLanguageScope": "NONE",
"name": "Create Missing Directories",
"required": true,
"validator": "VALID"
},
"Directory": {
"description": "The directory to which files should be written. You may use expression language such as /aa/bb/${path}",
"expressionLanguageScope": "NONE",
"name": "Directory",
"required": true,
"validator": "VALID"
},
"Group": {
"description": "Sets the group on the output file to the value of this attribute. You may also use expression language such as ${file.group}.",
"expressionLanguageScope": "NONE",
"name": "Group",
"required": false,
"validator": "VALID"
},
"Last Modified Time": {
"description": "Sets the lastModifiedTime on the output file to the value of this attribute. Format must be yyyy-MM-dd'T'HH:mm:ssZ. You may also use expression language such as ${file.lastModifiedTime}.",
"expressionLanguageScope": "NONE",
"name": "Last Modified Time",
"required": false,
"validator": "VALID"
},
"Maximum File Count": {
"description": "Specifies the maximum number of files that can exist in the output directory",
"expressionLanguageScope": "NONE",
"name": "Maximum File Count",
"required": false,
"validator": "VALID"
},
"Owner": {
"description": "Sets the owner on the output file to the value of this attribute. You may also use expression language such as ${file.owner}.",
"expressionLanguageScope": "NONE",
"name": "Owner",
"required": false,
"validator": "VALID"
},
"Permissions": {
"description": "Sets the permissions on the output file to the value of this attribute. Format must be either UNIX rwxrwxrwx with a - in place of denied permissions (e.g. rw-r--r--) or an octal number (e.g. 644). You may also use expression language such as ${file.permissions}.",
"expressionLanguageScope": "NONE",
"name": "Permissions",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.PutFile",
"typeDescription": "Writes the contents of a FlowFile to the local file system"
},
{
"propertyDescriptors": {
"Batch Size": {
"defaultValue": "500",
"description": "The maximum number of FlowFiles to send in a single connection",
"expressionLanguageScope": "NONE",
"name": "Batch Size",
"required": true,
"validator": "VALID"
},
"Conflict Resolution": {
"defaultValue": "NONE",
"description": "Determines how to handle the problem of filename collisions",
"expressionLanguageScope": "NONE",
"name": "Conflict Resolution",
"required": true,
"validator": "VALID"
},
"Connection Mode": {
"defaultValue": "Passive",
"description": "The FTP Connection Mode",
"expressionLanguageScope": "NONE",
"name": "Connection Mode",
"required": false,
"validator": "VALID"
},
"Connection Timeout": {
"defaultValue": "30 sec",
"description": "Amount of time to wait before timing out while creating a connection",
"expressionLanguageScope": "NONE",
"name": "Connection Timeout",
"required": true,
"validator": "VALID"
},
"Create Directory": {
"defaultValue": "false",
"description": "Specifies whether or not the remote directory should be created if it does not exist.",
"expressionLanguageScope": "NONE",
"name": "Create Directory",
"required": true,
"validator": "VALID"
},
"Data Timeout": {
"defaultValue": "30 sec",
"description": "When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems",
"expressionLanguageScope": "NONE",
"name": "Data Timeout",
"required": true,
"validator": "VALID"
},
"Dot Rename": {
"defaultValue": "true",
"description": "If true, then the filename of the sent file is prepended with a \".\" and then renamed back to the original once the file is completely sent. Otherwise, there is no rename. This property is ignored if the Temporary Filename property is set.",
"expressionLanguageScope": "NONE",
"name": "Dot Rename",
"required": false,
"validator": "VALID"
},
"Hostname": {
"description": "The fully qualified hostname or IP address of the remote system",
"expressionLanguageScope": "NONE",
"name": "Hostname",
"required": true,
"validator": "VALID"
},
"Http Proxy Password": {
"description": "Http Proxy Password",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Password",
"required": false,
"validator": "VALID"
},
"Http Proxy Username": {
"description": "Http Proxy Username",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Username",
"required": false,
"validator": "VALID"
},
"Internal Buffer Size": {
"defaultValue": "16KB",
"description": "Set the internal buffer size for buffered data streams",
"expressionLanguageScope": "NONE",
"name": "Internal Buffer Size",
"required": false,
"validator": "VALID"
},
"Last Modified Time": {
"description": "The lastModifiedTime to assign to the file after transferring it. If not set, the lastModifiedTime will not be changed. Format must be yyyy-MM-dd'T'HH:mm:ssZ. You may also use expression language such as ${file.lastModifiedTime}. If the value is invalid, the processor will not be invalid but will fail to change lastModifiedTime of the file.",
"expressionLanguageScope": "NONE",
"name": "Last Modified Time",
"required": false,
"validator": "VALID"
},
"Password": {
"description": "Password for the user account",
"expressionLanguageScope": "NONE",
"name": "Password",
"required": false,
"validator": "VALID"
},
"Permissions": {
"description": "The permissions to assign to the file after transferring it. Format must be either UNIX rwxrwxrwx with a - in place of denied permissions (e.g. rw-r--r--) or an octal number (e.g. 644). If not set, the permissions will not be changed. You may also use expression language such as ${file.permissions}. If the value is invalid, the processor will not be invalid but will fail to change permissions of the file.",
"expressionLanguageScope": "NONE",
"name": "Permissions",
"required": false,
"validator": "VALID"
},
"Port": {
"defaultValue": "21",
"description": "The port that the remote system is listening on for file transfers",
"expressionLanguageScope": "NONE",
"name": "Port",
"required": true,
"validator": "VALID"
},
"Proxy Host": {
"description": "The fully qualified hostname or IP address of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Host",
"required": false,
"validator": "VALID"
},
"Proxy Port": {
"description": "The port of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Port",
"required": false,
"validator": "VALID"
},
"Proxy Type": {
"defaultValue": "DIRECT",
"description": "Proxy type used for file transfers",
"expressionLanguageScope": "NONE",
"name": "Proxy Type",
"required": false,
"validator": "VALID"
},
"Reject Zero-Byte Files": {
"defaultValue": "true",
"description": "Determines whether or not Zero-byte files should be rejected without attempting to transfer",
"expressionLanguageScope": "NONE",
"name": "Reject Zero-Byte Files",
"required": false,
"validator": "VALID"
},
"Remote Path": {
"description": "The path on the remote system from which to pull or push files",
"expressionLanguageScope": "NONE",
"name": "Remote Path",
"required": false,
"validator": "VALID"
},
"Temporary Filename": {
"description": "If set, the filename of the sent file will be equal to the value specified during the transfer and after successful completion will be renamed to the original filename. If this value is set, the Dot Rename property is ignored.",
"expressionLanguageScope": "NONE",
"name": "Temporary Filename",
"required": false,
"validator": "VALID"
},
"Transfer Mode": {
"defaultValue": "Binary",
"description": "The FTP Transfer Mode",
"expressionLanguageScope": "NONE",
"name": "Transfer Mode",
"required": false,
"validator": "VALID"
},
"Use Compression": {
"defaultValue": "false",
"description": "Indicates whether or not ZLIB compression should be used when transferring files",
"expressionLanguageScope": "NONE",
"name": "Use Compression",
"required": true,
"validator": "VALID"
},
"Username": {
"description": "Username",
"expressionLanguageScope": "NONE",
"name": "Username",
"required": true,
"validator": "VALID"
},
"ftp-use-utf8": {
"defaultValue": "false",
"description": "Tells the client to use UTF-8 encoding when processing files and filenames. If set to true, the server must also support UTF-8 encoding.",
"expressionLanguageScope": "NONE",
"name": "ftp-use-utf8",
"required": true,
"validator": "VALID"
},
"proxy-configuration-service": {
"description": "Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: SOCKS, HTTP + AuthN",
"expressionLanguageScope": "NONE",
"name": "proxy-configuration-service",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.PutFTP"
},
{
"propertyDescriptors": {
"Batch Size": {
"defaultValue": "500",
"description": "The maximum number of FlowFiles to send in a single connection",
"expressionLanguageScope": "NONE",
"name": "Batch Size",
"required": true,
"validator": "VALID"
},
"Conflict Resolution": {
"defaultValue": "NONE",
"description": "Determines how to handle the problem of filename collisions",
"expressionLanguageScope": "NONE",
"name": "Conflict Resolution",
"required": true,
"validator": "VALID"
},
"Connection Timeout": {
"defaultValue": "30 sec",
"description": "Amount of time to wait before timing out while creating a connection",
"expressionLanguageScope": "NONE",
"name": "Connection Timeout",
"required": true,
"validator": "VALID"
},
"Create Directory": {
"defaultValue": "false",
"description": "Specifies whether or not the remote directory should be created if it does not exist.",
"expressionLanguageScope": "NONE",
"name": "Create Directory",
"required": true,
"validator": "VALID"
},
"Data Timeout": {
"defaultValue": "30 sec",
"description": "When transferring a file between the local and remote system, this value specifies how long is allowed to elapse without any data being transferred between systems",
"expressionLanguageScope": "NONE",
"name": "Data Timeout",
"required": true,
"validator": "VALID"
},
"Disable Directory Listing": {
"defaultValue": "false",
"description": "If set to 'true', directory listing is not performed prior to create missing directories. By default, this processor executes a directory listing command to see target directory existence before creating missing directories. However, there are situations that you might need to disable the directory listing such as the following. Directory listing might fail with some permission setups (e.g. chmod 100) on a directory. Also, if any other SFTP client created the directory after this processor performed a listing and before a directory creation request by this processor is finished, then an error is returned because the directory already exists.",
"expressionLanguageScope": "NONE",
"name": "Disable Directory Listing",
"required": false,
"validator": "VALID"
},
"Dot Rename": {
"defaultValue": "true",
"description": "If true, then the filename of the sent file is prepended with a \".\" and then renamed back to the original once the file is completely sent. Otherwise, there is no rename. This property is ignored if the Temporary Filename property is set.",
"expressionLanguageScope": "NONE",
"name": "Dot Rename",
"required": false,
"validator": "VALID"
},
"Host Key File": {
"description": "If supplied, the given file will be used as the Host Key; otherwise, no use host key file will be used",
"expressionLanguageScope": "NONE",
"name": "Host Key File",
"required": false,
"validator": "VALID"
},
"Hostname": {
"description": "The fully qualified hostname or IP address of the remote system",
"expressionLanguageScope": "NONE",
"name": "Hostname",
"required": true,
"validator": "VALID"
},
"Http Proxy Password": {
"description": "Http Proxy Password",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Password",
"required": false,
"validator": "VALID"
},
"Http Proxy Username": {
"description": "Http Proxy Username",
"expressionLanguageScope": "NONE",
"name": "Http Proxy Username",
"required": false,
"validator": "VALID"
},
"Last Modified Time": {
"description": "The lastModifiedTime to assign to the file after transferring it. If not set, the lastModifiedTime will not be changed. Format must be yyyy-MM-dd'T'HH:mm:ssZ. You may also use expression language such as ${file.lastModifiedTime}. If the value is invalid, the processor will not be invalid but will fail to change lastModifiedTime of the file.",
"expressionLanguageScope": "NONE",
"name": "Last Modified Time",
"required": false,
"validator": "VALID"
},
"Password": {
"description": "Password for the user account",
"expressionLanguageScope": "NONE",
"name": "Password",
"required": false,
"validator": "VALID"
},
"Permissions": {
"description": "The permissions to assign to the file after transferring it. Format must be either UNIX rwxrwxrwx with a - in place of denied permissions (e.g. rw-r--r--) or an octal number (e.g. 644). If not set, the permissions will not be changed. You may also use expression language such as ${file.permissions}. If the value is invalid, the processor will not be invalid but will fail to change permissions of the file.",
"expressionLanguageScope": "NONE",
"name": "Permissions",
"required": false,
"validator": "VALID"
},
"Port": {
"defaultValue": "22",
"description": "The port that the remote system is listening on for file transfers",
"expressionLanguageScope": "NONE",
"name": "Port",
"required": true,
"validator": "VALID"
},
"Private Key Passphrase": {
"description": "Password for the private key",
"expressionLanguageScope": "NONE",
"name": "Private Key Passphrase",
"required": false,
"validator": "VALID"
},
"Private Key Path": {
"description": "The fully qualified path to the Private Key file",
"expressionLanguageScope": "NONE",
"name": "Private Key Path",
"required": false,
"validator": "VALID"
},
"Proxy Host": {
"description": "The fully qualified hostname or IP address of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Host",
"required": false,
"validator": "VALID"
},
"Proxy Port": {
"description": "The port of the proxy server",
"expressionLanguageScope": "NONE",
"name": "Proxy Port",
"required": false,
"validator": "VALID"
},
"Proxy Type": {
"defaultValue": "DIRECT",
"description": "Proxy type used for file transfers",
"expressionLanguageScope": "NONE",
"name": "Proxy Type",
"required": false,
"validator": "VALID"
},
"Reject Zero-Byte Files": {
"defaultValue": "true",
"description": "Determines whether or not Zero-byte files should be rejected without attempting to transfer",
"expressionLanguageScope": "NONE",
"name": "Reject Zero-Byte Files",
"required": false,
"validator": "VALID"
},
"Remote Group": {
"description": "Integer value representing the Group ID to set on the file after transferring it. If not set, the group will not be set. You may also use expression language such as ${file.group}. If the value is invalid, the processor will not be invalid but will fail to change the group of the file.",
"expressionLanguageScope": "NONE",
"name": "Remote Group",
"required": false,
"validator": "VALID"
},
"Remote Owner": {
"description": "Integer value representing the User ID to set on the file after transferring it. If not set, the owner will not be set. You may also use expression language such as ${file.owner}. If the value is invalid, the processor will not be invalid but will fail to change the owner of the file.",
"expressionLanguageScope": "NONE",
"name": "Remote Owner",
"required": false,
"validator": "VALID"
},
"Remote Path": {
"description": "The path on the remote system from which to pull or push files",
"expressionLanguageScope": "NONE",
"name": "Remote Path",
"required": false,
"validator": "VALID"
},
"Send Keep Alive On Timeout": {
"defaultValue": "true",
"description": "Indicates whether or not to send a single Keep Alive message when SSH socket times out",
"expressionLanguageScope": "NONE",
"name": "Send Keep Alive On Timeout",
"required": true,
"validator": "VALID"
},
"Strict Host Key Checking": {
"defaultValue": "false",
"description": "Indicates whether or not strict enforcement of hosts keys should be applied",
"expressionLanguageScope": "NONE",
"name": "Strict Host Key Checking",
"required": true,
"validator": "VALID"
},
"Temporary Filename": {
"description": "If set, the filename of the sent file will be equal to the value specified during the transfer and after successful completion will be renamed to the original filename. If this value is set, the Dot Rename property is ignored.",
"expressionLanguageScope": "NONE",
"name": "Temporary Filename",
"required": false,
"validator": "VALID"
},
"Use Compression": {
"defaultValue": "false",
"description": "Indicates whether or not ZLIB compression should be used when transferring files",
"expressionLanguageScope": "NONE",
"name": "Use Compression",
"required": true,
"validator": "VALID"
},
"Username": {
"description": "Username",
"expressionLanguageScope": "NONE",
"name": "Username",
"required": true,
"validator": "VALID"
},
"proxy-configuration-service": {
"description": "Specifies the Proxy Configuration Controller Service to proxy network requests. If set, it supersedes proxy settings configured per component. Supported proxies: HTTP + AuthN, SOCKS + AuthN",
"expressionLanguageScope": "NONE",
"name": "proxy-configuration-service",
"required": false,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.PutSFTP"
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "The Character Set in which the file is encoded",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
},
"Evaluation Mode": {
"defaultValue": "Entire text",
"description": "Run the 'Replacement Strategy' against each line separately (Line-by-Line) or buffer the entire file into memory (Entire Text) and run against that.",
"expressionLanguageScope": "NONE",
"name": "Evaluation Mode",
"required": true,
"validator": "VALID"
},
"Maximum Buffer Size": {
"defaultValue": "1 MB",
"description": "Specifies the maximum amount of data to buffer (per file or per line, depending on the Evaluation Mode) in order to apply the replacement. If 'Entire Text' (in Evaluation Mode) is selected and the FlowFile is larger than this value, the FlowFile will be routed to 'failure'. In 'Line-by-Line' Mode, if a single line is larger than this value, the FlowFile will be routed to 'failure'. A default value of 1 MB is provided, primarily for 'Entire Text' mode. In 'Line-by-Line' Mode, a value such as 8 KB or 16 KB is suggested. This value is ignored if the <Replacement Strategy> property is set to one of: Append, Prepend, Always Replace",
"expressionLanguageScope": "NONE",
"name": "Maximum Buffer Size",
"required": true,
"validator": "VALID"
},
"Regular Expression": {
"defaultValue": "(?s)(^.*$)",
"description": "The Search Value to search for in the FlowFile content. Only used for 'Literal Replace' and 'Regex Replace' matching strategies",
"expressionLanguageScope": "NONE",
"name": "Regular Expression",
"required": true,
"validator": "VALID"
},
"Replacement Strategy": {
"defaultValue": "Regex Replace",
"description": "The strategy for how and what to replace within the FlowFile's text content.",
"expressionLanguageScope": "NONE",
"name": "Replacement Strategy",
"required": true,
"validator": "VALID"
},
"Replacement Value": {
"defaultValue": "$1",
"description": "The value to insert using the 'Replacement Strategy'. Using \"Regex Replace\" back-references to Regular Expression capturing groups are supported, but back-references that reference capturing groups that do not exist in the regular expression will be treated as literal value. Back References may also be referenced using the Expression Language, as '$1', '$2', etc. The single-tick marks MUST be included, as these variables are not \"Standard\" attribute names (attribute names must be quoted unless they contain only numbers, letters, and _).",
"expressionLanguageScope": "NONE",
"name": "Replacement Value",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ReplaceText"
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "The Character Set in which the file is encoded",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
},
"Mapping File": {
"description": "The name of the file (including the full path) containing the Mappings.",
"expressionLanguageScope": "NONE",
"name": "Mapping File",
"required": true,
"validator": "VALID"
},
"Mapping File Refresh Interval": {
"defaultValue": "60s",
"description": "The polling interval in seconds to check for updates to the mapping file. The default is 60s.",
"expressionLanguageScope": "NONE",
"name": "Mapping File Refresh Interval",
"required": true,
"validator": "VALID"
},
"Matching Group": {
"defaultValue": "0",
"description": "The number of the matching group of the provided regex to replace with the corresponding value from the mapping file (if it exists).",
"expressionLanguageScope": "NONE",
"name": "Matching Group",
"required": true,
"validator": "VALID"
},
"Maximum Buffer Size": {
"defaultValue": "1 MB",
"description": "Specifies the maximum amount of data to buffer (per file) in order to apply the regular expressions. If a FlowFile is larger than this value, the FlowFile will be routed to 'failure'",
"expressionLanguageScope": "NONE",
"name": "Maximum Buffer Size",
"required": true,
"validator": "VALID"
},
"Regular Expression": {
"defaultValue": "\\S+",
"description": "The Regular Expression to search for in the FlowFile content",
"expressionLanguageScope": "NONE",
"name": "Regular Expression",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ReplaceTextWithMapping"
},
{
"propertyDescriptors": {
"Routing Strategy": {
"defaultValue": "Route to Property name",
"description": "Specifies how to determine which relationship to use when evaluating the Expression Language",
"expressionLanguageScope": "NONE",
"name": "Routing Strategy",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.RouteOnAttribute",
"typeDescription": "Routes FlowFiles based on their Attributes using the Attribute Expression Language."
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "The Character Set in which the file is encoded",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
},
"Content Buffer Size": {
"defaultValue": "1 MB",
"description": "Specifies the maximum amount of data to buffer in order to apply the regular expressions. If the size of the FlowFile exceeds this value, any amount of this value will be ignored",
"expressionLanguageScope": "NONE",
"name": "Content Buffer Size",
"required": true,
"validator": "VALID"
},
"Match Requirement": {
"defaultValue": "content must match exactly",
"description": "Specifies whether the entire content of the file must match the regular expression exactly, or if any part of the file (up to Content Buffer Size) can contain the regular expression in order to be considered a match",
"expressionLanguageScope": "NONE",
"name": "Match Requirement",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.RouteOnContent"
},
{
"propertyDescriptors": {
"Character Set": {
"defaultValue": "UTF-8",
"description": "The Character Set in which the incoming text is encoded",
"expressionLanguageScope": "NONE",
"name": "Character Set",
"required": true,
"validator": "VALID"
},
"Grouping Regular Expression": {
"description": "Specifies a Regular Expression to evaluate against each line to determine which Group the line should be placed in. The Regular Expression must have at least one Capturing Group that defines the line's Group. If multiple Capturing Groups exist in the Regular Expression, the values from all Capturing Groups will be concatenated together. Two lines will not be placed into the same FlowFile unless they both have the same value for the Group (or neither line matches the Regular Expression). For example, to group together all lines in a CSV File by the first column, we can set this value to \"(.*?),.*\". Two lines that have the same Group but different Relationships will never be placed into the same FlowFile.",
"expressionLanguageScope": "NONE",
"name": "Grouping Regular Expression",
"required": false,
"validator": "VALID"
},
"Ignore Case": {
"defaultValue": "false",
"description": "If true, capitalization will not be taken into account when comparing values. E.g., matching against 'HELLO' or 'hello' will have the same result. This property is ignored if the 'Matching Strategy' is set to 'Satisfies Expression'.",
"expressionLanguageScope": "NONE",
"name": "Ignore Case",
"required": true,
"validator": "VALID"
},
"Ignore Leading/Trailing Whitespace": {
"defaultValue": "true",
"description": "Indicates whether or not the whitespace at the beginning and end of the lines should be ignored when evaluating the line.",
"expressionLanguageScope": "NONE",
"name": "Ignore Leading/Trailing Whitespace",
"required": true,
"validator": "VALID"
},
"Matching Strategy": {
"description": "Specifies how to evaluate each line of incoming text against the user-defined properties.",
"expressionLanguageScope": "NONE",
"name": "Matching Strategy",
"required": true,
"validator": "VALID"
},
"Routing Strategy": {
"defaultValue": "Route to each matching Property Name",
"description": "Specifies how to determine which Relationship(s) to use when evaluating the lines of incoming text against the 'Matching Strategy' and user-defined properties.",
"expressionLanguageScope": "NONE",
"name": "Routing Strategy",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.RouteText"
},
{
"propertyDescriptors": {
"Attribute Pattern": {
"defaultValue": ".*",
"description": "Regular Expression that specifies the names of attributes whose values will be matched against the terms in the dictionary",
"expressionLanguageScope": "NONE",
"name": "Attribute Pattern",
"required": true,
"validator": "VALID"
},
"Dictionary File": {
"description": "A new-line-delimited text file that includes the terms that should trigger a match. Empty lines are ignored. The contents of the text file are loaded into memory when the processor is scheduled and reloaded when the contents are modified.",
"expressionLanguageScope": "NONE",
"name": "Dictionary File",
"required": true,
"validator": "VALID"
},
"Dictionary Filter Pattern": {
"description": "A Regular Expression that will be applied to each line in the dictionary file. If the regular expression does not match the line, the line will not be included in the list of terms to search for. If a Matching Group is specified, only the portion of the term that matches that Matching Group will be used instead of the entire term. If not specified, all terms in the dictionary will be used and each term will consist of the text of the entire line in the file",
"expressionLanguageScope": "NONE",
"name": "Dictionary Filter Pattern",
"required": false,
"validator": "VALID"
},
"Match Criteria": {
"defaultValue": "At Least 1 Must Match",
"description": "If set to All Must Match, then FlowFiles will be routed to 'matched' only if all specified attributes' values are found in the dictionary. If set to At Least 1 Must Match, FlowFiles will be routed to 'matched' if any attribute specified is found in the dictionary",
"expressionLanguageScope": "NONE",
"name": "Match Criteria",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ScanAttribute"
},
{
"propertyDescriptors": {
"Dictionary Encoding": {
"defaultValue": "text",
"description": "Indicates how the dictionary is encoded. If 'text', dictionary terms are new-line delimited and UTF-8 encoded; if 'binary', dictionary terms are denoted by a 4-byte integer indicating the term length followed by the term itself",
"expressionLanguageScope": "NONE",
"name": "Dictionary Encoding",
"required": true,
"validator": "VALID"
},
"Dictionary File": {
"description": "The filename of the terms dictionary",
"expressionLanguageScope": "NONE",
"name": "Dictionary File",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ScanContent"
},
{
"propertyDescriptors": {
"Segment Size": {
"description": "The maximum data size in bytes for each segment",
"expressionLanguageScope": "NONE",
"name": "Segment Size",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.SegmentContent"
},
{
"propertyDescriptors": {
"Byte Sequence": {
"description": "A representation of bytes to look for and upon which to split the source file into separate files",
"expressionLanguageScope": "NONE",
"name": "Byte Sequence",
"required": true,
"validator": "VALID"
},
"Byte Sequence Format": {
"defaultValue": "Hexadecimal",
"description": "Specifies how the <Byte Sequence> property should be interpreted",
"expressionLanguageScope": "NONE",
"name": "Byte Sequence Format",
"required": true,
"validator": "VALID"
},
"Byte Sequence Location": {
"defaultValue": "Trailing",
"description": "If <Keep Byte Sequence> is set to true, specifies whether the byte sequence should be added to the end of the first split or the beginning of the second; if <Keep Byte Sequence> is false, this property is ignored.",
"expressionLanguageScope": "NONE",
"name": "Byte Sequence Location",
"required": true,
"validator": "VALID"
},
"Keep Byte Sequence": {
"defaultValue": "false",
"description": "Determines whether or not the Byte Sequence should be included with each Split",
"expressionLanguageScope": "NONE",
"name": "Keep Byte Sequence",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.SplitContent"
},
{
"propertyDescriptors": {
"JsonPath Expression": {
"description": "A JsonPath expression that indicates the array element to split into JSON/scalar fragments.",
"expressionLanguageScope": "NONE",
"name": "JsonPath Expression",
"required": true,
"validator": "VALID"
},
"Null Value Representation": {
"defaultValue": "empty string",
"description": "Indicates the desired representation of JSON Path expressions resulting in a null value.",
"expressionLanguageScope": "NONE",
"name": "Null Value Representation",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.SplitJson"
},
{
"propertyDescriptors": {
"Header Line Count": {
"defaultValue": "0",
"description": "The number of lines that should be considered part of the header; the header lines will be duplicated to all split files",
"expressionLanguageScope": "NONE",
"name": "Header Line Count",
"required": true,
"validator": "VALID"
},
"Header Line Marker Characters": {
"description": "The first character(s) on the line of the datafile which signifies a header line. This value is ignored when Header Line Count is non-zero. The first line not containing the Header Line Marker Characters and all subsequent lines are considered non-header",
"expressionLanguageScope": "NONE",
"name": "Header Line Marker Characters",
"required": false,
"validator": "VALID"
},
"Line Split Count": {
"description": "The number of lines that will be added to each split file, excluding header lines. A value of zero requires Maximum Fragment Size to be set, and line count will not be considered in determining splits.",
"expressionLanguageScope": "NONE",
"name": "Line Split Count",
"required": true,
"validator": "VALID"
},
"Maximum Fragment Size": {
"description": "The maximum size of each split file, including header lines. NOTE: in the case where a single line exceeds this property (including headers, if applicable), that line will be output in a split of its own which exceeds this Maximum Fragment Size setting.",
"expressionLanguageScope": "NONE",
"name": "Maximum Fragment Size",
"required": false,
"validator": "VALID"
},
"Remove Trailing Newlines": {
"defaultValue": "true",
"description": "Whether to remove newlines at the end of each split file. This should be false if you intend to merge the split files later. If this is set to 'true' and a FlowFile is generated that contains only 'empty lines' (i.e., consists only of \r and \n characters), the FlowFile will not be emitted. Note, however, that if header lines are specified, the resultant FlowFile will never be empty as it will consist of the header lines, so a FlowFile may be emitted that contains only the header lines.",
"expressionLanguageScope": "NONE",
"name": "Remove Trailing Newlines",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.SplitText"
},
{
"propertyDescriptors": {
"Split Depth": {
"defaultValue": "1",
"description": "Indicates the XML-nesting depth to start splitting XML fragments. A depth of 1 means split the root's children, whereas a depth of 2 means split the root's children's children and so forth.",
"expressionLanguageScope": "NONE",
"name": "Split Depth",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.SplitXml"
},
{
"propertyDescriptors": {
"File Location": {
"defaultValue": "Local",
"description": "Specifies where the state is located either local or cluster so that state can be stored appropriately in order to ensure that all data is consumed without duplicating data upon restart of NiFi",
"expressionLanguageScope": "NONE",
"name": "File Location",
"required": true,
"validator": "VALID"
},
"File to Tail": {
"description": "Path of the file to tail in case of single file mode. If using multifile mode, regular expression to find files to tail in the base directory. In case recursivity is set to true, the regular expression will be used to match the path starting from the base directory (see additional details for examples).",
"expressionLanguageScope": "NONE",
"name": "File to Tail",
"required": true,
"validator": "VALID"
},
"Initial Start Position": {
"defaultValue": "Beginning of File",
"description": "When the Processor first begins to tail data, this property specifies where the Processor should begin reading data. Once data has been ingested from a file, the Processor will continue from the last point from which it has received data.",
"expressionLanguageScope": "NONE",
"name": "Initial Start Position",
"required": true,
"validator": "VALID"
},
"Rolling Filename Pattern": {
"description": "If the file to tail \"rolls over\" as would be the case with log files, this filename pattern will be used to identify files that have rolled over so that if NiFi is restarted, and the file has rolled over, it will be able to pick up where it left off. This pattern supports wildcard characters * and ?, it also supports the notation ${filename} to specify a pattern based on the name of the file (without extension), and will assume that the files that have rolled over live in the same directory as the file being tailed. The same glob pattern will be used for all files.",
"expressionLanguageScope": "NONE",
"name": "Rolling Filename Pattern",
"required": false,
"validator": "VALID"
},
"tail-base-directory": {
"description": "Base directory used to look for files to tail. This property is required when using Multifile mode.",
"expressionLanguageScope": "NONE",
"name": "tail-base-directory",
"required": false,
"validator": "VALID"
},
"tail-mode": {
"defaultValue": "Single file",
"description": "Mode to use: single file will tail only one file, multiple file will look for a list of file. In Multiple mode the Base directory is required.",
"expressionLanguageScope": "NONE",
"name": "tail-mode",
"required": true,
"validator": "VALID"
},
"tailfile-lookup-frequency": {
"defaultValue": "10 minutes",
"description": "Only used in Multiple files mode and Changing name rolling strategy. It specifies the minimum duration the processor will wait before listing again the files to tail.",
"expressionLanguageScope": "NONE",
"name": "tailfile-lookup-frequency",
"required": false,
"validator": "VALID"
},
"tailfile-maximum-age": {
"defaultValue": "24 hours",
"description": "Only used in Multiple files mode and Changing name rolling strategy. It specifies the necessary minimum duration to consider that no new messages will be appended in a file regarding its last modification date. This should not be set too low to avoid duplication of data in case new messages are appended at a lower frequency.",
"expressionLanguageScope": "NONE",
"name": "tailfile-maximum-age",
"required": false,
"validator": "VALID"
},
"tailfile-recursive-lookup": {
"defaultValue": "false",
"description": "When using Multiple files mode, this property defines if files must be listed recursively or not in the base directory.",
"expressionLanguageScope": "NONE",
"name": "tailfile-recursive-lookup",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.TailFile",
"typeDescription": "\"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'."
},
{
"propertyDescriptors": {
"XSLT file name": {
"description": "Provides the name (including full path) of the XSLT file to apply to the flowfile XML content.",
"expressionLanguageScope": "NONE",
"name": "XSLT file name",
"required": true,
"validator": "VALID"
},
"cache-size": {
"defaultValue": "10",
"description": "Maximum number of stylesheets to cache. Zero disables the cache.",
"expressionLanguageScope": "NONE",
"name": "cache-size",
"required": true,
"validator": "VALID"
},
"cache-ttl-after-last-access": {
"defaultValue": "60 secs",
"description": "The cache TTL (time-to-live) or how long to keep stylesheets in the cache after last access.",
"expressionLanguageScope": "NONE",
"name": "cache-ttl-after-last-access",
"required": true,
"validator": "VALID"
},
"indent-output": {
"defaultValue": "true",
"description": "Whether or not to indent the output.",
"expressionLanguageScope": "NONE",
"name": "indent-output",
"required": true,
"validator": "VALID"
},
"secure-processing": {
"defaultValue": "true",
"description": "Whether or not to mitigate various XML-related attacks like XXE (XML External Entity) attacks.",
"expressionLanguageScope": "NONE",
"name": "secure-processing",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.TransformXml"
},
{
"propertyDescriptors": {
"File Filter": {
"defaultValue": ".*",
"description": "Only files contained in the archive whose names match the given regular expression will be extracted (tar/zip only)",
"expressionLanguageScope": "NONE",
"name": "File Filter",
"required": true,
"validator": "VALID"
},
"Packaging Format": {
"defaultValue": "use mime.type attribute",
"description": "The Packaging Format used to create the file",
"expressionLanguageScope": "NONE",
"name": "Packaging Format",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.UnpackContent"
},
{
"propertyDescriptors": {
"counter-name": {
"description": "The name of the counter you want to set the value off - supports expression language like ${counterName}",
"expressionLanguageScope": "NONE",
"name": "counter-name",
"required": true,
"validator": "VALID"
},
"delta": {
"defaultValue": "1",
"description": "Adjusts the counter by the specified delta for each flow file received. May be a positive or negative integer.",
"expressionLanguageScope": "NONE",
"name": "delta",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.UpdateCounter"
},
{
"propertyDescriptors": {
"validate-csv-delimiter": {
"defaultValue": ",",
"description": "Character used as 'delimiter' in the incoming data. Example: ,",
"expressionLanguageScope": "NONE",
"name": "validate-csv-delimiter",
"required": true,
"validator": "VALID"
},
"validate-csv-eol": {
"defaultValue": "\\n",
"description": "Symbols used as 'end of line' in the incoming data. Example: \\n",
"expressionLanguageScope": "NONE",
"name": "validate-csv-eol",
"required": true,
"validator": "VALID"
},
"validate-csv-header": {
"defaultValue": "true",
"description": "True if the incoming flow file contains a header to ignore, false otherwise.",
"expressionLanguageScope": "NONE",
"name": "validate-csv-header",
"required": true,
"validator": "VALID"
},
"validate-csv-quote": {
"defaultValue": "\"",
"description": "Character used as 'quote' in the incoming data. Example: \"",
"expressionLanguageScope": "NONE",
"name": "validate-csv-quote",
"required": true,
"validator": "VALID"
},
"validate-csv-schema": {
"description": "The schema to be used for validation. Is expected a comma-delimited string representing the cell processors to apply. The following cell processors are allowed in the schema definition: [ParseBigDecimal, ParseBool, ParseChar, ParseDate, ParseDouble, ParseInt, ParseLong, Optional, DMinMax, Equals, ForbidSubStr, LMinMax, NotNull, Null, RequireHashCode, RequireSubStr, Strlen, StrMinMax, StrNotNullOrEmpty, StrRegEx, Unique, UniqueHashCode, IsIncludedIn]. Note: cell processors cannot be nested except with Optional.",
"expressionLanguageScope": "NONE",
"name": "validate-csv-schema",
"required": true,
"validator": "VALID"
},
"validate-csv-strategy": {
"defaultValue": "FlowFile validation",
"description": "Strategy to apply when routing input files to output relationships.",
"expressionLanguageScope": "NONE",
"name": "validate-csv-strategy",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ValidateCsv"
},
{
"propertyDescriptors": {
"Schema File": {
"description": "The path to the Schema file that is to be used for validation",
"expressionLanguageScope": "NONE",
"name": "Schema File",
"required": true,
"validator": "VALID"
}
},
"supportsDynamicProperties": false,
"supportsDynamicRelationships": false,
"type": "org.apache.nifi.processors.standard.ValidateXml"
}
]
},
"artifact": "nifi-standard-nar",
"group": "org.apache.nifi",
"version": "1.8.0"
}
],
"schedulingDefaults": {
"defaultMaxConcurrentTasks": 1,
"defaultRunDurationNanos": 0,
"defaultSchedulingPeriodMillis": 1000,
"defaultSchedulingStrategy": "TIMER_DRIVEN",
"penalizationPeriodMillis": 30000,
"yieldDurationMillis": 1000
},
"agentType": "cpp",
"identifier": "bJHji3fXNGpMAleB8cWKnZLp"
},
"status": {
"repositories": {
"flowfilerepository": {
"size": 148961
},
"provenancerepository": {
"size": 0
}
},
"components": {
"FlowController": {
"running": true,
"uuid": "5c8c6e54-28e6-11e9-b68e-3b9f56a4c09c"
},
"NiFiProcessor": {
"running": true,
"uuid": "37dca002-b572-47ef-80bb-2251d0dbbef5"
},
"NiFiProcessor": {
"running": true,
"uuid": "37dca002-b572-47ef-80bb-2251d0dbbef6"
},
"GenerateFlowFile2": {
"running": true,
"uuid": "93ad4596-0b15-4a73-99ca-9711f0b170ad"
},
"bce0eb8d-0167-1000-96b1-07d348cbcfca": {
"running": true,
"uuid": "bce0eb8d-0167-1000-96b1-07d348cbcfca"
}
},
"uptime": 8364
},
"agentClass": "MetronPCAP",
"identifier": "RemixToIgnition"
},
"deviceInfo": {
"systemInfo": {
"machinearch": "x86_64",
"physicalMem": 17179869184,
"vCores": 12
},
"networkInfo": {
"hostname": "HW14357.fios-router.home",
"ipAddress": "127.0.0.1"
},
"identifier": "5096207446516422143"
},
"flowInfo": {
"versionedFlowSnapshotURI": {
"bucketId": "default",
"flowId": "f78f09f6-80bc-4c80-a86e-b87d081be7dd",
"registryUrl": "http://localhost:10080/c2/api/flows/f78f09f6-80bc-4c80-a86e-b87d081be7dd/content"
},
"queues": {
"GenerateFlowFile/success/bce0eb8d-0167-1000-96b1-07d348cbcfca": {
"size": 9,
"sizeMax": 0,
"dataSize": 9216,
"dataSizeMax": 10000,
"uuid": "13106bda-f71e-447f-8192-e445dfbce2d7"
},
"GenerateFlowFile/success/bce0eb8d-0167-1000-96b1-07d348cbcfca": {
"size": 1,
"sizeMax": 0,
"dataSize": 1024,
"dataSizeMax": 10000,
"uuid": "13106bda-f71e-447f-8192-e445dfbce2f7"
}
},
"components": {
"FlowController": {
"running": true,
"uuid": "5c8c6e54-28e6-11e9-b68e-3b9f56a4c09c"
},
"NiFiProcessor": {
"running": true,
"uuid": "37dca002-b572-47ef-80bb-2251d0dbbef5"
},
"NiFiProcessor": {
"running": true,
"uuid": "37dca002-b572-47ef-80bb-2251d0dbbef6"
},
"GenerateFlowFile2": {
"running": true,
"uuid": "93ad4596-0b15-4a73-99ca-9711f0b170ad"
},
"bce0eb8d-0167-1000-96b1-07d348cbcfca": {
"running": true,
"uuid": "bce0eb8d-0167-1000-96b1-07d348cbcfca"
}
},
"flowId": "f78f09f6-80bc-4c80-a86e-b87d081be7dd"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment