Lire les documents pertinents avant un changement large. Ne pas recopier leur contenu ici.
## Intention Du Projet
Application PWA mobile-first pour soutenir la vie d'un ou plusieurs groupes AA, sans créer d'interdépendance entre les groupes. L'application doit rester un outil de service, pas une autorité ni un outil de surveillance.
Principes à préserver:
- simplicité pour des membres sur petits téléphones;
- confidentialité et minimisation des données personnelles;
- isolation stricte des groupes;
- journal lisible pour corriger les erreurs et préserver l'historique;
- reprise papier possible;
- ton sobre, pratique, non promotionnel.
## Discipline De Changement
- Limiter les changements au périmètre demandé.
- Ne faire un passage transversal que pour une refonte, un renommage, une sécurité ou une infra explicitement concernés.
- Séparer les commits quand les changements sont de nature différente: fonctionnel, infra, documentation, nettoyage.
- Ne pas modifier les docs sauf si un comportement, une commande ou une règle documentée change.
- Ne pas renommer les variables internes stables sans gain clair ou demande explicite.
- Ne pas nettoyer des fichiers sans lien avec la demande.
- Ne jamais modifier les données métier réelles pour un renommage technique.
## Invariants Fonctionnels
-`Groupe Démonstration` est protégé et existe sur une installation vanille.
- Le sysadmin d'instance est séparé des sysadmins de groupe.
- Le PIN initial du sysadmin est `0000`; il doit pouvoir être changé.
- Une saisie de PIN ne doit jamais être lisible à l'écran.
- Les membres se connectent dans un groupe précis.
- Les routes backend doivent vérifier l'appartenance au groupe courant pour tout ID reçu du client.
- Le frontend peut masquer des modules, mais le backend doit toujours vérifier les permissions.
- Une route multi-groupe doit être revue avec `docs/93_MULTI_GROUPE.md`.
## Déploiement Et Noms Techniques
Nom technique actuel: `app`.
- URL publique: `https://app.87-16.org`
- service systemd: `app`
- chemin applicatif: `/opt/app`
- frontend servi depuis: `/var/www/app`
- sauvegardes: `/var/backups/app`
- cron sauvegarde: `/etc/cron.daily/app-backup`
- hôte Ansible courant: `app-prod`
Le dépôt conserve encore des variables Ansible internes nommées `groupe_meditation_*`. Ne pas les renommer sans demande explicite.
## Sauvegardes Et Multi-Groupe
L'application produit:
- un dump PostgreSQL global;
- une archive JSON restaurable par groupe;
- un dump PostgreSQL par schéma tenant.
Chaque groupe a un `tenant_schema` PostgreSQL. La voie applicative principale utilise encore les tables publiques filtrées par `groupe_id`; les schémas tenant sont préparés pour une bascule future.