-
Notifications
You must be signed in to change notification settings - Fork 2.8k
NIFI-14319: Create initial project structure for new NiFi Registry UI #9855
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this work on NiFi Registry @sardell!
The standard ci-workflow
builds are failing, does this build locally for you, or is this still a work in progress that should be marked as draft?
@exceptionfactory Thanks for raising the failing CI to my attention. It looks like the failure was due to the favicon missing from the old registry ui directory. I accidentally deleted it when copying over images to the new project. I noticed the missing file while working on this PR and added the file back, but it seems that file was accidentally added to the .gitignore (I think intention of that .gitignore line was to ignore the generated favicon, not all instances of that file). I believe this is why I could successfully build locally and also see the CI failures you pointed out. Fingers crossed the CI passes this time. I'll keep an eye on it. UPDATE: Looks like the CI build is now failing on a build step that runs fine locally. Will need to investigate a little further. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the update @sardell, although the build completes on macOS, it is failing on Linux and Windows.
On Linux, there appears to be something platform-dependent:
[INFO] ::group::❌ > nx run shared:build:production
[INFO]
[INFO] Building Angular Package
[INFO]
[INFO] ------------------------------------------------------------------------------
[INFO] Building entry point '@nifi/shared'
[INFO] ------------------------------------------------------------------------------
[INFO] - Compiling with Angular sources in Ivy full compilation mode.
[INFO] ✖ Compiling with Angular sources in Ivy full compilation mode.
[INFO]
[INFO] NX The package "@esbuild/linux-x64" could not be found, and is needed by esbuild.
* check if window.matchMedia has value before calling method * add empty states to explorer table * destroy direct store subscriptions * add filtered count to droplet table filter
* Linux solution: https://github.com/evanw/esbuild/issues/1819\#issuecomment-2426254293 * Windows solution: nrwl/nx#29551
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good for the 1st glance, I post my first comments, will continue the review soon
styleUrl: './header.component.scss' | ||
}) | ||
export class HeaderComponent implements OnInit { | ||
currentUser: Signal<CurrentUser>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it used or planned to use next time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I plan on using it much more in the next part I'm working on. I originally intended for it to be included in this PR but once I saw how big this PR became, I decided to make it auth/login/logout its own task. If it helps to review or you'd just prefer, I can remove the user-related code from this PR.
nifi-frontend/src/main/frontend/apps/nifi-registry/src/app/state/droplets/droplets.effects.ts
Show resolved
Hide resolved
from(this.dropletsService.uploadFlow(href, request.file)).pipe( | ||
map((res) => DropletsActions.importNewFlowSuccess({ response: res })), | ||
catchError((errorResponse: HttpErrorResponse) => { | ||
this.dialog.closeAll(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
importNewFlowSuccess reducer has draftState.saving = false
, in case of an error draftState.saving
remains true. Same question for any ...Success
reducer. If there is no ...Error
reducer defined, how to recover from the loading state?
...olorer/feature/ui/import-new-flow-version-dialog/import-new-flow-version-dialog.component.ts
Outdated
Show resolved
Hide resolved
...ry/src/app/pages/expolorer/feature/ui/droplet-table-filter/droplet-table-filter.component.ts
Outdated
Show resolved
Hide resolved
* fix error service
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sardell thanks for the PR! I have left several comments on things that need to be addressed. Apologies that there are so many comments as I know this is a big undertaking and your effort here is appreciated. I am sure I will have more comments after you make the requested changes.
Also, I didn't have a great place to leave the following comments so placing them here:
Please run prettier and lint:fix. There are several strange formatting issues.
Please delete nifi-registry/public directory and the favicon.ico.
nifi-frontend/src/main/frontend/apps/nifi-registry/project.json
Outdated
Show resolved
Hide resolved
"maximumError": "4kb" | ||
} | ||
], | ||
"outputHashing": "all" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"outputHashing": "all" | |
"outputHashing": "all", | |
"optimization": true |
nifi-frontend/src/main/frontend/apps/nifi-registry/.eslintrc.json
Outdated
Show resolved
Hide resolved
nifi-frontend/src/main/frontend/apps/nifi-registry/.eslintrc.json
Outdated
Show resolved
Hide resolved
nifi-frontend/src/main/frontend/apps/nifi-registry/.eslintrc.json
Outdated
Show resolved
Hide resolved
--> | ||
|
||
<h2 mat-dialog-title> | ||
<div class="flex justify-between items-baseline"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The spacing of this dialog header is incorrect.
...rc/app/pages/expolorer/feature/ui/delete-droplet-dialog/delete-droplet-dialog.component.html
Outdated
Show resolved
Hide resolved
...rc/app/pages/expolorer/feature/ui/delete-droplet-dialog/delete-droplet-dialog.component.html
Outdated
Show resolved
Hide resolved
...rc/app/pages/expolorer/feature/ui/delete-droplet-dialog/delete-droplet-dialog.component.html
Outdated
Show resolved
Hide resolved
...rc/app/pages/expolorer/feature/ui/delete-droplet-dialog/delete-droplet-dialog.component.html
Outdated
Show resolved
Hide resolved
* fix multiple namings * template cleanup * configuration changes to align better with NiFi * style fixes
Summary
NIFI-14319
Description
This PR establishes the initial project setup for the new NiFi Registry UI and includes the new explorer view.
Testing
Build and start the old registry project with maven using the existing instructions. Next, run
npm ci
atnifi-frontend/src/main/frontend
and start the app by runningnpx nx run nifi-registry:serve
. Visithttp://localhost:4204/nifi-registry/
to see the new explorer page. Compare the old explorer view with the new one, ensuring feature parity between the two views. Run unit tests withnpx nx run nifi-registry:test
.NOTE: buckets cannot be created through the new UI yet, so in order to test the functionality of the new explorer view you must first create a bucket through the old UI.
Considerations
Styling - The old logo was created with a much darker background color in mind. It may be time for a refreshed logo, but for now I simply added the old one to the header along with a heading containing the application's name.
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking
Pull Request Tracking
NIFI-00000
NIFI-00000
Pull Request Formatting
main
branchVerification
Please indicate the verification steps performed prior to pull request creation.
Build
mvn clean install -P contrib-check
Licensing
LICENSE
andNOTICE
filesDocumentation