Preloaded toot: context defines attributionDomains as an IRI #1233
Copy link
Copy link
Labels
activitypub/complianceSpecification complianceSpecification complianceactivitypub/mastodonMastodon compatibilityMastodon compatibilitycomponent/vocabActivity Vocabulary relatedActivity Vocabulary related
Description
Activity
- addedactivitypub/complianceSpecification complianceSpecification complianceactivitypub/mastodonMastodon compatibilityMastodon compatibility
on Oct 4, 2026 - added a commit that references this issue
on Oct 5, 2026 - linked a pull request that will close this issuePreserve Mastodon attribution domain literals #1235
on Oct 5, 2026
Metadata
Metadata
Assignees
Labels
activitypub/complianceSpecification complianceSpecification complianceactivitypub/mastodonMastodon compatibilityMastodon compatibilitycomponent/vocabActivity Vocabulary relatedActivity Vocabulary related
Type
Fields
Priority
None yet
Effort
None yet
The preloaded JSON-LD context for
http://joinmastodon.org/nsin packages/vocab-runtime/src/contexts/joinmastodon.json definesattributionDomainswith"@type": "@id". Mastodon defines the same term in app/helpers/context_helper.rb as:{ "attributionDomains": { "@id": "toot:attributionDomains", "@container": "@set" } }The values are plain domain names such as
"blog.example", not IRIs. With Fedify's definition, a document that relies on the preloaded context expands them as node references instead of string literals.The bug has been present since the context was added in 2.0.6 (c7c2048).
Reproduction
Expand this document with
jsonldand Fedify's preloaded contexts:{ "@context": [ "https://www.w3.org/ns/activitystreams", "http://joinmastodon.org/ns" ], "id": "https://social.example/users/alice", "type": "Person", "attributionDomains": ["blog.example"] }Expected, matching Mastodon's definition:
Actual:
"blog.example"is a relative IRI here, so a processor resolves it against the document base or drops it, and the RDF no longer matches what Mastodon means.Fix
Replace
"@type": "@id"with"@container": "@set"in joinmastodon.json and add a regression test for the expansion above.