ActivityPub / Fedify Compliance Report Indiekit

Field Value
Target rmendes.net (@rick)
Date 2026-02-20T21:20:08Z
Tests 22 total: 22 passed, 0 failed, 0 skipped
Grade A+ — Full compliance — all tests pass
Fedify ^1.10.3
Software Indiekit + @rmdes/indiekit-endpoint-activitypub

Summary

Category Pass Fail Skip Status
Discovery 3 0 0
Actor 3 0 0
Collections 8 0 0
Content 3 0 0
Inbox 2 0 0
Federation 2 0 0
HTTP 1 0 0

Detailed Results

Discovery

Test Status Detail
WebFinger resolution ✅ PASS WebFinger OK: acct:rick@rmendes.nethttps://rmendes.net/activitypub/users/rick
NodeInfo endpoint ✅ PASS NodeInfo OK: indiekit v1.0.0, 249 local posts, protocol: activitypub
NodeInfo well-known chain ✅ PASS NodeInfo well-known OK: Discovery chain valid, schema 2.1

Actor

Test Status Detail
Actor lookup (fedify) ✅ PASS Actor OK: Person at https://rmendes.net/activitypub/users/rick
Actor required fields ✅ PASS Actor fields OK: inbox, outbox, followers, following, liked, featured, featuredTags, publicKey, assertionMethods, sharedInbox, name, icon, published
Actor JSON structure ✅ PASS Actor JSON OK: Person with all required fields, collection links, and security keys

Collections

Test Status Detail
Outbox collection ✅ PASS Outbox OK: OrderedCollection with 249 items
Followers collection ✅ PASS Followers OK: OrderedCollection with 832 items
Following collection ✅ PASS Following OK: OrderedCollection with 2563 items
Liked collection ✅ PASS Liked OK: OrderedCollection with 68 items
Featured (pinned) collection ✅ PASS Featured OK: OrderedCollection with 0 pinned items
Featured tags collection ✅ PASS Featured tags OK: Collection with 0 tags
Collection URI resolution ✅ PASS Collection URIs OK: All actor collection endpoints return valid JSON
Outbox traversal (first page) ✅ PASS Outbox traversal OK: Contains Create activities with Note objects, proper addressing

Content

Test Status Detail
Post returns AS2 JSON ✅ PASS Content negotiation OK: https://rmendes.net/notes/2026/02/20/f3f0e serves AS2 JSON
Root URL redirects to actor ✅ PASS Root redirect OK: https://rmendes.net/https://rmendes.net/activitypub/users/rick
Object dispatcher (dereference) ✅ PASS Object dispatcher OK: Note at https://rmendes.net/notes/2026/02/20/f3f0e

Inbox

Test Status Detail
GET inbox returns 405 ✅ PASS Inbox GET OK: returns 405 Method Not Allowed
GET shared inbox returns 405 ✅ PASS Shared inbox GET OK: returns 400 (rejected)

Federation

Test Status Detail
Instance actor (Application) ✅ PASS Instance actor OK: Application type with hostname identifier
WebFinger alias resolution ✅ PASS WebFinger alias OK: profile URL and /@handle both resolve

HTTP

Test Status Detail
HTTP headers compliance ✅ PASS HTTP headers OK: Correct content types on actor, outbox, and WebFinger

Fedify Feature Compliance Matrix

Maps implemented Fedify features against the Fedify SDK capabilities.

Core Federation

Feature Fedify API Status Notes
Actor Dispatcher setActorDispatcher() ✅ Implemented Person/Service/Group/Organization via config
Key Pairs setKeyPairsDispatcher() ✅ Implemented RSA-2048 + Ed25519 dual keys
Handle Mapping .mapHandle() ✅ Implemented Handle + hostname (instance actor)
Alias Mapping .mapAlias() ✅ Implemented Profile URL + /@handle resolution
Inbox Listeners setInboxListeners() ✅ Implemented Follow, Undo, Accept, Reject, Like, Announce, Create, Update, Delete
Shared Inbox Inbox URL pattern ✅ Implemented /activitypub/inbox
WebFinger Automatic ✅ Implemented Via Fedify’s built-in handler
NodeInfo setNodeInfoDispatcher() ✅ Implemented Schema 2.1, dynamic version

Collections

Feature Fedify API Status Notes
Outbox setOutboxDispatcher() ✅ Implemented Paginated, Create activities
Followers setFollowersDispatcher() ✅ Implemented Paginated, ordered
Following setFollowingDispatcher() ✅ Implemented Paginated, ordered
Liked setLikedDispatcher() ✅ Implemented Objects the actor has liked
Featured setFeaturedDispatcher() ✅ Implemented Pinned posts, admin UI
Featured Tags setFeaturedTagsDispatcher() ✅ Implemented Hashtag discovery, admin UI

Content Resolution

Feature Fedify API Status Notes
Object Dispatcher setObjectDispatcher() ✅ Implemented Note/Article dereferencing
Content Negotiation Custom middleware ✅ Implemented AS2 JSON for post URLs

Delivery & Reliability

Feature Fedify API Status Notes
Message Queue RedisMessageQueue ✅ Implemented Redis-backed persistent queue
Parallel Queue ParallelMessageQueue ✅ Implemented Configurable worker count (default: 5)
Ordering Keys sendActivity({ orderingKey }) ✅ Implemented Per-follower ordering
Collection Sync sendActivity({ syncCollection }) ✅ Implemented FEP-8fcf, shared inbox sync
Permanent Failure Handler setOutboxPermanentFailureHandler() ⏳ Deferred Requires Fedify 2.0+ API changes
Context Data createFederation({ contextData }) ✅ Implemented Handle + publication URL

Security & Identity

Feature Fedify API Status Notes
HTTP Signatures Automatic (RSA) ✅ Implemented Via key pairs dispatcher
Object Integrity Proofs Automatic (Ed25519) ✅ Implemented Via assertionMethods multikey
Instance Actor Application type actor ✅ Implemented Domain-level federation actor
Authorized Fetch .authorize() predicate ⏳ Deferred Removed — requires authenticated document loader to avoid 401 loops with remote servers
Configurable Actor Type Constructor selection ✅ Implemented Person/Service/Organization/Group

Discovery Extensions

Feature Fedify API Status Notes
NodeInfo Dynamic Version createRequire() ✅ Implemented Reads from @indiekit/indiekit/package.json
alsoKnownAs Actor property ✅ Implemented For Mastodon account migration
Profile Attachments PropertyValue ✅ Implemented Key-value metadata fields

Generated by activitypub-tests/run-all.sh — 2026-02-20T21:20:48Z

Send a Webmention

Have you written a response to this post? Send a webmention by entering your post URL below.