<extensionManifest><groupId>org.apache.nifi</groupId><artifactId>nifi-enrich-nar</artifactId><version>2.4.0</version><parentNar><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-shared-nar</artifactId><version>2.4.0</version></parentNar><systemApiVersion>2.1.0</systemApiVersion><buildInfo><tag>rel/nifi-2.4.0</tag><branch>main</branch><revision>1</revision></buildInfo><extensions><extension><name>org.apache.nifi.processors.GeoEnrichIP</name><type>PROCESSOR</type><description>Looks up geolocation information for an IP address and adds the geo information to FlowFile attributes. The geo data is provided as a MaxMind database. The attribute that contains the IP address to lookup is provided by the 'IP Address Attribute' property. If the name of the attribute provided is 'X', then the the attributes added by enrichment will take the form X.geo.&lt;fieldName&gt;</description><tags><tag>geo</tag><tag>enrich</tag><tag>ip</tag><tag>maxmind</tag></tags><properties><property><name>Geo Database File</name><displayName>MaxMind Database File</displayName><description>Path to Maxmind IP Enrichment Database File</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>DIRECTORY</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>IP Address Attribute</name><displayName>IP Address Attribute</displayName><description>The name of an attribute whose value is a dotted decimal IP address for which enrichment should occur</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log Level</name><displayName>Log Level</displayName><description>The Log Level to use when an IP is not found in the database. Accepted values: INFO, DEBUG, WARN, ERROR.</description><defaultValue>WARN</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>found</name><description>Where to route flow files after successfully enriching attributes with data provided by database</description><autoTerminated>false</autoTerminated></relationship><relationship><name>not found</name><description>Where to route flow files after unsuccessfully enriching attributes because no data was found</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>X.geo.lookup.micros</name><description>The number of microseconds that the geo lookup took</description></writesAttribute><writesAttribute><name>X.geo.city</name><description>The city identified for the IP address</description></writesAttribute><writesAttribute><name>X.geo.accuracy</name><description>The accuracy radius if provided by the database (in Kilometers)</description></writesAttribute><writesAttribute><name>X.geo.latitude</name><description>The latitude identified for this IP address</description></writesAttribute><writesAttribute><name>X.geo.longitude</name><description>The longitude identified for this IP address</description></writesAttribute><writesAttribute><name>X.geo.subdivision.N</name><description>Each subdivision that is identified for this IP address is added with a one-up number appended to the attribute name, starting with 0</description></writesAttribute><writesAttribute><name>X.geo.subdivision.isocode.N</name><description>The ISO code for the subdivision that is identified by X.geo.subdivision.N</description></writesAttribute><writesAttribute><name>X.geo.country</name><description>The country identified for this IP address</description></writesAttribute><writesAttribute><name>X.geo.country.isocode</name><description>The ISO Code for the country identified</description></writesAttribute><writesAttribute><name>X.geo.postalcode</name><description>The postal code for the country identified</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.GeoEnrichIPRecord</name><type>PROCESSOR</type><description>Looks up geolocation information for an IP address and adds the geo information to FlowFile attributes. The geo data is provided as a MaxMind database. This version uses the NiFi Record API to allow large scale enrichment of record-oriented data sets. Each field provided by the MaxMind database can be directed to a field of the user's choosing by providing a record path for that field configuration. </description><tags><tag>geo</tag><tag>enrich</tag><tag>ip</tag><tag>maxmind</tag><tag>record</tag></tags><properties><property><name>Geo Database File</name><displayName>MaxMind Database File</displayName><description>Path to Maxmind IP Enrichment Database File</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>DIRECTORY</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>geo-enrich-ip-record-reader</name><displayName>Record Reader</displayName><description>Record reader service to use for reading the flowfile contents.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordReaderFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.4.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-record-writer</name><displayName>Record Writer</displayName><description>Record writer service to use for enriching the flowfile contents.</description><controllerServiceDefinition><className>org.apache.nifi.serialization.RecordSetWriterFactory</className><groupId>org.apache.nifi</groupId><artifactId>nifi-standard-services-api-nar</artifactId><version>2.4.0</version></controllerServiceDefinition><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-split-found-not-found</name><displayName>Separate Enriched From Not Enriched</displayName><description>Separate records that have been enriched from ones that have not. Default behavior is to send everything to the found relationship if even one record is enriched.</description><defaultValue>false</defaultValue><allowableValues><allowableValue><displayName>true</displayName><value>true</value><description></description></allowableValue><allowableValue><displayName>false</displayName><value>false</value><description></description></allowableValue></allowableValues><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>false</expressionLanguageSupported><expressionLanguageScope>NONE</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-ip-record-path</name><displayName>IP Address Record Path</displayName><description>The record path to retrieve the IP address for doing the lookup.</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-city-record-path</name><displayName>City Record Path</displayName><description>Record path for putting the city identified for the IP address</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-latitude-record-path</name><displayName>Latitude Record Path</displayName><description>Record path for putting the latitude identified for this IP address</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-longitude-record-path</name><displayName>Longitude Record Path</displayName><description>Record path for putting the longitude identified for this IP address</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-country-record-path</name><displayName>Country Record Path</displayName><description>Record path for putting the country identified for this IP address</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-country-iso-record-path</name><displayName>Country ISO Code Record Path</displayName><description>Record path for putting the ISO Code for the country identified</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>geo-enrich-ip-country-postal-record-path</name><displayName>Country Postal Code Record Path</displayName><description>Record path for putting the postal code for the country identified</description><required>false</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log Level</name><displayName>Log Level</displayName><description>The Log Level to use when an IP is not found in the database. Accepted values: INFO, DEBUG, WARN, ERROR.</description><defaultValue>WARN</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>found</name><description>Where to route flow files after successfully enriching attributes with data provided by database</description><autoTerminated>false</autoTerminated></relationship><relationship><name>not found</name><description>Where to route flow files after unsuccessfully enriching attributes because no data was found</description><autoTerminated>false</autoTerminated></relationship><relationship><name>original</name><description>The original input flowfile goes to this relationship regardless of whether the content was enriched or not.</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes></writesAttributes><inputRequirement>INPUT_REQUIRED</inputRequirement></extension><extension><name>org.apache.nifi.processors.ISPEnrichIP</name><type>PROCESSOR</type><description>Looks up ISP information for an IP address and adds the information to FlowFile attributes. The ISP data is provided as a MaxMind ISP database. (Note that this is NOT the same as the GeoLite database utilized by some geo enrichment tools). The attribute that contains the IP address to lookup is provided by the 'IP Address Attribute' property. If the name of the attribute provided is 'X', then the the attributes added by enrichment will take the form X.isp.&lt;fieldName&gt;</description><tags><tag>ISP</tag><tag>enrich</tag><tag>ip</tag><tag>maxmind</tag></tags><properties><property><name>Geo Database File</name><displayName>MaxMind Database File</displayName><description>Path to Maxmind IP Enrichment Database File</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>ENVIRONMENT</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic><resourceDefinition><cardinality>SINGLE</cardinality><resourceTypes><resourceType>DIRECTORY</resourceType><resourceType>FILE</resourceType></resourceTypes></resourceDefinition></property><property><name>IP Address Attribute</name><displayName>IP Address Attribute</displayName><description>The name of an attribute whose value is a dotted decimal IP address for which enrichment should occur</description><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property><property><name>Log Level</name><displayName>Log Level</displayName><description>The Log Level to use when an IP is not found in the database. Accepted values: INFO, DEBUG, WARN, ERROR.</description><defaultValue>WARN</defaultValue><required>true</required><sensitive>false</sensitive><expressionLanguageSupported>true</expressionLanguageSupported><expressionLanguageScope>FLOWFILE_ATTRIBUTES</expressionLanguageScope><dynamicallyModifiesClasspath>false</dynamicallyModifiesClasspath><dynamic>false</dynamic></property></properties><relationships><relationship><name>found</name><description>Where to route flow files after successfully enriching attributes with data provided by database</description><autoTerminated>false</autoTerminated></relationship><relationship><name>not found</name><description>Where to route flow files after unsuccessfully enriching attributes because no data was found</description><autoTerminated>false</autoTerminated></relationship></relationships><writesAttributes><writesAttribute><name>X.isp.lookup.micros</name><description>The number of microseconds that the geo lookup took</description></writesAttribute><writesAttribute><name>X.isp.asn</name><description>The Autonomous System Number (ASN) identified for the IP address</description></writesAttribute><writesAttribute><name>X.isp.asn.organization</name><description>The Organization Associated with the ASN identified</description></writesAttribute><writesAttribute><name>X.isp.name</name><description>The name of the ISP associated with the IP address provided</description></writesAttribute><writesAttribute><name>X.isp.organization</name><description>The Organization associated with the IP address provided</description></writesAttribute></writesAttributes><supportsBatching>true</supportsBatching><sideEffectFree>true</sideEffectFree><inputRequirement>INPUT_REQUIRED</inputRequirement></extension></extensions></extensionManifest>