Synthèse de session — 2026-07-04 (2h → 7h)¶
Contexte¶
Session longue et transversale, démarrée sur le câblage du module Auth
dans jobPipeline, ayant dérivé vers une refonte de l'organisation du
wiki second-memory lui-même (centralisation des Documents/, incident
de sécurité trouvé et corrigé). Synthèse écrite parce que le fil
narratif reliant ces sujets n'apparaît dans aucune note individuelle.
Contenu¶
1. Câblage du module Auth dans jobPipeline¶
Container DI et routeur Express dédiés pour @kanmaber/auth-backend,
sans toucher au système existant. Bug réel trouvé et corrigé dans le
package partagé (idRole hardcodé role_observateur utilisé comme
FK → résolution dynamique par code de profil). Piège de cache npm sur
dépendances file:...tgz documenté et résolu (bump de version
systématique). Test end-to-end réel réussi (inscription + connexion).
→ jobPipeline/architecture/procedure-cablage-auth-package, jobPipeline/debug/lecons-cablage-auth-package, jobPipeline/debug/test-integration-packages-file-vs-tarball
2. Délivrabilité email (SMTP)¶
Diagnostic en cascade : rejet 550 SPAM (serveur mutualisé LWS) → port
465 bloqué par le VPS (basculé sur 587, ça a débloqué l'envoi) →
sélecteur DKIM cassé sur caritasbenin.org (ticket envoyé à LWS) →
distinction cruciale entre caritasbenin.org (administration, hors de
contrôle de Bernard) et caritasbenin.com (vrai domaine de travail,
bloqué plus radicalement par un filtre anti-spam serveur, nécessitant
Brevo/ZeptoMail). Note non-technique rédigée pour l'administration
Caritas.
→ jobPipeline/decisions/explication-non-technique-echec-envoi-emails-caritasbenin, jobPipeline/decisions/procedure-securisee-dns-caritasbenin-com, jobPipeline/decisions/ticket-lws-dkim-caritasbenin-org
3. Bug d'infrastructure du wiki lui-même¶
Le rechargement automatique de mkdocs serve ne fonctionnait jamais
(bug de la bibliothèque Click sur l'option --livereload, qui résout à
False par défaut). Diagnostiqué par instrumentation directe du code,
corrigé en recréant le conteneur avec le flag explicite.
→ shared/debug/mkdocs-serve-livereload-desactive-bug-click
4. Import de ProjetESM dans le wiki¶
Nouveau projet importé en profondeur : 13 notes (architecture fonctionnelle, système RBAC à 32 permissions/8 profils, audits de conformité DDD, postmortem de déploiement Docker, référence API 196 routes, module MEAL/indicateurs, guide PWA offline, 4 bugs de production corrigés).
5. Décision de centralisation — "un seul git pull doit tout donner"¶
Bernard a explicitement rejeté le modèle initial (fichiers sources
bruts dans projets/<projet>/Documents/, notes distillées dans le
wiki — deux dépôts séparés à puller). Décision : déplacer physiquement
tous les dossiers Documents//docs/ trouvés dans projets/ vers
second-memory/wiki/<projet>/Documents/, comme section de menu à part
entière (pas juste un tableau dans index.md).
Dossiers traités : jobPipeline, ProjetESM, projets/docs/
(transversal), tekdhi-site, gestionFichePaie (DDD_Module),
PsychoEnLigne. Intégrité vérifiée par comparaison de taille avant
chaque suppression ; suppressions commitées séparément dans les dépôts
git concernés (ProjetESM, gestionFichePaie, PsychoEnLigne — jobPipeline
et tekdhi-site n'ont pas de dépôt git).
6. Incident de sécurité trouvé et corrigé¶
Deux fichiers (env.md, guide-deploiement-backend.md de ProjetESM)
contenant de vrais secrets (JWT, mot de passe DB) ont été déplacés tels
quels et poussés sur GitHub avant la mise en place d'une
vérification systématique — repéré a posteriori, corrigé (copies
censurées dans le wiki). Une note préexistante avec un mot de passe en
clair (tekdhi) également nettoyée. Exception assumée : ces deux
fichiers ProjetESM ont été restaurés avec leurs vraies valeurs dans le
dépôt du projet (bd7dfa1) — ce sont les deux seuls fichiers
volontairement dupliqués (censuré dans le wiki + vraies valeurs dans le
projet).
Décision / Conclusion¶
Règle retenue pour la suite : toute demande "enregistre dans
Documents" s'écrit désormais directement dans
second-memory/wiki/<projet>/Documents/, jamais dans
projets/<projet>/Documents/. Avant tout déplacement physique vers le
wiki (dépôt git poussé sur GitHub), vérification systématique par grep
du lot entier de fichiers pour des secrets réels — pas fichier par
fichier au fil de l'eau. Si un fichier contient un vrai secret dont le
projet a besoin localement : copie censurée dans le wiki, original avec
vraies valeurs dans le dépôt du projet concerné.
Accès SSH du VPS aux deux dépôts privés concernés (second-memory,
ProjetESM) vérifié et confirmé fonctionnel en fin de session.
Liens connexes¶
- jobPipeline/index — index du projet jobPipeline
- ProjetESM/index — index du projet ProjetESM
- shared/debug/mkdocs-serve-livereload-desactive-bug-click — bug d'infrastructure du wiki
- tekdhi/Documents/index, DDD_Module/Documents/index, PsychoEnLigne/Documents/index — autres centralisations de la session