Aller au contenu

QG Efalia

Le QG est une application web de centralisation des informations nécessaires à chaque instance de chaque logiciel de l'entreprise.

Cela permet donc de configurer à distance chaque instance de manière personnalisée.

Concernant MGX, on pourra par exemple trouver dans chaque manifeste :

  • l'activation/désactivation des licences d'utilisation,
  • l'activation/désactivation de certaines fonctionnalités (feature flags),
  • la configuration de Sentry utilisé pour la remontée d'erreurs PHP,
  • et encore beaucoup d'autres fonctionnalités à venir.

Implémentation

Le QG configure des manifestes destinés à chaque instance dans un fichier JSON statique. Celui-ci est ensuite récupéré et interprété par chaque instance pour prendre en compte les manifestes.

Dans MGX, ce fichier JSON est transformé en fichier .env.prod.local servant à configurer l'ensemble de Symfony (après une reconstruction du cache).

  • Première itération (validation de la transmission) :
    • Création manuelle du fichier JSON statique dans le QG avec uniquement l'url de Sentry.
    • Récupération de ce fichier par les instances par action volontaire (bouton dans l'admin).
    • Transformation du fichier JSON en fichier env et reconstruction du cache.
  • Seconde itération (blocage de l'application si nécessaire) :
    • Ajout de l'information d'accès total à l'application dans le fichier JSON.
    • Utilisation de cette information dans l'API pour retourner un code HTTP 402.
    • Interpretation de ce code 402 dans le front.
  • Troisième itération (ajout de la notion de validité journalière) :
    • Génération automatique des fichiers JSON en ajoutant le date du jour avec un CRON.
    • Automatisation de la récupération du fichier JSON par les instances avec un CRON.
  • Quatrième itération (ajout de la sécurité) :
    • Ajout d'un secret dans les fichiers JSON générés.
    • Vérification du secret sur chaque instance.

Serveur QG