Code Monkey home page Code Monkey logo

arcadedata / arcadeanalytics Goto Github PK

View Code? Open in Web Editor NEW
188.0 9.0 31.0 14.84 MB

Arcade Analytics is the first Open Source Graph Analytics platform. Connect your Graph Database (Neo4j, OrientDB, Amazon Neptune, Microsoft CosmosDB, etc) and RDBMS (Oracle, MySQL, Postgres, Microsoft SQLServer, MariaDB) to create powerful dashboards.

Home Page: https://arcadeanalytics.com

License: Apache License 2.0

JavaScript 34.61% Dockerfile 0.01% Java 16.99% Kotlin 0.11% HTML 13.56% TypeScript 22.40% CSS 10.87% PHP 0.03% Scala 0.61% SCSS 0.80% Mustache 0.01%
graphdb analytics graph-analytics dashboards widgets charts

arcadeanalytics's People

Contributors

arcade-player avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar g4br13l3 avatar jrogers512 avatar lvca avatar robfrank avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arcadeanalytics's Issues

Road map

A while ago, there was a mention of a road map to be published. Is this available yet?

How to set passwords for new users?

After logging in as admin:admin, it is possible to create new users. But there does not seem to be a way to set their passwords.

How should passwords be assigned to new users?

I am assuming new users are sent an account activation link? But is there another way for the administrator to set passwords for accounts, e.g. with the API?

Can't connect to Gremlin Neptune DB

Hey! Awesome that you brought this open source. I'm just getting started, docker installation was a breeze.

I'm trying to connect my AWS Neptune DB as a datasource. I'm running a local docker instance while VPN'd in from my computer, which connects me to my AWS VPC. I shouldn't need any database/user/password/ssh or anything. Right?

Type: Gremlin
Gremlin Implementation: Neptune
Server: my-db.xxxxxxxxxxx.us-east-1.neptune.amazonaws.com
Port: 8182

I found this article you guys have, but many variations of this did not work.

I've been using graphexp and connecting works fine for that.

Any suggestions? Thanks for the help! Super excited to start using this.

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating @angular/core in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

installation of arcade analytics

after running the command
docker-compose -f src/main/docker/app.yml up
the files are downloaded but there are some errors in it i guess and after a while it says
docker_arcadeanalytics-app_1 exited with code 1
please suggest what to do next and how to move to next step
http://localhost:8080/
(screeshots included)
Screenshot (3)
Screenshot (4)
Screenshot (5)

Graph widget: keyboard shortcuts

It would be great to have some keyboard shortcuts in the graph widget, e.g.:

  • delete: delete selected items
  • up/down/left/right: "scroll" viewpoint
  • +/-: zoom in/out
  • CTRL-S: make snapshot
  • CTRL-A: select all

Template user name should be configurable

Is your feature request related to a problem? Please describe.
user is used as a template when a new user is created.
The username of the template should be configurable

Describe the solution you'd like
externalize to a property in the application.yaml the username of the template

Password reset

Currently I do not see any feature for a user to reset his/her password.

Is this indeed missing, or am I not looking in the right place?

Dependabot couldn't find a build.gradle for this project

Dependabot couldn't find a build.gradle for this project.

Dependabot requires a build.gradle to evaluate your project's current Java dependencies. It had expected to find one at the path: /build.gradle.

If this isn't a Java project, or if it is a library, you may wish to disable updates for it from within Dependabot.

You can mention @dependabot in the comments below to contact the Dependabot team.

replace OrientDB 2.x with OrientDB 3.x

The production ready OrientDB 3.x is already 1 year old but ArcadeAnalytics is working only with OrientDB 2.x out of the box. If there s some more tricky way to make it work with OrientDB 3.x it would be nice a similar tutorial to Azure CosmosDB and Amazon Neptune ones.

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating moment in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating moment in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating bootstrap in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

How to create an admin user?

When starting Arcade for the first time, there is one default user named "user", who does not have admin rights.

What is the current way of creating an admin user, so that more user accounts can be created?

Graph widget: inconsistent updating of "Graph element" info when clicking on nodes / edges

The top left "Graph Element" subwindow should display the properties of the most recently clicked node or edge.

However, the behaviour of this subwindow is inconsistent / erratic. Sometimes it just does not show any info, even though you just selected a node. Sometimes it shows the properties of some previously selected node, even though you just clicked on another node.

One consistent way to reproduce this inconsistent behaviour:

  1. Select a couple of nodes
  2. Unselect all nodes by clicking on white space
  3. Select some single node

Result: "Graph Element" stays empty
Expected: "Graph Element" displays properties of your selected node.

Neo4j / Chrome

Offline installation

When dealing with sensitive datasets, the users and machine running Arcade may be on a sublan disconnected from the net by a firewall. In that case it would be great if there was a way to install Arcade on a machine without requiring internet.

(Obviously the current way of running Arcade via Docker does require net access upon the first startup, as Docker will then try and download required files that are not yet in its cache)

Demo DB 401 error

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. user docker compose to get fresh instance
  2. Click on 'enter the widget' for the 'Demodb (ORIENTDB)' widget, then Search, then 'Fetch Nodes from Class'
  3. Select 'Customers' from drop down (or anything really)
  4. See error: 'Internal Server Error
    Http failure response for http://localhost:8080/api/_search/data-sources/aggregate/110?minDocCount=1&maxValuesPerField=15: 500 Internal Server Error'

http://localhost:8080/api/_search/data-sources/aggregate/110?minDocCount=1&maxValuesPerField=15 shows the error: {"type":"http://www.jhipster.tech/problem/problem-with-message","title":"Unauthorized","status":401,"detail":"Full authentication is required to access this resource","path":"/api/_search/data-sources/aggregate/110","message":"error.http.401"}

Expected behavior
No error. This is the first time using Arcade, so I don't know what normal/expected behavior should be.

Screenshots
arcade-jhipster

Desktop (please complete the following information):

  • OS: MacOS 10.14.2 (18C54), Docker Desktop 2.0.0.2 (30215)
  • Browser : Chrome
  • Version 72.0.3626.109 (Official Build) (64-bit)

Remove "single" profile

Maven allows releasing a single artefact per pom, so it's hard to release at the same time prod and prod-single.
Moreover, prod single differs from prod only by the dependency on the h2sql jar.

Solution

  • remove prod-single profile
  • move h2sql dependency to prod
  • reconfigure docker compose of "single" to use the right image and the right spring profile

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating protractor in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

JDBC drivers not loaded at runtime

JDBC drivers not loaded at runtime

JDBS drivers are packaged inside the arcade-connectors-rdbms jar and loaded on a different class loader.

As described on here, the driver manager doesn't take into consideration drivers on different classloader, nor allows dynamic loading

To Reproduce
Try to connect to a data source defined over Mysql or Data.World:
PGSQL works because the driver is used by the application itself to persists data

Backup & restore procedure

Is there documentation about how to perform a backup & restore of the database, media files, and config files?

And related to this: what is the procedure for performing updates while keeping the database & config intact?

"Undo" feature

Currently there is no undo feature in the UI. This is really quite essential for providing a nice user experience.

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating moment in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Redundant elastic indexing for multiple users using the same datasource?

This is not a bug, more of a question.

Currently it seems that in case of multiple users using the same datasource, every user is required to start elastic indexing, and a duplicate elastic index is made for each user.

Just wondering if my understanding of this is correct. And if so: is this really necessary? Will this not potentially cause huge storage space requirements when dealing with a large group of users?

Opening a graph widget results in restricted height

I am able to resize a graph widget, but once I open it, the resulting graph window cannot be resized.

To reproduce: on a graph widget, click the "cross" to open it.

The graph is now displayed in a window with a severely restricted height: that of the left sub-menu.

It would be great to be able to have the graph displayed in a larger window, e.g. by providing an option to resize.

Testing on Ubuntu, using ./gradlew and yarn start

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating bootstrap in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Elastic Search memory allocation failed when deploying to EC2

Note for future EC2 usage by others:

I ran into a memory allocation failure when trying to launch the app within an EC2 t2.small instance. I solved this by using at least a t2.large instance because elastic search requires at least 4GB of memory.

Feb 20 01:27:37 ip-XXX-XX-XX-XX docker-compose[3339]: arcadeanalytics-elasticsearch_1  | # There is insufficient memory for the Java Runtime Environment to continue.
Feb 20 01:27:37 ip-XXX-XX-XX-XX docker-compose[3339]: arcadeanalytics-elasticsearch_1  | # Native memory allocation (mmap) failed to map 4207738880 bytes for committing reserved memory.
Feb 20 01:27:37 ip-XXX-XX-XX-XX docker-compose[3339]: arcadeanalytics-elasticsearch_1  | # An error report file with more information is saved as:
Feb 20 01:27:37 ip-XXX-XX-XX-XX docker-compose[3339]: arcadeanalytics-elasticsearch_1  | # /tmp/hs_err_pid1.log

Just made this issue to log it and be helpful for others. Closing it.

Cannot connect to Neo4j

For some reason I cannot get Neo4j working as datasource anymore.

The Neo4j browser connects just fine, and "telnet localhost 7687" says "connected".

Neo4j 3.5.3 from debian.neo4j.org/repo stable
ArcadeAnalytics via docker

arcadeanalytics-app_1 | ----------------------------------------------------------
arcadeanalytics-app_1 | Application 'arcadeanalytics' is running! Access URLs:
arcadeanalytics-app_1 | Local: http://localhost:8080
arcadeanalytics-app_1 | External: http://172.18.0.4:8080
arcadeanalytics-app_1 | Profile(s): [prod, swagger]
arcadeanalytics-app_1 | ----------------------------------------------------------
arcadeanalytics-app_1 | 2019-02-21 10:53:12.592 INFO 1 --- [ XNIO-2 task-9] c.a.web.rest.DataSourceResource : REST request to test DataSource : DataSourceDTO{id=null, name='neo test', description='neo', type='NEO4J', indexing='null', server='localhost', port=7687, database='graph.db', username='neo4j', password='1234pass', remote='false', gateway='null', sshPort=null, sshUser='null'}
arcadeanalytics-app_1 | 2019-02-21 10:53:12.606 INFO 1 --- [ XNIO-2 task-9] c.a.web.rest.DataSourceResource : DataSource : DataSource{id=null, name='neo test', description='neo', type='NEO4J', indexing='null', server='localhost', port=7687, database='graph.db', username='neo4j', password='1234pass', remote='false', gateway='null', sshPort=null, sshUser='null'}
arcadeanalytics-app_1 | 2019-02-21 10:53:13.054 INFO 1 --- [ XNIO-2 task-9] Driver : Direct driver instance 1586083214 created for server address localhost:7687
arcadeanalytics-app_1 | 2019-02-21 10:53:13.511 INFO 1 --- [ XNIO-2 task-9] ConnectionPool : Closing connection pool towards localhost:7687
arcadeanalytics-app_1 | 2019-02-21 10:53:15.758 ERROR 1 --- [ XNIO-2 task-9] o.z.p.spring.web.advice.AdviceTrait : Internal Server Error
arcadeanalytics-app_1 |
arcadeanalytics-app_1 | org.neo4j.driver.v1.exceptions.ServiceUnavailableException: Unable to connect to localhost:7687, ensure the database is running and that there is a working network connection to it.
arcadeanalytics-app_1 | at org.neo4j.driver.internal.util.Futures.blockingGet(Futures.java:122)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.DriverFactory.verifyConnectivity(DriverFactory.java:346)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.DriverFactory.newInstance(DriverFactory.java:93)
arcadeanalytics-app_1 | at org.neo4j.driver.v1.GraphDatabase.driver(GraphDatabase.java:136)
arcadeanalytics-app_1 | at org.neo4j.driver.v1.GraphDatabase.driver(GraphDatabase.java:119)
arcadeanalytics-app_1 | at com.arcadeanalytics.provider.neo4j3.Neo4jIdUtilsKt.getDriver(Neo4jIdUtils.kt:41)
arcadeanalytics-app_1 | at com.arcadeanalytics.provider.neo4j3.Neo4jDataProvider.testConnection(Neo4jDataProvider.kt:144)
arcadeanalytics-app_1 | at com.arcadeanalytics.web.rest.DataSourceResource.testDataSource(DataSourceResource.java:123)
arcadeanalytics-app_1 | at com.arcadeanalytics.web.rest.DataSourceResource$$FastClassBySpringCGLIB$$89a9850e.invoke()
arcadeanalytics-app_1 | at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
arcadeanalytics-app_1 | at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
arcadeanalytics-app_1 | at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
arcadeanalytics-app_1 | at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMethodInterceptor.java:48)
arcadeanalytics-app_1 | at com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMethodInterceptor.java:34)
arcadeanalytics-app_1 | at com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(AbstractMetricMethodInterceptor.java:59)
arcadeanalytics-app_1 | at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
arcadeanalytics-app_1 | at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
arcadeanalytics-app_1 | at com.arcadeanalytics.web.rest.DataSourceResource$$EnhancerBySpringCGLIB$$2f274e16.testDataSource()
arcadeanalytics-app_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
arcadeanalytics-app_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
arcadeanalytics-app_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
arcadeanalytics-app_1 | at java.lang.reflect.Method.invoke(Method.java:498)
arcadeanalytics-app_1 | at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
arcadeanalytics-app_1 | at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
arcadeanalytics-app_1 | at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
arcadeanalytics-app_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
arcadeanalytics-app_1 | at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
arcadeanalytics-app_1 | at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
arcadeanalytics-app_1 | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
arcadeanalytics-app_1 | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
arcadeanalytics-app_1 | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
arcadeanalytics-app_1 | at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
arcadeanalytics-app_1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
arcadeanalytics-app_1 | at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
arcadeanalytics-app_1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
arcadeanalytics-app_1 | at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:111)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:111)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
arcadeanalytics-app_1 | at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
arcadeanalytics-app_1 | at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at com.arcadeanalytics.security.jwt.JWTFilter.doFilter(JWTFilter.java:36)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
arcadeanalytics-app_1 | at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
arcadeanalytics-app_1 | at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
arcadeanalytics-app_1 | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
arcadeanalytics-app_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:64)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
arcadeanalytics-app_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
arcadeanalytics-app_1 | at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
arcadeanalytics-app_1 | at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
arcadeanalytics-app_1 | at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
arcadeanalytics-app_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
arcadeanalytics-app_1 | at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
arcadeanalytics-app_1 | at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
arcadeanalytics-app_1 | at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
arcadeanalytics-app_1 | at io.undertow.server.Connectors.executeRootHandler(Connectors.java:336)
arcadeanalytics-app_1 | at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
arcadeanalytics-app_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
arcadeanalytics-app_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
arcadeanalytics-app_1 | at java.lang.Thread.run(Thread.java:748)
arcadeanalytics-app_1 | Suppressed: org.neo4j.driver.internal.util.ErrorUtil$InternalExceptionCause: null
arcadeanalytics-app_1 | at org.neo4j.driver.internal.async.ChannelConnectedListener.databaseUnavailableError(ChannelConnectedListener.java:76)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.async.ChannelConnectedListener.operationComplete(ChannelConnectedListener.java:70)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.async.ChannelConnectedListener.operationComplete(ChannelConnectedListener.java:37)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:504)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:483)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:121)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:327)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:343)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
arcadeanalytics-app_1 | ... 1 common frames omitted
arcadeanalytics-app_1 | Caused by: org.neo4j.driver.internal.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/127.0.0.1:7687
arcadeanalytics-app_1 | at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
arcadeanalytics-app_1 | at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:325)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
arcadeanalytics-app_1 | at org.neo4j.driver.internal.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
arcadeanalytics-app_1 | ... 1 common frames omitted
arcadeanalytics-app_1 | Caused by: java.net.ConnectException: Connection refused
arcadeanalytics-app_1 | ... 11 common frames omitted
arcadeanalytics-app_1 |

Copy filled template widgets to users

Requesting a feature to enable true sharing of widgets of graph dbs.

Once one user has created a widget for a graph db with proper icons, label names, etc, other users should not be required to do the same work. Instead users should be able to share widgets as templates to other users. Or an admin should make some pre-filled template widgets available for users to choose from.

Graph widget: set default edge label to @class, default label color to edge color

Graph widget:

Probably the most commonly used label for the edge would be the edge class (@Class). And the most sensible color for this label would be the same color as the edge line (currently #cdcdcd).

Currently one needs to set all the individual edge labels (default: none) and colors (default: black). Having a sensible default like my suggestion would satisfy a large percentage of users and save them the tedious job of having to manually configure all individual edge types.

Graph text search: provide a means to configure which properties should be displayed of the results

There is a search field in the graph screen. It seems that in the search results currently the property name is displayed, along with the id and class.

Obviously this does not always result in a useful display of search results.

At the very least I would suggest displaying the property that has been set as "label" in the left sub-menu below "Graph Element". Or else provide some other way to configure the search results.

Updating docker image results in Error

I just updated the docker image via:
sudo docker pull arcadeanalytics/arcadeanalytics

Then restarted the app via
docker-compose -f src/main/docker/app.yml up

Result: Error - Application startup failed
See screenshot
Screenshot 2019-03-21 at 15 49 04

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating webpack-dev-server in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Default widgets for newly created user are blank

I created 2 widgets for the default user "user", that should be a template for newly created users. Then created a new user "arthur".

Expected behaviour: arthur gets these 2 widgets in his dashboard.

Bug: the 2 widgets that arthur sees are blank and non-functional.

Screenshot 2019-03-26 at 14 12 07

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating merge-jsons-webpack-plugin in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating webpack-dev-server in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Dependabot can't resolve your JavaScript dependency files

Dependabot can't resolve your JavaScript dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Error whilst updating webpack-dev-server in /package-lock.json:
Cannot read property 'match' of undefined

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

You can mention @dependabot in the comments below to contact the Dependabot team.

Graph widget: "traverse" has no effect if node to be traversed to already exists

To reproduce:

Start with an empty graph widget.

  1. Put some nodes on the graph widget that all share a connection to a particular single other node. (Do not expand/traverse any of these nodes yet)
  2. For one of these nodes, traverse to the shared single node.
    (This will make that single node appear, and draw an edge between this and your selected node)
  3. Now do the same for any of the other nodes: traverse the edge that should lead to the shared single node.

Result: nothing happens.

Expected: an edge / connection should be drawn between the selected node and the shared single node.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.