Commit Graph

205 Commits

Author SHA1 Message Date
exceptionfactory 2f91793272
NIFI-14097 Updated version to 2.1.0 2024-12-19 12:29:52 -06:00
exceptionfactory 43faa73b4e
NIFI-14073 Added PMD Plugin to contrib-check Profile
- Added standard PMD rules scoped to current project conventions
- Updated multiple classes to meet UseDiamondOperator rule requirements
- Applied selected SuppressWarnings to selected classes
- Streamlined ci-workflow build to avoid unnecessary exclusions
- Refactored assembly module phases to align with standard lifecycle behavior

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

This closes #9581.
2024-12-15 15:02:24 +01:00
Matt Gilman f744deebf9
NIFI-13976 Added REST Endpoints for Copying and Pasting Flows (#9535)
- Including the revision for the current Process Group in the flow response.
- Introduce a method propose built for adding new versioned components to an existing Process Group.
- Updating the paste response payload to only include the entities for the components that were just added.
- Always generating new IDs when copying components.
- Creating an ID for the copy action.
- Code clean up.
- Mapping IDs on paste to ensure connections are created correctly.
- Authorizing any components whose instance IDs are specified.
- Copying any sensitive properties from copied instances when pasting.
- Fixing mapping of copy response to ensure that nested Controller Services can be referenced.
- Including external Controller Services in copy response to they can be resolved on paste.
- Excluding unreferenced services from copy response.
- Including property descriptors to allow external services to resolve when pasting.
- Including Parameters and Parameter Providers in copy response.
- Fixing issue returning unreferenced services in the current process group.
- Reverting changes building up external service references.
- Only including external services that are references by the copy selection.
- Adding some additional test coverage.
- Adding consideration for the current ids in the paste id mapping.
- Adding an endpoint response merger for the paste endpoint.
- Including version control information in copy response.
- Being more lenient when pasting unknown registry clients.
- Ensuring groups IDs are mapped correctly when and when not versioned.
- Including registry client id in vci of versioned process groups.
- Updating copy/paste logic in existing system tests to leverage new endpoints.
- Restoring originally proposed port name if possible.
- Allow ports to be pasted into the root group.
- Fixing authorization issue when pasting a flow containing Parameter Providers.
- Fixing issue when authorizing exporting a Flow that contains a Process Group bound to a Parameter Context.
- Introducing some Copy/Paste system tests.
- Adding system tests for verify various copy paste functionality.
- Ensuring appropriate access around Parameter Providers following resolution based on locally available Parameter Providers.
- Ensuring user has access to controller services directly referenced.
- Fixing NPE in log message of Parameter Context.
- Adding more copy/paste system tests.
- Moving copy/paste version tests into the CopyPasteIT.
- Fixing unit test mocking.
- Include service authorization based on versioned component id since it may resolve during synchronization.
- Skipping properties with no values when resolving service identifiers.

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-11-22 15:11:29 -06:00
Pierre Villard ddef74b67f
NIFI-14009 Moved Toolkit Client code in its own nifi-toolkit-client module
This closes #9522

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-11-18 15:08:07 -06: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
exceptionfactory f9fb4223a7
NIFI-13894 Removed protected and additional keys properties
This closes #9415

- Removed nifi.sensitive.props.key.protected placeholder
- Removed nifi.sensitive.props.additional.keys placeholder

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-10-17 14:28:04 -07:00
exceptionfactory 1b37d78403
NIFI-13874 Refactored KeyStore and SSLContext Creation for Tests
This closes #9392

- Added EphemeralKeyStoreBuilder to nifi-security-ssl
- Removed nifi-security-utils
- Moved StandardTlsConfiguration to nifi-ssl-context-service
- Refactored tests to use EphemeralKeyStoreBuilder and nifi-security-cert-builder for TLS

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-10-16 09:18:59 -07:00
David Handermann 0b85dd696e
NIFI-13813 Refactored NiFi Runtime Property Loading (#9322)
- Refactored NiFi Runtime class to read application properties for NAR loading and then load application properties using Framework NAR
- Removed bootstrap Class Loader from runtime initialization
- Removed nifi-properties-loader from nifi-bootstrap
2024-10-09 11:16:42 -04:00
Bryan Bende dffa88aaae
NIFI-13803 Improved Clustered Flow Loading and Synchronization Process
- Only synchronize flow with the coordinator after getting cluster response

This closes #9317

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-09-28 22:25:23 -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
Bryan Bende ee29562517
NIFI-13795 Improve NAR Manager handling of dependent NARs (#9310)
- Ensure NARs are loaded in parent-first order during restart
- Allow replacing a NAR when other NARs are dependent on it
- Improvements to catch Throwable in several places to handle NoClassDefFoundError

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-09-26 12:28:17 -05:00
exceptionfactory 1548a21219
NIFI-13804 Migrated to NiFi API 2.0.0
This closes #9314.

- Upgraded NAR Maven Plugin from 2.0.0 to 2.1.0
- Removed nifi-api module in favor of released version

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-09-26 04:54:24 -04:00
Mark Payne bb6dd8cccf
NIFI-13802 Corrected Several System Test Class Names (#9313)
Ensured that the RestartWithDifferentPort test does not allow instance reuse, since it changes the NiFi port, which can cause subsequent tests to fail if they use that same instance.

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-09-24 21:59:53 -05:00
Mark Bathori b12d26b6ba
NIFI-13720: Component is not reloaded when the isolation key depends on service property
This closes #9236.

Signed-off-by: Peter Turcsanyi <turcsanyi@apache.org>
2024-09-23 12:00:00 +02:00
Gabor Gyimesi 426b8feaa3
NIFI-13714 Fixed RecordTransform Python Processor Partition Handling (#9253)
Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-09-21 08:18:42 -05:00
David Handermann 563d7ea614
NIFI-13770 Removed Placeholder Prefix from Python Component Types (#9283)
This closes #9283
2024-09-20 11:26:41 -04:00
David Handermann 6e5a276cb2
NIFI-13718 Switched Request Replication to Web Client Service (#9234)
- Added Request Replication Header enumeration with lowercased header names for HTTP/2
2024-09-12 13:50:03 -04:00
Matt Gilman 39ab3129f0
NIFI-13632: Updating content access. (#9221)
* NIFI-13632: Updating content access.
- Removing existing content viewer application.
- Introduced new front end based content viewer applicaiton.
- Introduced new bundled content viewers for hex and images.
- Deleted previous image content viewer.
- Migrated existing standard content viewer (which handles json, xml, yaml, csv, and text) to utilize new content access interface.
- Moved standard content viewer into its own NAR.
- Moved and renamed custom ui utils and content viewer utils into nifi-common.
- Added mime type to FlowFileSummary response payload to help drive the initially opened content viewer.

* NIFI-13632: Fixing rat issue.

* NIFI-13632: Fixing CI issue.

* NIFI-13632: Removing standard content viewer war from code coverage.

* NIFI-13632: Addressing review feedback.

* NIFI-13632: Fixing import.

* NIFI-13632: Further simplification of content viewer state.

* NIFI-13632: Removing unneeded code.

* NIFI-13632: Adding a min height around codemirror.

* NIFI-13632: Addressing review feedback.
- Rendering mime type in the content viewer.
- Preventing additions to the browser history as the user changes how the content is viewed.
- Appending forward slash to content viewer UIs to prevent unnecessary redirect.
- Removing Standard Content Viewer title based on review feedback.
- Fixing double scroll bar in the Standard Content Viewer on small browser heights.
- Removed unnecessary application.yml.
- Bumping spring boot version.

This closes #9221
2024-09-06 09:12:38 -04:00
David Handermann 6b6e8d6f78
NIFI-13665 Refactored Bootstrap and Runtime Process Handling (#9192)
- Added BootstrapProcess main class to nifi-bootstrap
- Added HTTP Management Server to nifi-runtime for status
- Added HTTP client to nifi-bootstrap for status
- Removed TCP socket listeners from nifi-bootstrap and nifi-runtime
- Removed dump and env commands
- Removed java property from bootstrap.conf
- Removed nifi.bootstrap.listen.port from bootstrap.conf
2024-08-26 14:22:04 -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
dan-s1 f64e68b23c
NIFI-13625 Removed or Replaced System.out.println in Tests (#9150)
Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-08-05 20:35:40 -05:00
Bryan Bende 94f8688545
NIFI-13581 Remove Parameter Contexts and Providers in destroyFlow of NiFiSystemIT (#9110)
Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-07-24 18:51:49 -05: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 8e5cf99cd7
NIFI-13556 Fixed logic for identifying components from uploaded NAR
- Return copied set of Extensions from ExtensionManager to avoid concurrent modification

This closes #9089

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-07-17 13:51:22 -05: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 7cb6684801
NIFI-13494 Removed support for Repository Encryption
This closes #9039

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-07-05 13:48:40 -07:00
Peter Gyori 3efb0763da
NIFI-13427 Added FlowFileSource interface for Python Processors
This closes #9000

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-06-27 12:35:31 -05:00
tpalfy c6fbd86cd8
NIFI-13388 Add NiFi CLI support for Flow Analysis Rules
This closes #8954.

Signed-off-by: Peter Turcsanyi <turcsanyi@apache.org>
2024-06-14 21:14:03 +02:00
Matt Gilman 5c335cbbec
NIFI-13364 Removed autorefresh and banner UI properties
This closes #8932

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-06-06 08:34:17 -05:00
exceptionfactory fa8dc4f1a0
NIFI-13295 Removed Apache Knox SSO Authentication
This closes #8876

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-05-25 13:10:36 -07:00
exceptionfactory 43cc2b4aaa
NIFI-13297 Removed Kerberos SPENGO Authentication
This closes #8879

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-05-25 12:47:38 -07: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
Joseph Witt 81d387cad5
NIFI-13139 ensure nifi-py4j-nar is included in test assembly
Ensure nifi-py4j integration tests have proper logback libs

This closes #8747

Signed-off-by: Joseph Witt <joewitt@apache.org>
Signed-off-by: Chris Sampson <chris.sampson82@gmail.com>
2024-05-06 14:50:21 +01: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
Mark Payne 2ad9db18db
NIFI-12959: Support loading Python processors from NARs
This closes #8573

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-04-05 15:55:03 -05:00
tpalfy c3eff68f92
NIFI-12924 Flow Analysis no longer done regularly or on-demand, but automatically when a change occurs that could result in the change of violations.
Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com>

This closes #8537.
2024-03-29 13:34:03 +01:00
David Handermann 26f5fa2be0
NIFI-11443 Route Python Framework Logging to SLF4J (#8407)
* NIFI-11443 Routed Python Framework Logging to SLF4J

- Changed Python logging to use standard output stream
- Adjusted Python logging format for simplified processing
- Updated PythonProcess to pipe standard error and standard output streams to reader
- Added Log Reader command with Virtual Thread for each Python Process
- Removed Python log properties from NiFi Properties configuration
2024-03-05 16:55:04 -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
Mark Payne a821966a87
NIFI-12232 Corrected Group Component ID Handling for Clustered Flows
Ensured that if a Process Group doesn't have a Versioned Component ID we use the ComponentIdLookup to create one based on its Instance ID in the same way that is done when serializing the flow; this ensures matching ID's when we synchronize flows across the cluster. Also included some code cleanup around failure handling on startup

This closes #8406

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-02-20 11:25:56 -06:00
David Handermann 2ea4838157
NIFI-12764 Removed Commons Codec and Lang3 from security-utils (#8380) 2024-02-09 16:00:06 -05: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
exceptionfactory 6617fe8fe2
NIFI-12384 This closes #8044. Upgraded Registry to Spring Framework 6
- Upgraded Spring from 5.3.30 to 6.0.13
- Upgraded Spring Boot from 2.7.16 to 3.1.5
- Upgraded Spring Security from 5.8.7 to 6.1.5
- Upgraded Jetty from 10.0.18 to 11.0.18
- Upgraded Servlet API from 3.1.0 to 5.0.0
- Upgraded JAX-RS from 2.1.1 to 3.1.0
- Upgraded Jersey from 2.41 to 3.1.3
- Upgraded JAXB from 2.3.2 to 4.0.4
- Upgraded Java Validation from 2.0.1 to 3.0.2
- Upgraded Flyway from 8.5.13 to 9.22.3
- Upgraded ASM from 9.3 to 9.6 for Java 21
- Upgraded NiFi Toolkit CLI to JAX RS 3 and Jersey 3
- Set Jersey 3 and JAX RS 3 dependency versions in nifi-flow-registry-client-bundle to align with updates to nifi-registry-client classes

Signed-off-by: Joseph Witt <joewitt@apache.org>
2023-11-21 09:06:51 -07:00
Mark Payne a978406c83
NIFI-12326: When a Python Processor is created, it attempts to download dependencies in the background and then load the processor code. If that fails, it previously gave up; now it will log the exception and keep trying
This closes #7990

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-11-07 09:07:59 -06:00
exceptionfactory c706877147
NIFI-12297 Standardized File Path resolution in Persistence Providers (#7975) 2023-11-03 12:26:11 -04:00