assemblee-virtuelle / semapps

A toolbox to create semantic web applications
https://semapps.org
Apache License 2.0
87 stars 8 forks source link

Proposer un CoreService pour faciliter la configuration de serveurs SemApps #1034

Closed srosset81 closed 2 years ago

srosset81 commented 2 years ago

Tension Mettre en place un serveur SemApps implique maintenant d'importer et configurer une douzaine de services. C'est long et ça oblige à dupliquer le code entre les différents produits (Archipelago, OrganiGraph, ActivityPods, les nouveaux ActivityPub bridge et miniparcours...)

Proposition Créer un CoreService qui inclus par défaut les services suivants:

Avec des settings assez simple:

 {
    baseUrl: null,
    baseDir: null, // Utilisé pour dossier avec keypairs des acteurs
    triplestore: {
      url: null,
      user: null,
      password: null,
      mainDataset: null,
    },
    // La suite est optionelle
    containers: [],
    jsonContext: null,
    ontologies: null,
  }

Pour chaque service, on peut les configurer en utilisant leur nom comme propriété (p.ex. activitypub pour ActivityPub). On peut aussi les désactiver en passant false à cette propriété.

Je garde en dehors les services Auth et WebID car on a pas toujours besoin d'authentification. En plus la configuration est assez complexe, puisqu'on peut choisir plusieurs types d'authentifications (local, OIDC, CAS...). Quant au service WebID, il doit de toute façon faire l'objet d'un refactoring, et peut-être disparaîtra-t-il (?)

Je propose qu'on fournisse un jsonContext par défaut, ainsi qu'une liste d'ontologies.

srosset81 commented 2 years ago

Fait. Je me demande quand même si c'était judicieux d'inclure le MirrorService. D'un côté on a envie d'encourager la présence de ce service pour pouvoir faire du mirroring depuis d'autres serveurs, mais d'un autre, il demande d'avoir un container où créer le bot relay, donc ça complique la configuration de base (même si j'ai inclus un container /bots dans les containers par défaut)

srosset81 commented 2 years ago

A noter que pour le moment, il faut configurer un service auth pour que le CoreService se lance bien, car le service Webfinger a besoin du sous-service auth.account. Je vais voir pour supprimer cette dépendence.