NIFI-12700: made changes based on PR comments. Simplified statements involving determination of whether or not there are flowfile failures/rowErrors. Separated out getting rowErrors from OperationResponses into its own function
Signed-off-by: Matt Burgess <mattyb149@apache.org>
This closes#8322
- Supports handling Strings as hexadecimal character sequences or base64-encoded binary data when inserting into a binary type column
This closes#8493
Signed-off-by: David Handermann <exceptionfactory@apache.org>
Bumped GCP client library version
Added grpc-* jars in service api nar in order to avoid CNFE warning in io.grpc.LoadBalancerRegistry
Dependency clean-up in GCP modules
Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com>
This closes#8491.
Next step to color theming
Update theming to reference colors semantically
Material and Canvas palettes are reordered so that in all cases they go from 50 = lightest / least amount of color to 900 = darkest / most amount of color applied.
Usage of color has been changed so that Material's primary, accent, and warn values are used by semantic reference of 'default', 'lighter' and 'darker' rather than explicit number values.
The Canvas palettes still have values referenced directly because they are a special case.
Added SASS utilities:
- To help ensure color contrast for text and backgrounds by checking for a 4.5:1 contrast ratio.
- To provide helper functions that somewhat replicate Material designs approach to Surface and On Surface concepts. This is how the same Canvas palettes can be used for light and dark modes.
Some minor tweaks to the styling of the flow canvas to bring custom NiFi components and the Angular Material components closer together visually.
Moved the Canvas theme declaration to a separate file so the Material themes can be more easily swapped out without needing to redeclare the Canvas themes.
This closes#8480
- Adjusted Excel Record Reader test failure to use OpenXML Exception instead of message matching
Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com>
This closes#8488.
* NIFI-12720
Set an explicit background color for the skeleton-loader element so there is sufficient contrast to show the animation in both light and dark themes.
* NIFI-12720
Updates based on comments
* Update nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/styles.scss
Co-authored-by: Scott Aslan <scottyaslan@users.noreply.github.com>
---------
Co-authored-by: Scott Aslan <scottyaslan@users.noreply.github.com>
Updated all the checkboxes to use color="primary" to keep them consistent.
Revert "NIFI-12865 BUG - Checkboxes are inconsistently styled with primary or accent"
This reverts commit 5833cb1a39837b59de2c664c74c48a579234e284.
Removed Registry changes
* NIFI-12721 Button UX
Updated all the dialog buttons to change them from stroked and raised to basic. This better aligns with Angular Material guidelines and should address the confusion between disabled and cancelled.
* NiFi-12721 incremental update
Changed the combo editor and editor components to use the flat button styles. Missed them before because I was looking for dialogs.
Also caught a style bleed with button:disabled that should be button.nifi-button:disabled and updated that.
* Consolidated the button.nifi-button:disabled rules
Also ran Prettier to improve markup in a few spots
* 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
Fixed issue in NiFiPythonGateway that stems from the fact that the thread adding an object to the JavaObjectBindings was not necessarily the thread removing them. The algorithm that was in place assumed that the same thread would be used, in order to ensure that an object could be unbound before being accessed. The new algorithm binds each new object to all active method invocations and only unbinds the objects after all method invocations complete, regardless of thread. Additionally, found that many method calls could create new proxies on the Python side, just for getter methods whose values don't change. This is very expensive, so introduced a new @Idempotent annotation that can be added to interface methods such that we can cache the value and avoid the expensive overhead.
This closes#8456
Signed-off-by: David Handermann <exceptionfactory@apache.org>
* [NIFI-12537] - Summary screen cluster-related features
* common component status table
* cluster summary dialogs
* address review feedback
* ellisis for node columns in cluster dialogs, cluster node dropdown panel no longer wraps, shorted the dropdown width as well.
* prettier
This closes#8454
- 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>
Additional assertion removals which assumed ordering that isn't guaranteed or enforced by the tests
This closes#8438
Signed-off-by: David Handermann <exceptionfactory@apache.org>
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>
Use Jackson's internal implementations for parsing big integers and floating-point numbers more efficiently
Addressed case where JSON Writer configured to not allow scientific notation, but receives a record that already has a SerializedForm using scientific notation.
This closes#8319
Signed-off-by: David Handermann <exceptionfactory@apache.org>
This closes#8428.
- Upgraded from Java Mail 1.4.7 to Jakarta Mail API 2.1.2
- Upgraded Spring Integration from 5.5.20 to 6.2.1
- Upgraded SubEtha SMTP from 3.1.7 to 7.0.1
- Upgraded Greenmail from 1.6.15 to 2.0.1
- Removed usage of Commons Lang3
- Removed usage of Commons IO
Signed-off-by: Joseph Witt <joewitt@apache.org>
- Corrected Jetty AuthenticationState interface reference for authenticated user attribute mapping
- Added unit test verifying expected attribute values
Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com>
This closes#8423.
* [NIFI-12761] refresh RPG
* address feedback
* stop polling on error
* fix linting errors introduced in this PR
* reload the connections
* refresh rpg, if first call does not have updated timestamp start polling
* rename action
* final touches
This closes#8401
Refactored so that when a Python Process dies, NiFi will detect this, respawn the process, recreate the Processors that exist in the process, re-initialize them, and restart them. In testing, found the PythonControllerInteractionIT had bugs that were causing Python Processors to be re-initialized many times; this resulted in threading issues that caused processors to be invalid, indicating that property descriptors didn't exist, etc. Addressed these concerns in the same commit, since they were necessary to properly run tests
Ensure that ClassLoader is consistently established for python processor proxies; ensure that if we re-initialize python processor the old initialization thread is stopped
This closes#8363
Signed-off-by: David Handermann <exceptionfactory@apache.org>
- Adjusted URIs for schemas Draft 4, Draft 6 and Draft 7 to match official values set on json-schema-validator 1.3.0
This closes#8405
Signed-off-by: David Handermann <exceptionfactory@apache.org>
* [NIFI-12790] update version of typescript and zone.js
* remove override of dependency
* upgrade to angular 17
* migration to control-flow - used "ng generate @angular/core:control-flow"
* update the version of node used to build with
* add engine.node requirement to package.json
This closes#8410
* [NIFI-12754] - Flow Configuration History
* support selection
* support pagination
* support sorting
* added time controls, also updated provenance to use them too
* allow for clearing of filters
* use date range filter
* more details dialog for flow config history
* support purge history
* review feedback - use snackbar error where intended, add padding between header and page content
* don't use route for flow config history item selection
* Address review feedback
* remove unused style
* Review feedback * initial query is for the last 2 weeks * added timezone to purge confirmation message * reset pagination state on filter, clear filter, and purge * only resubmit query when filter by changes IF there is a filter term specified
This closes#8399
* NIFI-12739 Import ProcessPoolExecutor to fix bug in python 3.9+ that causes
Exceptions to be raised incorrectly in multi-threaded applications
(https://bugs.python.org/issue42647)
* Removed extraneous whitespace.
* NIFI-12767:
- Error handling in Provenance and Lineage.
* NIFI-12767:
- Addressing review feedback.
* NIFI-12767:
- Restoring empty initial state for completed request that allows showing a banner error over an empty table instead of an empty page.
* NIFI-12767:
- Restoring error state to ensure that the loading spinner stops on error.
This closes#8386
- Refactored WebSocket Test Listener to avoid method visibility problem
This closes#8374
Co-authored-by: David Handermann <exceptionfactory@apache.org>
Signed-off-by: David Handermann <exceptionfactory@apache.org>
* [NIFI-12665] - fetch parameter provider parameters
* add permissions checks to parameter provider table actions for edit, delete, and fetch.
* error handling
* routing to fetch parameter provider dialog
* list the parameter groups
* parameter sensitivity selction/deselection
* show banner error if any affected/referencing components are not readable and writeable
* add indicators to parameters for changed, new, removed, ...
* refactored parameter-references component to the common area. leveraged it in the fetch dialog.
* validate the fetch form
* submit the fetch parameter provider parameters
* make the async update step completion icon color theme-aware
* add missing license header
* fixes for the initial round of review comments
* fixing issues found in review
* fix registry clients test
* stop polling when there is an api error
* use sort and join pipes in a couple of more places.
* protect references to parameter provider in the context for read permissions
* when full screen error is triggered, close any open dialog with the 'ROUTED' result to prevent unintended afterClosed actions taking place (like re-selection)
* handle fetch parameter provider error
* remove TODO comments
* call fullScreenError correctly
This closes#8367
- Error handling in Users.
- Error handling in Summary.
- Error handling in Queue Listing.
- Addressing review feedback.
- Dispatching delete success to ensure the active request is reset upon completion.
This closes#8366
Fixed a threading bug where Java makes a call to Python, Python create a Java object to return (ArrayList), Python returns the object and then cleans it up, notifying Java to remove it from 'bound objects', and then Java process the response and returns a null object because it's no longer bound
This closes#8356
Signed-off-by: David Handermann <exceptionfactory@apache.org>
RuleViolations (these objects only reside in memory only) now contain the type of the component that is responsible for the violation. This is used in StandardNiFiServiceFacade to fix and improve the authorization logic.
This closes#8318
Signed-off-by: David Handermann <exceptionfactory@apache.org>
- PutDatabaseRecordIT supports operating systems with either nanosecond or microsecond precision
This closes#8332
Signed-off-by: David Handermann <exceptionfactory@apache.org>
* [NIFI-12748] apply panelClass to snackbars to apply lighter color to the snackbar action text
* hover color for snackbar action button
* updates based on https://github.com/angular/components/issues/11426
This closes#8365
* NIFI-12734:
- Import from Registry.
* NIFI-12734:
- Providing better guidance when there are no registry clients available based on user permissions.
- Showing form validation errors when there are no buckets or no flows.
This closes#8354
This closes#8350
The processor can now take a filename encoding parameter and pass it to zip unpacking. This will allow
user to unzip files with specific encoding to get correct filenames in output.
This for example help with zip files created on Windows which by default uses Cp437 for filename encoding.
If the filename contains special character like German alphabet ä, ü etc., decoding this with Linux's
default encoding usually UTF8 output will contain `?` in it. When the same file is processed with property
set with `Cp437`, the processor outputs correct filenames with special characters preserved.
Signed-off-by: Joseph Witt <joewitt@apache.org>
* [NIFI-12727] Detect theme based on OS setting, allow user override
* update storage service types, introduce theming service for user selection of theme settings
* review feedback, update menu option disaplay names, update storage service types, delete expired local storage items on init
* check for existence of window.matchmedia
* rebase and address review comments
This closes#8352
* NIFI-12737:
- Recording last canvas URL in local storage.
- Using last canvas URL in global menu Canvas item.
- Conditionally applying transitions when centering components.
- Always applying transitions during zoom events (1:1, fit, zoom in/out).
- Adding support to center more than one component.
* NIFI-12737:
- Fixing bug when attempting to click on the search result of the currently selected component.
- Handling centering of a single selection different from a bulk selection as it performs betters with Connections.
This closes#8355
- Updating property editing so that Shift-Enter inserts a new line and Enter commits the edit.
- Fixing bug that prevented deleting a Property and then re-adding a new Property with the same name.
This closes#8358