Apache NiFi
Go to file
lehelb 81ba02f785 NIFI-14100: Add option to sequential download of dependencies for Python processors 2024-12-20 14:49:17 +01:00
.github NIFI-13824 Installed Python Processor Dependencies with one command 2024-10-26 09:15:30 -05:00
.mvn/wrapper NIFI-13899 Upgraded Maven from 3.9.8 to 3.9.9 2024-10-18 14:53:26 -07:00
c2 NIFI-13996 Improved removal of temporary files after a build (#9551) 2024-12-02 17:39:31 -06:00
minifi NIFI-13996 Improved removal of temporary files after a build (#9551) 2024-12-02 17:39:31 -06:00
nifi-assembly NIFI-13915 Updated version to 2.1.0-SNAPSHOT 2024-11-01 22:56:08 -05:00
nifi-bom NIFI-13915 Updated version to 2.1.0-SNAPSHOT 2024-11-01 22:56:08 -05:00
nifi-bootstrap NIFI-3364 Sorted Bootstrap java.arg properties in ascending alphabetical order (#9490) 2024-11-07 08:40:40 -06:00
nifi-code-coverage NIFI-14056 bumped box, aws, com.fasterxml, and many other dependencies 2024-12-02 11:03:54 +01:00
nifi-commons NIFI-14100: Add option to sequential download of dependencies for Python processors 2024-12-20 14:49:17 +01:00
nifi-dependency-check-maven NIFI-13935 Removed HBase 2 Processors and Services 2024-10-28 07:20:47 -07:00
nifi-docker NIFI-13915 Updated Dockerfile references to SHA-512 hashes 2024-11-04 13:29:57 -06:00
nifi-docs NIFI-14100: Add option to sequential download of dependencies for Python processors 2024-12-20 14:49:17 +01:00
nifi-extension-bom NIFI-13915 Updated version to 2.1.0-SNAPSHOT 2024-11-01 22:56:08 -05:00
nifi-extension-bundles NIFI-14100: Add option to sequential download of dependencies for Python processors 2024-12-20 14:49:17 +01:00
nifi-framework-api NIFI-13976 Added REST Endpoints for Copying and Pasting Flows (#9535) 2024-11-22 15:11:29 -06:00
nifi-framework-bundle NIFI-14100: Add option to sequential download of dependencies for Python processors 2024-12-20 14:49:17 +01:00
nifi-frontend [NIFI-13977] - Updated Copy/Paste in UI to align with new backend API (#9536) 2024-12-03 16:57:04 -05:00
nifi-manifest NIFI-14052 Removed non-deterministic build properties (#9558) 2024-11-30 20:47:20 +01:00
nifi-maven-archetypes NIFI-13915 Updated version to 2.1.0-SNAPSHOT 2024-11-01 22:56:08 -05:00
nifi-mock NIFI-14041 Improved MockPropertyValue and EL evaluation validation (#9549) 2024-11-25 08:14:29 -06:00
nifi-registry NIFI-14056 bumped box, aws, com.fasterxml, and many other dependencies 2024-12-02 11:03:54 +01:00
nifi-server-api NIFI-13915 Updated version to 2.1.0-SNAPSHOT 2024-11-01 22:56:08 -05:00
nifi-stateless NIFI-14003: Allow stateless ready queue to update order. (#9515) 2024-11-15 14:33:00 -05:00
nifi-system-tests NIFI-13976 Added REST Endpoints for Copying and Pasting Flows (#9535) 2024-11-22 15:11:29 -06:00
nifi-toolkit NIFI-13976 Added REST Endpoints for Copying and Pasting Flows (#9535) 2024-11-22 15:11:29 -06:00
.asf.yaml NIFI-13561 Enabled Jira Automatic Linking in GitHub (#9092) 2024-07-19 10:20:48 -04:00
.gitignore NIFI-12616 Added Processor Documentation Support for Python 2024-01-18 19:12:05 -06:00
KEYS NIFI-11832 Added OpenPGP Public Key for David Handermann 2023-07-19 16:57:42 -05:00
LICENSE NIFI-13313: Remove old UI (#8906) 2024-06-05 09:09:01 -04:00
NOTICE NIFI-13253 Corrected the discrepancies in the top level NOTICE file 2024-05-20 15:28:52 -05:00
README.md NIFI-13931 Updated README.md Guide Links to nifi-latest URLs (#9447) 2024-10-25 07:19:41 +02:00
SECURITY.md NIFI-12081 Removed HackerOne from Security Reporting Methods 2023-09-18 16:01:29 -05:00
checkstyle.xml NIFI-13238 Added Checkstyle rules for whitespace 2024-05-15 06:41:19 -05:00
codecov.yml NIFI-12192 Added Codecov Reporting with JaCoCo 2023-11-08 19:49:51 +00:00
doap.rdf ASF required doap file entry 2023-09-05 09:56:29 -07:00
mvnw NIFI-13300 Upgraded Maven from 3.9.6 to 3.9.7 2024-05-28 08:52:45 -05:00
mvnw.cmd NIFI-13300 Upgraded Maven from 3.9.6 to 3.9.7 2024-05-28 08:52:45 -05:00
pom.xml NIFI-14056 bumped box, aws, com.fasterxml, and many other dependencies 2024-12-02 11:03:54 +01:00

README.md

Apache NiFi

Apache NiFi

Status

ci-workflow system-tests integration-tests docker-tests code-coverage codecov

Resources

NiFi API NiFi NAR Maven Plugin NiFi Framework NiFI Docker Pulls License NiFi API Javadoc

Contacts

Track Issues Chat on Slack Contact Developers Contact Users

Community

Join Slack Community Follow on LinkedIn Follow on X

Features

Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data.

NiFi automates cybersecurity, observability, event streams, and generative AI data pipelines and distribution for thousands of companies worldwide across every industry.

  • Browser User Interface
    • Seamless experience for design, control, and monitoring
    • Runtime management and versioned pipelines
    • Secure by default with HTTPS
  • Scalable Processing
    • Configurable prioritization for throughput and latency
    • Guaranteed delivery with retry and backoff strategies
    • Horizontal scaling with clustering
  • Provenance Tracking
    • Searchable history with configurable attributes
    • Graph data lineage from source to destination
    • Metadata and content for each processing decision
  • Extensible Design
    • Plugin interface for Processors and Controller Services
    • Support for Processors in native Python
    • REST API for orchestration and monitoring
  • Secure Configuration
    • Single sign-on with OpenID Connect or SAML 2
    • Flexible authorization policies for role-based access
    • Encrypted communication with TLS and SFTP

Requirements

NiFi supports modern operating systems and requires recent language versions for developing and running the application.

Platform Requirements

  • Java 21

Optional Dependencies

  • Python 3.10 or higher

Projects

The source repository includes several component projects.

Please review individual project documentation for additional details.

Getting Started

Project guides provide extensive documentation for installing and extending the application.

Developing

NiFi uses the Maven Wrapper for project development. The Maven Wrapper provides shell scripts that download and cache a selected version of Apache Maven for running build commands.

Developing on Microsoft Windows requires using mvnw.cmd instead of mvnw to run Maven commands.

Building

Run the following command to build project modules using parallel execution:

./mvnw install -T1C

Run the following command to build project modules using parallel execution with static analysis to confirm compliance with code and licensing requirements:

./mvnw install -T1C -P contrib-check

Run the following command to build the application binaries without building other optional modules:

./mvnw install -T1C -am -pl :nifi-assembly

Binaries

The nifi-assembly module contains the binary distribution.

ls nifi-assembly/target/nifi-*-bin.zip

The nifi-assembly module includes the binary distribution in a directory for local development and testing.

cd nifi-assembly/target/nifi-*-bin/nifi-*/

Running

NiFi provides shell scripts for starting and stopping the system.

Running on Microsoft Windows requires using nifi.cmd instead of nifi.sh for system commands.

Starting

Run the following command to start NiFi from the distribution directory:

./bin/nifi.sh start

Accessing

The default configuration generates a random username and password on startup. NiFi writes the generated credentials to the application log located in logs/nifi-app.log under the NiFi installation directory.

The following command can be used to find the generated credentials on operating systems with grep installed:

grep Generated logs/nifi-app*log

NiFi logs the generated credentials as follows:

Generated Username [USERNAME]
Generated Password [PASSWORD]

The USERNAME will be a random UUID composed of 36 characters. The PASSWORD will be a random string.

The username and password can be replaced with custom credentials using the following command:

./bin/nifi.sh set-single-user-credentials <username> <password>

NiFi defaults to running on the localhost address with HTTPS on port 8443 at the following URL:

https://localhost:8443/nifi

Browsers will display a warning message indicating a potential security risk due to the self-signed certificate generated during initialization. Production deployments should provision a certificate from a trusted certificate authority and update the NiFi keystore and truststore configuration.

License

Except as otherwise noted this software is licensed under the Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Export Control

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See https://www.wassenaar.org for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software:

Apache NiFi uses the following libraries and frameworks for encrypted communication and storage of sensitive information: