đ Newsletter de la cellule technique
Ce quâon a Ă©crit dans xWiki
(Ă venir - Votre documentation est votre meilleure alliĂ©e. Nâoubliez pas de mettre Ă jour les procĂ©dures, les designs techniques et les dĂ©cisions dâarchitecture !)Ce quâon a fait
đ NâhĂ©sitez pas Ă partager vos travaux, vos projets, ou vos POC pour la prochaine newsletter !Ce quâon a vu dâintĂ©ressant
đ§ DTO vs Entity : un petit concept. Un impact Ă©norme.
Pourquoi ne pas retourner directement vos entitĂ©s de base de donnĂ©es dans vos APIs ? Parce que⊠ça vous sauvera la mise Ă moyenne et longue terme.âYour database model is not your API contract.â â une phrase simple, mais qui mĂ©rite dâĂȘtre gravĂ©e en lettres dâor dans tout design dâAPI.

đ Rappel technique :
- Entity â structure interne, liĂ©e Ă la BD : contient toutes les colonnes, relations, champs sensibles, mĂ©tadonnĂ©esâŠ
- DTO â objet de transfert : uniquement les donnĂ©es utiles pour le consommateur. ContrĂŽlĂ©, sĂ©curisĂ©, Ă©volutif.
- đĄïž SĂ©curitĂ© : pas de fuite accidentelle de donnĂ©es sensibles (ex:
password_hash,internal_id) - đ DĂ©couplage : vous pouvez modifier votre schĂ©ma sans casser les clients
- đ§Œ RĂ©ponses propres : pas deâbagageâ inutile, pas de donnĂ©es techniques exposĂ©es
- đ APIs Ă©volutives : vous pouvez adapter votre contrat API sans toucher la couche mĂ©tier
đĄ Câest souvent la premiĂšre chose quâon oublie⊠et la premiĂšre chose quâon regrette quand le premier client externe demande âpourquoi jâai reçu ce champ lĂ ?â
đïž FastAPI : une structure qui scale vraiment (et pas juste au dĂ©but)
On a tous commencĂ© par tout mettre dans un seul fichier⊠puis on a compris que âça marche tant que ça reste petitâ â et câest lĂ que tout se casse.âGood engineers focus on structuring them.â â pas juste sur Ă©crire les endpoints, mais sur les organiser dĂšs le dĂ©part.
đ Structure recommandĂ©e (et Ă©prouvĂ©e) :

app/ âââ routers/ â API endpoints (les routes)
âââ services/ â Logique mĂ©tier (ce quâon appelle âbuisness logicâ)
âââ models/ â ModĂšles de base de donnĂ©es (ORM)
âââ schemas/ â SchĂ©mas Pydantic (validation des entrĂ©es/sorties)
âââ core/ â Config, logging, middlewares, utils globaux
âââ db/ â Connexion, session, gestion du pool
âââ main.py â Point dâentrĂ©e (et rien dâautre)
â Pourquoi ça marche :
- đ§© SĂ©paration des responsabilitĂ©s claire â chaque dossier a un rĂŽle prĂ©cis
- đ DĂ©bogage simplifiĂ© â on sait exactement oĂč chercher
- đ ĂvolutivitĂ© garantie â ajouter un module ne casse pas le reste
- đ„ Meilleure collaboration â deux devs peuvent bosser sans se marcher dessus
đĄ Ce nâest pas de la sur-architecture â câest de la prĂ©vention. La structure ne vous ralentit pas⊠elle vous sauve du chaos quand le projet grandit.
đĄïž Stop aux DELETE durs â adoptez les soft deletes en Spring Boot !
Vous avez dĂ©jĂ dĂ» restaurer une base parce quâun user a supprimĂ© un truc par erreur ? Ou pire : vous avez dĂ» gĂ©rer des erreurs de clĂ© Ă©trangĂšre en chaĂźne ? Câest lĂ quâon pense Ă âsoft deleteâ.LâidĂ©e : ne pas effacer, mais marquer comme âinactifâ. Et laisser JPA/Hibernate faire le boulot Ă votre place.

đ Comment ça marche (en 3 Ă©tapes) :
1. Entity Setup
Ajoutez
@SQLDelete pour transformer DELETE en UPDATE, et @Where pour filtrer automatiquement les enregistrements âdĂ©letĂ©sâ dans les findAll() :java @Entity
@SQLDelete(sql = "UPDATE product SET deleted = true WHERE id=?")
@Where(clause = "deleted=false")
public class Product {
@Id
private Long id;
private String name;
private boolean deleted = false;
}
2. Repository â aucune modification !
Votre
repository.delete(product) reste le mĂȘme â mais Hibernate exĂ©cute en rĂ©alitĂ© un UPDATE â pas de rupture de compatibilitĂ©, pas de refacto.3. BĂ©nĂ©fices immĂ©diats :
- đ Restauration facile : une simple mise Ă
deleted = false - đ IntĂ©gritĂ© relationnelle prĂ©servĂ©e : plus de âForeign Key Constraintâ en cascade
- đ Audit complet : vous gardez lâhistorique de tout ce qui a existĂ© (utile pour admin, logs, etc.)
Besoin de voir les donnĂ©es âsoft deletedâ (ex : dashboard admin) ?
â Activez manuellement le filtre Hibernate ou Ă©crivez une requĂȘte native avec
@Query pour ignorer le @Where.đš Un bon rappel : âsupprimerâ câest souvent une opĂ©ration irrĂ©versible⊠sauf si vous choisissez de ne pas le faire.
đ MD5 : câest mort. Et ça a Ă©tĂ© prouvĂ© â en moins dâune minute.
60 % des mots de passe hachĂ©s en MD5⊠craquĂ©s en moins dâune heure.
48 %⊠en moins dâune minute.
Avec une seule RTX 5090.
â Et non, ce nâest pas une simulation. Câest une Ă©tude de Kaspersky, basĂ©e sur 231 millions de mots de passe rĂ©els volĂ©s entre 2023 et 2026.
đ Ce que ça veut dire pour nous :
- MD5 nâest pas un algorithme de hachage sĂ©curisĂ© pour les mots de passe.
- MĂȘme avec un âsaltâ, si le mot de passe est faible, il tombe en quelques secondes.
- Le âcracking intelligentâ (basĂ© sur les mots courants, les modĂšles, les substitutions) fait des ravages.
- đ« Interdire MD5, SHA1, SHA256 pour les mots de passe.
- â Utiliser des algorithmes conçus pour les mots de passe :
bcrypt (solide, éprouvé)
â scrypt (rĂ©sistant Ă lâattaque sur mĂ©moire)â
Argon2 (le gagnant du Password Hashing Competition, recommandĂ© par OWASP)- đ Toujours utiliser un salt unique par utilisateur.
- đ Exiger des mots de passe longs (12+ caractĂšres), uniques, complexes â et les gĂ©rer via un password manager.
Le hachage, ce nâest quâune couche.
- Une fuite de mot de passe en clair via phishing / keylogger reste possible â prĂ©vention des risques humains (formation, MFA, monitoring).
- Un mot de passe faible = hachage fort ou pas, il tombe quand mĂȘme.
đš Si tu vois du MD5 dans un projet â et que câest une version rĂ©cente â câest une alerte rouge. Ă corriger. Maintenant.
đ€ IA gĂ©nĂ©rative = plus de code⊠mais aussi plus de failles (si on ne vĂ©rifie pas)
On gĂ©nĂšre du code plus vite que jamais⊠mais on lâintroduit aussi plus vite en prod â avec des vulnĂ©rabilitĂ©s cachĂ©es.đ Chiffre choc : prĂšs de 50 % du code gĂ©nĂ©rĂ© par IA contiendrait des bugs de sĂ©curité⊠si personne ne le checke.
đ Ce que ça change pour nous :
- On ne peut plus âfaire confianceâ au code gĂ©nĂ©rĂ© â mĂȘme si câest fluide, logique, bien indentĂ©.
- LâIA ne connaĂźt pas votre contexte de sĂ©curitĂ©, vos rĂšgles mĂ©tier, vos anciens bugs, vos dĂ©pendances critiques.
- Le code généré = code à auditer. Point.
- đĄïž Snyk intĂšgre Claude pour scanner et corriger automatiquement les vulnĂ©rabilitĂ©s dans le code IA.
- đ§© Apparition de solutions AppSec ânatives IAâ â qui sâimmiscent dĂšs la phase de dĂ©veloppement (IDE, PR, CI/CD).
- đ Tendance clĂ© : La sĂ©curitĂ© âshifting leftâ devient âshifting left + auto-piloteâ â intĂ©grĂ©e, continue, silencieuse⊠mais prĂ©sente.
đĄ Ce nâest pas une question de âfaut-il utiliser lâIAâ â câest une question de âcomment on garantit la qualitĂ© ET la sĂ©curitĂ© quand on lâutiliseâ.
đ€ GitLab Duo en mode âCode Reviewâ â testĂ©, pas diffusĂ© (encore)
Parce que lâIA, câest bien⊠mais pas Ă tout prix. Surtout quand ça coĂ»te.đ Ce quâon a fait :
- Activé GitLab Duo pour Code Review sur un projet pilote (volontairement isolé).
- Pas encore dĂ©ployĂ© partout â parce quâon veut tester la pertinence avant de payer. Et surtout : avant de crĂ©er une dĂ©pendance.
- LâIA propose des corrections syntaxiques, des suggestions de refactoring, parfois mĂȘme des alertes de sĂ©curitĂ© đ€Ż
- Parfois⊠un peu trop âĂ la lettreâ â demande une relecture humaine systĂ©matique
- Le plus utile ? Gagner du temps sur les reviews âbasiquesâ (format, naming, erreurs bĂȘtes) â libĂšre de lâĂ©nergie pour les parties complexes
- đ° Impact facturation : est-ce que lâoutil est "payant Ă lâusage" ? Ou "par projet" ? Ou "par commit analysĂ©" ?
- đ§ QualitĂ© des suggestions : est-ce que ce sera un âcollĂšgue IAâ fiable⊠ou un âassistant qui fait des trucs bizarresâ ?
- đ Acceptation par lâĂ©quipe : les devs vont-ils âsâen servirâ, ou âlâignorerâ ?
đš On ne lance pas un outil IA parce que câest Ă la mode â on le teste, on lâobserve, on mesure son retour sur investissement (et non pas juste le coĂ»t).
đ OnlyOffice : on lâa vu⊠et on lâa installĂ© (en mode âĂ voirâ)
Parce que quand on parle de collaboration documentaire, Word Online câest bien⊠mais on veut aussi de lâopen source, de la self-hosting, et surtout, de la compatibilitĂ© avec les fichiers existants.
đ Ce quâon a fait :
- DĂ©couvert OnlyOffice en mode âĂ©valuationâ â aprĂšs plusieurs demandes de lâĂ©quipe pour Ă©diter des .docx/.xlsx en ligne, sans quitter GitLab ou notre intranet.
- InstallĂ© en local / dans notre infra (sans yet en prod pour tous) â testĂ© avec quelques documents rĂ©els (rapports, specs, specs fonctionnelles).
- đ CompatibilitĂ© OK avec les fichiers Word/Excel/PPT â mĂȘme les plus âcompliquĂ©sâ (tableaux, styles, macros basiques).
- đ IntĂ©gration possible avec GitLab, Nextcloud, ou tout autre systĂšme via son API ou ses connecteurs.
- đ„ïž Interface fluide : pas de surprise, câest comme Office ou LibreOffice⊠mais dans le navigateur.
- đĄïž Avantage clĂ© : hĂ©bergement contrĂŽlĂ© â pas de fuite de donnĂ©es vers des clouds externes.
- Performance sur fichiers lourds (> 10Mo) ou trÚs structurés
- Gestion des conflits en Ă©dition collaborative (multi-utilisateurs en mĂȘme temps)
- Support technique et mise à jour réguliÚre (surtout en auto-hébergement)
đĄ Ce nâest pas une âmigration immĂ©diateâ â câest une âalternative Ă testerâ avec des cas dâusage concrets. Et surtout : sans forcer lâĂ©quipe Ă changer ses habitudes.
đ Murena Workspace : un Ă©cosystĂšme "privacy-first" quâon a explorĂ© (et testĂ© en parallĂšle)
Parce que quand on parle de collaboration, de productivité⊠et de vie privĂ©e â on ne se contente plus de âce qui marcheâ, mais de âce qui respecteâ.đ Ce quâon a fait :
- DĂ©couvert Murena Workspace (anciennement /e/ Workspace) â une suite open source, auto-hĂ©bergĂ©e, centrĂ©e sur la vie privĂ©e, la sĂ©curitĂ©, et lâindĂ©pendance vis-Ă -vis des GAFAM.
- InstallĂ© en environnement de test â avec quelques modules clĂ©s : calendrier, messagerie, gestion de tĂąches, partage de fichiers (via Nextcloud ou OwnCloud intĂ©grĂ©e).
- ComparĂ© en parallĂšle avec OnlyOffice, GitLab, ou Outlook/Teams â surtout sur lâexpĂ©rience utilisateur, lâintĂ©gration, et les contraintes techniques.
- đ Philosophie forte : pas de traçage, pas de publicitĂ©, pas de donnĂ©es stockĂ©es ailleurs â un vrai plus pour les projets sensibles ou rĂ©glementĂ©s.
- đŻ Interface clean, fluide â pas aussi riche que Teams, mais plus lĂ©gĂšre, plus directe.
- đ§© Modulaire : on installe que ce quâon veut â pas de âsuite bloatĂ©eâ.
- âïž Auto-hĂ©bergement possible â compatible avec nos infra, mais demande un peu de maintenance (updates, backup, certificatsâŠ).
- đ InteropĂ©rabilitĂ© : supporte CalDAV, CardDAV, WebDAV â intĂ©gration possible avec Thunderbird, Android, etc.
- Performance et stabilité sur usage intensif (multi-utilisateurs, synchronisation en temps réel)
- Support des formats Office (comparĂ© Ă OnlyOffice) â limitĂ© ou via intĂ©gration externe
- Documentation et communautĂ© â moins fournie que GitLab ou Nextcloud, mais en croissance
đĄ Ce nâest pas un âremplacement de Teamsâ â câest une âalternative Ă©thique et techniqueâ Ă tester dans des cas prĂ©cis. Et surtout : sans sacrifier la productivitĂ© pour la philosophie.
đ€ McDonaldâs Support vs LLM : quand les guardrails sâeffondrent⊠et que vous obtenez un code Python Ă la place dâun menu
Parce que mĂȘme les chatbots les plusârĂ©glementĂ©sâ peuvent ĂȘtre dĂ©tournĂ©s â et parfois, câest justement lĂ que ça devient fascinant (ou inquiĂ©tant).đ Ce quâon a vu :
- Une conversation simulĂ©e avec le âsupport McDonaldâsâ :

â Ce qui est vraiment intĂ©ressant ici :
- đ§ Les prĂ©-prompts (ou guardrails) sont contournables.
- đ Les LLMs ne âobĂ©issentâ pas â ils âinterprĂštentâ.
- đŠ En rĂ©action, les utilisateurs sur X (Twitter) se moquaient :
â ïž Pourquoi ça nous concerne en tech :
- đĄ En entreprise, on croit souvent quâun LLM âverrouillĂ©â reste dans son contexte â mais la rĂ©alitĂ© est plus fluide.
- đȘïž Les LLMs peuvent âhallucinerâ â ou dans ce cas, âhalluciner utilementâ.
- đ Ce qui est drĂŽle en demo⊠peut devenir un risque de sĂ©curitĂ© ou de compliance en prod : imaginez un chatbot RH qui commence Ă donner des conseils juridiques⊠ou un bot de support bancaire qui gĂ©nĂšre du code.
đ MoralitĂ© : si McDonaldâs peut te donner un algorithme de liste chaĂźnĂ©e⊠alors ton LLM dâentreprise peut aussi faire bien plus que ce quâil est censĂ© faire â et ce nâest pas toujours prĂ©vu. Soyez vigilants⊠et un peu amusĂ©s.
Ce quâon va creuser
đ NâhĂ©sitez pas Ă partager vos trouvailles, vos alertes, ou vos âaha momentsâ pour la prochaine newsletter !â La cellule technique