@stevebate this does actually work with Mastodon:
Though there should probably be an alias in there for https://mastodon.social/
since that was the requested resource.
@stevebate this does actually work with Mastodon:
Though there should probably be an alias in there for https://mastodon.social/
since that was the requested resource.
See also, the recent change to support acct:mastodon.social@mastodon.social
as a webfinger resource: Add fallback redirection when getting a webfinger query `WEB_DOMAIN@WEB_DOMAIN` by ClearlyClaire · Pull Request #28592 · mastodon/mastodon · GitHub
conceptually, this FEP seems to be largely proposing an alternative schema for NodeInfo. Which is to say, instead of NodeInfo 2.0 or 2.1 or the upcoming 2.2, you could instead get information about the network node (or service) via an AS2 document. Consequently, it might be worth considering using a rel-value of https://www.w3.org/ns/activitystreams
rather than https://www.w3.org/ns/activitystreams#Application
.
NO!!! How can one say this? This FEP does not change a schema. This FEP uses an existing schema, and adds an entry.
This FEP is simple to implement and easy to test, while being precise (thatâs why the rel is #Application).
The requirement of the current FEP is that the
/.well-known/nodeinfo
contains an additional link with relation type
if youâre using .well-known/nodeinfo then you would expect the rel value to follow a similar pattern to how nodeinfo 2.0, 2.1, etc schemas are declared on the other links, no? why specify the #Application
fragment?
Because I want to. Is it so hard to accept that a FEP author has opinions?
NodeInfo uses JRD for the top level âindexâ document. The âprotocolâ appears to me to expect the JRD links to reference nodeinfo documents of various versions. Itâs not clear from the informal protocol description if thatâs the only types of links that are expected to be there. If so, adding non-nodeinfo JRD links is a clear misuse of the protocol.
If the nodeinfo protocol does officially allow arbitrary links in the JRD document, it is effectively equivalent to WebFinger with an implicit and fixed resource
URI.
That said, there is some precedent for using nodeinfo to identify special actors. However, in the few cases Iâve seen so far, that information was specified in the metadata
section of the nodeinfo document. If the FEP must use nodeinfo (I think the formally standardized WebFinger is a better choice), then I think the special actor information should be in the nodeinfo metadata
since thatâs more consistent with current practice. Although the metadata
has no schema definition, it would be easy to define an FEP-specific JSON metadata schema that defines some standard special actor properties (one that allows any other properties for compatibility with existing nodeinfo documents). I believe this would be more consistent with the intended usage of the nodeinfo protocol.
Per nodeinfo/PROTOCOL.md at 72c25eea1cb5995740080c0c0e5eb5abf488a4b1 · jhass/nodeinfo · GitHub â
The term âserverâ in this document refers to software providing metadata about itself on a host.
Servers must provide the well-known path
/.well-known/nodeinfo
and provide a JRD document referencing the supported documents via Link elements.
Currently the following relations are known: [listing various schemas for NodeInfo versions]
Discovery for media types other than
application/json
is left unspecified.
And perhaps most notably â
A server may provide additional representations.
#actor
if the intent is that the AS2 representation MUST be an actor. Or whatever your preference is, depending on intended semantics.Thereâs basically three different options, maybe four:
metadata
Personally my preference is host metadata, since it doesnât actually require the information that NodeInfo requires. (Detailed criticisms of NodeInfo are out-of-scope for this thread, but suffice to say that /.well-known/nodeinfo
and /.well-known/host-meta.json
are largely equivalent, and the host-meta could just as easily include the nodeinfo rel-values on links.)
Do you know of an example of an AP Fediverse server implementation that uses host-meta for anything other than providing a link to WebFinger? There may be one, but I havenât seen it. Of the three possibilities weâve discussed, host-meta would be at the bottom of the preference list for me. As Iâve said before, using NodeInfo for âapplication actorâ discovery adds an additional service requirement for AP Fediverse federation (based on the unauthorized fetch use case described in the FEP). WebFinger is already required and can support this use case (including providing links to nodeinfo resources, but Iâm not necessarily recommending that using that way).
Anything that requires discovery about the host will indeed add an additional service requirement. Webfinger does at least have other uses, sure, but you need to define a âhost resourceâ and then query it. I think itâs fine to use host-meta because if thereâs ever a situation where host-meta is required for federation, then this indicates that the concept of a âhostâ is required for federation. I remain unconvinced that having metadata about the host is required at this point, hence the other thread trying to establish use-cases and characteristics. If a compelling requirement is found, then FEPs like this one or similar will play a larger role.
As you expressed:
host-meta is the service-level equivalent of WebFinger, i.e., it doesnât require defining a âhost resourceâ. (I suppose NodeInfo can work for providing host metadata as well, but frankly the NodeInfo well-known endpoint doesnât really need to exist.)
Sorry. I should have used different phrasing. In other words, it will require an additional service for federation. This will require studying, understanding and implementing an additional specification.
I think the webfinger option makes the most sense in terms of reusing existing âinfrastructureâ however the concept of an instance actor, in my mind shouldnât be so user-facing (isnât the goal only machine to machine type activities), and in this way seems more akin to what we would find in node-info.
I would like to +1 what @stevebate and others already said: In the current way of how the fediverse works, using Webfinger is pretty much mandatory. It is also specified suitable for resolving any kind of URI if Iâm not mistaken. Since multiple people came up with the idea of using the base URL of the instance as the webfinger resource, it seem to me to be quite a straightforward (canonical?) solution. The fact that this way is already implemented in Mastodon adds to that opinion.
Since hosting webfinger is already a requirement, adding separate path should be quite simple. On the other hand, as mentioned by others, nodeinfo is not an interoperability requirement so I donât quite understand why you categorically say that it categorically simple to implement.
If the understanding of âsingle user instanceâ as mentioned elsewhere in this thread is âthe instance implementations technical capability limits it to serving and handling only a single actor objectâ then there can never be another actor, therefore I would say the only actor that is there must be the application/instance actor. Wouldnât the only issue then be the self-imposed requirement for it to be an Application
type actor?
And to be clear, my idea is not to have all the info as a result of webfingering the instance URL. The Webfinger of the root URL would also just lead to the instance actor, after that I guess there shouldnât be a problem with continuing like the rest of the FEP. Maybe it could even be an alternative, but that would complicate consuming implementations of course.
On the process itself, I find it very strange that you on the one hand demand respect and full acceptance for your opinion as the author of the FEP while also talking badly of the SocialCG for doing the same kind of thing.