blob: bc200867029667bee939b3cb747e7dcc1947e175 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>ListenHTTP</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">ListenHTTP</h1><h2>Description: </h2><p>Starts an HTTP Server and listens on a given base path to transform incoming requests into FlowFiles. The default URI of the Service will be http://{hostname}:{port}/contentListener. Only HEAD and POST requests are supported. GET, PUT, and DELETE will result in an error and the HTTP response status code 405. GET is supported on &lt;service_URI&gt;/healthcheck. If the service is available, it returns "200 OK" with the content "OK". The health check functionality can be configured to be accessible via a different port. For details see the documentation of the "Listening Port for health check requests" property.A Record Reader and Record Writer property can be enabled on the processor to process incoming requests as records. Record processing is not allowed for multipart requests and request in FlowFileV3 format (minifi).</p><h3>Tags: </h3><p>ingest, http, https, rest, listen</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the <a href="../../../../../html/expression-language-guide.html">NiFi Expression Language</a>.</p><table id="properties"><tr><th>Display Name</th><th>API Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Base Path</strong></td><td>Base Path</td><td id="default-value">contentListener</td><td id="allowable-values"></td><td id="description">Base path for incoming connections<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name"><strong>Listening Port</strong></td><td>Listening Port</td><td></td><td id="allowable-values"></td><td id="description">The Port to listen on for incoming connections<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name">Listening Port for Health Check Requests</td><td>health-check-port</td><td></td><td id="allowable-values"></td><td id="description">The port to listen on for incoming health check requests. If set, it must be different from the Listening Port. Configure this port if the processor is set to use two-way SSL and a load balancer that does not support client authentication for health check requests is used. Only /&lt;base_path&gt;/healthcheck service is available via this port and only GET and HEAD requests are supported. If the processor is set not to use SSL, SSL will not be used on this port, either. If the processor is set to use one-way SSL, one-way SSL will be used on this port. If the processor is set to use two-way SSL, one-way SSL will be used on this port (client authentication not required).<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name">Max Data to Receive per Second</td><td>Max Data to Receive per Second</td><td></td><td id="allowable-values"></td><td id="description">The maximum amount of data to receive per second; this allows the bandwidth to be throttled to a specified data rate; if not specified, the data rate is not throttled</td></tr><tr><td id="name">SSL Context Service</td><td>SSL Context Service</td><td></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>RestrictedSSLContextService<br/><strong>Implementation: </strong><a href="../../../nifi-ssl-context-service-nar/1.19.1/org.apache.nifi.ssl.StandardRestrictedSSLContextService/index.html">StandardRestrictedSSLContextService</a></td><td id="description">SSL Context Service enables support for HTTPS</td></tr><tr><td id="name"><strong>HTTP Protocols</strong></td><td>HTTP Protocols</td><td id="default-value">http/1.1</td><td id="allowable-values"><ul><li>http/1.1 <img src="../../../../../html/images/iconInfo.png" alt="HTTP/1.1" title="HTTP/1.1"></img></li><li>h2 http/1.1 <img src="../../../../../html/images/iconInfo.png" alt="HTTP/2 and HTTP/1.1 negotiated based on requested protocols" title="HTTP/2 and HTTP/1.1 negotiated based on requested protocols"></img></li><li>h2 <img src="../../../../../html/images/iconInfo.png" alt="HTTP/2" title="HTTP/2"></img></li></ul></td><td id="description">HTTP Protocols supported for Application Layer Protocol Negotiation with TLS<br/><br/><strong>This Property is only considered if </strong><strong>the [SSL Context Service] Property has a value specified.</strong></td></tr><tr><td id="name">Client Authentication</td><td>client-authentication</td><td id="default-value">AUTO</td><td id="allowable-values"><ul><li>AUTO <img src="../../../../../html/images/iconInfo.png" alt="Inferred based on SSL Context Service properties. The presence of Trust Store properties implies REQUIRED, otherwise NONE is configured." title="Inferred based on SSL Context Service properties. The presence of Trust Store properties implies REQUIRED, otherwise NONE is configured."></img></li><li>WANT <img src="../../../../../html/images/iconInfo.png" alt="Requests the client certificate on handshake and validates if present but does not require it" title="Requests the client certificate on handshake and validates if present but does not require it"></img></li><li>REQUIRED <img src="../../../../../html/images/iconInfo.png" alt="Requests the client certificate on handshake and rejects the connection if it is not present and valid" title="Requests the client certificate on handshake and rejects the connection if it is not present and valid"></img></li><li>NONE <img src="../../../../../html/images/iconInfo.png" alt="Does not request the client certificate on handshake" title="Does not request the client certificate on handshake"></img></li></ul></td><td id="description">Client Authentication policy for TLS connections. Required when SSL Context Service configured.<br/><br/><strong>This Property is only considered if </strong><strong>the [SSL Context Service] Property has a value specified.</strong></td></tr><tr><td id="name"><strong>Authorized Subject DN Pattern</strong></td><td>Authorized DN Pattern</td><td id="default-value">.*</td><td id="allowable-values"></td><td id="description">A Regular Expression to apply against the Subject's Distinguished Name of incoming connections. If the Pattern does not match the Subject DN, the the processor will respond with a status of HTTP 403 Forbidden.</td></tr><tr><td id="name">Authorized Issuer DN Pattern</td><td>authorized-issuer-dn-pattern</td><td id="default-value">.*</td><td id="allowable-values"></td><td id="description">A Regular Expression to apply against the Issuer's Distinguished Name of incoming connections. If the Pattern does not match the Issuer DN, the processor will respond with a status of HTTP 403 Forbidden.</td></tr><tr><td id="name"><strong>Max Unconfirmed Flowfile Time</strong></td><td>Max Unconfirmed Flowfile Time</td><td id="default-value">60 secs</td><td id="allowable-values"></td><td id="description">The maximum amount of time to wait for a FlowFile to be confirmed before it is removed from the cache</td></tr><tr><td id="name">HTTP Headers to receive as Attributes (Regex)</td><td>HTTP Headers to receive as Attributes (Regex)</td><td></td><td id="allowable-values"></td><td id="description">Specifies the Regular Expression that determines the names of HTTP Headers that should be passed along as FlowFile attributes</td></tr><tr><td id="name">Return Code</td><td>Return Code</td><td id="default-value">200</td><td id="allowable-values"></td><td id="description">The HTTP return code returned after every HTTP call</td></tr><tr><td id="name"><strong>Multipart Request Max Size</strong></td><td>multipart-request-max-size</td><td id="default-value">1 MB</td><td id="allowable-values"></td><td id="description">The max size of the request. Only applies for requests with Content-Type: multipart/form-data, and is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space</td></tr><tr><td id="name"><strong>Multipart Read Buffer Size</strong></td><td>multipart-read-buffer-size</td><td id="default-value">512 KB</td><td id="allowable-values"></td><td id="description">The threshold size, at which the contents of an incoming file would be written to disk. Only applies for requests with Content-Type: multipart/form-data. It is used to prevent denial of service type of attacks, to prevent filling up the heap or disk space.</td></tr><tr><td id="name"><strong>Maximum Thread Pool Size</strong></td><td>max-thread-pool-size</td><td id="default-value">200</td><td id="allowable-values"></td><td id="description">The maximum number of threads to be used by the embedded Jetty server. The value can be set between 8 and 1000. The value of this property affects the performance of the flows and the operating system, therefore the default value should only be changed in justified cases. A value that is less than the default value may be suitable if only a small number of HTTP clients connect to the server. A greater value may be suitable if a large number of HTTP clients are expected to make requests to the server simultaneously.</td></tr><tr><td id="name">Record Reader</td><td>record-reader</td><td></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>RecordReaderFactory<br/><strong>Implementations: </strong><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.grok.GrokReader/index.html">GrokReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.xml.XMLReader/index.html">XMLReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.avro.AvroReader/index.html">AvroReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.syslog.Syslog5424Reader/index.html">Syslog5424Reader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.cef.CEFReader/index.html">CEFReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.syslog.SyslogReader/index.html">SyslogReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.json.JsonTreeReader/index.html">JsonTreeReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.csv.CSVReader/index.html">CSVReader</a><br/><a href="../../../nifi-scripting-nar/1.19.1/org.apache.nifi.record.script.ScriptedReader/index.html">ScriptedReader</a><br/><a href="../../../nifi-parquet-nar/1.19.1/org.apache.nifi.parquet.ParquetReader/index.html">ParquetReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.json.JsonPathReader/index.html">JsonPathReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.lookup.ReaderLookup/index.html">ReaderLookup</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.windowsevent.WindowsEventLogReader/index.html">WindowsEventLogReader</a></td><td id="description">The Record Reader to use parsing the incoming FlowFile into Records</td></tr><tr><td id="name"><strong>Record Writer</strong></td><td>record-writer</td><td></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>RecordSetWriterFactory<br/><strong>Implementations: </strong><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.text.FreeFormTextRecordSetWriter/index.html">FreeFormTextRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.avro.AvroRecordSetWriter/index.html">AvroRecordSetWriter</a><br/><a href="../../../nifi-scripting-nar/1.19.1/org.apache.nifi.record.script.ScriptedRecordSetWriter/index.html">ScriptedRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.csv.CSVRecordSetWriter/index.html">CSVRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.xml.XMLRecordSetWriter/index.html">XMLRecordSetWriter</a><br/><a href="../../../nifi-parquet-nar/1.19.1/org.apache.nifi.parquet.ParquetRecordSetWriter/index.html">ParquetRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.json.JsonRecordSetWriter/index.html">JsonRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.19.1/org.apache.nifi.lookup.RecordSetWriterLookup/index.html">RecordSetWriterLookup</a></td><td id="description">The Record Writer to use for serializing Records after they have been transformed<br/><br/><strong>This Property is only considered if </strong><strong>the [Record Reader] Property has a value specified.</strong></td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>success</td><td>Relationship for successfully received FlowFiles</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3>None specified.<h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component does not allow an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</body></html>