odpi / egeria-ui Goto Github PK
View Code? Open in Web Editor NEWUser interface instance using main Egeria functionalities.
Home Page: https://odpi.github.io/egeria-ui/
License: Apache License 2.0
User interface instance using main Egeria functionalities.
Home Page: https://odpi.github.io/egeria-ui/
License: Apache License 2.0
Before we can have this component as a dependency of the main egeria code base we need an Azure build pipeline
The build process needn't use maven, or be version synchronized to egeria, but it must be possible to build PRs, merge builds, and establish a build pipline
Several changes are needed to the docker build now that we are doing in the same repo
Current behaviour: In the User menu are all the user roles from authentication are shown.
Only user roles that are mapped in the application should be displayed
Currently our code is scanned for license adherence & CVEs. One tool used for this is nexus IQ
This egeria-ui project should be added to Nexis IQ
After an 'npm install' and 'npm run build' a 'git status' is showing package-lock.json as having been modified
To build, it seems as if 'npm install polymer-cli' is needed
On macOS, and in an alpine 14 container on docker, a 'npm test' is failing with:
jonesn:egeria-ui/ (master*) $ npm test [15:59:49]
> [email protected] test /Users/jonesn/IdeaProjects/egeria-ui
> polymer test
TypeError: Cannot read property 'length' of undefined
error: cli runtime exception: TypeError: Cannot read property 'length' of undefined
error: TypeError: Cannot read property 'length' of undefined
at /usr/local/lib/node_modules/polymer-cli/node_modules/web-component-tester/runner/webserver.js:93:142
at Generator.next (<anonymous>)
at /usr/local/lib/node_modules/polymer-cli/node_modules/web-component-tester/runner/webserver.js:20:71
at new Promise (<anonymous>)
at __awaiter (/usr/local/lib/node_modules/polymer-cli/node_modules/web-component-tester/runner/webserver.js:16:12)
at /usr/local/lib/node_modules/polymer-cli/node_modules/web-component-tester/runner/webserver.js:63:16
at /usr/local/lib/node_modules/polymer-cli/node_modules/web-component-tester/runner/context.js:107:42
at new Promise (<anonymous>)
at hookToPromise (/usr/local/lib/node_modules/polymer-cli/node_modules/web-component-tester/runner/context.js:106:24)
at Context.<anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/web-component-tester/runner/context.js:124:27)
npm ERR! Test failed. See above for more details.
jonesn:egeria-ui/ (master*) $
When clicking on the glossary icon, the page is immediately cleared and the user is bounced back to the UI login panel
Clicking 'back' results in being returned to a glossary page
In my case, the root cause was permissions - the following was found in the ui chassis log
2023-03-29 11:33:23.580 -ERROR 1 --- [io-8443-exec-10] o.o.o.u.u.s.a.ExceptionHandlerController : 401 User is not authorized
org.odpi.openmetadata.userinterface.uichassis.springboot.api.exceptions.UserNotAuthorizedException: 401 User is not authorized
at org.odpi.openmetadata.userinterface.uichassis.springboot.api.SecureController.getUser(SecureController.java:38) ~[classes!/:na]
at org.odpi.openmetadata.userinterface.uichassis.springboot.api.glossary.GlossaryViewController.getAllGlossaries(GlossaryViewController.java:51) ~[classes!/:na
The same occurs with other users, including garygeeke
Error handling is needed for this case
Original report: #480
I propose to switch the UI container base image to a UBI image
The likely base is https://catalog.redhat.com/software/containers/ubi8/nginx-118/5f521a6f9dd2d5ca7158e5dc
Similar to odpi/egeria-react-ui#247 the user should not be able to put in an arbitary regex expression, they should use the search flags.
egeria-ui 4.0.1 was recently announced.
The currently released egeria charts uses 3.2.0 and continues to work.
However for testing I tried running with version 4.0.1 of the UI
For example:
helm install lab egeria/odpi-egeria-lab --set jupyter.tokenPlain='s3cr3t!' --set-string image.uistatic.tag=4.0.1
I then ran the configure/start/building a data catalog notebooks
With the ports forwarded, and attemt to go to the nginx port (https://localhost:443) results in continually 'loading' window
I would presume we need some updates for the new UI to work correctly - configuration?
When we release Helm charts including both the Egeria UI & Egeria for a release like 3.2, 3.3, we need to be able
to point to a 'fixed' version of the UI code to run
The version is specified in package.json - and this is also used by the docker build
Currently this is set to 3.0.1
However a github release of 3.0.1 was made in August.
What we need is for the version to be incremented in package.lock immediately after the github release.
Additionally until ready to release we should mark it as a prerelease (ie 3.0.2-rc.0 or similar), only changing to a fixed release at the final moment.
This way we can have a stable github release, and a stable docker image to be consumed by our helm charts (and other users)
Currently dependabot is scanning the base egeria repository for version dependencies
This needs adding to egeria-ui
Egeria has now branched for 2.9 - see odpi/egeria#5075.
If you would like a new version of the egeria-ui included by the helm/compose charts in egeria 2.9, please can you create a 2.9 release. Then a PR will need doing for the egeria-2.9 release on base egeria, but this code is under test and will be released soon (days)
For now I will set the egeria code to use the 2.8 version, which is the last 'release'.
iron-localstorage is deprecated
During startup, the ui chassis may not be ready to service all requests. Use of the UI during this time may hang
For example:
In our coco labs environment, deployed using our odpi-egeria-lab helm chart, run the configuration, and data catalog notebooks.
Then navigate to the ui
You may see this page after login, which is indicative of the ui chassis not being ready:
If we look in more detail, we may see errors fetching types:
And in the log from the ui chassis it's clear this is because the server is not ready:
2023-03-29 07:35:57.397 - INFO 1 --- [ main] o.o.o.u.u.springboot.EgeriaUIPlatform : Started EgeriaUIPlatform in 60.405 seconds (process running
for 61.971)
2023-03-29 07:37:56.824 -ERROR 1 --- [nio-8443-exec-2] o.o.o.c.ffdc.RESTExceptionHandler : Detected Invalid Parameter Exception in REST Response
org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException: OMAG-MULTI-TENANT-404-001 The OMAG Server cocoMDS1 is not available to service a
request from user erinoverview
at org.odpi.openmetadata.commonservices.ffdc.RESTExceptionHandler.throwInvalidParameterException(RESTExceptionHandler.java:289) ~[ffdc-services-4.0.j
ar!/:na]
at org.odpi.openmetadata.commonservices.ffdc.RESTExceptionHandler.detectAndThrowInvalidParameterException(RESTExceptionHandler.java:206) ~[ffdc-servi
ces-4.0.jar!/:na]
at org.odpi.openmetadata.accessservices.assetcatalog.AssetCatalog.detectExceptions(AssetCatalog.java:307) ~[asset-catalog-client-4.0.jar!/:na]
at org.odpi.openmetadata.accessservices.assetcatalog.AssetCatalog.getSupportedTypes(AssetCatalog.java:276) ~[asset-catalog-client-4.0.jar!/:na]
at org.odpi.openmetadata.userinterface.uichassis.springboot.service.AssetCatalogOMASService.getSupportedTypes(AssetCatalogOMASService.java:236) ~[cla
sses!/:na]
The UI should have an appropriate timeout and error handling
The Egeria UI currently does not work in our Helm Charts using the existing zuul based redirection
When the UI is accessed (via the ui server chassis) I see 'Egeria UI' as the title / favicon but the content area is blank, and the javascript console in chrome reports
Uncaught DOMException: Failed to execute 'define' on 'CustomElementRegistry': the name "paper-menu-grow-height-animation" has already been used with this registry
at Polymer (https://c12bb70b-eu-gb.lb.appdomain.cloud/src/my-app.js:5867:139)
at https://c12bb70b-eu-gb.lb.appdomain.cloud/src/my-app.js:14878:66
DevTools failed to load SourceMap: Could not load content for chrome-extension://hnmpcagpplmpfojmgmnngilcnanddlhb/browser-polyfill.min.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
DevTools failed to load SourceMap: Could not load content for chrome-extension://eoolfmmapnkhandljfaaofncecfakljd/dist/Versioning.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
See odpi/egeria#4926 where I am making the change to implement an nginx proxy to support odpi/egeria#4549
The docker image is posted to https://hub.docker.com/repository/docker/odpi/egeria-ui
The UI was working correctly as of the 2.7 release, so this looks like a recent regression
Please forgive my English level, I use translation software, I hope you can understand what I mean
I run the latest version of egeria-ui by docker, but when I enter the page in browser, it prompts me that there is a page error, as shown below:
I am using the chrome browser, and the browser console did not report an error. By the way, how does egeria-ui configure OMAG services, such as port, IP, etc.
Navigating to 'about' via
a) (i) icon at bottom left
b) 'About' on top navigation bar
results in a page not loading
Additionally, there is no way out - except back. No timeout is observed if a remote request is being issued.
original report: #480
We launched the egeria ui master project with mocks. We go to the main page, an error falls on the API request for roles and the application state does not exit "Loading"
We looked for a method for requesting "/api/users/roles", in a project with mocks, this method does not exist, so all actions in the ui project lead to 403 errors
Followup to #2
In base egeria our PR builds have moved to github actions which are very promising.
Opening this up to track consideration of same for egeria-ui repo
odpi.github.io/egeria-ui/ access failed
Currently the container image for the static content is built under the main egeria project as part of the maven merge build running under azure pipelines
I propose we move the container build here, so that it is consistent with the code it contains.
There is still code in egeria repo that references the image - docker compose & lab helm chart. If the name of the image, location, or version changes, this will need updating.
Two changes we've not done yet in egeria for this image
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.