Une plateforme de communication
SUPCHAT réunit espaces de travail, canaux, messages privés, partage de fichiers et clients web et mobile. Le projet a été réalisé avec Paul Mazzon et Rudy Gault.
L’authentification, les permissions et l’infrastructure appartiennent au produit collectif. Je distingue ces fonctionnalités de mes exemples de contribution ci-dessous ; cette présentation ne revendique pas un chiffrement de bout en bout des conversations.
Ma contribution
Réactions et pièces jointes
Faire évoluer le modèle, le contrôleur, le gestionnaire Socket.IO et le hook client pour accompagner les réactions et les fichiers dans les messages privés.
Corriger les messages non lus
Reprendre le calcul et le rafraîchissement des compteurs dans les conversations et la barre latérale afin de réconcilier l’état affiché avec l’API.
Contribuer à la documentation
Mettre à jour la documentation et le manuel utilisateur au fil des corrections, pour rendre les parcours plus compréhensibles et reproductibles.
Un flux qui traverse plusieurs services
- ClientsWeb React · application React Native
- API et événementsNode.js · Socket.IO · contrôle des accès
- DonnéesPostgreSQL · pièces jointes S3
- IntégrationsOAuth · notifications · assistant IA
Les questions de sécurité à traiter
| Actif / risque | Mesure ou démarche | Limite |
|---|---|---|
| Accès à une conversation privée | Vérifier l’identité et l’appartenance à la conversation côté API et côté événements. | Le travail de synchronisation présenté ici ne prouve pas, à lui seul, la couverture de tous les contrôles d’accès. |
| Diffusion d’un fichier ou d’une réaction | Garder cohérents le stockage, les données du message et l’état du client. | Les permissions des objets S3 et des destinataires nécessitent une vérification distincte. |
| Sessions et intégrations externes | Prendre en compte les jetons, les clés d’intégration et les données transmises. | Une connexion HTTPS ou OAuth n’équivaut pas au chiffrement de bout en bout des messages. |
Cette lecture sépare les problèmes de fiabilité — par exemple un badge de notification incorrect — des garanties de confidentialité. Je ne présente pas une correction d’interface comme une preuve de sécurité globale.
Des contributions consultables
- Dépôt et documentation SUPCHAT ↗
- Mon changement sur réactions et pièces jointes ↗
- Ma correction des messages non lus ↗
- Ma mise à jour de documentation ↗
La documentation décrit une participation collective au frontend, au backend, au mobile et à l’infrastructure. Je m’appuie ici sur des modifications précises plutôt que sur le nombre de commits pour décrire mon travail.
Ce que je retiens
Le temps réel demande de raisonner sur l’état stocké, l’événement émis et l’état affiché. Tracer un message entre ces couches aide à expliquer un dysfonctionnement et à identifier les points où les droits doivent être revérifiés.