Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] Allow delivery to sharedInboxes where possible #847

Merged
merged 13 commits into from
Sep 23, 2022

Conversation

tsmethurst
Copy link
Contributor

This PR adds logic for dereferencing, storing, and delivering to shared inboxes: https://www.w3.org/TR/activitypub/#shared-inbox-delivery

To do this, it adds a migration to add the field shared_inbox_uri to the gtsmodel.Account. This field is a string pointer, with three possible settings:

  • null -- we don't know yet whether this account has a SharedInboxURI, we need to look it up
  • a url string -- the discovered SharedInboxURI of the account
  • an empty string -- we looked it up but the account doesn't have a shared inbox

Logic for looking up the shared inbox of an account has been added to the GetRemoteAccount function in the dereferencer. When that function is called, and we have a null value for SharedInboxURI, the account will be dereferenced (if it hasn't already) to discover the shared inbox address.

This means that shared inboxes will gradually be discovered by your instance as you use it, rather than a bunch of calls happening all at once after updating, potentially breaking things.

If admins want to preserve the old delivery behavior, they can set the new config option instance-deliver-to-shared-inboxes to false :) Then, shared inboxes will still be discovered, they just won't be used. This defaults to true.

@NyaaaWhatsUpDoc
Copy link
Member

Have made a few comments, but otherwise looks good :)

@NyaaaWhatsUpDoc NyaaaWhatsUpDoc merged commit 69a193d into main Sep 23, 2022
@NyaaaWhatsUpDoc NyaaaWhatsUpDoc deleted the shared_inbox_delivery branch September 23, 2022 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants