refactor: 📝 Use the term "transient entity" where appropriate

This commit is contained in:
Jesse Wierzbinski 2024-12-10 17:39:57 +01:00
parent 8bb062e887
commit 29f7ccba99
No known key found for this signature in database
11 changed files with 18 additions and 14 deletions

View file

@ -11,6 +11,7 @@ This page lists changes since Working Draft 3. {{ className: 'lead' }}
## Since WD 4 ## Since WD 4
- Removed URI from [Report](/extensions/reports), and replaced `reason` with `tags`. - Removed URI from [Report](/extensions/reports), and replaced `reason` with `tags`.
- Docs now use the term "Transient Entity" where appropriate.
- Mandated Unix-style `\n` line endings in all text fields. - Mandated Unix-style `\n` line endings in all text fields.
- Renamed the following headers, as per [RFC 6648](https://tools.ietf.org/html/rfc6648): - Renamed the following headers, as per [RFC 6648](https://tools.ietf.org/html/rfc6648):
- `X-Signature` to `Versia-Signature` - `X-Signature` to `Versia-Signature`

View file

@ -5,7 +5,7 @@ export const metadata = {
# Delete # Delete
Signals the deletion of an entity. {{ className: 'lead' }} Signals the deletion of an entity. It is a **transient entity**. {{ className: 'lead' }}
## Authorization ## Authorization
@ -21,7 +21,7 @@ Having the authorization is defined as:
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="author" type="URI | null" required={true} typeLink="/types#uri"> <Property name="author" type="URI | null" required={true} typeLink="/types#uri">
URI of the `User` who is deleting the entity. [Can be set to `null` to represent the instance](/entities/instance-metadata#the-null-author). URI of the `User` who is deleting the entity. [Can be set to `null` to represent the instance](/entities/instance-metadata#the-null-author).

View file

@ -15,7 +15,7 @@ export const metadata = {
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="author" type="URI" required={true} typeLink="/types#uri"> <Property name="author" type="URI" required={true} typeLink="/types#uri">
URI of the `User` considered the 'followee', i.e. the user who is being followed. URI of the `User` considered the 'followee', i.e. the user who is being followed.

View file

@ -25,7 +25,7 @@ But it can also be used when Bob is already following Alice, in the case that:
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="author" type="URI" required={true} typeLink="/types#uri"> <Property name="author" type="URI" required={true} typeLink="/types#uri">
URI of the `User` considered the 'followee', i.e. the user who is being followed. URI of the `User` considered the 'followee', i.e. the user who is being followed.

View file

@ -57,7 +57,7 @@ Once a follow relationship is established, the **followee**'s instance should se
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="author" type="URI" required={true} typeLink="/types#uri"> <Property name="author" type="URI" required={true} typeLink="/types#uri">
URI of the `User` considered the 'follower'. URI of the `User` considered the 'follower'.

View file

@ -83,7 +83,7 @@ Indicates that a [User](/entities/user) wishes to subscribe to a group.
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="subscriber" type="URI" required={true} typeLink="/types#uri"> <Property name="subscriber" type="URI" required={true} typeLink="/types#uri">
URI of the [User](/entities/user) subscribing to the group. URI of the [User](/entities/user) subscribing to the group.
@ -117,7 +117,7 @@ Indicates that a [User](/entities/user) wishes to unsubscribe from a group.
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="subscriber" type="URI" required={true} typeLink="/types#uri"> <Property name="subscriber" type="URI" required={true} typeLink="/types#uri">
URI of the [User](/entities/user) unsubscribing from the group. URI of the [User](/entities/user) unsubscribing from the group.
@ -151,7 +151,7 @@ Indicates that a [Group](#entity-definition) has accepted a [User](/entities/use
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="subscriber" type="URI" required={true} typeLink="/types#uri"> <Property name="subscriber" type="URI" required={true} typeLink="/types#uri">
URI of the [User](/entities/user) subscribing to the group. URI of the [User](/entities/user) subscribing to the group.
@ -185,7 +185,7 @@ Indicates that a [Group](#entity-definition) has rejected a [User](/entities/use
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="subscriber" type="URI" required={true} typeLink="/types#uri"> <Property name="subscriber" type="URI" required={true} typeLink="/types#uri">
URI of the [User](/entities/user) subscribing to the group. URI of the [User](/entities/user) subscribing to the group.
@ -227,7 +227,7 @@ The `GroupFederate` entity allows a group to federate a note to all of its membe
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="note" type="URI" required={true} typeLink="/types#uri"> <Property name="note" type="URI" required={true} typeLink="/types#uri">
URI of the note to federate. URI of the note to federate.

View file

@ -34,7 +34,9 @@ Any field in an entity not marked as `required` may be omitted or set to `null`.
<Property name="uri" type="URI" required={true} typeLink="/types#uri"> <Property name="uri" type="URI" required={true} typeLink="/types#uri">
URI of the entity. Should be unique and resolve to the entity. Must be an absolute URI. URI of the entity. Should be unique and resolve to the entity. Must be an absolute URI.
**Some entity types may not need a URI. This will be specified in the entity's documentation.** <Note>
**Transient Entities** do not require a URI.
</Note>
</Property> </Property>
<Property name="$schema" type="string" required={false}> <Property name="$schema" type="string" required={false}>
URL of any JSON Schema that the entity adheres to. URL of any JSON Schema that the entity adheres to.

View file

@ -30,7 +30,7 @@ Sometimes, [Users](/entities/user) want to unsubscribe from each other to stop s
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="author" type="URI" required={true} typeLink="/types#uri"> <Property name="author" type="URI" required={true} typeLink="/types#uri">
URI of the `User` considered the 'follower', i.e. the user who is unsubscribing from the followee. URI of the `User` considered the 'follower', i.e. the user who is unsubscribing from the followee.

View file

@ -34,7 +34,7 @@ Migration happens in three steps:
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="type" type="string" required={true}> <Property name="type" type="string" required={true}>
Must be `pub.versia:migration/Migration`. Must be `pub.versia:migration/Migration`.

View file

@ -15,7 +15,7 @@ When an instance receives a report, it *should* be reviewed by a moderator or ad
<Col> <Col>
<Properties> <Properties>
<Property name="uri" type="null" required={false}> <Property name="uri" type="null" required={false}>
This entity does not have a URI. This is a **Transient Entity** and does not have a URI.
</Property> </Property>
<Property name="type" type="string" required={true}> <Property name="type" type="string" required={true}>
Must be `pub.versia:reports/Report`. Must be `pub.versia:reports/Report`.

View file

@ -35,6 +35,7 @@ The words **MUST**, **MUST NOT**, **SHOULD**, **SHOULD NOT**, and **MAY** are us
The Versia Protocol uses the following terms: The Versia Protocol uses the following terms:
- **Entity**: A generic term for any JSON object in the protocol, such as a [User](./entities/user), a [Note](./entities/note), or a [Like](./extensions/likes). Entities are uniquely identified by their `id` property. - **Entity**: A generic term for any JSON object in the protocol, such as a [User](./entities/user), a [Note](./entities/note), or a [Like](./extensions/likes). Entities are uniquely identified by their `id` property.
- **Transient Entity**: A type of **Entity** that is not meant to be stored permanently or referenced by other entities.
- **Implementation**: A software application that implements the Versia Protocol. - **Implementation**: A software application that implements the Versia Protocol.
- **Instance**: An application deploying an **Implementation**. - **Instance**: An application deploying an **Implementation**.
- Using the same nomenclature, an ActivityPub Implementation would be `Mastodon`, and an Instance would be `mastodon.social`. - Using the same nomenclature, an ActivityPub Implementation would be `Mastodon`, and an Instance would be `mastodon.social`.