Aller au contenu

Journal des changements

Chaque changement, daté du jour où il est arrivé en production

Le contrat de transmission est additif pour toujours : rien ici ne casse un client écrit avant. Ce qu’apporte une liste datée, c’est l’autre moitié — savoir si la valeur que vous voyez en production est postérieure à votre table de correspondance.

comment le lire

Un seul de ces quatre périmètres peut atteindre votre code

Les entrées marquées contrat de transmission modifient ce qu’un client analyse — de façon additive, toujours — et chacune indique l’action qu’elle implique. Les trois autres sont le service, la surface de compte et la référence ; aucune n’exige rien d’une intégration.

  • contrat de transmission
  • plateforme
  • console
  • documentation
  • Cinq nouveaux types d’événement : contrôles de police, radars, fermetures, défauts, travaux

    contrat de transmission

    `type` passe de huit valeurs à treize — `police_check`, `speed_camera`, `road_closure`, `infrastructure_fault` et `roadworks` — chacune avec son propre vocabulaire fin et sa propre durée de vie par défaut. Elles se partagent comme les déclare un conducteur plutôt que comme les modélise une norme : des agents au bord de la route sont un contrôle de police, une voiture-radar sans équipage est un radar, et travaux désigne l’équipe que l’on vient de croiser, jamais ceux publiés des semaines à l’avance.

    À faire : Rien ne casse : un type inconnu rend l’événement opaque, ignorez-le. Mais un client qui énumérait les huit ignorera les cinq sans bruit ; rafraîchissez donc votre table de correspondance depuis GET /v1/meta/event-types et décidez ce que chacun affiche.

  • Deux sous-types de visibilité, et les dégradations d’infrastructure du flux français

    contrat de transmission

    `smoke` et `low_visibility` rejoignent `weather_hazard` : les deux connecteurs réduisaient fumée, smog et visibilité réduite au seul type grossier faute d’identifiant. Le connecteur français a aussi commencé à mapper les dégradations d’infrastructure — chaussées endommagées et barrières percutées — qu’il abandonnait alors que le connecteur espagnol publiait le même élément.

    À faire : Les sous-types gagnent des valeurs sans annonce ; filtrez sur le type et affinez sur le sous-type, jamais l’inverse.

  • Un canari publie dans le sandbox toutes les cinq minutes

    plateforme

    Une tâche planifiée publie un événement dans chacune de trois zones surveillées, le relit par la requête de zone au rayon d’un abonné, et en confirme un par deux autres véhicules pour que le quorum de signalement le promeuve. Elle exerce la révision déployée — authentification, comptage, écriture geohash, requête par cellules et les deux miroirs analytiques — plutôt que le code d’un dépôt.

  • Quitter une organisation, et renvoyer une invitation

    console

    Deux routes qui manquaient. Quitter est une action d’audit à part entière plutôt qu’un retrait enregistré à votre nom — « X a retiré Y » et « Y est parti » ont la même forme de ligne et des faits opposés. Renvoyer une invitation fait tourner le jeton, de sorte qu’un premier message filtré ne peut jamais laisser deux portes ouvertes pour une même place.

  • Renommer une organisation, langue du compte, nombre de codes de récupération

    console

    Trois capacités qui existaient dans l’API sans que rien ne permette de les actionner : une coquille à l’inscription ne nomme plus une organisation pour toujours, la langue de votre courriel de connexion vous appartient, et le nombre de codes de récupération non utilisés est visible sur la page de votre compte — sur un compte sans mot de passe, ce nombre est la seule issue à un authentificateur perdu.

  • La démo publique n’accepte plus de texte libre

    plateforme

    Le formulaire de publication de la page d’accueil est anonyme ; les deux champs de texte libre du contrat sont donc refusés à cette frontière plutôt que simplement omis du formulaire. Les deux champs restent dans le contrat et le connecteur du flux national les renseigne toujours : ce qui change, c’est qui peut les écrire, à savoir un émetteur authentifié.

  • Des clients de référence à copier, à la place de SDK

    documentation

    Le guide du flux en continu contient des clients JavaScript et Python complets — la garde d’ordre, la règle d’expiration silencieuse, la reconnexion avec un nouveau ticket — écrits pour être collés plutôt que versionnés. Un paquet est un produit maintenu à vie, et les dix premières minutes qu’un SDK devait faire gagner sont un problème de documentation : le delta est une enveloppe, et la prendre pour l’événement est l’erreur la plus coûteuse de cette API.

    À faire : Rien. Les surfaces REST et SSE sont inchangées.

  • La référence publique est en ligne

    documentation

    Treize pages : prise en main, authentification, publication, consommation, flux en continu, sandbox, modèle de confiance, et la référence des types d’événement, de l’objet événement, de la compatibilité, des erreurs et de la confidentialité.

  • Les signalements sont enregistrés avec leur organisation

    plateforme

    Chaque confirmation et chaque infirmation est reflétée avec les deux organisations, l’émetteur du signalement, l’action et l’action qu’elle remplace. Une confirmation est donc attribuable à l’organisation qui l’a faite, et pas seulement à l’événement sur lequel elle porte.

  • Un plafond horaire sur les signalements

    plateforme

    Les signalements sont bornés par organisation, par environnement et par heure, appliqués sur la route de signalement et renvoyés en 429. La publication n’a pas de tel plafond et n’en aura pas — la friction sur le chemin de publication affame le réseau.

    À faire : Ralentissez sur 429 et réessayez ; le budget est par organisation, répartir sur plusieurs clés n’aide donc pas.

  • Schema version 2 — le quorum compte des véhicules

    contrat de transmission

    La promotion et la levée comptent des émetteurs distincts plutôt que des organisations distinctes, de sorte qu’une flotte de quatre cents véhicules fait quatre cents voix et non une. Conséquence sur le fil : confirm_count et deny_count sont bien plus grands pour une même réalité, et les décomptes par organisation ont été supprimés plutôt que de continuer à publier un nombre figé.

    À faire : Appliquez vos seuils à la vérification ou à la confiance, jamais aux décomptes bruts. Ne lisez pas org_count, confirm_org_count ni deny_org_count — ils n’existent plus.

  • Plus aucune identité d’émetteur sur le fil

    contrat de transmission

    L’organisation a d’abord quitté le contrat, remplacée par un pseudonyme stable ; le pseudonyme est parti à son tour. Un pseudonyme stable pour toujours est une carte de couverture de flotte à laquelle il ne manque que l’étiquette — un incident connu la rattache, et un regroupement sur quelques kilomètres donne la densité relative de flotte par émetteur. Nous attribuons en interne, pour la confiance et la facturation, et personne sur le réseau ne le peut.

    À faire : Un client qui veut savoir « cet événement est-il à moi » utilise son propre client_event_id.

  • Un second niveau de vocabulaire : subtype

    contrat de transmission

    Chaque événement porte un sous-type optionnel, plus fin, à côté de son type grossier — filtrez sur le type, affinez sur le sous-type. La liste grossière grandit rarement et à dessein, car en ajouter une est un événement que tout intégrateur existant ignore sans bruit ; la liste fine est conçue pour grandir sans préavis. Les deux sont servies par GET /v1/meta/taxonomy avec chaque durée de vie.

    À faire : Traitez le sous-type comme de la présentation, jamais comme un filtre. Il peut être null sur n’importe quel événement, et une valeur inconnue est une étiquette que vous n’avez pas.

  • Deux types d’événement ajoutés : dégradation de la chaussée, personnes sur la route

    contrat de transmission

    La dégradation de la chaussée est le seul type du tableau qui n’est pas vraiment éphémère — il dure jusqu’à ce que quelqu’un répare, il porte donc une durée de vie bien plus longue et c’est le type que remonte un capteur de suspension sans conducteur. Les personnes sur la route ont récupéré une valeur que le flux national publie et pour laquelle nous n’avions pas de place honnête : afficher « objet sur la route » sur un être humain est indéfendable.

    À faire : Les deux sont de nouvelles valeurs grossières. Un client qui ignore les valeurs inconnues les traite correctement et les reçoit dès qu’il ajoute une étiquette.

  • Environnements live et sandbox

    plateforme

    Chaque identifiant porte son environnement dès la première clé émise, et un événement hérite de l’environnement de l’identifiant qui l’a publié. Un consommateur live ne reçoit que des événements live ; un consommateur sandbox reçoit les deux, de sorte que les tests ne démarrent jamais sur un réseau vide. La moitié écriture rend sûre la moitié lecture : une clé sandbox ne peut pas signaler un événement live.

    À faire : Lisez environment sur l’événement si vous affichez sandbox et live côte à côte.

  • Organisations et clés en libre-service

    console

    Connexion par code à usage unique envoyé par courriel — pas de mot de passe, volontairement, car dans tout système avec lien de réinitialisation la boîte de réception donne déjà le contrôle du compte. Créez une organisation, invitez vos collègues, émettez et révoquez vous-même des clés derrière une étape de second facteur, et consultez l’usage quotidien et un journal d’audit en ajout seul.

  • Consommation comptée à la frontière d’authentification

    plateforme

    Chaque lecture, publication, signalement et connexion au flux est compté par organisation, par environnement et par jour, avec l’identité qui l’a faite. Les lectures n’étaient auparavant enregistrées nulle part et ne pouvaient pas être reconstituées.

  • Le flux du réseau routier national français

    plateforme

    Les incidents publiés par le gestionnaire du réseau routier national en DATEX II sous Licence Ouverte 2.0 sont interrogés en continu et mappés dans le vocabulaire de Relay, avec leur licence et l’instant de leur dernière révision par la source. La première requête d’un intégrateur renvoie de vrais événements sur de vraies routes.

Les règles qui rendent un contrat additif sûr à consommer — ignorer les champs inconnus, ignorer les valeurs inconnues, ne jamais rabattre une valeur inconnue sur une valeur connue — figurent dans la référence de compatibilité, avec l’échec que chacune évite.