Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Exploitation

Synchronisation des applications installées dans site_config.json

La liste des applications installées sur un site est recopiée dans site_config.json, pour que les outils externes la lisent sans connexion à la base de données.

Synchronisation des applications installées dans site_config.json

Dans la version en développement de Dodock, 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é ?

Sans cette copie, lire la liste des applications d'un site demande une connexion à la base de données ou un processus Dodock complet. Avec elle, il suffit de lire le fichier site_config.json. C'est utile pour les scripts de déploiement, les sondes de supervision et les outils multi-sites.

En v5, la liste n'est pas recopiée dans site_config.json. Utilisez bench --site <site> list-apps.

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 liste des applications installées en base de données ;
  2. la clé installed_apps dans sites/<nom_du_site>/site_config.json.

Si l'écriture du fichier échoue, l'installation continue sans message. La base de données reste la référence.

Exemple de site_config.json après synchronisation

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

Migration des sites existants

Un patch de migration (sync_installed_apps_to_site_config) est inclus. 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', 'hrms']

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 à la main : la prochaine installation ou désinstallation d'application écrase la modification.

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.