Skip to content

Commit eebfdbf

Browse files
authored
Updating README.md with edits (aws#25)
* Updating README.md with edits Add new photos * Add images folder * Add files via upload * Update README.md * Update README.md * Delete test.md * Updated README.md with new Getting Started Moved Docker instructions higher up and combined with "Getting Started" section * Fixed duplicate text * Update README.md
1 parent dd32ffd commit eebfdbf

File tree

3 files changed

+86
-15
lines changed

3 files changed

+86
-15
lines changed

Diff for: README.md

+86-15
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,99 @@ The Graph Explorer project provides a React-based web application that enables u
33

44
To get started, you can deploy Graph Explorer on a local machine using [Docker Desktop](https://www.docker.com/products/docker-desktop/), or in the cloud using a container service such as [Amazon ECS](https://aws.amazon.com/ecs/). The Graph Explorer image is hosted on [Amazon ECR](https://aws.amazon.com/ecr/), and can also be pulled from [DockerHub](https://hub.docker.com/).
55

6-
Upon build, the Graph Explorer will be run at port 5173 and the proxy-server at port 8182. The proxy-server will be created automatically, but will only be necessary if you are connecting to Neptune. Gremlin-Server and BlazeGraph can be connected to directly.
7-
8-
![A sample image of property graph created by Graph Explorer](./images/LPG IMDb.png)
9-
![A sample image of RDF graph created by Graph Explorer](./images/RDFAirports.png)
10-
11-
#### Supported Graph Types
12-
- Labelled Property Graph (PG) using Gremlin
13-
- Resource Description Framework (RDF) using SPARQL
6+
![A sample image of property graph created by Graph Explorer](./images/LPGIMDb.png)
7+
![A sample image of RDF graph created by Graph Explorer](./images/RDFEPL.png)
8+
9+
## Getting Started
10+
11+
This project contains the code needed to create a Docker image of the Graph Explorer. The image will create the Graph Explorer application to communicate through port `5173` and a proxy server through port `8182`. The proxy server will be created automatically, but will only be necessary if you are connecting to Neptune. Gremlin-Server and BlazeGraph can be connected to directly. Additionally, the image will create a self-signed certificate that can be optionally used when PROXY_SERVER_HTTPS_CONNECTION or GRAPH_EXP_HTTPS_CONNECTION are set to true (default behavior).
12+
13+
There are many ways to deploy the Graph Explorer application. The following instructions detail how to deploy graph-explorer onto an Amazon EC2 instance and use it as a proxy server with SSH tunneling to connect to Amazon Neptune. Note that this README is not an official recommendation on network setups as there are many ways to connect to Amazon Neptune from outside of the VPC, such as setting up a load balancer or VPC peering.
14+
15+
### Prerequisites:
16+
17+
* Provision an Amazon EC2 instance that will be used to host the application and connect to Neptune as a proxy server. For more details, see instructions here: https://github.com/aws/graph-notebook/tree/main/additional-databases/neptune
18+
* Ensure the Amazon EC2 instance can send and receive on ports `22` (SSH), `8182` (Neptune), and `5173` (graph-explorer).
19+
* Open an SSH client and connect to the EC2 instance.
20+
* Download and install the necessary command line tools such as `git` and `docker`.
21+
22+
### Steps to install Graph Explorer:
23+
24+
1. To download the source project, run `git clone https://github.com/aws/graph-explorer/`
25+
2. To build the image, run `docker build --build-arg host=$(hostname -i) -t graph-explorer .` from the root directory.
26+
3. To run the image in a container, run `docker run -dit -p 5173:5173 -p 8182:8182 --name {insert_container_name} graph-explorer`. Optional, can be run as long as the image is there.
27+
4. Since the application is set to use HTTPS by default and contains a self-signed certificate, you will need to add the Graph Explorer certificates to the trusted certificates directory and manually trust them. (**STEP TO BE REWRITTEN IN DETAIL**).
28+
5. Now, open a browser and type in the public URL of your EC2 instance on port `5173` (e.g., `https://ec2-1-2-3-4.us-east-1.compute.amazonaws.com:5173`). You will receive a warning as the SSL certificate used is self-signed. Click to proceed anyway.
29+
6. You should now see the Connections UI. See below description on Connections UI to configure your first connection to Amazon Neptune.
30+
31+
## Features
32+
33+
#### _Connections UI:_
34+
You can create and manage connections to graph databases using this feature. Connections is accessible as the first screen after deploying the application, when you click `Open Connections` on the top-right. Click `+` on the top-right to add a new connection. You can also edit and delete connections.
35+
36+
* __Add a new connection:__
37+
* __Name:__ Enter a name for your connection (e.g., `MyNeptuneCluster`).
38+
* __Graph Type:__ Choose a graph data model that corresponds to your graph database.
39+
* __Public Endpoint:__ Provide the publicly accessible endpoint URL for a graph database, e.g., Gremlin Server. If connecting to Amazon Neptune, then provide a proxy endpoint URL that is accessible from outside the VPC, e.g., EC2.
40+
* __Public or proxy endpoint:__ Provide the publicly accessible endpoint URL for a graph database, e.g., Gremlin Server. If connecting to Amazon Neptune, then provide a proxy endpoint URL that is accessible from outside the VPC, e.g., EC2.
41+
* **Note:** For connecting to Amazon Neptune, ensure that both the proxy endpoint and the graph connection URL begin with `https://` and end with `:8182`. Ensure that you don't end the URLs with `/`.
42+
* __Using proxy server:__ Check this box if using a proxy endpoint.
43+
* __Graph connection URL:__ Provide the endpoint for the graph database
44+
* __AWS IAM Auth Enabled:__ Check this box if connecting to Amazon Neptune using IAM Auth and SigV4 signed requests
45+
* __AWS Region:__ Specify the AWS region where the Neptune cluster is hosted (e.g., us-east-1)
46+
47+
* __Available Connections:__ Once a connection is created, this section will appear as a left-hand pane. When you create more than one connection to a graph database, you can only connect to and visualize from one graph database endpoint at a time. To select the active database, toggle the “Active” switch.
48+
49+
* __Connection Details:__ Once a connection is created, this section will appear as a right-hand information pane for a selected connection. It shows details such as the connection name, graph data model type, endpoint and a summary of the graph data, such as the count of nodes, edges, and a list of node types.
50+
* __Last Synchronization:__ When a connection is created, Graph Explorer will perform a scan of the graph to provide summary data. To re-synchronize after data has changed on your graph, select a connection, and then click the “refresh” button next to “Last Synchronization” text.
51+
* __Data Explorer UI:__ Under a listed node type, you can click on the ‘>’ arrow to get to the “Data Explorer” view. This allows you to see a sample list of nodes under this type and choose one or more nodes to “Send to Explorer” for getting started quickly if you are new to the data.
52+
#### _Graph Explorer UI:_
53+
You can search, browse, expand, customize views of your graph data using Graph Explorer, which is the main UI of this application. Once you create a connection, you can click “Open Graph Explorer” on the top-right to navigate here. There are several key features on this UI:
54+
* __Top Bar UI:__
55+
* __Search bar:__ If a user wants to start without using the Data Explorer, they can go directly to the search bar and use the search to visualize a starting node in the graph.
56+
* __Toggles:__ You can toggle to show/hide the Graph View and/or Table View for screen real-estate management.
57+
* __Open Connections:__ This takes the user back to Connections UI.
58+
* __Graph View UI:__ The graph visualization canvas that you can interact with. Double-click to expand the first-order neighbors of a node.
59+
* __Layout drop-down & reset:__ You can display graph data using standard graph layouts in the Graph View. You can use the circular arrow to reset the physics of a layout.
60+
* __Screenshot:__ Download a picture of the current window in Graph View.
61+
* __Zoom In/Out & Clear:__ To help users quickly zoom in/out or clear the whole canvas in the Graph View.
62+
* __Legend (i):__ This displays an informational list of icons, colors, and display names available.
63+
* __Right-hand Pane UI:__ There are 5-6 functions in the collapsible right-hand pane of Graph Explorer:
64+
* __Details View__ shows details about a selected node/edge such as properties etc.
65+
* __Entities Filter__ is used to control the display of nodes and edges that are already expanded in the Graph View; click to hide or show nodes/edges.
66+
* __Expand__ is used when expanding will result in 10+ neighbors and control the meaningful expansion. You will need to select a number as the limit to expand to. You can also add text filters for expansion.
67+
* __Node Styling__ of node display options (e.g., color, icon, the property to use for the displayed name).
68+
* __Edge Styling__ of edge display options (e.g., color, icon, the property to use for the displayed name).
69+
* __Namespaces (RDF only):__ This RDF-specific configuration feature allows you to shorten the display of Resource URIs within the app based on auto-generated prefixes, commonly-used prefix libraries, or custom prefixes set by the user. Order of priority is set to Custom > Common > Auto-generated.
70+
* __Table View UI:__ This collapsible view shows a row-column display of the data in the Graph View. You can use filters in the Table to show/hide elements in the Graph View, and you can export the table view into a CSV or JSON file. The following columns are available for filtering on property graphs (RDF graphs in parentheses):
71+
* Node ID (Resource URI)
72+
* Node Type (Class)
73+
* Edge Type (Predicate)
74+
* Source ID (Source URI)
75+
* Source Type (Source Class)
76+
* Target ID (Target URI)
77+
* Target Type (Target Class)
78+
* Display Name - Set in the Node/Edge Styling panes
79+
* Display Description - Set in the Node/Edge Styling panes
80+
* Total Neighbors - Enter an integer to be used as the >= limit
81+
82+
* __Additional Table View UI Features__
83+
* Visibility - manually show or hide nodes or edges
84+
* All Nodes / All Edges (or All Resources / All Predicates) dropdown - allows you to display a list of either nodes or edges and control display/filter on them
85+
* Download - You can download the current Table View as a CSV or JSON file with additional customization options
86+
* Default columns - You can set which columns you want to display
87+
* Paging of rows
1488

1589
## Development
1690

1791
### Requirements
1892
- pnpm >=7.9.3
1993
- node >=16.15.1
2094

95+
### Supported Graph Types
96+
- Labelled Property Graph (PG) using Gremlin
97+
- Resource Description Framework (RDF) using SPARQL
98+
2199
### Run in development mode
22100
- `pnpm i`
23101
- `pnpm start`
@@ -39,13 +117,6 @@ You can find a template for the following environment variables at `/packages/gr
39117
- `GRAPH_EXP_HTTPS_CONNECTION`: Uses the self-signed cert to serve the Graph Explorer over https if true. By default `true` (`boolean`).
40118
- `PROXY_SERVER_HTTPS_CONNECTION`: Uses the self-signed cert to serve the proxy-server over https if true. By default `true` (`boolean`).
41119

42-
### Docker Instructions
43-
44-
The docker image contains the code needed to create a runnable instance of the Explorer inside of a container. The image will create the Graph Explorer communicating through port 5173 and the proxy-server through port 8182. Additionally, it will create a self-signed cert that can be optionally used when `PROXY_SERVER_HTTPS_CONNECTION` or `GRAPH_EXP_HTTPS_CONNECTION` are set to true (default behavior).
45-
46-
- To build the image, `docker build --build-arg host=$(hostname -i) -t graph-explorer .` from the root directory. Required.
47-
- To run the image in a container, run `docker run -dit -p 5173:5173 -p 8182:8182 --name {container_name} graph-explorer`. Optional, can be run as long as the image is there.
48-
49120
## Connection
50121

51122
### Connecting to Neptune

Diff for: images/LPGIMDb.png

599 KB
Loading

Diff for: images/RDFEPL.png

771 KB
Loading

0 commit comments

Comments
 (0)