We now have basic, working federation, but a lot of things are still missing. Some of these issues should be quite easy to solve, and we would be happy about contributions. Just get in touch first so we can coordinate things.
Backend
Features
[x] use same url for apub id / apub json / html
[x] federate comments (create, update)
[x] federate votes
[x] Add community id to the actors of accept.
[x] The to field on accept is wrong, its sending it to the wrong actor, a community should be sending accept to the user's inbox.
[x] Add an ap_id to the communityfollower table. Seems weird that every little thing needs an id, but it do.
[x] implement deleting community, post, comment
[x] Add Undo actions for things like delete, remove, upvote, downvote, follow
[x] Community updates: make sure nsfw and sidebar changes propagate
nsfw is updated fine after update interval
description change is not propagated
[x] federate post::stickied,
[x] Fetch all inreplyto objects: #694
[x] Proper CommunityFollower forwarding: #662
[x] In all the receives, in addition the the signature verify, do a check to make sure they are actually allowed to do the action.
Security and Maintenance
[x] Ensure urls start with https:// and verify attributedTo, ID and pubkey URLs are from the same domain/actor
[x] limit number of additional fetches for each activtypub object or activity (only necessary for outbox, other than that we arent doing recursive/list fetching)
We now have basic, working federation, but a lot of things are still missing. Some of these issues should be quite easy to solve, and we would be happy about contributions. Just get in touch first so we can coordinate things.
Backend
Features
to
field on accept is wrong, its sending it to the wrong actor, a community should be sending accept to the user's inbox.Security and Maintenance
Option::ok_or()
)