✎ Note

ActivityPub / Fedify Compliance Report Indiekit

FieldValue
Targetrmendes.net (@rick)
Date2026-02-20T21:20:08Z
Tests22 total: 22 passed, 0 failed, 0 skipped
GradeA+ — Full compliance — all tests pass
Fedify^1.10.3
SoftwareIndiekit + @rmdes/indiekit-endpoint-activitypub

Summary

CategoryPassFailSkipStatus
Discovery300
Actor300
Collections800
Content300
Inbox200
Federation200
HTTP100

Detailed Results

Discovery

TestStatusDetail
WebFinger resolution✅ PASSWebFinger OK: acct:rick@rmendes.net → https://rmendes.net/activitypub/users/rick
NodeInfo endpoint✅ PASSNodeInfo OK: indiekit v1.0.0, 249 local posts, protocol: activitypub
NodeInfo well-known chain✅ PASSNodeInfo well-known OK: Discovery chain valid, schema 2.1

Actor

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

Collections

TestStatusDetail
Outbox collection✅ PASSOutbox OK: OrderedCollection with 249 items
Followers collection✅ PASSFollowers OK: OrderedCollection with 832 items
Following collection✅ PASSFollowing OK: OrderedCollection with 2563 items
Liked collection✅ PASSLiked OK: OrderedCollection with 68 items
Featured (pinned) collection✅ PASSFeatured OK: OrderedCollection with 0 pinned items
Featured tags collection✅ PASSFeatured tags OK: Collection with 0 tags
Collection URI resolution✅ PASSCollection URIs OK: All actor collection endpoints return valid JSON
Outbox traversal (first page)✅ PASSOutbox traversal OK: Contains Create activities with Note objects, proper addressing

Content

TestStatusDetail
Post returns AS2 JSON✅ PASSContent negotiation OK: https://rmendes.net/notes/2026/02/20/f3f0e serves AS2 JSON
Root URL redirects to actor✅ PASSRoot redirect OK: https://rmendes.net/https://rmendes.net/activitypub/users/rick
Object dispatcher (dereference)✅ PASSObject dispatcher OK: Note at https://rmendes.net/notes/2026/02/20/f3f0e

Inbox

TestStatusDetail
GET inbox returns 405✅ PASSInbox GET OK: returns 405 Method Not Allowed
GET shared inbox returns 405✅ PASSShared inbox GET OK: returns 400 (rejected)

Federation

TestStatusDetail
Instance actor (Application)✅ PASSInstance actor OK: Application type with hostname identifier
WebFinger alias resolution✅ PASSWebFinger alias OK: profile URL and /@handle both resolve

HTTP

TestStatusDetail
HTTP headers compliance✅ PASSHTTP 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

FeatureFedify APIStatusNotes
Actor DispatchersetActorDispatcher()✅ ImplementedPerson/Service/Group/Organization via config
Key PairssetKeyPairsDispatcher()✅ ImplementedRSA-2048 + Ed25519 dual keys
Handle Mapping.mapHandle()✅ ImplementedHandle + hostname (instance actor)
Alias Mapping.mapAlias()✅ ImplementedProfile URL + /@handle resolution
Inbox ListenerssetInboxListeners()✅ ImplementedFollow, Undo, Accept, Reject, Like, Announce, Create, Update, Delete
Shared InboxInbox URL pattern✅ Implemented/activitypub/inbox
WebFingerAutomatic✅ ImplementedVia Fedify’s built-in handler
NodeInfosetNodeInfoDispatcher()✅ ImplementedSchema 2.1, dynamic version

Collections

FeatureFedify APIStatusNotes
OutboxsetOutboxDispatcher()✅ ImplementedPaginated, Create activities
FollowerssetFollowersDispatcher()✅ ImplementedPaginated, ordered
FollowingsetFollowingDispatcher()✅ ImplementedPaginated, ordered
LikedsetLikedDispatcher()✅ ImplementedObjects the actor has liked
FeaturedsetFeaturedDispatcher()✅ ImplementedPinned posts, admin UI
Featured TagssetFeaturedTagsDispatcher()✅ ImplementedHashtag discovery, admin UI

Content Resolution

FeatureFedify APIStatusNotes
Object DispatchersetObjectDispatcher()✅ ImplementedNote/Article dereferencing
Content NegotiationCustom middleware✅ ImplementedAS2 JSON for post URLs

Delivery & Reliability

FeatureFedify APIStatusNotes
Message QueueRedisMessageQueue✅ ImplementedRedis-backed persistent queue
Parallel QueueParallelMessageQueue✅ ImplementedConfigurable worker count (default: 5)
Ordering KeyssendActivity({ orderingKey })✅ ImplementedPer-follower ordering
Collection SyncsendActivity({ syncCollection })✅ ImplementedFEP-8fcf, shared inbox sync
Permanent Failure HandlersetOutboxPermanentFailureHandler()⏳ DeferredRequires Fedify 2.0+ API changes
Context DatacreateFederation({ contextData })✅ ImplementedHandle + publication URL

Security & Identity

FeatureFedify APIStatusNotes
HTTP SignaturesAutomatic (RSA)✅ ImplementedVia key pairs dispatcher
Object Integrity ProofsAutomatic (Ed25519)✅ ImplementedVia assertionMethods multikey
Instance ActorApplication type actor✅ ImplementedDomain-level federation actor
Authorized Fetch.authorize() predicate⏳ DeferredRemoved — requires authenticated document loader to avoid 401 loops with remote servers
Configurable Actor TypeConstructor selection✅ ImplementedPerson/Service/Organization/Group

Discovery Extensions

FeatureFedify APIStatusNotes
NodeInfo Dynamic VersioncreateRequire()✅ ImplementedReads from @indiekit/indiekit/package.json
alsoKnownAsActor property✅ ImplementedFor Mastodon account migration
Profile AttachmentsPropertyValue✅ ImplementedKey-value metadata fields

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

AI: Text None

Learn more about AI usage on this site

Comments

Sign in with your website to comment:

Signed in as
Send a Webmention

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