Commit Graph

154 Commits

Author SHA1 Message Date
Bob Paulin 9708f05b9c
NIFI-14003: Allow stateless ready queue to update order. (#9515)
When more than one processor is ready we should allow the order of the
queue to change to prevent execution from getting stuck on a single
processor.
2024-11-15 14:33:00 -05:00
exceptionfactory 4adc2be12b
NIFI-13915 Updated version to 2.1.0-SNAPSHOT 2024-11-01 22:56:08 -05:00
exceptionfactory 2f13b609bd
NIFI-13915 Updated version to 2.0.0 2024-10-29 20:25:32 -05:00
Mark Payne 6d6adfeaeb
NIFI-13929 Fixed Provenance Event Handling for Stateless Engine (#9446)
Removed Provenance Repository from the stateless RepositoryContextFactory and added it to the DataflowTriggerContext. This was necessary because the previous design overlooked the possibility of many threads concurrently running the same dataflow. They all shared the same StatelessProvenanceRepository, but the code was designed as if only a single thread would be using the repository. As a result, the events that were registered with the stateless prov repo were being copied many times into NiFi's underlying provenance repository. This refactoring also led to the discovery of some old Java 8 syntax that could be cleaned up, and it led to the discovery of some methods that were no longer being used and could be cleaned up. Finally, in testing, I found that when a Stateless Group was scheduled, it scheduled the triggering of the stateless group before marking the state as RUNNING; as a result, the second thread could run, determine that the state is STARTING instead of RUNNING, and return without triggering the stateless group. This was addressed by ensuring that we set the state to RUNNING before triggering the stateless group to be triggered.

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-10-26 09:23:50 -05:00
Mark Payne 39ca75d868
NIFI-13914 Fixed FlowFile Prioritization for Stateless Execution (#9432)
Ensure that when data is enqueued in the StatelessFlowFileQueue we order the data properly before adding to its internal queue. Added system tests to verify that the data is properly ordered while running within stateless and properly ordered when coming out, if using a FIFO prioritizer.

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-10-21 15:39:12 -05:00
Matt Gilman fb2a82c035
NIFI-13721: Migrating documentation into the NiFi UI (#9288)
* NIFI-13721: Migrating additional details to markdown.

* NIFI-13721: Rebuilding documentation to generate mark up on the client.

* NIFI-13721: Removing old documentation approach.

* NIFI-13721: Rebase main and final fixing button colors.

* NIFI-13721: Fixing rat issues.

* NIFI-13721: Removing generated comonent documentation.
- Removing links and images from additional details markdown.

* NIFI-13721: Recreating package lock following rebase.

* NIFI-13721: Updating documentation for M3.

* NIFI-13721: Fixing broken test.

* NIFI-13721: Addressing review feedback.

* NIFI-13721: Addressing review feedback.

* NIFI-13721: Ensuring the selected item is visible after routing.

* NIFI-13721: Fixing reportingTaskTypes in finding extensions for a given type.

* NIFI-13721: Updating the see also component to handle when the referenced extension is not installed.

* NIFI-13721: Fixing expansion panel header styles.
2024-09-27 11:11:55 -04:00
Mark Payne 457d83ef84
NIFI-13796: When writing to a content claim and its size + offset exceeds the max appendable size, do not write to that content claim again
This closes #9306.

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-09-23 21:06:08 -07:00
Mark Payne dee455a802
NIFI-13789 Fixed StatelessFlowManager Process Group Tracking (#9299)
The StatelessFlowManager should register any Process Group that it creates in its internal map in the same way that StandardFlowManager does; this ensures that the Process Group can be retrieved by ID during flow synchronization.

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-09-22 16:43:17 -05:00
Mark Payne e9577ded29
NIFI-13777 Fixed Stateless Group Startup around Controller Services (#9291)
Fixed stateless group startup around Controller Services by changing the startup logic in two ways. First, we enable Controller Services before we create the Stateless Flow. Secondly, we do not bother enabling the ephemeral Controller Services that are created during the Stateless Flow creation/synchronization. This ensures that if Processors make use of a Controller Service during its @OnScheduled method (which is part of the Stateless Flow initialization process) that the Controller Service is Enabled. It also avoids calling @OnEnabled methods of Controller Services that will never actually be used, as Processors make use of the existing Controller Services when running within standard NiFi .

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-09-20 13:47:47 -05:00
David Handermann 448d84dff0
NIFI-13705 Refactored Stateless Engine using Web Client Service API (#9226)
- Removed dependencies on OkHttp and nifi-security-utils
- Added dependencies on nifi-web-client-api and nifi-security-ssl
2024-09-05 13:50:32 -04:00
Mark Payne 60e99184f8
NIFI-12898 Added Asset Management REST API and CLI Capabilities
- Added REST resource methods for managing assets associated with Parameter Contexts
- Added CLI commands for managing assets
- Added and updated system test for assets and Parameter Contexts
- Updated flow synchronization to consider referenced asset changes
- Adjusted authorization for cluster nodes to read Parameter Contexts

This closes #9138

Co-authored-by: Bryan Bende <bbende@apache.org>
Co-authored-by: Mark Payne <markap14@hotmail.com>
Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-08-13 11:42:02 -05:00
Matt Gilman 38292762bd
NIFI-13638: Limiting the maximum number of provenance events to return when fetching the latest events. (#9156) 2024-08-06 17:26:34 -04:00
Mark Payne 6dd83b7034 NIFI-13563: Updated Provenance Repository so that instead of returning the single latest event for a component, we return the events from the latest invocation / session. Added system tests to verify the behavior. Also, when replaying latest event, attempt all of those events until one succeeds or all fail
Signed-off-by: Matt Burgess <mattyb149@apache.org>

This closes #9095
2024-07-22 12:44:35 -04:00
Bryan Bende b5b61d960c
NIFI-13344 Implemented backend for uploading and managing custom NARs
- Add NarPersistenceProvider to framework API with standard implementation
- Add NarManager to orchestrate interactions with the persistence provider and framework
- Add REST API for upload, download, list, and delete of custom NARs
- Add CLI commands for call these REST APIs
- Implement an upload request replicator for replicating a file upload across the cluster
- Update ExtensionManager, NarLoader, and JettyServer to support unloading a NAR
- Add ability to replace a NAR in place by unloading components, loading new NAR, and reloading components
- Add system tests for uploading a NAR and verifying other APIs
- Add NAR digest to NarNode and summary DTO, fix bug in digest utils
- Sync NARs from cluster coordinator when joining the cluster

This closes #9017

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-07-12 09:02:25 -05:00
Joseph Witt f92d8f72a8
NIFI-13526 Removed unused variables and localized nifi-socket-utils
- Remove nifi-socket-utils and moved remaining classes to referencing framework components

This closes #9059

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-07-08 13:44:42 -05:00
exceptionfactory 4006cb7849
NIFI-13510 Removed KerberosCredentialsService and implementations
- Removed nifi-kerberos-credentials-service-api and NAR
- Removed individual Kerberos credentials properties
- Removed NIFI_ALLOW_EXPLICIT_KEYTAB from nifi-env.sh
- Removed unused references to NiFi Properties in tests
This closes #9058

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-07-08 11:52:33 -04:00
dan-s1 b3fac8c80b
NIFI-13403 Removed unnecessary toString in logging statements
This closes #8984

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-06-25 20:13:08 -05:00
dan-s1 7deac6afac
NIFI-13266 Removed String concatenation in logging messages (#8940)
Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-06-11 23:26:58 -04:00
dan-s1 86d36d2327
NIFI-13265 Removed instantiation of Object arrays for log arguments
This closes #8896

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-05-30 17:17:33 -05:00
bob 59eae00847
NIFI-13259 Enabled publishing nifi-stateless-assembly to Maven
This closes #8844

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-05-21 10:16:43 -05:00
Pierre Villard ee179f4acf
NIFI-13238 Added Checkstyle rules for whitespace
This closes #8832

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-05-15 06:41:19 -05:00
Bryan Bende e7567b04e2
NIFI-13120 Introduce branch as a concept in Registry Client and VCI
- Methods for getBranches, getDefaultBranch, and createBranch in flow registry client
- Add branch as a field to all relevant objects
- Add optional branch argument to REST API for retrieving buckets
- Add new REST API for retrieving branches for a given registry client
- Enforce NiFi Registry can only receive default branch

This closes #8726

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-05-07 08:44:33 -05:00
Joseph Witt 42a4385c82
NIFI-12998 Restructured framework and extension modules
Simplified dependency management into Bill of Material dependencies as parents that align to classloader structures.

- Moved nifi-framework-bundle to root level
- Moved nifi-nar-bundle modules to root nifi-extension-bundles
- Added nifi-extension-bom for internal and external extensions
- Added nifi-framework-nar-bom and nifi-server-nar-bom for managing framework dependencies
- Renamed nifi-jetty-bundle to nifi-jetty-nar

This closes #8677

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-04-26 12:12:48 -05:00
Bryan Bende a20c5d9dff
NIFI-13073 Changed Flow Version from int to String
- Updated user interfaces to support String version numbers
- Also updated new UI to clear out the buckets and flows when selections change 'above' them in the form when importing from registry

This closes #8674

Co-authored-by: Rob Fellows <rob.fellows@gmail.com>
Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-04-26 11:39:26 -05:00
slambrose 9394d063f2
NIFI-12918 Corrected Nested Versioned Flows for Stateless
- Removed unstable assertions from TestListFile

This closes #8536

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-04-06 20:37:25 -05:00
Mark Payne ae423fc6ba
NIFI-12832 Removed unnecessary dependencies from nifi-mock
- Moved StandardValidators to nifi-api
- Moved URL creation method from UriUtils to URLValidator
- Separated FormatUtils into FormatUtils and DurationFormat classes
- Added DurationFormat to nifi-api

This closes #8442

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-02-23 15:13:21 -06:00
Peter Turcsanyi b6b0b241c3
NIFI-12769 Updated copyright year to 2024 in NOTICE file headers
This closes #8384.

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-02-09 14:23:39 -07:00
David Handermann e66da895fc
NIFI-12640 Moved servlet-api and jetty-schemas to nifi-jetty-bundle (#8272)
- Set Jetty AnnotationConfiguration log level to WARN suppressing informational messages related to Logback ServletContainerInitializer
2024-01-19 11:29:04 -05:00
exceptionfactory 42547eb60c
NIFI-11703 Upgraded to Spring Framework 6 and Jetty 12
- Upgraded Spring Framework from 5.3.31 to 6.0.15
- Upgraded Spring Security from 5.8.7 to 6.2.0
- Upgraded Spring Vault from 2.3.4 to 3.1.0
- Upgraded Jetty from 10.0.18 to 12.0.5 with EE 10
- Upgraded Jersey from 2.41 to 3.1.4
- Upgraded JAXB from 2.3.9 to 4.0.4
- Upgraded AspectJ from 1.9.20.1 to 1.9.21
- Upgraded JMS API from 2.0.1 to 3.1.0
- Upgraded ActiveMQ Broker from 5.18.2 to 6.0.1 for JMS 3
- Upgraded JJWT from 0.9.1 to 0.12.3
- Replaced jackson-module-jaxb-annotations with jackson-module-jakarta-xmlbind-annotations
- Replaced maven-jaxb2-plugin with hisrc-higherjaxb40-maven-plugin 2.1.1
- Replaced kongchen swagger-maven-plugin with swagger-codegen-maven-plugin from Swagger 3
- Replaced com.nickwongdev AspectJ Plugin with Codehaus 1.14.0 for newer Java versions
- Removed unused cglib-nodep
- Removed references to javax.validation
- Removed custom Jetty ALPN Processor not required for Java 21
- Removed several tests depending on older Jetty and Jakarta libraries
- Removed unnecessary webdefault.xml configurations
- Replaced unsupported cross-context servlet forwarding with HTTP forwarding
- Replaced javax.servlet references with jakarta.servlet
- Replaced javax.xml.bind references with jakarta.xml.bind
- Replaced javax.ws references with jakarata.ws
- Updated Spring Security CSRF implementation for Spring Security 6
- Updated web.xml versions to 6.0
- Updated REST API templates using new swagger-codegen variables
- Removed VALIDATE_DATA property from ParseCEF based on library compatibility issue with javax.validation
- Added application URL logging to NiFi JettyServer

Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com>

This closes #8197.
2024-01-04 14:01:32 +04:00
David Handermann 6b7b7cccf8
NIFI-12493 Update Documentation References to Java 21 (#8144)
* NIFI-12493 Updated Documentation References to Java 21

- Removed Apache Maven download step from Custom Distribution instructions and referenced Apache Maven Wrapper in command
- Updated Java Documentation links to Java 21

* NIFI-12493 Updated additional Java version references
2023-12-19 09:49:00 -05:00
Mike Thomsen 6447aea258
NIFI-11788 Modified APP_FILE logback configuration to have better cleanup
NIFI-11788 Standardized Logback maximum settings
- Set MiNiFi maxHistory to 10 and totalSizeCap to 10MB
- Set NiFi maxHistory to 30 and totalSizeCap to 3GB except for deprecation log
- Set Stateless maxHistory to 30 and totalSizeCap to 3GB
- Set Registry maxHistory to 30 and totalSizeCap to 3GB
NIFI-11788 Increased MiNiFi maxFileSize to 10MB and cap to 100MB

This closes #7465. Coauthored by David Handermann and Mike Thomsen

Signed-off-by: Joseph Witt <joewitt@apache.org>
2023-11-13 09:48:40 -07:00
exceptionfactory 786784ef62 NIFI-12290 Migrated from Quartz to Spring for Cron Expressions
- Removed support for Year field in Cron Expressions
- Changed numeric Day of Week field from starting with 1 to starting with 0
- Removed Quartz and C3P0 from Notice files

This closes #7951

Signed-off-by: Mike Moser <mosermw@apache.org>
2023-10-30 18:47:02 +00:00
Mark Payne 19993783e1
NIFI-12203: Ensure that when inheriting cluster flow on startup, we remove any Controller Services, Reporting Tasks, Parameter Contexts, etc. that are not in the proposed flow. Also removed overly aggressive timeout from RunOnceIT and performed minor code cleanup
Resolves #7907

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-10-24 10:45:58 -05:00
Mark Payne 1d5f2f626b NIFI-12245: Removed deprecations around flow registry clients
NIFI-12245: Removed null check that is no  longer necessary

NIFI-12245: Fixed checkstyle violation

Signed-off-by: Bence Simon <bsimon@apache.org>
This closes #7899
2023-10-24 14:08:03 +02:00
Bence Simon 3f13604c36
NIFI-11772 Removed flow.xml.gz support
- Created NIFI-12203 to evaluate issues with flow comparison surfaced in JoinClusterWithDifferentFlow

This closes #7661

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-10-11 13:53:01 -05:00
timeabarna d2aec89738
NIFI-12166 Add repo usage to the monitoring endpoint (#7836)
* NIFI-12166 Add repo usage to the monitoring endpoint
2023-10-10 14:55:33 -04:00
exceptionfactory 98cebc6687
NIFI-12185 Added nifi-bom Bill of Materials (#7852)
- Imported nifi-bom to nifi-commons and nifi-nar-bundles parent modules
- Removed explicit version and scope properties for dependencies declared in nifi-bom
2023-10-10 13:55:22 -04:00
Joe Gresock ff8f1ff686
NIFI-8531: This closes #7529. Upgrading Kinesis processors to AWS SDK 2.x
Signed-off-by: Joseph Witt <joewitt@apache.org>
2023-10-01 16:26:51 -07:00
Mark Payne db727aa419
NIFI-12142: This closes #7806. Deleted many methods, classes, and references that were deprecated.
Signed-off-by: Joseph Witt <joewitt@apache.org>
2023-09-28 14:07:48 -07:00
Pierre Villard 43cc5ad122
NIFI-12079 This closes #7750. Remove Variables / Variable Registry
Signed-off-by: Joseph Witt <joewitt@apache.org>
2023-09-25 09:39:53 -07:00
Tamas Palfy d4147ca442
NIFI-8650 Added Flow Analysis Rules
- Added new extensible Component Type: FlowAnalysisRule
- Added DisallowComponentType Rule implementation
- Flow Analysis Rules can be managed from the UI under Controller Settings -> Flow Analysis Rules
- Flow Analysis Rules can be set up with an enforcement policy of WARN or ENFORCE
- Flow Analysis Rules can evaluate an individual Component or a Process Group

This closes #7191

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-08-29 15:50:22 -05:00
Mark Payne b3c620411a
NIFI-11556: Added ability to use a Process Group as a Stateless Flow
When shutting down FlowController, wait up to gracefulShutdownSeconds seconds for the components to stop before shutting down thread pools. This allows for asynchronous operations such as disableControllerServicesAsync to complete during shutdown. Updated StandardStatelessFlow so that on shutdown it catches more general Exception to ensure that shutdown succeeds

Ensure that Max Concurrent Tasks cannot be set less than 1 for stateless group; fixed typo in ProcessGroupDTO's docs; on shutdown, we may need to disable controller services asynchronously. At that point, the thread pool used to do so may already be shutdown. If so, catch this and create a new single-thread pool, disable the service, and immediately shutdown the pool. Also, if we fail to disable services on shutdown of a stateless flow, instead of throwing an Exception, just log it and move on - it doesn't make much sense for shutdown() to throw an Exception in that case.

Updated system tests so that when emptying a queue, we check the result and if the queue still has data (because a Processor hasn't acknowledged the data, for example) then continue issuing request until the queue fully becomes empty.

When shutting down input/output ports for stateless group, ensure that we wait for the ports' active threads to complete before returning

When stopping StatelessGroupNode, ensure that all the Processors, Controller Services (even those not executed by the Stateless Engine) are stopped/disabled before considering the Stateless Group to be fully STOPPED.

This closes #7253

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-08-09 12:08:22 -05:00
Pierre Villard dbb2d6905f
NIFI-11842 - remove getTargetUri() and code cleanup
This closes #7511

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-07-24 13:53:17 -05:00
Pierre Villard 150bfbe990
NIFI-11813 Removed Event Driven Scheduling Strategy
This closes #7483

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-07-18 12:22:52 -05:00
exceptionfactory 1f1c5df5a3
NIFI-11673 Removed Legacy TLS Configuration Versions
This closes #7367

Signed-off-by: Nandor Soma Abonyi <nsabonyi@apache.org>
2023-06-26 11:10:39 +02:00
timeabarna ba6797bb94
NIFI-3065 Per Process Group logging (#7315)
* NIFI-3065 Per Process Group logging
2023-06-23 21:14:34 -04:00
exceptionfactory ca6c7f7041 NIFI-11532 Removed JUnit 4 and Groovy Test from default dependencies
- Removed hamcrest-all from default dependencies
- Added groovy-test to selected modules with Groovy test classes
- Added junit-vintage-engine to selected modules with JUnit 4 test classes
- Corrected references to JUnit 4 assertions in JUnit 5 test classes
- Removed several unnecessary test classes from nifi-socket-utils
- Removed duplicative Registry toolkit test classes
- Removed Kudu integration tests

NIFI-11532 Corrected scope for junit-vintage-engine for Elasticsearch

Signed-off-by: Matt Burgess <mattyb149@apache.org>

This closes #7233
2023-06-13 15:36:23 -04:00
David Young ea5b303917 NIFI-11471: Define new stateless configuration points
Add two new properties:

  nifi.stateless.component.enableTimeout
  nifi.stateless.processor.startTimeout

to allow configuring the StatelessEngine and ProcessScheduler.

This allows an operator to configure what kind of startup time the flow can
tolerate.

Previously these values were hard coded.
2023-06-12 14:48:01 -04:00
exceptionfactory e302f2aff7
NIFI-10976 Added Previous Cluster State Provider configuration (#7235)
- Added methods to enumerate Stored Component Identifiers on State Provider interface and implementations
- Added nifi.state.management.provider.cluster.previous to nifi.properties
- Updated State Manager Provider to restore Cluster State from Previous Cluster Provider
- Updated Configuring State Providers documentation for new property
2023-05-10 16:22:05 -04:00
Mark Payne 7f7cccfdc2
NIFI-11241 Initial implementation of Python-based Processor API with Py4J
- Updated GitHub workflow so that system tests include Python 3.9
- Updated GitHub actions to build necessary modules for system tests

This closes #7003

Co-authored-by: David Handermann <exceptionfactory@apache.org>
Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-04-14 15:03:34 -05:00