# Runbook opérationnel — Groupe Méditation ## Opérations courantes ### Inviter un nouveau membre 1. Un membre de l'exécutif ouvre le module **G1 — Inviter** 2. Un code à 12 caractères est généré (expire 48h) 3. Le code est partagé en personne ou par SMS 4. Le nouveau membre ouvre l'app → Inscription → entre le code + prénom + nom + PIN ### Affecter un poste 1. Exécutif ouvre **G3 — Affecter les postes** 2. Sélectionne le membre et le poste 3. Le membre voit immédiatement ses nouvelles tuiles sur l'accueil ### Terminer un mandat 1. Exécutif ouvre **G4 — Terminer un mandat** 2. Sélectionne l'affectation active 3. Saisit une note de transition 4. Les permissions sont retirées instantanément 5. **Rappel** : les mandats ne se terminent jamais automatiquement ### Saisie hebdomadaire typique (pendant/après la réunion) 1. **Trésorier** : S1 (collecte) + S5 (dépenses si applicable) 2. **Animateur** : S4 (thème + annonces) 3. **Resp. jetons** : S2 (si anniversaire ou nouveau) 4. **Resp. littérature** : S3 (si vente) ### Réunion d'affaires mensuelle 1. **Secrétaire** : M2 (présences) → M1 (PV avec décisions) 2. **RSG** : M3 (rapport du district) 3. **Trésorier** : présente le rapport financier (C1) 4. Si vote nécessaire : **G6** (créer sondage) → **C6** (voter) ### Envoi trimestriel des contributions 1. **Trésorier** ouvre **M4 — Envoi contributions** 2. Mode « Calculer » : entre le surplus disponible → répartition auto 3. Mode « Enregistrer » : enregistre chaque envoi individuel 4. La config des % se fait dans **G8** (défaut 30/30/30/10) --- ## Gestion des rapports PDF Les rapports sont disponibles dans **C1 — Rapports PDF** : | Rapport | URL API | Contenu | |---------|---------|---------| | Financier mensuel | `/api/rapports/finances/{annee}/{mois}` | Collectes + dépenses + solde | | Réunions du mois | `/api/rapports/reunions/{annee}/{mois}` | Liste des réunions + thèmes | | Financier complet | `/api/rapports/financier-complet/{annee}/{mois}` | Collectes + dépenses + contributions + impayés | --- ## Surveillance ### Vérifier que l'application tourne ```bash # Service FastAPI sudo systemctl status groupe-meditation # Test santé API curl -s https://groupe-meditation.chezlepro.ca/api/health # Logs temps réel sudo journalctl -u groupe-meditation -f --no-pager # NGINX sudo systemctl status nginx sudo tail -f /var/log/nginx/error.log ``` ### Vérifier les sauvegardes ```bash # Dernière sauvegarde ls -la /var/backups/groupe-meditation/ | tail -5 # Tester une restauration (sur une base test) createdb -U grpmed groupe_meditation_test pg_restore -U grpmed -d groupe_meditation_test /var/backups/groupe-meditation/grpmed_DERNIER.dump dropdb -U grpmed groupe_meditation_test ``` ### Statistiques base de données ```bash sudo -u postgres psql -d groupe_meditation -c " SELECT schemaname, tablename, n_live_tup AS lignes FROM pg_stat_user_tables ORDER BY n_live_tup DESC; " ``` --- ## Opérations d'urgence ### L'API ne répond plus ```bash sudo systemctl restart groupe-meditation sudo journalctl -u groupe-meditation --since "5 minutes ago" ``` ### Un membre a oublié son PIN Pas de récupération en libre-service (par design — sécurité). L'exécutif doit : 1. Utiliser **G2 — Gérer les membres** pour désactiver le membre 2. Recréer une invitation **G1** 3. Le membre se réinscrit avec un nouveau PIN ### Droit à l'oubli (RGPD/Loi 25) 1. Exécutif ouvre **G2 — Gérer les membres** 2. Sélectionne le membre → **Droit à l'oubli** 3. Le système supprime les données personnelles 4. Les données historiques (collectes, PV) sont anonymisées (prénom remplacé) ### Restaurer la base après incident ```bash sudo systemctl stop groupe-meditation # Restaurer la dernière sauvegarde sudo -u postgres dropdb groupe_meditation sudo -u postgres createdb -O grpmed groupe_meditation pg_restore -U grpmed -d groupe_meditation /var/backups/groupe-meditation/grpmed_DERNIER.dump sudo systemctl start groupe-meditation ``` --- ## Matrice des 27 modules par rôle | Module | Trésorier | Secrétaire | RSG | Animateur | Litt. | Jetons | Tous | |--------|:---------:|:----------:|:---:|:---------:|:-----:|:------:|:----:| | C1-C7 Consultation | | | | | | | ✓ | | S1 Collecte | ✓ | | | | | | | | S2 Remise jeton | | | | | | ✓ | | | S3 Vente litt. | | | | | ✓ | | | | S4 Rapport réunion | | | | ✓ | | | | | S5 Dépense | ✓ | | | | | | | | M1 PV | | ✓ | | | | | | | M2 Présences | | ✓ | | | | | | | M3 Rapport RSG | | | ✓ | | | | | | M4 Contributions | ✓ | | | | | | | | M5 Inventaire | | | | | ✓ | | | | M6 Commander jetons | | | | | | ✓ | | | G1-G9 Gestion | ✓ | ✓ | ✓ | | | | | --- ## Contacts et références - **aa87.org** — Site de la Région 87 - **BSG** — Bureau des Services généraux (aa.org) - Documentation API : `https://groupe-meditation.chezlepro.ca/api/docs` --- *«Nos leaders sont des serviteurs de confiance ; ils ne gouvernent pas.» — 2e Tradition*