offlure2023-website/docs/developpement/decisions/005-StaticCms.md
2023-04-03 22:54:03 +02:00

3.1 KiB

Proposer une interface de backoffice qui gère le stockage via un repo git

Décision

  • Statut: Accepté
  • Décideurs: reminec, Trollune
  • Date: 2023-03-19

Contexte et Description du Problème

  • La nécessité de ne pas stocker le contenu dans une bdd, mais en fichiers accessibles à des humains.
  • La nécessité d'éditer du contenu via une interface Web plutôt que directement dans la forge logiciel.
  • La nécessité d'utiliser une forge logiciel :
    • Journalisée
    • Décentralisée
    • Asynchrone
    • Collaborative
    • Relecture
  • La nécessité de ne pas à avoir installer le projet sur les postes des collaboratrices.

Éléments moteurs de la décision

  • Possible expertise de nos voisins 2fleurs.
  • Ne pas refaire les formulaire web pour saisir et valider du contenu.
  • Ne pas refaire la couche de stockage qui dialogue avec une forge logiciel.
  • Découplé le backoffice du moteur qui génère les fichiers statiques.

Options considérées

  1. StaticCms
  2. Grav

Décision prise

Nous avons choisi l'option StaticCms car il semble répondre précisement à nos impératifs.

Conséquences Positives

  • Montée en compétences sur une architecture JAMStack.
  • Découple le backoffice de l'API.
  • Possibilité de partager la connaissance et les embuches avec notre voisin 2fleurs.

Conséquences Négatives

  • Incertitudes concernant les possibles.
  • Montée en compétence potentiellement consommatrice de temps et d'énergie.
  • Potentiellement des embûches à prévoir vu la jeunesse du projet.

Les Pour et Contre des Options

StaticCms

Pour

  • Découple le backoffice du moteur qui construit les fichiers statique.
  • Livre des composant d'interfaces apparement prêt à l'emploi.
  • Semble compatible avec la plupart des forges logiciels.

Contre

  • Le nom générique n'inspire pas confiance à reminec :)
  • Le support de Gitea encore en Beta.
  • Le projet semble relativement récent.

Grav

Pour

  • Propulsé par Symfony, environnement connu par @reminec
  • Projet peut-être plus mature du fait de son ancienneté.
  • Plugin pour git (git-sync)

Contre

  • Grav ajouterait des galères sur les fichiers générés du à son formatage de YAML.
  • Ne respecte pas l'architecture JAM : C'est Grav qui va porter
    • la couche 'backoffice'
    • ainsi que la transformation du contenu en fichier statique

Liens

Voir plus loin

Patron de conception ADR

Licenses

CC BY-SA 2.0 FR

Auteurices

Librement traduit depuis adr.github.io

Versions

v1.0.0

Date : 17 mars 2023 | Temps rédaction : 1h | Trollune, reminec

Remerciements