Fix ActivityPub Follow verification behind a TLS proxy #18
No reviewers
Labels
No labels
bug
priority:high
status:active
status:inprogress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erik/erikvancraddock.com!18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "task-a12b0016-activitypub-follow"
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
Fix locally reproduced ActivityPub Follow verification failures without changing actor identity, keys, followers, or automatic acceptance.
acct:signer for authenticated remote actor/key fetching at both inboxes and during queued processing; preserve explicitly supplied other identities and default URL restrictions.Task:
task-a12b0016.Evidence
Baseline
5e46f65signed authenticated fetches with the unadvertised primary-actor#main-keyidentity and received controlled 401 responses. Valid RFC 9421 fixtures passed on the public HTTPS URL but failed with HTTP backend URLs through both application inboxes. These are controlled repository reproductions, not a claim about the historical failure of an unknown sending account.Production infrastructure inspection was removed from the task at Erik's request. No production deployment, restart, configuration change, or live Follow POST was performed.
Verification
npm test: 362 tests across 49 files passed.npm run lint: passed.npm run build: CSS build and TypeScript checks passed.git diff --check: passed.scripts/validate-production-image.sh: health, API health, expected version, and homepage checks passed.No formatter script is configured in this repository; existing style and whitespace checks were used. Existing engagement/reply/following fixtures now explicitly inject authenticated loaders as well as unsigned loaders, without changing production safety options.
Deployment
See
docs/activitypub-follow-verification.md. No schema migration, key rotation, actor rename, or follower-data edit is needed. Production deployment and live Follow testing require separate approval; merging this PR does not authorize either.Review update
5d7ade3e4874facfc6c1425560a833149c3ae5f5.task-a12b0016; controlled HTTP-backend/public-HTTPS fixtures satisfy proxy verification. Production infrastructure inspection and live Follow testing are not required.Acceptance criteria — 8/8 met
docs/activitypub-follow-verification.mdagainst5e46f65; evidence is explicitly distinguished from an unknown historical sending-account failure.manuallyApprovesFollowers: false, delivers Accept using the existingacct:signer, and cryptographically verifies the delivered signature against the advertised public key.5d7ade3(build/typecheck, lint, tests). Implementer additionally reports all 362 tests in 49 files and local production Docker health/API/homepage validation passed. Deployment prerequisites and reproducible verification are documented.Findings
fj v0.5.0supports Actions--repobut rejects it for PR commands. PR metadata/diff and this comment use the explicitly scoped Forgejo API repository path; the remote and local diff patch IDs match. Actions status was inspected with--repo erik/erikvancraddock.com.