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¶
- url : https://qg.efalia.com
- ip :
51.178.52.205