Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • When moving between patch (also known as incremental) version changes such as 0.1.0 to 0.1.1 users should be safe to assume a clean upgrade can occur with no risk of behavior changes other than bug fixes and no compatibility issues.
  • When moving between minor changes such as 0.1.0 to 0.2.0 users can expect new behaviors and bug fixes but backward compatibility should be protected.
  • When moving between major changes such as 0.x.y to 1.0.0 t here may be backward compatibility impacting changes largely focused on removal of deprecated items

Versions

Table of Contents
excludeSummary|Versions

Migrating to 2.0.0-M2

Migrating to 2.0.0-M2 requires upgrading to 1

...

.25.0 prior to moving to 2.0.0

...

-M2.

Version 2.0.0-M2 is the second milestone version of Apache NiFi 2.0.0.

Please refer to the Deprecated Components and Features documentation for items removed in this version.

In addition to the changes from 2.0.0-M1, version 2.0.0-M2 includes several additional changes that may require manual adjustments when upgrading.

Deployment and Configuration Changes

  • JoltTransformJSON and JoltTransformRecord moved to new nifi-jolt-nar
  • Removed InfluxDB Processors
  • Removed Bootstrap Notification Services
  • Removed MiNiFi C2 Server
  • Moved from SimpleDateFormat to DateTimeFormatter for date and time parsing and formatting

Custom Component Changes

  • Custom Components with Property Descriptor Builders passing null to the defaultValue() method are no longer supported
  • Upgrading from Servlet API 3 to Servlet API 6 requires changes from javax.servlet packages to jakarta.servlet packages

Migrating to 2.0.0-M1

Migrating to 2.0.0-M1 requires upgrading to 1.24.0 prior to moving to 2.0.0-M1.

Version 2.0.0-M1 is the first milestone version of Apache NiFi 2.0.0. This version includes over 900 issues resolved, including new features as well as numerous improvements and bug fixes.

Please refer to the Deprecated Components and Features documentation for items removed in this version.

Migrating Deprecated Components and Features for 2.0.0 includes current progress on the steps necessary for migrating certain components and features.

  • The nifi.flow.configuration.file property in nifi.properties must be changed to reference flow.json.gz instead of flow.xml.gz
  • The default bootstrap configuration no longer includes java.net.preferIPv4Stack=true as part of the standard settings. Systems that support IPv6 may require adjustments to host resolution settings.
  • The ExpressionLanguageScope VARIABLE_REGISTRY has been removed.  An alternate expression language scope ENVIRONMENT is now available, allowing for similar configurability via JVM system properties or system environment variables.

Migrating to 1.24.0

  • URL properties specified in components should be URL-encoded. NIFI-12103 NIFI-12513
    • InvokeHTTP (property HTTP URL)

Migrating to 1.23.0

  • The resolution for CVE-2023-36542 included the addition of a new Access Policy component restriction named Reference Remote Resources applied to the following components:
    • CaptureChangeMySQL
    • ConsumeJMS
    • DBCPConnectionPool
    • ExtractGrok
    • GrokReader
    • HikariCPConnectionPool
    • HadoopDBCPConnectionPool
    • HBase_2_ClientService
    • JMSConnectionFactoryProvider
    • PublishJMS
    • ValidateJson
    • ValidateXml
  • Deployments with fine-grained Access Policies may require assigning the Reference Remote Resources permission to users who should be able to configure applicable components
  • The nifi-riemann-nar and nifi-hbase_1_1_2-client-service-nar are no longer included in the standard binary, but can be downloaded from Maven Central
  • RethinkDB Processors are deprecated for removal in 2.0.0
  • Upgrading dependencies from H2 Database Engine version 2.1 to 2.2 required internal automated migration

Migrating to 1.22.0

  • DBCPConnectionPool and HikariCPConnectionPool Controller Services no longer support H2 database connections according to Database URL validation added in NIFI-11653
  • JndiJmsConnectionFactoryProvider Controller Service along with ConsumeJMS and PublishJMS Processors no longer support LDAP Provider URLs according to validation added in NIFI-11614
    • The additional details documentation for JndiJmsConnectionFactoryProvider describes an optional Java System property that can be added to bootstrap.conf to enable LDAP for specific use cases
  • GetAzureQueueStorage and PutAzureQueueStorage have been deprecated in favor of GetAzureQueueStorage_v12 and PutAzureQueueStorage_v12
  • ECMAScript, lua, and ruby have been deprecated for Scripted components in favor of Groovy
  • GetIgniteCache and PutIgniteCache have been deprecated for removal in 2.0.0
  • The Compression Type property has been removed from AbstractCassandraProcessor which affects PutCassandraQL, PutCassandraRecord, and QueryCassandra. This will cause existing instances of these processors to become invalid. To migrate the flow, remove that property which is now displayed as an unsupported property in the processors' configuration dialogs. If a Compression Type other than the default "NONE" is needed, use a Cassandra Connection Provider controller service rather than the direct properties in the processor. (NIFI-5642)
  • The resolution for CVE-2023-36542 included the addition of a new Access Policy component restriction named Reference Remote Resources applied to the following components:
    • CaptureChangeMySQL
    • ConsumeJMS
    • DBCPConnectionPool
    • ExtractGrok
    • GrokReader
    • HikariCPConnectionPool
    • HadoopDBCPConnectionPool
    • HBase_2_ClientService
    • JMSConnectionFactoryProvider
    • PublishJMS
    • ValidateJson
    • ValidateXml
  • Deployments with fine-grained Access Policies may require assigning the Reference Remote Resources permission to users who should be able to configure applicable components
  • The nifi-riemann-nar and nifi-hbase_1_1_2-client-service-nar are no longer included in the standard binary, but can be downloaded from Maven Central
  • RethinkDB Processors are deprecated for removal in 2.0.0
  • Upgrading dependencies from H2 Database Engine version 2.1 to 2.2 required internal automated migration

Migrating to 1.22.0

  • DBCPConnectionPool and HikariCPConnectionPool Controller Services no longer support H2 database connections according to Database URL validation added in NIFI-11653
  • JndiJmsConnectionFactoryProvider Controller Service along with ConsumeJMS and PublishJMS Processors no longer support LDAP Provider URLs according to validation added in NIFI-11614
    • The additional details documentation for JndiJmsConnectionFactoryProvider describes an optional Java System property that can be added to bootstrap.conf to enable LDAP for specific use cases
  • GetAzureQueueStorage and PutAzureQueueStorage have been deprecated in favor of GetAzureQueueStorage_v12 and PutAzureQueueStorage_v12
  • ECMAScript, lua, and ruby have been deprecated for Scripted components in favor of Groovy
  • GetIgniteCache and PutIgniteCache have been deprecated for removal in 2.0.0

Migrating to 1.21.0

  • Refactored OpenID Connect integration changed the Post Logout Redirect URI to avoid using relative paths
    • Previous Post Logout Redirect URI Path: /nifi-api/../nifi/logout-complete
    • New Post Logout Redirect URI Path: /nifi/logout-complete
    • OpenID Connect Identity Providers that support RP-Initiated Logout 1.0 may need to be updated with the new Post Logout Redirect URI
  • Refactored OpenID Connect integration changed application Bearer Token expiration to derive from the Access Token instead of the ID Token
    • Some Identity Providers return the same expiration for both Access Tokens and ID Tokens, but providers that support different values may need to be updated so that the Access Token reflects the expected application session expiration

...

  • Kerberos System Properties

    • SPNEGO and service principals for Kerberos are now established via separate system properties.
      • New SPNEGO properties
        • nifi.kerberos.spnego.principal
        • nifi.kerberos.spnego.keytab.location
        • nifi.kerberos.spnego.authentication.expiration
      • New service properties
        • nifi.kerberos.service.principal
        • nifi.kerberos.service.keytab.location
      • Removed properties
        • nifi.kerberos.keytab.location
        • nifi.kerberos.authentication.expiration
  • DBCPConnectionPool Service
    • The “Database Driver Jar Url” property has been replaced by the “Database Driver Location(s)” property which accepts a comma-separated list of URLs or local files/folders containing the driver JAR.
    • Existing processors that reference this service will be invalid until the new property is configured.
  • MonitorDiskUsage

    • This standard reporting task has been simplified to let the user specify a logical name, a directory and a threshold to monitor.  Previously it was tightly coupled to the internal flow file and content repositories in a manner that didn't align to the pluggable nature of those repositories.  The new approach gives the user total control over what they want it to monitor.
  • Connection/Relationship Default Back Pressure Settings
    • It used to be that by default no backpressure settings were supplied.  This too often meant people learned the value of backpressure the hard way.  New connections made will now have a default value set of 10,000 flowfiles and 1GB worth of data size.
  • Multi-tenant Authorization Model

    • Authority Provider model has been replaced by a Multi-tenant Authorization model. Access privileges are now defined by policies that can be applied system-wide or to individual components. Details can be found in the ‘Admin Guide’ under ‘Multi-tenant Authorization’.

    • The system properties nifi.authority.provider.configuration.file and nifi.security.user.authority.provider have been replaced by nifi.authorizer.configuration.file and nifi.security.user.authorizer, respectively. Details on configuration can be found in the “Admin Guide’ under ‘Authorizer Configuration’.

    • 0.7.0 authorized users/roles can be converted to the new authorization model. An existing authorized-users.xml file can be referenced in the authorizers.xml "Legacy Authorized Users File” property to automatically generate users and authorizations. Details on configuration can be found in the “Admin Guide” under ‘Authorizers.xml Setup’.

    • Controller Services that will be used by Processors must be defined in the Operate Palette of the root process group or sub process group where they will be used.  Controller Services defined in the Global - Controller Settings window can only be used by Reporting Tasks, not by any Processors.
  • HTTP(S) Site-to-Site

    • HTTP(S) protocol is now supported in Site-to-Site as an underlying transport protocol.

    • HTTP(S) protocol is enabled by default (nifi.remote.input.http.enabled=true).Configuration details can be found in the 'Site-to-Site Properties' section of the 'Admin Guide’. Of note:

      • With both socket and HTTP protocols supported, nifi.remote.input.socket.host has been renamed to nifi.remote.input.host

      • nifi.remote.input.secure is now set to false by default

  • Zero-Master Clustering

...