Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Changed version of Jetty in 1.2.0 release


  • Core Framework 
    • Now supports running multiple versions of the same components.  Makes upgrades and multi-tenant flows easier to manage as sets the stage for upcoming Apache NiFi Registry work!
    • New provenance repository implementation available called 'WriteAheadProvenanceRepository'.  Huge performance increase over the standard implementation and indexes in real-time.
  • New or Improved Processors, Controller Services, and Reporting Tasks
    • New Record oriented abstraction for reading/writing schema aware event streams from CSV, JSON, AVRO, Grok, and plaintext with easy extension for other formats/schemas
      • QueryRecord processor to execute SQL queries over a stream of records powered by Apache Calcite
      • ConvertRecord processor to efficiently transform records from a given schema and format into another schema and format
      • SplitRecord processor to efficiently split huge record bundles into configurable batch sizes for divide and conquer or protect downstream systems
      • Processors to efficiently stream Records into and out of Apache Kafka in a format and schema aware manner and which automatically handle achieving high throughput and full provenance
      • Controller Services for plugging into and managing data schemas (Avro Schema Registry, Hortonworks Schema Registry) that integrate nicely into the record readers and writers
    • Features/improvements related to Change Data Capture (CDC), including CaptureChangeMySQL which reads from the MySQL binlogs, EnforceOrder, and PutDatabaseRecord processors, as well as a "Rollback on Failure" capability of some Put processors
    • New processors and controller service to support a Wait/Notify pattern enabling conditions in another portion of a flow to signal another portion to continue or execute.
    • For those that like to write new capabilities on the fly using scripting languages you can build your own reporting tasks, record readers, and writers using various scripting langauges now and the ExecuteScript processor lets you write in Clojure now too
    • The JSON Jolt Transform processor now allows Jolt transforms to include NiFi expression language statements and is much faster
    • New processors to compute and compare content using Fuzzy Hashing powerful for cyber security and other cases
    • New processors to interact with Google Cloud Platform/Google Cloud Storage and Azure Blob and Table Storage
    • Added ExtractCCDAAttributes processor to extract information from a Consolidated CDA formatted flow file
    • New reporting tasks available to push flow status and bulletins out via SiteToSite protocol
    • There are a 219 processors, 28 controller services, and 10 reporting tasks now available out the box.  Check them out!
  • User Interface/User Experience

    • Can't help but keep fiddling with processor alignment?  Ok, a lot of us do that.  You can now select numerous components and have it vertically or horizontally aligned!

    • You can now deep link to components in the flow and share those links with your colleagues. Makes sharing and collaboration more natural

    • Users will enjoy a better understanding of the scope of Controller Services through an improved experience

    • For the web developer the UI is now modularized and circular references removed making it easier to extend and improve

    • New content viewer available for AVRO data useful when clicking to content from provenance

    • This release publishes the first official Apache NiFi Docker image to DockerHub!

    • Provides a set of command-line utilities to aid in cluster management (add/remove nodes from cluster)
  • Security
    • Users/client connecting to NiFi through the UI or API now protected with TLS v1.2 due to upgrade to Jetty version 9.4.32
    • The Apache Kafka processors for the 0.10 clients are on the latest and support dynamic JAAS configuration
    • The new provenance repository also has an implementation which supports full encryption for all events