peleitor
peleitor

Reputation: 469

Neo4J end user interface

I need to share a Neo4J graph visualization with end users. They should be able to interact with the graph, and perform some very basic querying. For example: - show me the relationships up to 3 hops away from node named 'Joe'

A first option would be to just give them the standard user interface (usually exposed at port 7474); however this is too powerful as they could perform anything in Cypher.

Is there any way of restricting this interface (so that they cannot trigger expensive queries or even graph updates)? Or maybe other open source / community alternatives?

Thanks

Upvotes: 1

Views: 1301

Answers (4)

Bruno Peres
Bruno Peres

Reputation: 16355

I suggest you the chapter 8 of the excellent book Learning Neo4j, by Rik Van Bruggen. This book is available for download at Neo4j web site.

One of the sections of this chapter shows some open source visualization libraries and visualization solutions.

EDIT 1:

Analyzing a bit more the chapter 8 of the Learning Neo4j book I believe that a promising tool for your use case is the paid solution Linkurio.us (you can run a demo in the site). This solution has a native integration with Neo4j and others graph databases.

EDIT 2:

Alternatively you can build your own visualization solution with a graph visualization library in JavaScript, for example. Here a very useful answer from another StackOverflow question that lists more some libraries that can help you.

Upvotes: 1

Jerome_B
Jerome_B

Reputation: 1097

You may also build a custom web UI that calls the REST endpoint (need to auth in headers)

or

create an unmanaged extension https://neo4j.com/docs/java-reference/3.1/#server-unmanaged-extensions

Upvotes: 1

cybersam
cybersam

Reputation: 66957

If you are using the Enterprise Edition of neo4j, you will have access to extensive authentication and authorization capabilities, including the ability to assign a reader role to specific user names.

Upvotes: 3

InverseFalcon
InverseFalcon

Reputation: 30397

If you do want to use the standard browser interface, you can apply some settings on the neo4j.conf file that may help you out:

dbms.transaction.timeout=10s
dbms.read_only=true

dbms.transaction.timeout will terminate queries exceeding the timeout, so that can prevent expensive queries.

dbms.read_only makes the entire db instance read-only.

Upvotes: 2

Related Questions