Fedify 0.10.0
Released on June 18, 2024.
Starting with this release, Fedify, previously distributed under AGPL 3.0, is now distributed under the MIT License to encourage wider adoption.
-
Besides RSA-PKCS#1-v1.5, Fedify now supports Ed25519 for signing and verifying the activities. [#55]
- Added an optional parameter to
generateCryptoKeyPair()function,algorithm, which can be either"RSASSA-PKCS1-v1_5"or"Ed25519". - The
importJwk()function now accepts Ed25519 keys. - The
exportJwk()function now exports Ed25519 keys. - The
importSpki()function now accepts Ed25519 keys. - The
exportJwk()function now exports Ed25519 keys.
- Added an optional parameter to
-
Now multiple key pairs can be registered for an actor. [FEP-521a, #55]
- Added
Context.getActorKeyPairs()method. - Deprecated
Context.getActorKey()method. UseContext.getActorKeyPairs()method instead. - Added
ActorKeyPairinterface. - Added
ActorCallbackSetters.setKeyPairsDispatcher()method. - Added
ActorKeyPairsDispatchertype. - Deprecated
ActorCallbackSetters.setKeyPairDispatcher()method. - Deprecated
ActorKeyPairDispatchertype. - Deprecated the third parameter of the
ActorDispatchercallback type. UseContext.getActorKeyPairs()method instead.
- Added
-
Added
Multikeyclass to Activity Vocabulary API. [FEP-521a, #55]- Added
importMultibaseKey()function. - Added
exportMultibaseKey()function.
- Added
-
Added
assertionMethodproperty to theActortypes in the Activity Vocabulary API. [FEP-521a, #55]- Added
Application.getAssertionMethod()method. - Added
Application.getAssertionMethods()method. new Application()constructor now acceptsassertionMethodoption.new Application()constructor now acceptsassertionMethodsoption.Application.clone()method now acceptsassertionMethodoption.Application.clone()method now acceptsassertionMethodsoption.- Added
Group.getAssertionMethod()method. - Added
Group.getAssertionMethods()method. new Group()constructor now acceptsassertionMethodoption.new Group()constructor now acceptsassertionMethodsoption.Group.clone()method now acceptsassertionMethodoption.Group.clone()method now acceptsassertionMethodsoption.- Added
Organization.getAssertionMethod()method. - Added
Organization.getAssertionMethods()method. new Organization()constructor now acceptsassertionMethodoption.new Organization()constructor now acceptsassertionMethodsoption.Organization.clone()method now acceptsassertionMethodoption.Organization.clone()method now acceptsassertionMethodsoption.- Added
Person.getAssertionMethod()method. - Added
Person.getAssertionMethods()method. new Person()constructor now acceptsassertionMethodoption.new Person()constructor now acceptsassertionMethodsoption.Person.clone()method now acceptsassertionMethodoption.Person.clone()method now acceptsassertionMethodsoption.- Added
Service.getAssertionMethod()method. - Added
Service.getAssertionMethods()method. new Service()constructor now acceptsassertionMethodoption.new Service()constructor now acceptsassertionMethodsoption.Service.clone()method now acceptsassertionMethodoption.Service.clone()method now acceptsassertionMethodsoption.
- Added
-
Added
DataIntegrityProofclass to Activity Vocabulary API. [FEP-8b32, #54] -
Added
proofproperty to theObjectclass in the Activity Vocabulary API. [FEP-8b32, #54]- Added
Object.getProof()method. - Added
Object.getProofs()method. new Object()constructor now acceptsproofoption.new Object()constructor now acceptsproofsoption.Object.clone()method now acceptsproofoption.Object.clone()method now acceptsproofsoption.
- Added
-
Implemented Object Integrity Proofs. [FEP-8b32, #54]
- If there are any Ed25519 key pairs, the
Context.sendActivity()andFederation.sendActivity()methods now make Object Integrity Proofs for the activity to be sent. - If the incoming activity has Object Integrity Proofs, the inbox listener now verifies them and ignores HTTP Signatures (if any).
- Added
signObject()function. - Added
SignObjectOptionsinterface. - Added
createProof()function. - Added
CreateProofOptionsinterface. - Added
verifyObject()function. - Added
VerifyObjectOptionsinterface. - Added
verifyProof()function. - Added
VerifyProofOptionsinterface. - Added
fetchKey()function. - Added
FetchKeyOptionsinterface. - Added
SenderKeyPairinterface. - The type of
Federation.sendActivity()method's first parameter becameSenderKeyPair[](was{ keyId: URL; privateKey: CryptoKey }). - The
Context.sendActivity()method's first parameter now acceptsSenderKeyPair[]as well.
- If there are any Ed25519 key pairs, the
-
In the future,
Federationclass will become an interface. For the forward compatibility, the following changes are made:- Added
createFederation()function. - Added
CreateFederationOptionsinterface. - Deprecated
new Federation()constructor. UsecreateFederation()function instead. - Deprecated
FederationParametersinterface.
- Added
-
Added
Arriveclass to Activity Vocabulary API. [#65, #68 by Randy Wressell] -
Added
Questionclass to Activity Vocabulary API. -
Added
contextoption toObject.toJsonLd()method. This applies to any subclasses of theObjectclass too. -
Deprecated
treatHttpsoption inFederationParametersinterface. Instead, use the x-forwarded-fetch library to recognize theX-Forwarded-HostandX-Forwarded-Protoheaders. -
Removed the
Federation.handle()method which was deprecated in version 0.6.0. -
Removed the
integrateHandlerOptions()function from@fedify/fedify/x/freshwhich was deprecated in version 0.6.0. -
Ephemeral actors and inboxes that the
fedify inboxcommand spawns are now more interoperable with other ActivityPub implementations.- Ephemeral actors now have the following properties:
summary,following,followers,outbox,manuallyApprovesFollowers, andurl. - Improved the compatibility of the
fedify inboxcommand with Misskey and Mitra.
- Ephemeral actors now have the following properties:
-
Added more log messages using the LogTape library. Currently the below logger categories are used:
["fedify", "sig", "proof"]["fedify", "sig", "key"]["fedify", "vocab", "lookup"]["fedify", "webfinger", "lookup"]