saltcorn icon indicating copy to clipboard operation
saltcorn copied to clipboard

Store marketplace

Open AleksandrSokolov opened this issue 4 years ago • 12 comments

AleksandrSokolov avatar Sep 11 '20 19:09 AleksandrSokolov

The packs live in a database on this site: https://store.saltcorn.com/

You are right however that it is not currently possible to inspect the source (which is a JSON object). I will fix that

glutamate avatar Sep 11 '20 20:09 glutamate

The packs are very cool feature. Thank You for this great thing.

I just written some ideas below around packs and store:

It will be totally killer thing if you make ability to export packs and make more marketplace functionality for Store https://store.saltcorn.com/. For exampe, ability to add own packs to marketplace for other developers, description page for packs, checksum or signing of packs.

Of course, the some packs can have price and in that case Store will need payment integration .

Also for corporate usage best thing is ability to create internal corporate marketplace for trusted packs and plagins.

AleksandrSokolov avatar Sep 12 '20 10:09 AleksandrSokolov

As result Store url needs to be define in Configuration section.

AleksandrSokolov avatar Sep 12 '20 10:09 AleksandrSokolov

The pack contents can now be seen in the store website (https://store.saltcorn.com/)

I agree @AleksandrSokolov on a marketplace, that will definitely happen at some point.

glutamate avatar Sep 17 '20 12:09 glutamate

@glutamate What is correct way to publish packs to Saltcorn Store? For example I've published pack with several triggers useful in non-standard installation of Store: https://github.com/pyhedgehog/saltcorn-store-triggers/releases/latest/download/pack.json

  1. How to publish it to Saltcorn Store?
  2. How to update it in Saltcorn Store?
  3. How to update it (or any other pack) after installation?

pyhedgehog avatar Mar 20 '23 22:03 pyhedgehog

@pyhedgehog the store is a simple Saltcorn application. Whoever (currently only me) has access can edit the tables for packs and plugins. I think i should build it out so people can submit to it and I can just approve new items

glutamate avatar Mar 22 '23 17:03 glutamate

@glutamate I'm again returning to this issue. I've ever about to implement patch for "Saltcorn store" pack that will implement separate storage for proposals to include into store... But got an idea: this is already implemented in GitHub. All we need is to create repository with two directories (packs and plugins) where each entry will be JSON file. Everybody who wants to publish or update something in store will create pull request. Than you merge (or reject) them and github workflow collect all files to store. Do you have an arguments against this method of store management?

pyhedgehog avatar Oct 19 '23 09:10 pyhedgehog

I think in general this is a good idea and I'm not opposed to it @pyhedgehog. I think this can be done without modifying saltcorn code at all except changing the default store - if we set up the github repo cleverly. I created a blank store repo here for this https://github.com/saltcorn/store

However, some counter arguments:

  1. Privacy - now there is one more third-party actor(Github) that can potentially monitor your saltcorn usage. Previously we had store.saltcorn.com, but we could point to the store pack and say this was open source, although the user has no means of verifying this. Also, contacting the store potentially leaks much less information than npm.com which sees the packages you install. Probably only a minor concern even to the paranoid.

  2. Discoverability - harder for non-technical users to browse plugins/packs. I know a couple of people have asked me how to see what plugins are available before trying Saltcorn. This could potentially be fixed with a GitHub Action generating some nice user-readable markdown.

  3. Packs - I believe the way pack install works is that the full pack is only downloaded when you install it. We therefore need one json file which has the list of packs with name and description but not the contents, and then a pack file for each pack with the contents in a separate file. Again this would probably need a github action if we want to avoid redundancy and potential for inconsistencies.

glutamate avatar Oct 23 '23 08:10 glutamate

@glutamate We can still use store.saltcorn.com, but fill it from repository. I mean we can configure github workflow that will push aggregated result to saltcorn store using single admin api token.

pyhedgehog avatar Oct 23 '23 18:10 pyhedgehog

@glutamate I've prepared PoC store and repo:

  • https://store20231015.saltcorn.com/
  • https://github.com/pyhedgehog/store20231015 Right now you can simply copy triggers update_ext and update_pack from first one and .github directory from second. It you want, please register on store20231015 tenant and I'll promote you to admin (if you can't do it yourself).

https://github.com/saltcorn/store/pull/1

pyhedgehog avatar Nov 20 '23 02:11 pyhedgehog

@glutamate, ping about https://github.com/saltcorn/store/pull/1 Have you seen it? What objections do you have?

pyhedgehog avatar Dec 04 '23 19:12 pyhedgehog

Yes its good. I am half way through your steps, will try to finish ASAP @pyhedgehog

glutamate avatar Dec 04 '23 19:12 glutamate