Skip to main content

ActivityPub

Minds can interoperate (federate) with other networks that implement the ActivityPub protocol, allowing members to communicate with each other; much like email, where you can mail other providers, so long as you know their email address.

Spec compliance

Activities

↗️ ActivityFactory.php

ActivitySupported onNotes
CreateNoteCreates a post and saves to the database
AnnounceNoteCreates a remind and saves to the database
LikeNoteCreates an Up Vote on a post
FollowPersonSubscribes to a channel
AcceptFollow ✅A subscribe request was accepted
DeleteNote ⚒️ Person ⚒️https://gitlab.com/minds/engine/-/issues/2630
UndoLike ✅ Announce ✅ Follow ✅Undo a remind, subscription or up vote
FlagNote ⚒️ Actor ⚒️https://gitlab.com/minds/engine/-/issues/2617
BlockPerson ⚒️
MovePerson

Objects

↗️ ObjectFactory.php

ObjectNotes
NoteComments currently only support a single image attachment
ImageAn extension of the Document object
DocumentA more generic interface to use for multiple different type of attachment

Note

  • A minds 'activity' is transformed into a Note.
  • Quote posts are transformed to Note objects and will use the inReplyTo property to reference the source post
  • Comments are also transformed to a Note and will also use the inReplyTo property
  • All ingested Note objects will be transformed into comments
PropertyTypeNotes
contentstringText of the post (Note: this is represented as HTML)
inReplyTostringThe id of the post that is being replied to. Comments and Quote posts used this property.
publishedstringThe timestamp of the post date
urlstringA url that will link to the original post. Falls back to the id field if not provided
attributedTostringThe id of the post owner
to/ccstring[]Specifies the audience (ie. followers) and visibility level of a post
attachmentImage[]|Document[]Attached media (images). Video support coming soon.

Image/Document

PropertyTypeNotes
urlstringThe source of the attachment
mimeTypestringie. image/jpeg

Actors

↗️ ActorFactory.php

ActorNotes
PersonTransformed to a User (channel)

Person

PropertyTypeNotes
preferredUsernamestringUsed for a username. Must be unique per domain and correspond to a Webfungert acct: URI
namestringA display name for the user
summarystringA brief description or 'bio' on the users channel page
urlstringA url that will link to the original profile. Falls back to the id field if not provided
iconstringThe channels avatar
manuallyApprovesFollowersbooleanAlways false
publicKeyPublicKeyThe public key of the actor. Network requests from this actor will be signed with their respective private key

Background runners

Events are emitted via background runners to improve performance and durability. At this time, Minds will not attempt to redeliver failed events, but we will start supporting retries in the future.

PurposeFileScript
Dispatches new posts and deletesActivityPubEntitiesOpsSubscription.phpphp cli.php EventStreams --subscription=Core\\ActivityPub\\Subscriptions\\ActivityPubEntitiesOpsSubscription
Dispatches subscribe and up vote eventsActivityPubEventStreamsSubscription.phpphp cli.php EventStreams --subscription=Core\\ActivityPub\\Subscriptions\\ActivityPubEntitiesOpActivityPubEventStreamsSubscriptionsSubscription

FAQ

Why are my posts not showing up on Minds?

You must be subscribed to (followed by) at least one user for your posts to federate with Minds.

Why are my posts not showing up on other networks?

Other networks have different criteria for accepting federated posts. We recommend that at least one user on the other network subscribes to you for your posts to be shown. (See mastodon criteria).

Why can I not see all posts from a federated user?

Minds will only display posts from the moment they are subscribed to onwards. Similarly, if Minds has not be notified of a new post, it will also not display as we do not poll users outboxes.

How can I follow someone who is not on Minds?

We are working to make this easier (engine#2628), however for now you can follow a channel on another network by putting their username in the address bar (ie. https://www.minds.com/minds@mastodon.social).