mastodon/app/workers
ThibG f29918e707 [WiP] Whenever a remote keypair changes, unfollow them and re-subscribe to … (#4907)
* Whenever a remote keypair changes, unfollow them and re-subscribe to them

In Mastodon (it could be different for other OStatus or AP-enabled software),
a keypair change is indicative of whole user (or instance) data loss. In this
situation, the “new” user might be different, and almost certainly has an empty
followers list. In this case, Mastodon instances will disagree on follower
lists, leading to unreliable delivery and “shadow followers”, that is users
believed by a remote instance to be followers, without the affected user
knowing.

Drawbacks of this change are:
1. If an user legitimately changes public key for some reason without losing
   data (not possible in Mastodon at the moment), they will have their remote
   followers unsubscribed/re-subscribed needlessly.
2. Depending of the number of remote followers, this may generate quite some
   traffic.
3. If the user change is an attempt at usurpation, the remote followers will
   unknowingly follow the usurper. Note that this is *not* a change of
   behavior, Mastodon already behaves like that, although delivery might be
   unreliable, and the usurper would not have known the former user's
   followers.

* Rename ResubscribeWorker to RefollowWorker

* Process followers in batches
2017-09-12 23:10:40 +02:00
..
activitypub Forward ActivityPub creates that reply to local statuses (#4709) 2017-08-30 15:37:02 +02:00
admin Account deletion (#3728) 2017-06-14 18:01:27 +02:00
pubsubhubbub Switch to static URIs, new URI format in both protocols for new statuses (#4815) 2017-09-06 19:01:28 +02:00
scheduler Periodically remove expired PuSH subscribers (#4654) 2017-08-21 22:56:33 +02:00
after_remote_follow_request_worker.rb After remote follow worker specs (#3098) 2017-05-18 21:10:41 +02:00
after_remote_follow_worker.rb After remote follow worker specs (#3098) 2017-05-18 21:10:41 +02:00
authorize_follow_worker.rb authorize-follow-requests-after-unlocking (#4658) 2017-08-26 12:40:03 +02:00
block_worker.rb Make blocks create entries and unfollows instantly, but do the clean up 2017-01-24 21:40:41 +01:00
bootstrap_timeline_worker.rb Default follows for new users (#4871) 2017-09-10 09:58:38 +02:00
digest_mailer_worker.rb Spec coverage and refactor of digest mailer worker (#2961) 2017-05-10 15:45:43 +02:00
distribution_worker.rb Fix Scheduler::SubscriptionsScheduler (#2834) 2017-05-06 13:05:03 +02:00
domain_block_worker.rb Make default admin UI page reports. Add admin UI for creating a domain block 2017-04-03 18:55:06 +02:00
feed_insert_worker.rb Spec feed insert worker (#2965) 2017-05-10 20:32:05 +02:00
import_worker.rb Fix webfinger retries (#4275) 2017-07-20 01:59:07 +02:00
link_crawl_worker.rb Separate background jobs into different queues. ATTENTION: new queue "pull" 2017-04-04 00:53:20 +02:00
merge_worker.rb Separate background jobs into different queues. ATTENTION: new queue "pull" 2017-04-04 00:53:20 +02:00
notification_worker.rb Separate background jobs into different queues. ATTENTION: new queue "pull" 2017-04-04 00:53:20 +02:00
processing_worker.rb Move OStatus processing back into default queue 2017-04-04 13:02:49 +02:00
push_update_worker.rb Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl (#4090) 2017-07-07 04:02:06 +02:00
refollow_worker.rb [WiP] Whenever a remote keypair changes, unfollow them and re-subscribe to … (#4907) 2017-09-12 23:10:40 +02:00
regeneration_worker.rb Add spec coverage for regeneration worker (#3143) 2017-05-19 16:55:09 +02:00
remote_profile_update_worker.rb Fix #1141, fix #1126 - Avatar/profile info fetching (#1215) 2017-04-08 13:26:03 +02:00
removal_worker.rb Adding some rescues to workers, e.g. don't fail removal job when status can't be found in the first place (already removed) 2016-12-19 09:31:12 +01:00
resolve_remote_account_worker.rb Instantly upgrade account to ActivityPub if we receive ActivityPub payload (#4766) 2017-09-03 01:11:23 +02:00
salmon_worker.rb Split SalmonWorker into smaller parts, move profile updating into another job 2017-04-05 21:43:10 +02:00
soft_block_domain_followers_worker.rb change sidekiq queueing to bulk push (#3536) 2017-06-04 00:11:15 +02:00
soft_block_worker.rb Followers-only post federation (#2111) 2017-04-24 00:38:37 +02:00
thread_resolve_worker.rb Separate background jobs into different queues. ATTENTION: new queue "pull" 2017-04-04 00:53:20 +02:00
unfavourite_worker.rb Improve background jobs params and error handling 2017-01-05 03:28:21 +01:00
unmerge_worker.rb Separate background jobs into different queues. ATTENTION: new queue "pull" 2017-04-04 00:53:20 +02:00
web_push_notification_worker.rb Fix guard clause in WebPushNotificationWorker (#4421) 2017-07-28 17:21:28 +02:00