Add GraphQL endpoints
This PR adds a GraphQL endpoint and interactive GraphQL UI to DMD.
The aim of the GraphQL endpoints is to provide simplified querying of the underlying DMD data without needing to understand the data structures or necessary SQL.
In addition the GraphQL endpoints could be used in a GraphQL federation.
The initial endpoint is:
-
repositoriesLikewhich allows repositories that match a like query to be returned. The data returned will be:- totals of dependencies
- total outdated dependencies
- total deprecated dependencies
- total unsupported dependencies
- list of dependencies
- list outdated dependencies
- list deprecated dependencies
- list unsupported dependencies
Outstanding work still to be done
- add list outdated dependencies
- include advisories into above queries
- replicate
repositoriesLikequery asrepositoriesInquery to allow multiple repositories to be queried - add
dependentOnLikequery to list repositories that depend on a specified dependency
Outstanding requests from maintainers:
- add a separate
dmd-graphqlCLI entrypoint to allow running GraphQL as a standalone piece (i.e. for behind a reverse proxy) - add documentation to the documentation site, including an embedded version of the schema
Closes #151 (closed).
Edited by Jamie Tanna