This project contains custom Apache NiFi processors, groovy scripts, and sample templates for integrating NiFi with Grey Matter Data.
This repository contains custom processors packaged in a NAR file, as well as source scripts for groovy processors that may be manually loaded and tailored to specific needs. Extensive documentation for the processors as well as sample flows can be found in the doc folder.
In general, the processors facilitate creating folder hierarchy, preparing upload file requests, and listing files. Auxiliary processors support converting unix based file permissions and access control model (ACM) structures to the proprietary policy format suitable for Grey Matter Data.
Templates are available in the nifi-templates folder.
This is built and tested with Maven. To run unit tests:
cd gmd-sdk
docker-compose up -d
source .environment
mvn clean test
This is built and installed into local repository with Maven. To build the processors:
cd gmd-sdk
docker-compose up -d # Skip this step if you are skipping tests
source .environment
mvn clean package
# To skip tests:
mvn package -DskipTests
The resulting NAR file should end up in the target folder
gmd-sdk/nifi-data-nar/target
as well as your M2 repository within
~/.m2/repository/com/deciphernow/greymatter/nifi-greymatter-data-nar/
The easiest way to start using these processors is simply running the docker-compose file in ./gmd-sdk
. Otherwise you can follow the steps below:
./lib
./conf/templates
Here are some helpful links for navigating and using NiFi in general as well as customizing your NiFi setup
To add a processor to the SDK these are the things you need to do in order to make it accessible using the current process outlined in these docs:
Add a reference to the processor's main class to ./gmd-sdk/nifi-data-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor.
Update the release version for the project. The current list of files that need to be changed/hold references to the current version:
Add a note to ./gmd-sdk/CHANGELOG.md listing the new processor and release version.
Add a documentation page for the processor to ./doc. See examples in that directory for how the page should look.
Add a reference to the documentation above to ./doc/README.md