Administration

Synchronisation des applications installées dans site_config.json

Depuis Dodock v16, la liste des applications installées est automatiquement synchronisée dans site_config.json, permettant aux outils externes de la lire sans connexion à la base de données.

Synchronisation des applications installées dans site_config.json

Depuis Dodock v16, chaque installation ou désinstallation d'une application met automatiquement à jour la liste installed_apps dans le fichier site_config.json du site concerné.

Pourquoi cette fonctionnalité ?

Avant cette évolution, connaître la liste des applications installées sur un site nécessitait soit d'ouvrir une connexion à la base de données, soit de lancer un processus Frappe/Dodock complet. Ces deux opérations sont coûteuses, notamment dans des contextes d'outillage (scripts CI/CD, sondes de supervision, outils d'administration multi-sites).

Avec cette synchronisation, un simple accès en lecture au fichier site_config.json suffit pour obtenir la liste des applications installées.

Comportement

Lorsque vous installez ou désinstallez une application via bench, les fonctions internes add_to_installed_apps et remove_from_installed_apps mettent à jour :

  1. La table installed_applications en base de données (comportement existant, inchangé)
  2. La clé installed_apps dans sites/<nom_du_site>/site_config.json (nouveau comportement)

Exemple de site_config.json après synchronisation

{
  "db_name": "mon_site",
  "db_password": "...",
  "installed_apps": [
    "frappe",
    "erpnext",
    "dokos"
  ]
}

Migration des sites existants

Un patch de migration est inclus dans Dodock v16. Lors de la prochaine exécution de bench migrate, la clé installed_apps est automatiquement ajoutée au site_config.json de chaque site existant, en reflétant l'état actuel de la base de données.

bench --site mon-site.localhost migrate

Aucune action manuelle n'est requise.

Flux de synchronisation

Utilisation depuis un script externe

Une fois la synchronisation active, vous pouvez lire la liste des applications sans démarrer Dodock :

import json
from pathlib import Path

site_config_path = Path("sites/mon-site.localhost/site_config.json")
config = json.loads(site_config_path.read_text())
apps = config.get("installed_apps", [])
print(apps)  # ['frappe', 'erpnext', 'dokos']

Ou en shell :

jq '.installed_apps' sites/mon-site.localhost/site_config.json
La clé installed_apps dans site_config.json est gérée automatiquement par Dodock. Ne la modifiez pas manuellement ; toute modification manuelle sera écrasée à la prochaine installation ou désinstallation d'application.

Cas d'usage typiques

  • Scripts de déploiement : vérifier rapidement qu'une application est bien installée avant de lancer une migration.
  • Supervision : sonder l'état des applications sans connexion base de données.
  • Outils multi-sites : parcourir plusieurs site_config.json pour inventorier les applications déployées sur un serveur.