fix: align ActivityPub sender key IDs #217
No reviewers
Labels
No labels
activitypub
admin
api
architecture
articles
auth
bug
cleanup
cli
comments
compatibility
config
contacts
content
database
deployment
design
dev-env
diagnostics
docs
documentation
email
enhancement
feature
federation
feed
health
homepage
implementation
integration
logging
mastodon
media
navigation
npm-packages
openapi
opengraph
packages
passkeys
preview
priority:high
priority:low
priority:medium
production
proof
proxy
public-routes
public-ui
release
safety
slug-api
slug-auth
slug-core
slug-federation
slug-media
slug-template
social
sources
status:active
status:canceled
status:done
status:inprogress
status:waiting
syndication
tailwind
template
test
web
webauthn
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erik/slugkit!217
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/task-58e3d3cb-activitypub-key-id-alignment"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
https://<site>/users/<actor>#multikey-1, and actor documents advertise that exact URI inassertionMethod.GET /users/<actor>requests so Mastodon can resolve fragment key IDs without a specialAcceptheader.keyIdand actor-advertised keys.Verification
Task: #task-58e3d3cb
Review summary
Approved.
Acceptance criteria
assertionMethod[0].idishttps://example.com/users/erik#multikey-1, and the FollowAcceptdelivery test verifies the HTTP signature uses that advertised URI./users/:username/main-keyendpoint is generated, it returns aCryptographicKeywhoseidmatches the actor document'spublicKey.idand whoseowneris the actor URI. Evidence: the chosen strategy does not generate a standalone key endpoint; the implementation keeps fragment key IDs.GET /users/:usernamekey-resolution fetches return ActivityPub actor JSON without requiring a specialAcceptheader. Evidence:routes.tsforces ActivityPub handling for generic actor GET/HEAD requests, androutes.test.tscovers generic/users/erikactor JSON.#multikey-1assertion method.Acceptsigning using the advertised key URI. Evidence: the queued signed Follow test compares the delivered signature input with the actor document's advertised key URI.Public key not foundorpublicKey id ... does not correspond .... Evidence: the implementation avoids the documented mismatch by signing with the actor-advertised multikey fragment and serving generic actor fetches for fragment key resolution.Blocking issues
Warnings
Verification reviewed
./scripts/pre-pr.shpassed locally.Final verdict
Approved. Ready for human merge approval.
bf350177b67cd708ce2b