aws / graph-explorer

React-based web application that enables users to visualize both property graph and RDF data and explore connections between data without having to write graph queries.
https://github.com/aws/graph-explorer
Apache License 2.0
328 stars 48 forks source link

Unable to synchronize Neptune DB #57

Closed MarioDRD73 closed 1 year ago

MarioDRD73 commented 1 year ago

Hi guys,

We have followed the steps described in the guide, however, we are having problems synchronizing with our Neptune DB.

We have seen that when calling the _AbstractConnector to the endpoint "https://{ourneptuneendpint}:8182/?gremlin=g.V().groupCount().by(label)&format=json" a connection_timeout is produced, while if from the same EC2 and container we launch a curl -G "https://{ourneptuneendpint}:8182/?gremlin=g.V().groupCount().by(label)&format=json" we get the results.

What could be going on here?

hcalde1997 commented 1 year ago

Hello, I'm a teammate of @MarioDRD73, we've been doing some tests. We are specifying the EC2 URL in which we are hosting the Graph Explorer as the proxy server and also inserting the Neptune cluster URL (specifying the 8182 port) and we are seeing that the response that is giving us is 200, so it's OK. Nonetheless, the UI says that the sync with Neptune is unable... Do you have some ideas of what's going wrong?

hcalde1997 commented 1 year ago

Hello! I publish an update, if we do the connection with RDF format it works, but with PG is not possible. In the second case we can see the data is being received, but it also gives an error of connection with the DB. This is so strange, it seems like gremlin format is not working correctly.

hcalde1997 commented 1 year ago

Hello guys, new update! We investigated and this is the reason of the failure: TypeError: Cannot read properties of undefined (reading '@value'). I could see in the data received in the response that in some cases the field "@value" is an empty list, this could be a problem that is not being controlled? Thank you so much!

jackson-millard commented 1 year ago

@hcalde1997 Can you send some more information around what the offending data looked like? I haven't been able to recreate this as of yet, though I also want to confirm that PR #37 was pulled in when you built the explorer.

rsnyder31 commented 1 year ago

I'm unrelated to the team that opened this, but I believe I also had this issue and I also believe I've discovered the source.

If you add a space in the node type (i.e. in gremlin g.addV("Node 1")) then follow the Debugger trail you get the error

TypeError: (intermediate value).result.data['@value'][0] is undefined

Which then causes the Synchronization to fail out even though it received data from the database. Note this only seems to be an issue in the node type, spaces in the id or any of the properties perform as expected.

Hope this helps find the issue!

michaelnchin commented 1 year ago

Fix was added in #84 and included in Release 1.2.0, thanks all. Please let us know if you are still experiencing any related issues.