refactor: 🚚 Make paths under /entities use the singular form

This commit is contained in:
Jesse Wierzbinski 2024-08-13 16:29:47 +02:00
parent ff57ee4ffd
commit a106e7acef
No known key found for this signature in database
13 changed files with 32 additions and 32 deletions

View file

@ -12,7 +12,7 @@ This page lists changes since Working Draft 03. {{ className: 'lead' }}
- Rewrote the signature system from scratch to be simpler and not depend on dates.
- Moved Likes and Dislikes to an extension.
- Renamed fields on several common entities like [Users](/entities/users) and [Notes](/entities/notes).
- Renamed fields on several common entities like [Users](/entities/user) and [Notes](/entities/note).
- Removed the `Patch` entity.
- Useless since edits can just be sent to inboxes directly.
- Allowed `uri`s to not contain the entity's `id`.
@ -23,10 +23,10 @@ This page lists changes since Working Draft 03. {{ className: 'lead' }}
- Added `remote` field to [ContentFormat](/structures/content-format).
- Switched to [ThumbHash](https://evanw.github.io/thumbhash/) from [BlurHash](https://blurha.sh/).
- Added optional identification characters to [Custom Emojis](/structures/emoji).
- Added `manually_approves_followers` to [Users](/entities/users).
- Removed `visibility` from [Notes](/entities/notes).
- Made `subject` optional in [Notes](/entities/notes).
- Clarified the way [Follows](/entities/follows) work.
- Added `manually_approves_followers` to [Users](/entities/user).
- Removed `visibility` from [Notes](/entities/note).
- Made `subject` optional in [Notes](/entities/note).
- Clarified the way [Follows](/entities/follow) work.
- Removed the use of `Undo` entities for anything except than deleting entities.
- Renamed `Undo` to [Delete](/entities/deletes).
- Added [Unfollow](/entities/unfollows) entity.
- Renamed `Undo` to [Delete](/entities/delete).
- Added [Unfollow](/entities/unfollow) entity.

View file

@ -5,7 +5,7 @@ export const metadata = {
# Follow
Sometimes, [Users](/entities/users) want to subscribe to each other to see each other's content. The `Follow` entity facilitates this, by definining a subscription relationship between two users. {{ className: 'lead' }}
Sometimes, [Users](/entities/user) want to subscribe to each other to see each other's content. The `Follow` entity facilitates this, by definining a subscription relationship between two users. {{ className: 'lead' }}
## Vocabulary
@ -31,14 +31,14 @@ To establish a follow relationship, `social.joe.org` can do the following:
To accept the follow request, `Alice` can do the following:
1. Create a [FollowAccept](/entities/follow-accepts) entity with `Alice` as the author and `Joe` as the follower.
1. Create a [FollowAccept](/entities/follow-accept) entity with `Alice` as the author and `Joe` as the follower.
2. Send the `FollowAccept` entity to `Joe`'s inbox.
### Rejecting the Follow Request
To reject the follow request, `Alice` can do the following:
1. Create a [FollowReject](/entities/follow-rejects) entity with `Alice` as the author and `Joe` as the follower.
1. Create a [FollowReject](/entities/follow-reject) entity with `Alice` as the author and `Joe` as the follower.
2. Send the `FollowReject` entity to `Joe`'s inbox.
### Final Steps

View file

@ -5,7 +5,7 @@ export const metadata = {
# Notes
Notes represent a piece of content on a Lysand instance. They can be posted by [Users](/entities/users) and are displayed in a user's feed. Notes can contain text, images, and other media. {{ className: 'lead' }}
Notes represent a piece of content on a Lysand instance. They can be posted by [Users](/entities/user) and are displayed in a user's feed. Notes can contain text, images, and other media. {{ className: 'lead' }}
<Note>
Notes are not just limited to microblogging. They can be used for any kind of content, such as forum posts, blog posts, image posts, video posts, audio posts, and even messaging.
@ -61,7 +61,7 @@ Notes represent a piece of content on a Lysand instance. They can be posted by [
Whether the note contains "sensitive content". This can be used with `subject` as a "content warning" feature.
</Property>
<Property name="mentions" type="URI[]" required={false} typeLink="/types#uri">
URIs of [Users](/entities/users) that should be notified of the note. Similar to Twitter's `@` mentions. The note may also contain mentions in the content, however only the mentions in this field should trigger notifications.
URIs of [Users](/entities/user) that should be notified of the note. Similar to Twitter's `@` mentions. The note may also contain mentions in the content, however only the mentions in this field should trigger notifications.
</Property>
<Property name="previews" type="LinkPreview" required={false}>
Previews for any links in the publication. This is to avoid the [stampeding mastodon problem](https://github.com/mastodon/mastodon/issues/23662) where a link preview is fetched by every server that sees the publication, creating an accidental DDOS attack.

View file

@ -82,4 +82,4 @@ Any field in an entity not marked as `required` may be omitted or set to `null`.
When serialized to a string, the JSON representation of an entity should follow the following rules:
- Keys must be sorted lexicographically.
- Should use UTF-8 encoding.
- Must be **signed** using the relevant [User](/entities/users)'s private key, or the [Server Actor](/entities/server-actor)'s private key if the entity is not associated with a particular user.
- Must be **signed** using the relevant [User](/entities/user)'s private key, or the [Server Actor](/entities/server-actor)'s private key if the entity is not associated with a particular user.

View file

@ -5,7 +5,7 @@ export const metadata = {
# Unfollow
Sometimes, [Users](/entities/users) want to unsubscribe from each other to stop seeing each other's content. The `Unfollow` defines such a change. {{ className: 'lead' }}
Sometimes, [Users](/entities/user) want to unsubscribe from each other to stop seeing each other's content. The `Unfollow` defines such a change. {{ className: 'lead' }}
<Note>
Refer to the [Follow](/entities/follow) entity for information on how follow relationships work.
@ -21,7 +21,7 @@ Sometimes, [Users](/entities/users) want to unsubscribe from each other to stop
- Alice wants to remove Bob as a follower.
For the latter, use [FollowReject](/entities/follow-rejects).
For the latter, use [FollowReject](/entities/follow-reject).
</Note>
## Entity Definition

View file

@ -5,7 +5,7 @@ export const metadata = {
# Users
The `User` entity represents an account on a Lysand instance. Users can post [Notes](/entities/notes), follow other users, and interact with content. Users are identified by their `id` property, which is unique within the instance. {{ className: 'lead' }}
The `User` entity represents an account on a Lysand instance. Users can post [Notes](/entities/note), follow other users, and interact with content. Users are identified by their `id` property, which is unique within the instance. {{ className: 'lead' }}
## Addresses
@ -115,13 +115,13 @@ Instance **must** be the host of the instance the user is on (hostname with opti
The user's federation outbox. Refer to the [federation documentation](/federation).
### Followers
User's followers. [Collection](/structures/collection) of [User](/entities/users) entities.
User's followers. [Collection](/structures/collection) of [User](/entities/user) entities.
### Following
Users that the user follows. [Collection](/structures/collection) of [User](/entities/users) entities.
Users that the user follows. [Collection](/structures/collection) of [User](/entities/user) entities.
### Featured
[Notes](/entities/notes) that the user wants to feature (also known as "pin") on their profile. [Collection](/structures/collection) of [Note](/entities/notes) entities.
[Notes](/entities/note) that the user wants to feature (also known as "pin") on their profile. [Collection](/structures/collection) of [Note](/entities/note) entities.
</Property>
</Properties>

View file

@ -26,7 +26,7 @@ Likes are a way for users to show appreciation for a note, like Twitter's "heart
Creator of the Like.
</Property>
<Property name="liked" type="URI" required={true} typeLink="/types#uri">
URI of the note being liked. Must link to a [Note](/entities/notes).
URI of the note being liked. Must link to a [Note](/entities/note).
</Property>
</Properties>
</Col>
@ -64,7 +64,7 @@ Dislikes are a way for users to show disapproval for a note, like YouTube's "dis
Creator of the Dislike.
</Property>
<Property name="disliked" type="URI" required={true} typeLink="/types#uri">
URI of the note being disliked. Must link to a [Note](/entities/notes).
URI of the note being disliked. Must link to a [Note](/entities/note).
</Property>
</Properties>
</Col>
@ -88,11 +88,11 @@ Dislikes are a way for users to show disapproval for a note, like YouTube's "dis
## Undoing Likes and Dislikes
To undo a like or dislike, a [Delete](/entities/deletes) entity should be used. The `deleted` property of the Delete entity should link to the Like or Dislike entity to be removed.
To undo a like or dislike, a [Delete](/entities/delete) entity should be used. The `deleted` property of the Delete entity should link to the Like or Dislike entity to be removed.
## User Collections
The Likes extension adds the following collections to the [User](/entities/users) entity:
The Likes extension adds the following collections to the [User](/entities/user) entity:
- `likes`: A [Collection](/structures/collection) of all the notes the user has liked.
- `dislikes`: A [Collection](/structures/collection) of all the notes the user has disliked.

View file

@ -8,7 +8,7 @@ export const metadata = {
Lysand uses the HTTP protocol for all communications between instances. HTTP requests must conform to certain standards to ensure compatibility between different implementations, as well as to ensure the security and integrity of the data being exchanged.
ALL kinds of HTTP requests/responses between instances **MUST** include a [Signature](/signatures), signed with either the relevant [User](/entities/users)'s private key or the [Server Actor](/entities/server-actor)'s private key.
ALL kinds of HTTP requests/responses between instances **MUST** include a [Signature](/signatures), signed with either the relevant [User](/entities/user)'s private key or the [Server Actor](/entities/server-actor)'s private key.
## Requests

View file

@ -34,7 +34,7 @@ The words **MUST**, **MUST NOT**, **SHOULD**, **SHOULD NOT**, and **MAY** are us
</Note>
The Lysand Protocol uses the following terms:
- **Entity**: A generic term for any JSON object in the protocol, such as an [Actor](./entities/actors), a [Note](./entities/notes), or a [Like](./entities/likes). Entities are uniquely identified by their `id` property.
- **Entity**: A generic term for any JSON object in the protocol, such as an [Actor](./entities/actors), a [Note](./entities/note), or a [Like](./entities/likes). Entities are uniquely identified by their `id` property.
- **Implementation**: A software application that implements the Lysand Protocol.
- **Instance**: An application deploying an **Implementation**.
- Using the same nomenclature, an ActivityPub Implementation would be `Mastodon`, and an Instance would be `mastodon.social`.

View file

@ -271,13 +271,13 @@ export const navigation: NavGroup[] = [
{
title: "Entities",
links: [
{ title: "Delete", href: "/entities/deletes" },
{ title: "Follow", href: "/entities/follows" },
{ title: "FollowAccept", href: "/entities/follow-accepts" },
{ title: "FollowReject", href: "/entities/follow-rejects" },
{ title: "Notes", href: "/entities/notes" },
{ title: "Unfollow", href: "/entities/unfollows" },
{ title: "Users", href: "/entities/users" },
{ title: "Delete", href: "/entities/delete" },
{ title: "Follow", href: "/entities/follow" },
{ title: "FollowAccept", href: "/entities/follow-accept" },
{ title: "FollowReject", href: "/entities/follow-reject" },
{ title: "Notes", href: "/entities/note" },
{ title: "Unfollow", href: "/entities/unfollow" },
{ title: "Users", href: "/entities/user" },
],
},
{