site_config.jsonDepuis 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é.
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.
Lorsque vous installez ou désinstallez une application via bench, les fonctions internes add_to_installed_apps et remove_from_installed_apps mettent à jour :
installed_applications en base de données (comportement existant, inchangé)installed_apps dans sites/<nom_du_site>/site_config.json (nouveau comportement)site_config.json après synchronisation{
"db_name": "mon_site",
"db_password": "...",
"installed_apps": [
"frappe",
"erpnext",
"dokos"
]
}
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.
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
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.site_config.json pour inventorier les applications déployées sur un serveur.