offspot / imager-service

Create Kiwix Hotspot microSD cards online
https://imager.kiwix.org/
GNU General Public License v3.0
11 stars 6 forks source link

Discuss new catalog architecture #305

Open kelson42 opened 1 year ago

kelson42 commented 1 year ago

The catalogue of the cardshop provides apps and content which can be installed on Kiwix Hotspot cards. Currently this is:

This model was good enough so far but will be highly challenged because:

The current system will soon start to be pretty cumbersome to maintain and a few things might simply not possible to do.

We need a solution which allows:

kelson42 commented 1 year ago

My current thoughts regarding a new architecture are:

Interrogation: would helm be appropriate/beneficial to use?

rgaudin commented 1 year ago

Do you mean having a single catalog with both content entries and content-sources entries ? Like:

---
contents:
- id: wikifundi-fr
  kind: app
  name: WikiFundi en français
  compose:
    xxx
- id: files-gcompris 
  kind: files-package
  name: Gcompris
  url: https://drive.offspot.it/files/gcompris-1.0.zip
- id: kiwix-zim 
  kind: zim-opds
  catalog: https://library.kiwix.org/catalog/v2
- id: kiwix-dev-zim 
  kind: zim-opds
  catalog: https://dev.library.kiwix.org/catalog/v2
- id: fo-zim
  kind: zim-opds
  catalog: https://catalogs.kiwix.org/FO/catalog/v2
  require-auth: true
- id: kolibri:
  kind: kolibri
  studio: https://studio.learningequality.org
  require-auth: true

Interrogation: would helm be appropriate/beneficial to use?

helm is software. I don't see how this can help. What's powerful and not k8s-related about it is the values expansion/merging feature. I don't know if it's available separately nor if we'll need it. What do you have in mind?

kelson42 commented 1 year ago

Do you mean having a single catalog with both content entries and content-sources entries ? Like:

No, both apps and content sources (like https://download.kiwix.org/library/ideascube.yml for example). The content metadata themselves would have to be then retrieved in a second stage (and dynamically) from the cardshop and/or imager.

Interrogation: would helm be appropriate/beneficial to use?

helm is software. I don't see how this can help. What's powerful and not k8s-related about it is the values expansion/merging feature. I don't know if it's available separately nor if we'll need it. What do you have in mind?

We should probably discuss this directly, but I ask myself if we will need that our apps definition to be templates (so with variables) and then I wonder if we are not reinventing the wheel - helm does that already. Like you see, this is premitive/high level thinking.

rgaudin commented 1 year ago

No, both apps and content sources (like https://download.kiwix.org/library/ideascube.yml for example). The content metadata themselves would have to be then retrieved in a second stage (and dynamically) from the cardshop and/or imager.

I don't get that. ideascube.yml has no content-source (or we're not clear what a content-source is). Only thing different than ZIM catalog is the type: field which I understand we need.

Do you mean having a meta-catalog of content-sources and then dedicated catalogs like the existing Kiwix one for ZIM, a new one for Apps, a new one (or the same) for files ?

Maybe an example of what your catalog(s) could look like would be easier to understand