rp-community
Objectif
Structure et gouvernance du forum : sections, sujets, leurs auteurs et les personnes qui peuvent les voir. Les échanges sous un sujet ne se trouvent pas ici — un sujet contient un et les messages se trouvent dans threadId.rp-threads
Limite de responsabilité
Gère les sections et les sujets. N'appelle ni ni aucun autre dépôt : rp-threads génère un createTopic et le renvoie, puis l'appelant enregistre lui-même le fil et rédige le message d'ouverture.threadId
Identité et attribution
n'est jamais accepté d'un appelant. Il est lu depuis le jeton vérifié via createdBy, que getCurrentWorkspaceContext() privilégie par rapport à toute valeur déclarée dans l'enveloppe. Les identifiants des sujets et des fils sont générés ici pour la même raison — un identifiant qu'un client peut choisir est un identifiant qu'il peut usurper, et la table des balises d'accès n'enregistre aucun type d'objet permettant de détecter la collision.messaging-backend
Visibilité
Les sections et les sujets possèdent une colonne (visibility | public | authenticated | private), et un nouveau sujet hérite de la valeur de sa section, sauf s'il demande une valeur plus restrictive. Les balises associées à tagged appartiennent à la relation partagée tagged décrite dans access_tags ; cette partie n'est pas encore implémentée, donc aujourd'hui access-control.md est enregistrée mais n'est pas appliquée.visibility
Verrouillage
est le seul endroit où un verrou peut être appliqué : touchTopicActivity accepte un message sans savoir que les sujets existent, donc un écran appelle cette fonction après la publication et considère un refus comme un échec de publication.rp-threads
Dépendances directes du module
,back-core,nrpcg-community
Appartenance à la solution
communications
Source
modules/repositories/communications/rp-community