Aller au contenu

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).

ProjetESM/index

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).

ProjetESM/Documents/index

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