Overhaul add/update connection UI
- Dominant language
- TypeScript
- Stars
- 481
- Forks
- 108
- Avg merge
- 7d 16h
- Merged PRs (30d)
- 8
Description
* Add ability to set full path to sparql/gremlin endpoints
* Separate Neptune/Neptune Analtyics from generic databases
* Add more descriptive UI
* Remove option to disable proxy server
* Make calls to summary APIs dependent on database type
## Related Issues
* #1209
* #539
* #23
* #507
## Prototype
We would introduce a new "Connection Type" as a new setting in connections. This allows us to tailor the UI to the specific database provider/type.
| Neptune DB | Neptune Analytics | Generic Gremlin | Generic SPARQL |
|---------|---------|---------|---------|
| |
|
|
|
### Breakdown
Here we breakdown each section of the new connections UI with a description of what changed and why.
* Existing connections will default to Neptune DB (or Neptune Analytics if the service type is `neptune-graph`)
* This will ensure compatibility with existing behavior
* The IAM service type option goes away since it can be inferred from connection type
* Neptune Analytics can only be openCypher
* Neptune DB and Analytics will only require the base URL for the instance, the `/sparql`, `/gremlin`, `/opencypher` will continue to be added automatically
* Generic Gremlin and Generic SPARQL require the full URL for the database endpoint
* Generic Gremlin and Generic SPARQL do not allow IAM auth to be configured
* There is no "generic openCypher" because Graph Explorer only works with Neptune's flavor of openCypher
* Other providers have incompatible request and response shapes
* Minimal changes to the logic behind the connection, mostly just UI changes
| Image | Description |
|-------|-------------|
| | Move general Graph Explorer specific options to the top with better labels and descriptions |
| | Neptune DB specific options: 3 different query engines, IAM auth, IAM service type assumed to be `neptune-db` |
| | Neptune Analytics specific options: openCypher assumed, IAM auth, IAM service type assumed to be `neptune-graph` |
| | Generic Gremlin database options: full URL to gremlin endpoint (including `/gremlin`), added note that HTTP channelizer needs to be enabled |
| | Generic SPARQL database options: full URL to SPARQL endpoint (including `/sparql` or whatever path they need) |
| | Graph Explorer specific options that most users will not need to use |
Contributor guide
Research direction
Start by locating the existing connections UI and the logic that builds connection settings, then compare it with the four connection types in the prototype. Verify existing connections retain compatible defaults, provider-specific fields and authentication rules are shown correctly, endpoint paths are handled as specified, and summary API calls depend on database type.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react, typescript
- Domain
- databases, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100