Skip to content

Fedify 1.5.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 28 Mar 12:07
· 2 commits to main since this release
1.5.0
5187ebf

Released on March 28, 2025.

  • Improved activity delivery performance with large audiences through a two-stage queuing system. Sending activities to many recipients (e.g., accounts with many followers) is now significantly faster and uses less memory. [#220]

    • Added FederationQueueOptions.fanout option.
    • Changed the type of FederationStartQueueOptions.queue option to "inbox" | "outbox" | "fanout" | undefined (was "inbox" | "outbox" | undefined).
    • Added SendActivityOptions.fanout option.
    • Added OpenTelemetry instrumented span activitypub.fanout.
    • The ForwardActivityOptions interface became a type alias of Omit<SendActivityOptions, "fanout"> & { skipIfUnsigned: boolean }, which is still compatible with the previous version.
  • A Federation object now can have a canonical origin for web URLs and a canonical host for fediverse handles. This affects the URLs constructed by Context objects, and the WebFinger responses.

    • Added CreateFederationOptions.origin option.
    • Added FederationOrigin interface.
    • Added Context.canonicalOrigin property.
  • Followers collection synchronization (FEP-8fcf) is now turned off by default.

    • Added SendActivityOptionsForCollection interface.
    • The type of Context.sendActivity({ identifier: string } | { username: string } | { handle: string }, "followers", Activity) overload's fourth parameter became SendActivityOptionsForCollection | undefined (was SendActivityOptions | undefined).
  • Fedify now accepts PEM-PKCS#1 besides PEM-SPKI for RSA public keys. [#209]

    • CryptographicKey now can contain a publicKey with a PEM-PKCS#1 format (in addition to PEM-SPKI).
    • Added importPkcs1() function.
    • Added importPem() function.
  • The fetchKey() function became to choose the public key of the actor if keyId has no fragment and the actor has only one public key. [#211]

  • Added an optional parameter with GetSignedKeyOptions type to the RequestContext.getSignedKey() method.

  • Added GetSignedKeyOptions interface.

  • Added an optional parameter with GetKeyOwnerOptions type to the RequestContext.getSignedKeyOwner() method.

  • Deprecated the parameters of the AuthorizePredicate and ObjectAuthorizePredicate types to get the signed key and its owner in favor of the RequestContext.getSignedKey() and RequestContext.getSignedKeyOwner() methods.

    • Deprecated the third parameter of the AuthorizePredicate type in favor of the RequestContext.getSignedKey() method.
    • Deprecated the fourth parameter of the AuthorizePredicate type in favor of the RequestContext.getSignedKeyOwner() method.
    • Deprecated the third parameter of the ObjectAuthorizePredicate type in favor of the RequestContext.getSignedKey() method.
    • Deprecated the fourth parameter of the ObjectAuthorizePredicate type in favor of the RequestContext.getSignedKeyOwner() method.
  • Added an optional method enqueueMany() to MessageQueue interface for sending multiple activities at once.

  • Updated @js-temporal/polyfill to 0.5.0 for Node.js and Bun. On Deno, there is no change because the polyfill is not used.

  • Updated uri-template-router to 0.0.17 which fixes bundler errors on Rollup. [#221]

  • Improved error handling and logging for document loader when KV store operations fail. [#223 by Revath S Kumar]

  • Fixed a bug of the fedify inbox command where it had failed to render the web interface when the fedify command was installed using deno install command from JSR.

  • The web interface of the fedify inbox command was slightly redesigned:

    • The Fedify logo with the cute dinosaur is now displayed at the top of the page.
    • You can easily copy the fediverse handle of the ephemeral actor.
  • Internalized the multibase package, which is obsolete and no longer maintained. [#127, #215 by Fróði Karlsson]

  • Added more log messages using the LogTape library. Currently the below logger categories are used:

    • ["fedify", "federation", "fanout"]
    • ["fedify", "federation", "object"]