[Plugin Store] - Listing update
qd-qd opened this issue · 1 comments
Header
Name of the task: Listing update
Name of the module: Plugin Store
Difficulty: 2
Body
Short description
In addition to the plugin list being hosted and updated on GitHub, it must also exist on IPFS. With each new merge on the prod
branch, the latest version of the JSON file must automatically be hosted on IPFS.
Full description
Note that all pull requests will target the develop
branch however time-to-time, Ledger will have the responsibility to merge new additions in the develop
branch to the prod
branch. This prod
branch would be the source of truth for the listing of the plugins. Once new commits are pushed into this branch, an action must be automatically fired. The action must be defined using Github Actions.
This action must take the last version of the listing (from the last commit in the prod
branch) and upload it on IPFS. The version hosted on IPFS will be a mirror of the version hosted on GitHub in the prod
branch. They can both be used by clients as a source of truth for fetching plugins.
One problem in this process is that the hash of any content on IPFS is the hash of the file, meaning there is no native way to have a unique URL that always points to the latest version of the file. We already experimented with Pinata in the past, and we heard they fix this issue with one of their products. That would be appreciated if this issue can be solved with Pinata. If this is not possible, we are open to a creative solution.
Here's an attempt to define the type of plugin in the Plugin Store and the type of listing.
type Plugin = {
id: string, // classhash
signature: string,
name: string,
description?: string,
}
type Listing = Plugin[];
Additionals ressources
Task monitoring 📝
This is an automatic post that is intended to facilitate the follow-up of the project.
This post is meant to be edited throughout the life of the project.