Description
ronan.lenouvel.me est l'instance principale/admin (Ronan). Besoin : pouvoir envoyer un message (email, et/ou bannière in-app) à l'ensemble des utilisateurs de toutes les instances déployées (yannick, coralie, elea, corentin, damien, cf. .deploy-targets) pour prévenir d'une maintenance planifiée, d'une indisponibilité, d'une mise à jour majeure, etc.
Contexte technique — particularité multi-instances
Chaque instance (<prenom>.lenouvel.me) a sa propre base de données isolée (bin/deploy-all.sh, section DB) — il n'existe aujourd'hui aucune table ni connexion partagée entre instances. "Tous les autres" ne peut donc pas être une simple requête SQL : il faut soit :
- un script/commande admin qui se connecte successivement à chaque instance (via SSH, comme
bin/deploy-all.sh le fait déjà pour le déploiement) et déclenche l'envoi localement sur chacune ;
- soit un mini-registre central (liste des instances + leurs users, à maintenir quelque part côté admin) qui pousse les emails directement depuis la machine de Ronan sans passer par chaque instance.
Le mailer est déjà opérationnel sur toutes les instances (MAILER_DSN injecté automatiquement depuis MAILER_DSN_PRESET, cf. #et fix récent) — la brique d'envoi existe (MailerInterface, TemplatedEmail, cf. ShareNotificationMailer/GuestAccountCreator comme modèles à suivre pour le template email).
Points à trancher avant implémentation
- Email uniquement, ou aussi une bannière/notification affichée dans l'app au prochain login ?
- Le déclenchement se fait comment : commande console (
bin/console app:broadcast-message "...") lancée manuellement par Ronan sur chaque instance via SSH (le plus simple, cohérent avec le fonctionnement actuel bin/deploy-all.sh), ou une interface admin dans l'app elle-même ?
- Si bannière in-app : comment un message "poussé" une fois s'affiche puis se dismiss définitivement par utilisateur (éviter qu'il réapparaisse à chaque connexion une fois lu) ?
Critères d'acceptation
Zone concernée
Autre (script d'administration multi-instances, pas une fonctionnalité applicative classique)
Effort estimé
M — 1 journée
Description
ronan.lenouvel.meest l'instance principale/admin (Ronan). Besoin : pouvoir envoyer un message (email, et/ou bannière in-app) à l'ensemble des utilisateurs de toutes les instances déployées (yannick,coralie,elea,corentin,damien, cf..deploy-targets) pour prévenir d'une maintenance planifiée, d'une indisponibilité, d'une mise à jour majeure, etc.Contexte technique — particularité multi-instances
Chaque instance (
<prenom>.lenouvel.me) a sa propre base de données isolée (bin/deploy-all.sh, section DB) — il n'existe aujourd'hui aucune table ni connexion partagée entre instances. "Tous les autres" ne peut donc pas être une simple requête SQL : il faut soit :bin/deploy-all.shle fait déjà pour le déploiement) et déclenche l'envoi localement sur chacune ;Le mailer est déjà opérationnel sur toutes les instances (
MAILER_DSNinjecté automatiquement depuisMAILER_DSN_PRESET, cf. #et fix récent) — la brique d'envoi existe (MailerInterface,TemplatedEmail, cf.ShareNotificationMailer/GuestAccountCreatorcomme modèles à suivre pour le template email).Points à trancher avant implémentation
bin/console app:broadcast-message "...") lancée manuellement par Ronan sur chaque instance via SSH (le plus simple, cohérent avec le fonctionnement actuelbin/deploy-all.sh), ou une interface admin dans l'app elle-même ?Critères d'acceptation
Zone concernée
Autre (script d'administration multi-instances, pas une fonctionnalité applicative classique)
Effort estimé
M — 1 journée