⁂ Article
ActivityPub user and category outboxes coming soon
Up until today, when you queried a NodeBB user or category's outbox, you would receive an empty OrderedCollection. This was done because the property's inclusion in the actor object was required, but it was not immediately apparent in 2024 how many people utilised this property. Thus it was easier to just send the empty outbox and pursue more urgent functionality.
While sending that empty outbox has not broken any implementations, but it has come to my attention that a few (read: more than 1) other implementors already do, or plans to, read from an actor outbox for backfill purposes.
The upcoming NodeBB v4.10.0 will contain an outbox populated by the contributions by that user or category.
Here's how that works...[...]
Up until today, when you queried a NodeBB user or category's outbox, you would receive an empty OrderedCollection. This was done because the property's inclusion in the actor object was required, but it was not immediately apparent in 2024 how many people utilised this property. Thus it was easier to just send the empty outbox and pursue more urgent functionality.
While sending that empty outbox has not broken any implementations, but it has come to my attention that a few (read: more than 1) other implementors already do, or plans to, read from an actor outbox for backfill purposes.
The upcoming NodeBB v4.10.0 will contain an outbox populated by the contributions by that user or category.
Here's how that works...[...]
For both users and categories, a standard OrderedCollection is returned, with first, last, prev, and next properties for navigation.
For users:
- A combined set of the user's activity is returned in the form of activities (
Create,Like, etc.) — these activities include the user's posts, votes (both up and down), and shares. - Unlike other collections, this one uses a cursor. You can pass
?before=or?after=values in the query string to retrieve items 20 at a time.
For categories:
- A set of posts curated by this category is shown. It can contain both posts local to the instance, and remote posts from outside of the instance.
- All posts are wrapped in the
Announceactivity. If the post is local, it is anAnnounce(Create(Note/Article)), if it is a remote post, then it is just anAnnounce(Object)by reference. - This collection is paged like other collections served by NodeBB.
It is possible that this implementation serves data in an unexpected manner. If this is the case, please reply here to contact me directly so it can be fixed.
I used my best judgement for what to include in the outboxes, as well as using Piefed as a reference implementation. @rimu@piefed.social, I notice that Piefed's community outboxes serve up Announce(Create(Page)) even if the Page is not local to the instance. I was under the assumption that remote content couldn't (shouldn't?) be expanded in this manner because you cannot guarantee the integrity of the data, and so announcing the object by reference is preferred. Just wondering your thoughts on that.