-
Processors
- AttributeRollingWindow
- AttributesToCSV
- AttributesToJSON
- CalculateRecordStats
- CaptureChangeMySQL
- CompressContent
- ConnectWebSocket
- ConsumeAMQP
- ConsumeAzureEventHub
- ConsumeElasticsearch
- ConsumeGCPubSub
- ConsumeIMAP
- ConsumeJMS
- ConsumeKafka
- ConsumeKinesisStream
- ConsumeMQTT
- ConsumePOP3
- ConsumeSlack
- ConsumeTwitter
- ConsumeWindowsEventLog
- ControlRate
- ConvertCharacterSet
- ConvertRecord
- CopyAzureBlobStorage_v12
- CopyS3Object
- CountText
- CryptographicHashContent
- DebugFlow
- DecryptContentAge
- DecryptContentPGP
- DeduplicateRecord
- DeleteAzureBlobStorage_v12
- DeleteAzureDataLakeStorage
- DeleteByQueryElasticsearch
- DeleteDynamoDB
- DeleteFile
- DeleteGCSObject
- DeleteGridFS
- DeleteMongo
- DeleteS3Object
- DeleteSFTP
- DeleteSQS
- DetectDuplicate
- DistributeLoad
- DuplicateFlowFile
- EncodeContent
- EncryptContentAge
- EncryptContentPGP
- EnforceOrder
- EvaluateJsonPath
- EvaluateXPath
- EvaluateXQuery
- ExecuteGroovyScript
- ExecuteProcess
- ExecuteScript
- ExecuteSQL
- ExecuteSQLRecord
- ExecuteStreamCommand
- ExtractAvroMetadata
- ExtractEmailAttachments
- ExtractEmailHeaders
- ExtractGrok
- ExtractHL7Attributes
- ExtractRecordSchema
- ExtractText
- FetchAzureBlobStorage_v12
- FetchAzureDataLakeStorage
- FetchBoxFile
- FetchDistributedMapCache
- FetchDropbox
- FetchFile
- FetchFTP
- FetchGCSObject
- FetchGoogleDrive
- FetchGridFS
- FetchS3Object
- FetchSFTP
- FetchSmb
- FilterAttribute
- FlattenJson
- ForkEnrichment
- ForkRecord
- GenerateFlowFile
- GenerateRecord
- GenerateTableFetch
- GeoEnrichIP
- GeoEnrichIPRecord
- GeohashRecord
- GetAsanaObject
- GetAwsPollyJobStatus
- GetAwsTextractJobStatus
- GetAwsTranscribeJobStatus
- GetAwsTranslateJobStatus
- GetAzureEventHub
- GetAzureQueueStorage_v12
- GetDynamoDB
- GetElasticsearch
- GetFile
- GetFTP
- GetGcpVisionAnnotateFilesOperationStatus
- GetGcpVisionAnnotateImagesOperationStatus
- GetHubSpot
- GetMongo
- GetMongoRecord
- GetS3ObjectMetadata
- GetSFTP
- GetShopify
- GetSmbFile
- GetSNMP
- GetSplunk
- GetSQS
- GetWorkdayReport
- GetZendesk
- HandleHttpRequest
- HandleHttpResponse
- IdentifyMimeType
- InvokeHTTP
- InvokeScriptedProcessor
- ISPEnrichIP
- JoinEnrichment
- JoltTransformJSON
- JoltTransformRecord
- JSLTTransformJSON
- JsonQueryElasticsearch
- ListAzureBlobStorage_v12
- ListAzureDataLakeStorage
- ListBoxFile
- ListDatabaseTables
- ListDropbox
- ListenFTP
- ListenHTTP
- ListenOTLP
- ListenSlack
- ListenSyslog
- ListenTCP
- ListenTrapSNMP
- ListenUDP
- ListenUDPRecord
- ListenWebSocket
- ListFile
- ListFTP
- ListGCSBucket
- ListGoogleDrive
- ListS3
- ListSFTP
- ListSmb
- LogAttribute
- LogMessage
- LookupAttribute
- LookupRecord
- MergeContent
- MergeRecord
- ModifyBytes
- ModifyCompression
- MonitorActivity
- MoveAzureDataLakeStorage
- Notify
- PackageFlowFile
- PaginatedJsonQueryElasticsearch
- ParseEvtx
- ParseNetflowv5
- ParseSyslog
- ParseSyslog5424
- PartitionRecord
- PublishAMQP
- PublishGCPubSub
- PublishJMS
- PublishKafka
- PublishMQTT
- PublishSlack
- PutAzureBlobStorage_v12
- PutAzureCosmosDBRecord
- PutAzureDataExplorer
- PutAzureDataLakeStorage
- PutAzureEventHub
- PutAzureQueueStorage_v12
- PutBigQuery
- PutBoxFile
- PutCloudWatchMetric
- PutDatabaseRecord
- PutDistributedMapCache
- PutDropbox
- PutDynamoDB
- PutDynamoDBRecord
- PutElasticsearchJson
- PutElasticsearchRecord
- PutEmail
- PutFile
- PutFTP
- PutGCSObject
- PutGoogleDrive
- PutGridFS
- PutKinesisFirehose
- PutKinesisStream
- PutLambda
- PutMongo
- PutMongoBulkOperations
- PutMongoRecord
- PutRecord
- PutRedisHashRecord
- PutS3Object
- PutSalesforceObject
- PutSFTP
- PutSmbFile
- PutSNS
- PutSplunk
- PutSplunkHTTP
- PutSQL
- PutSQS
- PutSyslog
- PutTCP
- PutUDP
- PutWebSocket
- PutZendeskTicket
- QueryAirtableTable
- QueryAzureDataExplorer
- QueryDatabaseTable
- QueryDatabaseTableRecord
- QueryRecord
- QuerySalesforceObject
- QuerySplunkIndexingStatus
- RemoveRecordField
- RenameRecordField
- ReplaceText
- ReplaceTextWithMapping
- RetryFlowFile
- RouteHL7
- RouteOnAttribute
- RouteOnContent
- RouteText
- RunMongoAggregation
- SampleRecord
- ScanAttribute
- ScanContent
- ScriptedFilterRecord
- ScriptedPartitionRecord
- ScriptedTransformRecord
- ScriptedValidateRecord
- SearchElasticsearch
- SegmentContent
- SendTrapSNMP
- SetSNMP
- SignContentPGP
- SplitAvro
- SplitContent
- SplitExcel
- SplitJson
- SplitPCAP
- SplitRecord
- SplitText
- SplitXml
- StartAwsPollyJob
- StartAwsTextractJob
- StartAwsTranscribeJob
- StartAwsTranslateJob
- StartGcpVisionAnnotateFilesOperation
- StartGcpVisionAnnotateImagesOperation
- TagS3Object
- TailFile
- TransformXml
- UnpackContent
- UpdateAttribute
- UpdateByQueryElasticsearch
- UpdateCounter
- UpdateDatabaseTable
- UpdateRecord
- ValidateCsv
- ValidateJson
- ValidateRecord
- ValidateXml
- VerifyContentMAC
- VerifyContentPGP
- Wait
-
Controller Services
- ADLSCredentialsControllerService
- ADLSCredentialsControllerServiceLookup
- AmazonGlueSchemaRegistry
- ApicurioSchemaRegistry
- AvroReader
- AvroRecordSetWriter
- AvroSchemaRegistry
- AWSCredentialsProviderControllerService
- AzureBlobStorageFileResourceService
- AzureCosmosDBClientService
- AzureDataLakeStorageFileResourceService
- AzureEventHubRecordSink
- AzureStorageCredentialsControllerService_v12
- AzureStorageCredentialsControllerServiceLookup_v12
- CEFReader
- ConfluentEncodedSchemaReferenceReader
- ConfluentEncodedSchemaReferenceWriter
- ConfluentSchemaRegistry
- CSVReader
- CSVRecordLookupService
- CSVRecordSetWriter
- DatabaseRecordLookupService
- DatabaseRecordSink
- DatabaseTableSchemaRegistry
- DBCPConnectionPool
- DBCPConnectionPoolLookup
- DistributedMapCacheLookupService
- ElasticSearchClientServiceImpl
- ElasticSearchLookupService
- ElasticSearchStringLookupService
- EmailRecordSink
- EmbeddedHazelcastCacheManager
- ExcelReader
- ExternalHazelcastCacheManager
- FreeFormTextRecordSetWriter
- GCPCredentialsControllerService
- GCSFileResourceService
- GrokReader
- HazelcastMapCacheClient
- HikariCPConnectionPool
- HttpRecordSink
- IPLookupService
- JettyWebSocketClient
- JettyWebSocketServer
- JMSConnectionFactoryProvider
- JndiJmsConnectionFactoryProvider
- JsonConfigBasedBoxClientService
- JsonPathReader
- JsonRecordSetWriter
- JsonTreeReader
- Kafka3ConnectionService
- KerberosKeytabUserService
- KerberosPasswordUserService
- KerberosTicketCacheUserService
- LoggingRecordSink
- MapCacheClientService
- MapCacheServer
- MongoDBControllerService
- MongoDBLookupService
- PropertiesFileLookupService
- ProtobufReader
- ReaderLookup
- RecordSetWriterLookup
- RecordSinkServiceLookup
- RedisConnectionPoolService
- RedisDistributedMapCacheClientService
- RestLookupService
- S3FileResourceService
- ScriptedLookupService
- ScriptedReader
- ScriptedRecordSetWriter
- ScriptedRecordSink
- SetCacheClientService
- SetCacheServer
- SimpleCsvFileLookupService
- SimpleDatabaseLookupService
- SimpleKeyValueLookupService
- SimpleRedisDistributedMapCacheClientService
- SimpleScriptedLookupService
- SiteToSiteReportingRecordSink
- SlackRecordSink
- SmbjClientProviderService
- StandardAsanaClientProviderService
- StandardAzureCredentialsControllerService
- StandardDropboxCredentialService
- StandardFileResourceService
- StandardHashiCorpVaultClientService
- StandardHttpContextMap
- StandardJsonSchemaRegistry
- StandardKustoIngestService
- StandardKustoQueryService
- StandardOauth2AccessTokenProvider
- StandardPGPPrivateKeyService
- StandardPGPPublicKeyService
- StandardPrivateKeyService
- StandardProxyConfigurationService
- StandardRestrictedSSLContextService
- StandardS3EncryptionService
- StandardSSLContextService
- StandardWebClientServiceProvider
- Syslog5424Reader
- SyslogReader
- UDPEventRecordSink
- VolatileSchemaCache
- WindowsEventLogReader
- XMLFileLookupService
- XMLReader
- XMLRecordSetWriter
- YamlTreeReader
- ZendeskRecordSink
HandleHttpRequest 2.0.0
- Bundle
- org.apache.nifi | nifi-standard-nar
- Description
- Starts an HTTP Server and listens for HTTP Requests. For each request, creates a FlowFile and transfers to 'success'. This Processor is designed to be used in conjunction with the HandleHttpResponse Processor in order to create a Web Service. In case of a multipart request, one FlowFile is generated for each part.
- Tags
- http, https, ingress, listen, request, web service
- Input Requirement
- FORBIDDEN
- Supports Sensitive Dynamic Properties
- false
-
Additional Details for HandleHttpRequest 2.0.0
HandleHttpRequest
Usage Description
The pairing of this Processor with a HandleHttpResponse Processor provides the ability to use NiFi to visually construct a web server that can carry out any functionality that is available through the existing Processors. For example, one could construct a Web-based front end to an SFTP Server by constructing a flow such as:
HandleHttpRequest -> PutSFTP -> HandleHttpResponse
The HandleHttpRequest Processor provides several Properties to configure which methods are supported, the paths that are supported, and SSL configuration.
To handle requests with Content-Type: multipart/form-data containing multiple parts, additional attention needs to be paid. Each part generates a FlowFile of its own. To each these FlowFiles, some special attributes are written:
- http.context.identifier
- http.multipart.fragments.sequence.number
- http.multipart.fragments.total.number
These attributes could be used to implement a gating mechanism for HandleHttpResponse processor to wait for the processing of FlowFiles with sequence number http.multipart.fragments.sequence.number until up to * http.multipart.fragments.total.number* of flow files are processed, belonging to the same http.context.identifier, which is unique to the request.
-
Additional HTTP Methods
A comma-separated list of non-standard HTTP Methods that should be allowed
- Display Name
- Additional HTTP Methods
- Description
- A comma-separated list of non-standard HTTP Methods that should be allowed
- API Name
- Additional HTTP Methods
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- false
-
Allow DELETE
Allow HTTP DELETE Method
- Display Name
- Allow DELETE
- Description
- Allow HTTP DELETE Method
- API Name
- Allow DELETE
- Default Value
- true
- Allowable Values
-
- true
- false
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Allow GET
Allow HTTP GET Method
- Display Name
- Allow GET
- Description
- Allow HTTP GET Method
- API Name
- Allow GET
- Default Value
- true
- Allowable Values
-
- true
- false
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Allow HEAD
Allow HTTP HEAD Method
- Display Name
- Allow HEAD
- Description
- Allow HTTP HEAD Method
- API Name
- Allow HEAD
- Default Value
- false
- Allowable Values
-
- true
- false
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Allow OPTIONS
Allow HTTP OPTIONS Method
- Display Name
- Allow OPTIONS
- Description
- Allow HTTP OPTIONS Method
- API Name
- Allow OPTIONS
- Default Value
- false
- Allowable Values
-
- true
- false
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Allow POST
Allow HTTP POST Method
- Display Name
- Allow POST
- Description
- Allow HTTP POST Method
- API Name
- Allow POST
- Default Value
- true
- Allowable Values
-
- true
- false
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Allow PUT
Allow HTTP PUT Method
- Display Name
- Allow PUT
- Description
- Allow HTTP PUT Method
- API Name
- Allow PUT
- Default Value
- true
- Allowable Values
-
- true
- false
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Allowed Paths
A Regular Expression that specifies the valid HTTP Paths that are allowed in the incoming URL Requests. If this value is specified and the path of the HTTP Requests does not match this Regular Expression, the Processor will respond with a 404: NotFound
- Display Name
- Allowed Paths
- Description
- A Regular Expression that specifies the valid HTTP Paths that are allowed in the incoming URL Requests. If this value is specified and the path of the HTTP Requests does not match this Regular Expression, the Processor will respond with a 404: NotFound
- API Name
- Allowed Paths
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- false
-
Client Authentication
Specifies whether or not the Processor should authenticate clients. This value is ignored if the <SSL Context Service> Property is not specified or the SSL Context provided uses only a KeyStore and not a TrustStore.
- Display Name
- Client Authentication
- Description
- Specifies whether or not the Processor should authenticate clients. This value is ignored if the <SSL Context Service> Property is not specified or the SSL Context provided uses only a KeyStore and not a TrustStore.
- API Name
- Client Authentication
- Default Value
- No Authentication
- Allowable Values
-
- No Authentication
- Want Authentication
- Need Authentication
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Container Queue Size
The size of the queue for Http Request Containers
- Display Name
- Container Queue Size
- Description
- The size of the queue for Http Request Containers
- API Name
- container-queue-size
- Default Value
- 50
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Default URL Character Set
The character set to use for decoding URL parameters if the HTTP Request does not supply one
- Display Name
- Default URL Character Set
- Description
- The character set to use for decoding URL parameters if the HTTP Request does not supply one
- API Name
- Default URL Character Set
- Default Value
- UTF-8
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Hostname
The Hostname to bind to. If not specified, will bind to all hosts
- Display Name
- Hostname
- Description
- The Hostname to bind to. If not specified, will bind to all hosts
- API Name
- Hostname
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- false
-
HTTP Context Map
The HTTP Context Map Controller Service to use for caching the HTTP Request Information
- Display Name
- HTTP Context Map
- Description
- The HTTP Context Map Controller Service to use for caching the HTTP Request Information
- API Name
- HTTP Context Map
- Service Interface
- org.apache.nifi.http.HttpContextMap
- Service Implementations
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
HTTP Protocols
HTTP Protocols supported for Application Layer Protocol Negotiation with TLS
- Display Name
- HTTP Protocols
- Description
- HTTP Protocols supported for Application Layer Protocol Negotiation with TLS
- API Name
- HTTP Protocols
- Default Value
- HTTP_1_1
- Allowable Values
-
- http/1.1
- h2 http/1.1
- h2
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
- Dependencies
-
- SSL Context Service is set to any value specified
-
Listening Port
The Port to listen on for incoming HTTP requests
- Display Name
- Listening Port
- Description
- The Port to listen on for incoming HTTP requests
- API Name
- Listening Port
- Default Value
- 80
- Expression Language Scope
- Environment variables defined at JVM level and system properties
- Sensitive
- false
- Required
- true
-
Maximum Threads
The maximum number of threads that the embedded HTTP server will use for handling requests.
- Display Name
- Maximum Threads
- Description
- The maximum number of threads that the embedded HTTP server will use for handling requests.
- API Name
- Maximum Threads
- Default Value
- 200
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Multipart Read Buffer Size
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.
- Display Name
- Multipart Read Buffer Size
- 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.
- API Name
- multipart-read-buffer-size
- Default Value
- 512 KB
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Multipart Request Max Size
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
- Display Name
- Multipart Request Max Size
- 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
- API Name
- multipart-request-max-size
- Default Value
- 1 MB
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
Parameters to Attributes List
A comma-separated list of HTTP parameters or form data to output as attributes
- Display Name
- Parameters to Attributes List
- Description
- A comma-separated list of HTTP parameters or form data to output as attributes
- API Name
- parameters-to-attributes
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- false
-
Request Header Maximum Size
The maximum supported size of HTTP headers in requests sent to this processor
- Display Name
- Request Header Maximum Size
- Description
- The maximum supported size of HTTP headers in requests sent to this processor
- API Name
- Request Header Maximum Size
- Default Value
- 8 KB
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- true
-
SSL Context Service
The SSL Context Service to use in order to secure the server. If specified, the server will accept only HTTPS requests; otherwise, the server will accept only HTTP requests
- Display Name
- SSL Context Service
- Description
- The SSL Context Service to use in order to secure the server. If specified, the server will accept only HTTPS requests; otherwise, the server will accept only HTTP requests
- API Name
- SSL Context Service
- Service Interface
- org.apache.nifi.ssl.RestrictedSSLContextService
- Service Implementations
- Expression Language Scope
- Not Supported
- Sensitive
- false
- Required
- false
Name | Description |
---|---|
success | All content that is received is routed to the 'success' relationship |
Name | Description |
---|---|
http.context.identifier | An identifier that allows the HandleHttpRequest and HandleHttpResponse to coordinate which FlowFile belongs to which HTTP Request/Response. |
mime.type | The MIME Type of the data, according to the HTTP Header "Content-Type" |
http.servlet.path | The part of the request URL that is considered the Servlet Path |
http.context.path | The part of the request URL that is considered to be the Context Path |
http.method | The HTTP Method that was used for the request, such as GET or POST |
http.local.name | IP address/hostname of the server |
http.server.port | Listening port of the server |
http.query.string | The query string portion of the Request URL |
http.remote.host | The hostname of the requestor |
http.remote.addr | The hostname:port combination of the requestor |
http.remote.user | The username of the requestor |
http.protocol | The protocol used to communicate |
http.request.uri | The full Request URL |
http.auth.type | The type of HTTP Authorization used |
http.principal.name | The name of the authenticated user making the request |
http.query.param.XXX | Each of query parameters in the request will be added as an attribute, prefixed with "http.query.param." |
http.param.XXX | Form parameters in the request that are configured by "Parameters to Attributes List" will be added as an attribute, prefixed with "http.param.". Putting form parameters of large size is not recommended. |
http.subject.dn | The Distinguished Name of the requestor. This value will not be populated unless the Processor is configured to use an SSLContext Service |
http.issuer.dn | The Distinguished Name of the entity that issued the Subject's certificate. This value will not be populated unless the Processor is configured to use an SSLContext Service |
http.certificate.sans.N.name | X.509 Client Certificate Subject Alternative Name value from mutual TLS authentication. The attribute name has a zero-based index ordered according to the content of Client Certificate |
http.certificate.sans.N.nameType | X.509 Client Certificate Subject Alternative Name type from mutual TLS authentication. The attribute name has a zero-based index ordered according to the content of Client Certificate. The attribute value is one of the General Names from RFC 3280 Section 4.1.2.7 |
http.headers.XXX | Each of the HTTP Headers that is received in the request will be added as an attribute, prefixed with "http.headers." For example, if the request contains an HTTP Header named "x-my-header", then the value will be added to an attribute named "http.headers.x-my-header" |
http.headers.multipart.XXX | Each of the HTTP Headers that is received in the multipart request will be added as an attribute, prefixed with "http.headers.multipart." For example, if the multipart request contains an HTTP Header named "content-disposition", then the value will be added to an attribute named "http.headers.multipart.content-disposition" |
http.multipart.size | For requests with Content-Type "multipart/form-data", the part's content size is recorded into this attribute |
http.multipart.content.type | For requests with Content-Type "multipart/form-data", the part's content type is recorded into this attribute |
http.multipart.name | For requests with Content-Type "multipart/form-data", the part's name is recorded into this attribute |
http.multipart.filename | For requests with Content-Type "multipart/form-data", when the part contains an uploaded file, the name of the file is recorded into this attribute. Files are stored temporarily at the default temporary-file directory specified in "java.io.File" Java Docs) |
http.multipart.fragments.sequence.number | For requests with Content-Type "multipart/form-data", the part's index is recorded into this attribute. The index starts with 1. |
http.multipart.fragments.total.number | For requests with Content-Type "multipart/form-data", the count of all parts is recorded into this attribute. |