Skip to content

Migration outbox filtering - #327

Merged
aaronjae22 merged 14 commits into
mainfrom
migration-outbox-filtering
Oct 9, 2026
Merged

aaronjae22 merged 14 commits into
mainfrom
migration-outbox-filtering

Conversation

@aaronjae22

Copy link
Copy Markdown
Collaborator

/api/actors/<pk>/migration/outbox/ now serves only the Create activities that wrap a Note and every migration collection is identified by its own URL. /api/actors/<pk>/outbox/ is unchanged.

We had the migration outbox resolved to the same view as the outbox so a destination walking the collections the Actor advertises received:

  • every Like twice since we would serve a Like activity in the migration outbox, and its object in liked
  • every Follow twice: a Follow activity there, and the followed actor in migration/following
  • the Actor itself which is wrapped in the Create that announces account creation

Currently

/api/actors/1/migration/outbox/     id …/outbox/      totalItems 43
  types Create ×31, Like ×6, Follow ×6   Create objects: Note ×30, Person ×1
/api/actors/1/migration/content/    id …/content/
/api/actors/1/migration/following/  id …/following/
/api/actors/1/migration/blocked/    id …/blocked/

objects also served elsewhere:  liked 6   migration/following 6

After this PR

/api/actors/1/migration/outbox/     id …/migration/outbox/     totalItems 30
  types Create ×30                       Create objects: Note ×30
/api/actors/1/migration/content/    id …/migration/content/
/api/actors/1/migration/following/  id …/migration/following/
/api/actors/1/migration/blocked/    id …/migration/blocked/

objects also served elsewhere:  liked 0   migration/following 0

/outbox/ is identical before and after: 43 items bound, 19 anonymous. Anonymous migration/outbox/ goes from 19 to 10, the public Creates of a Note.

  • LOLA §6.2 (SHOULD): "This collection SHOULD contain a filtered view of all the actor's activities that the source server deems eligible for migration."
  • LOLA §6.6.1 (MAY): "The source server MAY omit these types of activity when providing a migration outbox." (Like, Follow, Block)
  • LOLA §6.6: "The Actor object will be consulted during account migration, but not copied."
  • ActivityPub §3.1 (MUST): unique global identifiers

@aaronjae22
aaronjae22 requested a review from lisad October 7, 2026 02:49
@aaronjae22 aaronjae22 self-assigned this Oct 7, 2026
@aaronjae22
aaronjae22 force-pushed the object-routes branch 3 times, most recently from ee71782 to c1bc153 Compare October 9, 2026 16:33
Base automatically changed from object-routes to main October 9, 2026 16:56
@aaronjae22
aaronjae22 merged commit 4417ad5 into main Oct 9, 2026
3 checks passed
@aaronjae22
aaronjae22 deleted the migration-outbox-filtering branch October 9, 2026 17:49
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.

2 participants