I did read the documentation several times. The documentation mentions this:
When you add @user@example.org, a webfinger query is performed. This is done in two steps:
- Querying
https://example.org/.well-known/host-meta
(where the domain of the URL matches the domain part of the acct
: URI) to get information on how to perform the query.
If you recall how webfinger queries work, the first step is to query https://example.org/.well-known/host-meta
, which will contain an URL template.
This is what I am doing. It is explained that WebFinger queries host-meta
, which contains the URL template, then will query the URL in the template. In my server https://omaera.org/.well-known/host-meta
is returning the following:
<Link type="application/xrd+xml" template="https://fedi.omaera.org/.well-known/webfinger?resource={uri}" rel="lrdd" /></XRD>
Which contains the URI to the subdomain. WebFinger[.]net doesn’t query host-meta
at all, and instead just tries to query https://omaera.org/.well-known/webfinger
. Sure I can add the redirect for that instead, but shouldn’t in that case the docs instruct to return a 301 for /.well-known/webfinger
instead of /.well-known/host-meta
? What is the point host-meta
then if it’s not being queried as explained in the step 1 of the documentation?
Someone else already asked this: No mention of host-meta which can be used to redirect webfinger requests · Issue #28 · swicg/activitypub-webfinger · GitHub
The response was the following:
Oh, hm, I think the expectation is that (at least in Mastodon) you need to redirect the /.well-known/webfinger
endpoint entirely, not that you use /.well-known/host-meta
or /.well-known/host-meta.json
.
The use of host-meta as a “second layer of indirection” is something that mostly a holdover from the OStatus days, IIRC. Most projects that aren’t Mastodon or Pleroma will not check host-meta at all, and will instead always skip straight to the /.well-known/webfinger
endpoint. I don’t think it makes sense to unnecessarily pressure everyone into adopting host-meta or supporting variable LRDD endpoints, where WebFinger is in fact a profile of LRDD that serves specifically JRD instead of XRD.
In that case it’s better to just redirect /.well-known/webfinger
altogether, as Mastodon docs instruct (Configuring your environment - Mastodon documentation).
I haven’t yet posted with that account and I am curious where the acct
URI is saved in the database. It’s certainly not in the users
table. That said I’ll remake the user just in case as it has no posts.
Looking at Akkoma source code for the instance endpoint I can’t see how it could return the WebFinger domain:
def render("show.json", _) do
instance = Config.get(:instance)
%{
uri: Pleroma.Web.Endpoint.url(),
Pleroma.Web.Endpoint.url()
holds the instance subdomain URL, not the WebFinger one. WebFinger is under Pleroma.Web.WebFinger.domain()
.
I’ve been looking at the code and it mostly looks like Akkoma doesn’t really care about the WebFinger domain at all (as opposed to Mastodon where the WebFinger domain actually represents user accounts) and it’s only focused in responding WebFinger queries correctly if asked as an afterthought, but the main domain used everywhere is always the host URL. Am I wrong in this assumption?