You can now interact with dependency-management-data using GraphQL
When I first started working on dependency-management-data, I wanted to hold off creating an API for the data until I really understood how it'd be used. I instead focussed on improving the database layer, focussing on the actual data, and understanding what was commonly queried, leading to the web application for DMD that provided an SQL frontend using Datasette.
Towards the end of my time at Deliveroo, we were starting to understand some of the common usecases we had for the data, and were starting to look at making it possible to take dependency-management-data and integrate it with some of our other internal systems, which required we add an API on top of it.
We decided that a GraphQL API was the best way to do this, so raised an issue for it and hoped that we'd get around to it at some point. A couple of weeks later, my excellent (now ex-)colleague Keith had already made some great progress with it.
It's taken a bit of back-and-forth - not helped at least with the speed that I've been making changes to dependency-management-data, inflicting several breaking changes and new datasources that have made landing the Merge Request a bit of a moving target - but as of tonight in the v0.61.0 release, we now have support for GraphQL ππΌ
You can check out the schema documentation on the documentation site and play with the GraphQL playground on the example application.
As well as the existing dmd-web
command that adds a /graphql
route, you can also use the new dmd-graph
CLI to run just the GraphQL API.
Note that until support is added, there's no authentication or authorization support, so beware running it as an internet-facing application.
I look forward to hearing about any use-cases you've got that this enables, as well as any other features that'd be useful aside from those already on the issue tracker.