rp-community
Purpose
Forum structure and ownership: sections, topics, who wrote them and who may see
them. The discussion under a topic is not here — a topic carries a threadId
and the messages live in .rp-threads
Responsibility boundary
Owns sections and topics. Does not call or any other repository:rp-threads mints a createTopic and hands it back, and the caller registers thethreadId
thread and writes the opening post itself.
Identity and authorship
is never accepted from a caller. It is read from the verified tokencreatedBy
through , which getCurrentWorkspaceContext() prefers overmessaging-backend
anything the envelope claims. Topic and thread ids are minted here for the same
reason — an id a client can choose is an id it can steal, and the access-tag
table records no object type to catch the collision.
Visibility
Sections and topics carry a column (visibility | public |authenticated | private), and a new topic inherits its section's value unless ittagged
asks for something narrower. The tags behind belong in the sharedtagged relation described in access_tags; that half is notaccess-control.md
implemented yet, so today is recorded but not enforced.visibility
Locking
is the only place a lock can be enforced: touchTopicActivityrp-threads
accepts a message without knowing topics exist, so a screen calls this after
posting and treats a refusal as a failed post.
Direct module dependencies
,back-core,nrpcg-community
Solution membership
communications
Source
modules/repositories/communications/rp-community