Menu
HomeTariffeWebinar
Connexion
Contatti
Contatti

Le socle technique

Ce que nous faisons tourner, et l’adresse publique qui permet de le vérifier : surfaces lisibles par une machine, contrats d’API, corpus, preuve, exploitation — et ce qui ne tourne pas encore.

Règle de tenue. Aucune section de cette page n’affirme quelque chose qui ne soit pas ouvrable à une adresse publique. Ce qui existe et ne se vérifie pas de l’extérieur n’y figure pas ; ce qui ne tourne pas est au dernier chapitre.

Les positions dont ceci est la mise en œuvre vivent sur la page « La pensée VeraTrace » ; le vocabulaire employé ici est défini dans le lexique.

01 — La règle de cette page

Chaque affirmation portée ici porte l’adresse qui permet de la contredire.

Une page technique se lit d’ordinaire sur parole : elle énumère des composants que personne d’extérieur ne verra jamais tourner. Nous pourrions publier une sortie de terminal ; elle ne prouverait rien. Une sortie recopiée est une déclaration — précisément ce que nous refusons de compter comme preuve quand elle vient de quelqu’un d’autre.

Ce qui est vérifiable, en revanche, c’est ce que nos serveurs répondent. Chaque section ci-dessous porte donc des URL publiques, ouvrables sans compte, depuis un navigateur ou par un agent. Nous annonçons à chaque fois ce que la réponse doit contenir : si elle ne le contient pas, c’est nous qui avons tort.

Deux conséquences assumées. Rien n’est affirmé ici qui ne soit pas ouvrable — le reste de notre exploitation existe et n’a pas sa place sur une page publique, non par pudeur mais parce qu’une affirmation invérifiable n’aurait rien à y faire. Et le dernier chapitre liste ce qui ne tourne pas, daté : une page de ce genre sans chapitre de limites est une plaquette.

Vérifiez vous-même
  • /fr/pensee
    Les 8 positions dont cette page est la mise en œuvre — dont le chapitre 02, qui définit ce que nous appelons une preuve.
Termes — Preuve · Donnée déclarée

02 — Ce qu’une machine peut lire sans nous demander

Un agent qui nous découvre n’a rien à deviner : la carte du site, le corpus entier, le vocabulaire et le catalogue d’API sont publiés dans des formats faits pour lui.

Un modèle qui nous résume aujourd’hui le fait en lisant des pages écrites pour des humains, puis en inférant le reste. Il y arrive souvent, et l’inférence n’est jamais garantie. Nous publions donc les mêmes faits sous une forme qui n’a pas besoin d’être devinée.

/llms.txt est la carte — les pages d’entrée, le vocabulaire à lire avant de nous paraphraser, la politique d’indexation du Registre. /llms-full.txt est le texte : le corpus complet en Markdown, environ un mégaoctet, articles entiers et positions comprises. Ni l’un ni l’autre n’est écrit à la main : ce qui s’énumère y est dérivé des mêmes registres que le site, parce que la version précédente de ce fichier annonçait des chiffres qui n’avaient plus aucun rapport avec le code.

Le vocabulaire est publié en RDF sur 3 espaces de noms, avec négociation de contenu sur l’en-tête Accept : Turtle par défaut, JSON-LD sur demande, et une redirection vers le lexique pour un navigateur. Chaque terme porte un IRI stable, et les articles du blog pointent leur schema:about vers ces mêmes IRI — un essai et la page produit qui met en œuvre la notion résolvent vers un identifiant, pas vers deux textes qu’il faudrait rapprocher.

Trois documents de découverte standard complètent l’ensemble, aux adresses que leurs RFC imposent : un catalogue d’API (RFC 9727, sérialisé en linkset RFC 9264), une description de jeu de données VoID, et un descripteur de résolveur GS1. Aucun n’est décoratif — le catalogue n’émet une entrée que si la spécification qu’elle référence est réellement présente sur le disque, un catalogue qui pointe vers un 404 coûtant plus cher qu’un catalogue incomplet.

Vérifiez vous-même
  • /llms.txt
    La carte du site pour un modèle, en anglais, environ 16 Ko.
  • /llms-full.txt
    Le corpus entier en Markdown — 138 articles longs, environ 1 Mo.
  • /ontology
    Le vocabulaire cœur en Turtle. `Accept: application/ld+json` rend du JSON-LD.
  • /ns/dpp
    Le profil Passeport Numérique de Produit, même négociation.
  • /ngsi-ld/v1/vocab
    Les extensions NGSI-LD pour la fédération de capteurs.
  • /.well-known/api-catalog
    Un linkset JSON (RFC 9727) donnant l’URL de chaque spécification OpenAPI.
  • /.well-known/void
    La description VoID du jeu de données publié.
  • /.well-known/gs1resolver
    Le descripteur de résolveur GS1 Digital Link.
Termes — Preuve · Fiche du Registre

03 — Les contrats d’API

Nos spécifications OpenAPI ne documentent pas le code après coup : elles en sont la source, et un garde fait échouer la compilation quand les deux divergent.

Une spécification tenue à la main dérive, toujours, et dérive en silence — c’est le mode d’échec normal de la documentation d’API. Les nôtres sont donc traitées comme du code : chaque YAML canonique a un artefact TypeScript engendré et versionné, et un test régénère l’artefact en mémoire pour le comparer octet à octet à celui qui est committé. Modifier la spécification sans régénérer met la branche au rouge.

La spécification publique est servie telle quelle, environ 110 Ko : passeport consommateur, GS1 Digital Link, vérification, EPCIS 2.0. Un intégrateur n’a pas à nous écrire pour l’obtenir, et un agent la trouve seul depuis le catalogue du chapitre précédent.

La page des intégrations affiche pour chaque connecteur un statut réel — en service, en bêta, à venir — plutôt qu’un mur de logos. C’est moins flatteur et c’est le seul état qui se vérifie : un logo affirme une relation commerciale, un statut affirme qu’un client HTTP existe.

Vérifiez vous-même
Termes — Preuve de traçabilité · Passeport

04 — Le corpus public

Le Registre, le blog, la doctrine et le lexique ne sont pas quatre contenus : c’est une seule matière, où la même notion porte le même identifiant.

Le Registre est la plus grande surface publique du site : une page par entreprise de la filière alimentaire française, construite exclusivement sur des sources ouvertes — répertoire SIRENE, Base Adresse Nationale, RNE, BODACC, OpenStreetMap, registres européens d’appellations — et qui déclare ses sources sur chaque fiche. Plus d’un million de fiches, consultables sans compte, réclamables gratuitement par l’entreprise concernée. Personne n’a levé la main pour y figurer : c’est un pouvoir, pas une faveur, et nous le traitons comme tel au chapitre 05 de la doctrine.

Le blog porte 138 articles longs, la doctrine 8 positions à ancres stables, le lexique 63 définitions canoniques. Le lien entre les trois n’est pas éditorial mais technique : les articles déclarent les notions qu’ils travaillent, la doctrine cite les articles qui l’établissent, et un test refuse la compilation si une position cite un article ou un terme qui n’existe plus. Une page de doctrine dont les renvois pourrissent est pire qu’une page absente.

Le lexique existe parce que plusieurs de nos mots sont assez proches pour être confondus, et que les confondre produit des affirmations assurées et fausses. Les quatre scores en sont l’exemple le plus coûteux : l’indice de confiance note un acteur, le score de transparence mesure ce qu’un producteur expose, le score de preuve ne fait qu’ordonner une liste de résultats, et le capital de confiance est un volume. Ils ne sont pas interchangeables et peuvent diverger pour une même entreprise.

Vérifiez vous-même
  • /fr/annuaire
    Le Registre, avec son total vivant en tête de page.
  • /fr/blog
    Les 138 articles, en trois familles.
  • /fr/lexique
    Les 63 définitions, chacune avec son IRI stable.
  • /sitemap.xml
    Un index de sitemaps, fragmenté par volume. Il se compose à la demande : comptez plusieurs dizaines de secondes.
Termes — Fiche du Registre · Index de confiance · Score de transparence · Score de preuve (découverte)

05 — L’application

La même donnée de traçabilité est rendue dans le vocabulaire de chaque métier, plutôt que dans un vocabulaire moyen que personne ne parle.

Un boulanger, un vigneron, un grossiste et une cantine ne décrivent pas les mêmes objets et n’appellent pas les mêmes choses par les mêmes noms. 25 espaces métier existent, chacun avec ses écrans et ses mots, au-dessus des mêmes enregistrements ; 13 d’entre eux ont une page publique. L’interface est servie en 11 langues, le français étant la langue source ; les traductions dans 53 autres langues existent mais attendent une relecture humaine avant d’être publiées.

Toutes ces surfaces ne se valent pas, et la page des limites le dit. Ce qui se vérifie depuis l’extérieur, sans compte : le parcours de découverte, les assistants d’aide à la conformité, et le fonctionnement général — c’est-à-dire ce qui est listé ci-contre.

Vérifiez vous-même
Termes — Espace métier · Scan · Passeport

06 — La preuve, concrètement

Signer, relier et publier sont trois opérations distinctes : deux tournent, et nous déclarons que la troisième n’est pas active.

Un enregistrement est sérialisé sous une forme canonique — même contenu, même octets, quel que soit l’ordre des champs — puis signé en Ed25519 et haché. Les empreintes sont regroupées par lots dans un arbre de Merkle, dont la racine résume l’ensemble. N’importe quelle pièce se re-vérifie depuis son empreinte seule, sans nous redemander la donnée.

Cette mécanique répond à une question et à une seule : la pièce a-t-elle changé depuis son enregistrement ? Elle ne dit rien de la véracité de ce qui a été enregistré, et rien de la date opposable — une date que nous produisons ne vaut que si vous nous faites confiance. C’est l’objet du troisième verbe, publier, qui n’est pas actif : le pilote d’ancrage est enfichable, et la phase en cours écrit hors chaîne. Nous préférons l’écrire ici que le laisser entendre ailleurs.

Un contrôle de non-régression rejoue les charges stockées contre leurs empreintes et échoue si l’une d’elles ne correspond plus. Il n’est pas périodique : il se lance avant toute modification de la sérialisation canonique ou des enveloppes de signature, et avant une rotation de clé — c’est-à-dire aux trois moments où une dérive resterait sinon invisible jusqu’au jour où quelqu’un demanderait une vérification.

Vérifiez vous-même
Termes — Attestation · Racine de Merkle · Ancrage · Preuve de traçabilité

07 — L’exploitation

Ce qui tourne est ce que le dépôt décrit : l’état du cluster est réconcilié depuis git, pas posé à la main sur les machines.

Le déploiement est déclaratif : l’état du cluster est réconcilié en continu depuis le dépôt, et une modification appliquée à la main sur une machine est ramenée à l’état déclaré plutôt que conservée. La propriété qui compte pour un lecteur extérieur n’est pas que la production soit à jour — l’image en service peut être en retard de quelques commits sur la branche principale, et c’est fréquent. C’est qu’à tout instant, ce qui tourne est nommé dans un fichier versionné, y compris l’identifiant de l’image, plutôt que dans la mémoire de quelqu’un.

La sonde publique est volontairement pauvre — elle répond { ok: true } et une horodate, sans toucher au disque ni interroger le moindre tiers. C’est délibéré et c’est contre-intuitif : une sonde qui vérifierait ses dépendances ferait redémarrer le service au premier hoquet d’un fournisseur externe. Elle atteste que le processus répond, ce qui est exactement ce qu’une sonde doit attester.

Le reste — la topologie, les secrets, les sauvegardes, les runners d’intégration continue — existe et ne sera pas décrit ici. Non par pudeur : parce que rien de tout cela ne se vérifie depuis l’extérieur, et que cette page a fait le choix de ne rien affirmer d’invérifiable.

Vérifiez vous-même
  • /api/health/local
    Un JSON `{ ok: true, ts: … }`, sans cache, servi sans authentification.
Termes — Preuve

Ce que nous déclarons

Ce qui suit ne s’ouvre à aucune adresse : c’est notre parole, et nous la marquons comme telle.

Le reste du site oppose partout la donnée déclarée à la donnée observée, et refuse qu’on présente la première pour la seconde. Nous nous appliquons la règle. Ce bloc existe parce que ce qui convaincrait le plus — l’exploitation — est précisément ce qui ne s’ouvre pas dans un navigateur ; le publier sans l’étiqueter aurait coûté plus que le silence. Vous n’êtes pas tenu de nous croire, et rien ici ne dépend de ce que vous en ferez : les sections au-dessus tiennent seules. État au .

Depuis quand cela tourne

L’API est déployée depuis le 24 février 2026, l’application web depuis le 25 mai 2026, le serveur de données publiques depuis le 20 juin 2026. Aucun de ces déploiements n’a été recréé depuis. C’est le fait que nous mettons en avant parce qu’il est celui qu’on suppose faux le plus souvent : l’âge de la société est public et se lit en quelques secondes au répertoire SIRENE, celui de son infrastructure ne se lit nulle part. Les deux tombent sur la même date, au jour près — la moitié que vous pouvez contrôler est celle qui nous arrange le moins.

Trois services, pas une application

Ce qui répond à veratrace.eu n’est pas ce qui répond à api.veratrace.eu. Trois services distincts sont déployés séparément : l’application web et son BFF, l’API métier, et un serveur de données publiques qui interroge les référentiels de l’État. Ils ont des cycles de livraison indépendants — c’est ce qui explique qu’une correction puisse être visible sur l’un et pas encore sur l’autre.

Ce qui tourne est ce que le dépôt décrit

La livraison est une chaîne : dépôt → événement → construction d’image → registre → réconciliation continue de l’état du cluster. Une modification appliquée à la main sur une machine est ramenée à l’état déclaré plutôt que conservée. L’identifiant de l’image en service est lui-même écrit dans le dépôt, ce qui veut dire deux choses : la production peut être en retard de quelques commits sur la branche principale, et à tout instant ce qui tourne est nommé dans un fichier versionné plutôt que dans la mémoire de quelqu’un.

Le socle, par catégories

Gestion centralisée des secrets avec injection au démarrage, fournisseur d’identité OIDC, autorité de certification interne, chiffrement au repos des données sensibles avec des clés qui ne vivent pas dans le dépôt, et une chaîne d’observation complète — métriques, journaux structurés, traces distribuées. Nous nommons des catégories et non un inventaire : la liste des briques dirait ce que nous avons installé, pas ce que nous en faisons.

Ce qui ne tourne pas

Sans ce chapitre, les sept précédents ne valent rien.

Liste relue le . Elle ne peut que rétrécir : une limite levée se retire d’ici, elle ne s’y nuance pas.

L’ancrage externe

Rien n’est publié aujourd’hui sur une chaîne externe. Le pilote est enfichable et la phase en cours écrit hors chaîne : nos dates sont enregistrées par notre système et valent si vous nous faites confiance. Une publication externe ne résout qu’une chose — la date opposable à celui qui tient le registre — et nous la câblerons le jour où cette chose deviendra indispensable, pas avant.

L’amont déclaratif

Une donnée saisie par un humain reste une déclaration, même signée, même horodatée, même infalsifiable ensuite. Nous garantissons qu’elle n’a pas changé et qui l’a faite ; nous ne garantissons pas qu’elle était vraie au moment de la saisie.

Les jointures déduites

Entre deux enregistrements qui ne se touchent pas, quelque chose décide qu’ils vont ensemble. Ce rapprochement est souvent juste, il n’a pas été constaté — et à l’écran il ressemble à une mesure. Nous marquons la distinction dans le modèle ; nous ne l’avons pas encore rendue visible partout où elle devrait l’être.

Le stockage

Une partie des données de cette application vit encore dans un magasin de fichiers hérité de la première version, et bascule vers une base relationnelle domaine par domaine plutôt que d’un bloc. Ce n’est pas invisible de l’extérieur : c’est ce qui explique qu’une poignée de surfaces soit plus lente que le reste.

Le sitemap

L’index se compose à la demande sur un corpus de plus d’un million de pages, et peut demander plusieurs dizaines de secondes. Un agent qui le récupère avec un délai d’attente court conclura à tort qu’il n’existe pas.

Cette page n’existe qu’en français

Les autres langues la servent en français et la déclarent non indexable — même arbitrage que le blog, la doctrine et le lexique. La version anglaise des mêmes faits est dans /llms.txt, qui est écrit en anglais.