Hey folks!
Srishti and I have put together a list of the Toolhub bits we think we can commit to working on in the next quarter. We would like y'all to have a look and give us any feedback you may have: too aggressive somewhere, missing a key feature, things like that.
Our goal is to implement the features described at https://meta.wikimedia.org/wiki/Toolhub/Roadmap#Milestone_2:_Initial_API_and_UI;_toolinfo_crawler along with supporting features which are needed to build a stable foundation for the project. This set of features will result in an application which includes the core features of Hay's Directory and a platform that can be extended in future iterations to achieve the "first customer release" functionality of milestones 3, 4, 5, and 6.
By the close of Q2 we should have (roughly in priority order):
* Local development tooling and instructions for use * Dockerfile(s) generated using Blubber * Project hosted in gerrit * CI tests run via PipelineLib
* Django backend account creation via OAuth with meta.wikimedia.org as authorization server * Django backend authentication via OAuth with meta.wikimedia.org as authorization server
* User interface for creating/authenticating to a Toolhub account
* Django backend API described by an OpenAPI schema * API endpoints for CRUD operations on toolinfo.json source URLs to be used by the crawler * User interface for CRUD operations on toolinfo.json source URLs to be used by the crawler
* Integration with translatewiki.net for static messages (dynamic content translations are out of scope at this point)
* Working user acceptance testing/staging deployment somewhere in Toolforge/Cloud VPS/???
* API endpoints for viewing actions taken on Toolhub (think Special:Log & Special:RecentChanges) * User interface for viewing actions taken on Toolhub (think Special:Log & Special:RecentChanges)
* Crawler process that loads toolinfo.json source URLs, validates their content, and populates the Toolhub database
* User interface to view crawler status information * User interface to display toolinfo records created by the crawler
* Django backend OAuth authorization server allowing registration of new client applications * API endpoints for OAuth client registration
* User interface to register a new OAuth client * User interface to authorize an OAuth client to contribute to Toolhub as the authorizing user * User interface to view OAuth clients authorized to act as the currently authenticated user * User interface to revoke authorization from OAuth clients
* API authentication via OAuth with Toolhub as authorization server
Bryan