1b12: Group Federation
NodeBB has elected to follow FEP 1b12 for Group Federation. Nomenclature-wise, the term "group" here refers to the content submitted by a collection of users, represented by the Group
Actor Type.
The proposal explicitly mentions "internet forums", and this concept is most analogous to both user groups and categories in NodeBB. In NodeBB, FEP 1b12 is implemented for categories only.
Our implementation
Each category in NodeBB is potentially able to federate content outward to the fediverse. They identify themselves as Group
actors, and can maintain follow relationships with other actors/remote-users.
Additionally, NodeBB categories can follow other Group
actors. This special handling was created in order for categories across disparate forums (e.g. separate NodeBB instances, or even other AP-enabled forum software) to synchronize their content with each other.
The audience
NodeBB sets the audience
property to the NodeBB category that houses a particular post. While the FEP was written with the expectation that the audience
is one order higher than the post, in forums, the audience
is actually the second-order parent, with the first-order parent being the topic, which is expressed in context
(see FEP 7888.)
The handle
Each category is given a handle that can be used to reference it locally or remotely. Like users and user groups, they must be unique, and the default is a "slugified" variant of the category name (e.g. "Category About Cats" would have the default handle category-about-cats
.)
The announce
Whenever a user (local to the forum or remotely) posts content (new topic or reply), that category will federate an Announce
activity to its followers, for that new post. This is analogous to an internet "share", and allows posted content to be more widely consumed by relevant parties.
There is no Announce
federation for the Uncategorized category.
Direct address
Remote users may post new topics to a category by directly addressing their handle. In the contrived example above, a user may elect to post a new Note
to @[email protected]
, and the category will capture that post and automatically slot it in the category.