Connexions mutuelles, identités des likers et contenu des commentaires cloisonnés, compteurs publics seulement. Un middleware de visibilité centralisé comme garantie structurelle.
Un produit social fuit par ses bords. La liste de qui aime, qui suit qui, qui commente quoi forme un graphe exploitable. Nous exposons les compteurs, jamais les relations. Le nombre de likes est public. L’identité des likers ne l’est pas. Le graphe existe en base mais n’est jamais sérialisé vers le client.
Cloisonnement par défaut
Les connexions mutuelles ne sont visibles que des deux parties concernées. Aucun endpoint ne retourne la liste d’abonnés d’un tiers. Le contenu des commentaires est rattaché à un fil, pas à un profil interrogeable. Impossible de dresser le journal d’activité d’une personne en agrégeant des vues publiques. La minimisation est appliquée au niveau de la réponse API, pas seulement de l’affichage.
Les compteurs publics suffisent au signal social. Ils donnent la traction sans livrer le réseau. Un acteur qui scrape n’obtient que des agrégats, jamais des arêtes.
Un seul point de décision
Toute lecture passe par un middleware de visibilité unique. Il prend l’identité de l’appelant, la ressource demandée et la relation entre les deux, puis décide. Aucune route ne court-circuite cette couche. Centraliser la décision est la garantie structurelle : on audite un seul module au lieu de chaque contrôleur.
L’EXIF est strippé à l’upload, avant tout stockage. Géolocalisation, modèle d’appareil et horodatage ne survivent pas à l’ingestion. Le principe à retenir : la confidentialité tient quand elle est imposée par l’architecture, pas demandée à chaque développeur.