Don't advertise follow(er|ing) collections for internal actors

We don’t actually handle those endpoints just serving the
default frontend’s 404 HTML page, causing other servers to grumble
about it in their logs. Spec explicitly marks these as optional so
just stop pretending we have such collections.
As for real-world interop, Mastodon’s internal instance actor omits
them too, so this is fairly unlikely to cause any issues.

Notably, our built-in relay actor is not affect by this since it has
a non-nil nickname "relay" without "internal." prefix, i.e. it’s just
a regular actor with a funny ActivityPub ID.
In fact, afaict we don't have any "internal." actors
at the moment other than "internal.fetch".

Fixes: #855
This commit is contained in:
Oneric 2024-11-22 22:24:21 +01:00
parent c0a99df06a
commit 429575adb5
2 changed files with 1 additions and 2 deletions

View file

@ -23,6 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- AP objects with additional JSON-LD profiles beyond ActivityStreams can now be fetched
- Single-selection polls no longer expose the voter_count; MastoAPI demands it be null
and this confused some clients leading to vote distributions >100%
- Internal actors no longer pretend to have unresolvable follow(er|ing) collections
## Changed
- Refactored Rich Media to cache the content in the database. Fetching operations that could block status rendering have been eliminated.

View file

@ -39,8 +39,6 @@ def render("service.json", %{user: user}) do
%{
"id" => user.ap_id,
"type" => "Application",
"following" => "#{user.ap_id}/following",
"followers" => "#{user.ap_id}/followers",
"inbox" => "#{user.ap_id}/inbox",
"outbox" => "#{user.ap_id}/outbox",
"name" => "Pleroma",