Skip to content

Share Extension

The Share Extension lets users share notes with others. This is the same as Twitter’s “retweet” and Mastodon’s “boost”.

This extension requires pub.versia:social@1, which defines Notes.

Definition

Type
"pub.versia:share/Share"
Fetch
GET /.versia/v0.7/entities/pub.versia:share/Share/{id}

Fields

type string Required

MUST be pub.versia:share/Share.

author Reference Required

Reference to the User who created the Share.

target Reference Required

Reference to the note being shared.

Inherited from Entity: id, created_at, updated_at, extensions
{
    "id": "033gs6adpp000",
    "type": "pub.versia:share/Share",
    "created_at": "2021-01-01T00:00:00Z",
    "author": "example.com:033wv9k6n0007",
    "target": "example.org:033w19vsgr000"
}

Behavior

A user MUST NOT share a Note whose visibility is not public. A receiver MUST ignore a Share of such a Note.

In clients, Shares SHOULD be rendered in a way that makes it clear that the shared note was originally authored by someone else than the user who shared it.

Shares can be undone (“unboosting”) with a Delete entity.

Delivery and Access

A sender MUST deliver Shares to the author of the Note and to the subscribers of the user who shared it.

Any instance that may fetch the Note, and the instance of the Note’s author, may fetch a Share.

Collections

The Share extension adds the following collections to the Note entity:

Interaction Types

This extension registers the following interaction types:

  • pub.versia:share/share, for sharing a Note.

The Share extension adds the following Versia Link action:

  • share/{instance}/{id}: Share a note.