LedgerHQ/ledger-fresh-management

[Plugin Store] - Listing update

qd-qd opened this issue · 1 comments

qd-qd commented

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.