Fedify 0.12.0
Released on July 24, 2024.
-
The
fedifycommand is now available on npm. [#104] -
Incoming activities are now queued before being dispatched to the inbox listener if the
queueoption is provided to thecreateFederation()function. [#70]- The type of
InboxListenercallback type's first parameter becameContext(wasRequestContext). - The type of
InboxErrorHandlercallback type's first parameter becameContext(wasRequestContext). - The type of
SharedInboxKeyDispatchercallback type's first parameter becameContext(wasRequestContext).
- The type of
-
Implemented fully customizable retry policy for failed tasks in the task queue. By default, the task queue retries the failed tasks with an exponential backoff policy with decorrelated jitter.
- Added
outboxRetryPolicyoption toCreateFederationOptionsinterface. - Added
inboxRetryPolicyoption toCreateFederationOptionsinterface. [#70] - Added
RetryPolicycallback type. - Added
RetryContextinterface. - Added
createExponentialBackoffPolicy()function. - Added
CreateExponentialBackoffPolicyOptionsinterface.
- Added
-
Federationobject now allows its task queue to be started manually. [#53]- Added
manuallyStartQueueoption toCreateFederationOptionsinterface. - Added
Federation.startQueue()method.
- Added
-
Made the router able to be insensitive to trailing slashes in the URL paths. [#81]
- Added
trailingSlashInsensitiveoption toCreateFederationOptionsinterface. - Added
RouterOptionsinterface. - Added an optional parameter to
new Router()constructor.
- Added
-
Added
ChatMessageclass to Activity Vocabulary API. [#85] -
Added
Moveclass to Activity Vocabulary API. [#65, #92 by Lee Dogeon] -
Added
Readclass to Activity Vocabulary API. [#65, #92 by Lee Dogeon] -
Added
Travelclass to Activity Vocabulary API. [#65, #92 by Lee Dogeon] -
Added
Viewclass to Activity Vocabulary API. [#65, #92 by Lee Dogeon] -
Added
TentativeAcceptclass to Activity Vocabulary API. [#65, #92 by Lee Dogeon] -
Added
TentativeRejectclass to Activity Vocabulary API. [#65, #92 by Lee Dogeon] -
Improved multitenancy (virtual hosting) support. [#66]
- Added
Context.hostnameproperty. - Added
Context.hostproperty. - Added
Context.originproperty. - The type of
ActorKeyPairsDispatcher<TContextData>'s first parameter becameContext(wasTContextData).
- Added
-
During verifying HTTP Signatures and Object Integrity Proofs, once fetched public keys are now cached. [#107]
- The
verifyRequest()function now caches the fetched public keys when thekeyCacheoption is provided. - The
verifyProof()function now caches the fetched public keys when thekeyCacheoption is provided. - The
verifyObject()function now caches the fetched public keys when thekeyCacheoption is provided. - Added
KeyCacheinterface. - Added
VerifyRequestOptions.keyCacheproperty. - Added
VerifyProofOptions.keyCacheproperty. - Added
VerifyObjectOptions.keyCacheproperty. - Added
FederationKvPrefixes.publicKeyproperty.
- The
-
The built-in document loaders now recognize JSON-LD context provided in an HTTP
Linkheader. [#6]- The
fetchDocumentLoader()function now recognizes theLinkheader with thehttp://www.w3.org/ns/json-ld#contextlink relation. - The
getAuthenticatedDocumentLoader()function now returns a document loader that recognizes theLinkheader with thehttp://www.w3.org/ns/json-ld#contextlink relation.
- The
-
Deprecated
Federation.sendActivity()method. UseContext.sendActivity()method instead. -
The last parameter of
Federation.sendActivity()method is no longer optional. Also, it now takes the requiredcontextDataoption. -
Removed
Context.getHandleFromActorUri()method which was deprecated in version 0.9.0. UseContext.parseUri()method instead. -
Removed
@fedify/fedify/httpsigmodule which was deprecated in version 0.9.0. Use@fedify/fedify/sigmodule instead.- Removed
sign()function. - Removed
verify()function. - Removed
VerifyOptionsinterface.
- Removed
-
Fixed a bug where the
lookupWebFinger()function had incorrectly queried if the givenresourcewas a URL starts withhttp:or had a non-default port number. -
Fixed a SSRF vulnerability in the built-in document loader. [CVE-2024-39687]
- The
fetchDocumentLoader()function now throws an error when the given URL is not an HTTP or HTTPS URL or refers to a private network address. - Added an optional second parameter to the
fetchDocumentLoader()function, which can be used to allow fetching private network addresses. - The
getAuthenticatedDocumentLoader()function now returns a document loader that throws an error when the given URL is not an HTTP or HTTPS URL or refers to a private network address. - Added an optional second parameter to the
getAuthenticatedDocumentLoader()function, which can be used to allow fetching private network addresses.
- The
-
Added
fedify initsubcommand. [#105] -
Added more log messages using the LogTape library. Currently the below logger categories are used:
["fedify", "federation", "queue"]