/graphvinci

A better schema visualizer for GraphQL APIs

Primary LanguageJavaScriptApache License 2.0Apache-2.0

License

graphvinci is licensed under Apache License 2.0. Valid-License-Identifier: Apache-2.0

image

A better schema visualizer for GraphQL APIs - view your schema in a draggable, zoomable and collapsible way. Built to introspect large interconnected schemas, to promote a better understanding of your data

View as much or as little of your schema as you need, organized however you like... init

What is GraphVinci?

Built with the aim of conquering complexity in mind, the GraphVinci visualizer aims to promote the understanding and sharing of API schema by creating an interactive and intuitive force-directed graph layout

With a background in federated GraphQL, we needed a way of sharing schema knowledge and views of many schemas between teams that could also serve as a data "roadmap" that was understandable at both a developer and an executive level

Divide your schema into logical domains, and then use these to group, view and manage a visualization

Create and save custom, shareable schema views that promote cross-developer data understanding

demo

How can I run GraphVinci?

GraphVinci is built as static content with minimal dependencies and uses parcel to bundle. To test it out (using node v14+ is recommended), just "npm install" to add the dependencies, and "npm start" and parcel will host the visualizer locally. The output from "npm build" can be served as static content in any manner that you choose. Additional options (npm, docker images etc) will be created as the project matures

FAQ

How do I set up my groupings?

You can either set up groupings within the setup screen for an endpoint, or you can embed them within your GraphQL schema's descriptions

Is it possible to have field-level group resolution?

Yes. If a field in a type is "logically" owned by a separate group (as is the case with Federated GraphQL's type extension), then it will be displayed in the type's grouping, but when expanded it will be color-coded according to the owner

Is it possible to "nest" groups within groups?

Technically this might be possible, but the challenges in making this "work" effectively mean that this feature is unlikely to come soon

Any plans for a GraphQL browser with visualization options?

Yes. We just decided to release the schema visualization to the community first