Introducing dmd-web
, a web frontend for Dependency Management Data (DMD)
Since starting the project in February, I've been having a great time working on dependency-management-data, a project to make it easier to understand how internal and Open Source dependencies are used in your projects.
We've been using it a fair bit at Deliveroo and it's helped give us some really great insight into our data, allowing us to answer questions like:
- what is the spread of Go versions across the org?
- are we running any End-of-Life software?
- what are our most-used indirect/transitive dependencies?
- how many pending dependency updates does my team have to do?
As good as it's been to have this data, it's not been as widely used as I'd have hoped. Although dependency-management-data is pitched at developers, and internally we've made it easier to access the database, there's still an additional barrier to be able to check out the data and start querying.
To make it easier to check out the data without downloading the database locally or having anything installed, I've just shipped a web UI for DMD, dmd-web
. You can check it out as an application on Fly.io, where the data is seeded from the example project.
So far, it's got two key pieces of functionality:
- an interactive SQLite browser, using Datasette
- the ability to view reports, which are also available through the command-line tool
The ability to get interactive SQLite access is really important to me, as it allows a much more exploratory experience and gives the ability to understand the data, especially if you're not as clued up with SQL. And because it's using Datasette under the hood, you can just copy-paste the URL and share it with a colleague - no need to share the query and have them run it locally.
For instance, a query to highlight the types of dependency updates you have pending.
I'll be looking to improve this over time, adding more functionality as necessary, and hopefully making the experience even better for not-as-technical folks, such as being able to prepare common or useful queries.
Interested in learning more, and how to get started? In a couple of weeks I'm doing a talk at DevOpsNotts about dependency-management-data which is remote-friendly, and it'd be great to have you there!