Projet

Général

Profil

Actions

Demande #4490

fermé

Publier des métadonnées (NodeInfo2, host-meta + ServiceInfo)

Ajouté par pitchum . il y a plus de 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Fermé
Priorité:
Normale
Assigné à:
Début:
16/05/2020
Echéance:
% réalisé:

70%

Temps estimé:
Difficulté:
3 Moyen

Description

NodeInfo2 est un format de méta-données pour rendre publiques des informations concernant le ou les services fédérés disponibles sur un domaine. Cela permet notamment d'alimenter le site the-federation.info qui recense les "nodes" de services fédérés comme mastodon, xmpp et bien d'autres (d'ailleurs pouet.chapril.org y est déjà).

Concrètement pour être recensé il suffit de publier du JSON à l'adresse en /.well-known/x-nodeinfo2.
Exemple chez jabber.fr : https://jabber.fr/.well-known/x-nodeinfo2

À garder à l'esprit, la spécification continue d'évoluer. Des échanges sur le forum feneas (feneas = Federated Networks Association) évoquent certaines évolutions comme la possibilité de déclarer plusieurs services pour un même domaine et aussi d'adopter la RFC6415 Web Host Metadata.
Ces échanges ont abouti à une nouvelle spécification nommée ServiceInfo qui ne semble pas encore vraiment utilisée.

J'ai simulé l'enregistrement de chapril.org et il n'y a pas eu d'appels à /.well-known/host-meta (XRD) ni à /.well-known/host-meta.json (JRD):

95.216.145.65 - - [16/May/2020:08:54:48 +0200] "GET /.well-known/x-nodeinfo2 HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:48 +0200] "GET /.well-known/x-nodeinfo2 HTTP/1.1" 404 244 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:48 +0200] "GET /.well-known/x-nodeinfo2 HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:48 +0200] "GET /.well-known/x-nodeinfo2 HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:48 +0200] "GET /.well-known/x-nodeinfo2 HTTP/1.1" 404 244 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:48 +0200] "GET /.well-known/nodeinfo HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:48 +0200] "GET /.well-known/nodeinfo HTTP/1.1" 404 244 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:48 +0200] "GET /.well-known/nodeinfo HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:49 +0200] "GET /.well-known/nodeinfo HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:49 +0200] "GET /.well-known/nodeinfo HTTP/1.1" 404 244 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:49 +0200] "GET /api/v1/instance HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:49 +0200] "GET /api/v1/instance HTTP/1.1" 200 932 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:49 +0200] "GET /_matrix/federation/v1/version HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:49 +0200] "GET /_matrix/federation/v1/version HTTP/1.1" 200 941 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:49 +0200] "POST /api/meta HTTP/1.1" 301 185 "-" "python-requests/2.23.0" 
95.216.145.65 - - [16/May/2020:08:54:50 +0200] "GET /api/meta HTTP/1.1" 200 926 "-" "python-requests/2.23.0" 
95.216.145.65 - - [16/May/2020:08:54:50 +0200] "GET /statistics.json HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:50 +0200] "GET /statistics.json HTTP/1.1" 404 244 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:50 +0200] "GET /statistics.json HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:50 +0200] "GET /statistics.json HTTP/1.1" 301 185 "-" "python/federation/0.20.0-dev" 
95.216.145.65 - - [16/May/2020:08:54:50 +0200] "GET /statistics.json HTTP/1.1" 404 244 "-" "python/federation/0.20.0-dev" 

Mis à jour par pitchum . il y a plus de 4 ans

  • Statut changé de Nouveau à En cours de traitement
  • % réalisé changé de 0 à 70

Ayé, on a un JSON au format nodeinfo2 publié sur https://chapril.org/.well-known/x-nodeinfo2.
Pour ce faire j'ai dû modifier légèrement la config nginx sur bastion (cf etckeeper).

J'ai ensuite tenté de nous enregistrer sur the-federation.info mais je me suis pris une erreur 500.
Je vais attendre un peu avant de retenter ma chance et éventuellement contacter l'auteur si besoin.

En attendant j'ai publié sur la forge mon script fait maison.

Mis à jour par pitchum . il y a plus de 4 ans

J'ai trouvé ce qui n'allait pas : le champ "baseUrl" doit correspondre au nom de domaine qu'on souhaite enregistrer.
C'est corrigé. On est désormais visibles sur :

La page dédiée https://the-federation.info/node/chapril.org n'affiche pas encore les données chiffrées fournies par le JSON.
J'imagine que pour pouvoir tracer une courbe il faut attendre que le service collecte un minimum de données. Patientons...

Mis à jour par Laurent POUJOULAT il y a plus de 4 ans

Tu n'aurais pas oublié le pays dans les métadonnées ? C'est le seul record qui ne l'affiche pas ici:
https://the-federation.info/protocol/xmpp

Mis à jour par pitchum . il y a plus de 4 ans

Je m'en suis aperçu mais je n'ai pas vu comment indiquer ça dans le JSON.
Si ça se trouve c'est automatique, à partir de l'adresse IP par exemple (ce qui serait moyennement fiable) ou par un autre moyen non documenté (ou alors j'ai mal cherché).

Mis à jour par Christian P. Momon il y a plus de 4 ans

  • Version cible mis à Backlog

Mis à jour par Christian P. Momon il y a plus de 4 ans

L'information « country » est maintenant indiquée : DE :o)

Mis à jour par pitchum . il y a plus de 4 ans

Voilà, c'est gagné, on a un drapeau allemand. Pas terrible comme indicateur, le fait qu'on soit hébergé chez Hetzner pourrait nous apporter un public germanophone... Ça va être chaud pour les échanges en cas de demande de support :)

Je m'apprêtais à suggérer une évolution du format nodeinfo2 pour permettre d'indiquer soi-même la ou les langues prédominantes sur un service. Mais visiblement le format nodeinfo2 n'est plus maintenu car il est voué à être remplacé par le nouveau format ServiceInfo donc cet aspect ne changera pas de sitôt. J'ai donc inauguré leur bug tracker en signalant le besoin dans le ticket n°1 sur feneas

Ce projet ServiceInfo a pas mal d'héritage, en bas du README on peut lire :

ServiceInfo is a fork of NodeInfo2 which itself
is a fork of NodeInfo which was the successor of
statistics.json in Diaspora.

Pourvu que ça arrive à maturation avant l'extinction de l'humanité.

Mis à jour par pitchum . il y a plus de 4 ans

  • Sujet changé de Publier des métadonnées NodeInfo2 à Publier des métadonnées (NodeInfo2, host-meta + ServiceInfo)

J'ai publié un host-meta expérimental : https://chapril.org/.well-known/host-meta

Ce host-meta ne fait pour l'instant référence qu'aux service XMPP et pad qui sont 2 services suffisamment différents pour pouvoir explorer les besoins potentiels. Pour XMPP je génère un vrai fichier serviceinfo.json, pour pad, j'en ai fabriqué un à la main pour les besoins des tests.

Maintenant il faudrait que j'adapte le projet de the-federation.info pour tenir compte de ses nouveaux formats et vérifier que ça fait le job avant de le suggérer upstream.

Mis à jour par pitchum . il y a presque 4 ans

  • Statut changé de En cours de traitement à Résolu

serviceinfo ne semble pas avoir d'avenir. Il n'y a pas d'activité depuis plus d'un an sur la forge du projet.

Et comme ça fait doublon avec chaprilinfos je clôture ce ticket.

Mis à jour par pitchum . il y a presque 4 ans

  • Statut changé de Résolu à Fermé

Sur bastion j'ai fait un peu de ménage : j'ai retiré la config pour serviceinfo, et je n'ai gardé que la config pour x-nodeinfo2 qui sert vraiment.

Mis à jour par Christian P. Momon il y a presque 4 ans

  • Version cible changé de Backlog à Sprint 2020 décembre
Actions

Formats disponibles : Atom PDF