Skip to content

Add https://purl.archive.org/miscellany to preloaded JSON-LD contexts #965

Description

@mike182uk

Bridgy Fed (via granary) includes https://purl.archive.org/miscellany in the @context of every activity it delivers. The URL serves the SWICG "ActivityPub Miscellaneous Terms" context and is hosted on purl.archive.org, which in our experience is unreliable: over the last 90 days we've observed failures resolving this context on 28 separate days, typically in multi-hour bursts

When purl.archive.org is unreachable, Activity.fromJsonLd() fails with jsonld.InvalidUrl ("loading remote context failed") for every Bridgy Fed originated activity, before any inbox listener runs - the same failure mode that motivated preloading Lemmy's context (#714) and http://joinmastodon.org/ns (#630). The default kvCache TTL of 5 minutes
offers no protection against outages longer than that

For context: on our deployment (Ghost's ActivityPub service), purl.archive.org outages cause these failures every few days - most recently for several hours on both Jul 19 and Jul 20 - each time producing sender retry storms and 5xx alerting noise

The context seems like a good preload candidate:

  • It's a SWICG deliverable, deliberately stable and versioned, with an immutable URL for the current version
    (https://purl.archive.org/miscellany/1.0.0)
  • It's small (four term definitions: Hashtag, manuallyApprovesFollowers, movedTo, sensitive) all aliasing AS2 terms
  • Fedify already preloads from the same unreliable host: https://purl.archive.org/socialweb/webfinger
  • Fedify's own vocab docs reference the spec (hashtag.yaml links to https://swicg.github.io/miscellany/#Hashtag)

I have a PR ready (same shape as the Lemmy change in #714: JSON asset + preloadedContexts entry). Will open it referencing this issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions