Journal des versions

Ce qui a changé, et quand

Les évolutions notables de l’API souveraine, au format Keep a Changelog et en versionnage sémantique. Comme le registre ADR, cette page se génère depuis le fichier CHANGELOG.md du dépôt — publiez une version, elle apparaît ici.

Ajouté Modifié Corrigé Sécurité Déprécié Retiré Flux Atom

Vue d’ensemble

31 versions publiées (31 côté API). Chaque entrée liste ce qui a été ajouté, modifié, corrigé ou retiré — rien d’autre, rien d’inventé.

iAvant 1.0.0. Le contrat peut évoluer entre versions mineures ; toute rupture de compatibilité est signalée dans « Modifié ». Le SDK @carbon-fr/sdk tiendra son propre journal ici dès qu’il en publiera un.

API souveraine

carbon-fr-api

Fichier source : CHANGELOG.md · CHANGELOG.md sur GitHub

v0.11.12 novembre 2026dernière

Première publication de l'itération I10 du plan — version patch (ADR-0019) : rien d'ajouté ni de retiré dans le contrat /v1, aucune migration, aucune variable d'environnement nouvelle. Deux correctifs de comportement ramènent l'API à son contrat documenté : la prévision servie depuis le cache est ré-ancrée sur le from de chaque requête (issue #161 — from = premier point, horizon couvert, créneaux de greenest-window/schedule/slots/below jamais antérieurs à la requête, verdict de /v1/schedule?deadline= indépendant des autres appelants du quart d'heure) et les horodatages /v1 sont toujours rendus en UTC (+02:00 reçu → Z renvoyé ; 400 hors des années 0000-9999, au lieu d'une connexion coupée). Effets visibles pour un client : suffixe Z systématique, créneaux de prévision décalés de moins de 15 min par rapport à la v0.11.0. S'y ajoutent le 503 du plafond SSE journalisé en warn, quatre advisories RustSec (rustls-webpki, webpki-roots, webpki-root-certs, ctutils) et tokio 1.54.1 (1.54.0 retirée), les exemples et en-têtes de l'OpenAPI, le test de parité SDK TS ↔ OpenAPI et les tests stream du SDK Rust en CI, le rattrapage documentaire et ses addenda. L'instantané OpenAPI ne change que par ses descriptions et exemples ; SDK TypeScript 0.5.0 et Rust 0.3.0 inchangés, non republiés ; carbonfr-core et carbonfr-eligibility sont republiées en 0.11.1 (rustdoc seule : contrat du port ForecastModel). Au déploiement Kovelt : image 0.11.1 épinglée, rien d'autre à changer dans le compose ni le .env.

Ajouté, Modifié, Corrigé, Sécurité, SDK TypeScript, CI, Documentation — détail au chargement de la page.

v0.11.020 octobre 2026

Clôture côté code de l'itération I9 du plan — ce qui différencie carbon-fr : l'index qualitatif d'intensité index (PROD-API-1, ADR-0033, catalogue GET /v1/intensity/index), l'export CSV de l'historique (PROD-API-3), la compression gzip/brotli des réponses (PERF-1), le repli de la carte /hydrogene quand le flux SSE est refusé, le parcours local documenté (DX-1), l'environnement Bruno « Production » (DX-5) et la reconnexion automatique du SDK TypeScript (DX-2) ; plus le défaut de CARBONFR_HEADER_READ_TIMEOUT_SECS relevé à 180 s et la limite de descripteurs documentée. Version minor (champ index et route /v1/intensity/index ajoutés, ADR-0019), aucune migration, rien de retiré ni de modifié dans le contrat /v1 : index est additif sur now, now/all, date (JSON et dernière colonne du CSV), forecast et le flux ; le CSV et la compression sont des réponses nouvelles, négociées par en-tête (Accept, Accept-Encoding) ou par ?format=csv. carbonfr-core ne gagne que des ajouts compatibles (IntensityIndex, barème index@1), vérifiés par cargo-semver-checks en CI ; elle est republiée en 0.11.0 avec carbonfr-eligibility. SDK : TypeScript 0.5.0 (tag sdk-v0.5.0 ; cumule la reconnexion de la 0.4.0 et l'index) et Rust 0.3.0 (tag rust-sdk-v0.3.0) — leur intensityIndex()/intensity_index() répond 404 face à un serveur ≤ 0.10, et index y est optionnel. Au déploiement Kovelt : poser ulimits: nofile (soft 65 536, hard 524 288) dans le compose de prod — le conteneur démarre à 1 024 descripteurs, sous CARBONFR_MAX_CONNECTIONS 10 000 — ; la valeur explicite CARBONFR_HEADER_READ_TIMEOUT_SECS=120 y reste (derrière Traefik).

Ajouté, Modifié, Corrigé, SDK TypeScript, SDK Rust, CI, Documentation — détail au chargement de la page.

v0.10.019 octobre 2026

Clôture côté code de l'itération I8 du plan, après la livraison intermédiaire 0.9.6 : les petites victoires API additives (PROD-API-2/4/5 : /v1/intensity/now/all, parts dans /v1/mix, /v1/regions, region en enum dans l'OpenAPI), plafonner les connexions SSE concurrentes + timeouts HTTP entrants (SEC-1, PERF-2, SEC-4), la gouvernance remise à niveau (DOCS-1, DOCS-2) et rustls 0.23.46 sur quatre advisories RustSec (sans exposition réelle — voir Sécurité). Version minor (deux routes nouvelles = fonctionnalité ajoutée, SemVer), aucune migration. carbonfr-core ne gagne que des ajouts compatibles (méthode de port IntensityRepository::latest_all à corps par défaut, GetCurrentIntensity::execute_all, mix_shares public), vérifiés par cargo-semver-checks en CI ; elle est republiée en 0.10.0 avec carbonfr-eligibility. Contrat /v1 : deux routes et un champ (shares, tableau racine de /v1/mix) ajoutés, une réponse 503 documentée en plus sur /v1/intensity/stream, region documenté en enum dans l'OpenAPI ; aucun comportement existant retiré ni modifié. Les SDK qui consomment ces routes (TypeScript 0.3.0, Rust 0.2.0) sont publiés depuis le 2026-09-27 : leurs intensityNowAll()/regions() répondent 404 face à un serveur ≤ 0.9.6. Au déploiement Kovelt : CARBONFR_HEADER_READ_TIMEOUT_SECS=120 (derrière Traefik, cf. Sécurité) et resynchronisation de deploy/prometheus/alerts.yml (8 règles, dont les deux règles SSE nouvelles) ; l'auto-réparation régionale (CARBONFR_SELF_HEAL_REGIONAL=1, PERF-3, livrée désactivée en 0.9.6) y est active depuis le 2026-10-01 (≈ 8 040 lignes régionales relues chaque nuit, quota régional 28 731/50 000 restants au 19/10).

Ajouté, Modifié, Sécurité, Documentation — détail au chargement de la page.

v0.9.626 septembre 2026

Premières livraisons de l'itération I8 du plan : historique régional acv-ademe comblable par export de masse (périmètre regional de la sous-commande backfill, auto-réparation régionale livrée désactivée), quota ODRÉ réel visible dans /metrics avec ses alertes, /v1/factors cohérent avec le reste de l'API, champ servers de l'OpenAPI. Version patch : carbonfr-core ne gagne que des ajouts compatibles (Eco2mixArchive::export_regional à corps par défaut, Region::from_insee_code), vérifiés par cargo-semver-checks en CI ; elle est republiée en 0.9.6 avec carbonfr-eligibility. Aucune migration, aucun changement de /v1 hors le défaut de /v1/factors (cf. Corrigé).

Corrigé, Documentation, Ajouté, Supervision — détail au chargement de la page.

v0.9.525 septembre 2026

Collecte fiabilisée après le diagnostic de la panne ODRÉ d'août : fenêtre glissante de 3 h à chaque cycle et auto-réparation quotidienne sur 7 jours. Aucune migration, aucun changement de /v1 ; carbonfr-core gagne un cas d'usage (IngestRecent, ajout compatible) et est republiée en 0.9.5.

Corrigé, Supervision — détail au chargement de la page.

v0.9.425 septembre 2026

Rattrapage des trous de l'historique national. Aucune migration, aucun changement de /v1 ; carbonfr-core/carbonfr-eligibility inchangées (republiées en 0.9.4 par le workflow).

Ajouté, Données, CI, Documentation — détail au chargement de la page.

v0.9.325 septembre 2026

Clôture des itérations I6 et I7 du plan : SDK Rust carbonfr-sdk publié sur crates.io (axe de version propre, 0.1.1), sqlx 0.9 (dernière montée majeure prévue) et décisions de méthodologie actées (partitionnement non retenu sur mesures de prod, acv-ademe@3, vue consommation régionale, revue LCOE, ADR-0032). Version patch : l'API de carbonfr-core et carbonfr-eligibility est inchangée depuis 0.9.2 (vérifié par cargo-semver-checks), elles sont republiées en 0.9.3 par le workflow. Aucune migration, aucun changement de /v1.

Ajouté, Modifié, CI, Documentation — détail au chargement de la page.

v0.9.224 septembre 2026

Montée reqwest 0.12 → 0.13 (itération I5, dernier item) et premier essai de la publication crates.io automatique (Trusted Publishing). Aucun changement de l'API /v1, aucune migration ; les crates publiées carbonfr-core / carbonfr-eligibility sont inchangées (republiées en 0.9.2 par le workflow, versions couplées au workspace, ADR-0030).

Modifié, Ajouté, CI — détail au chargement de la page.

v0.9.124 septembre 2026

Version de la première publication crates.io de carbonfr-core et carbonfr-eligibility (itération I5, ADR-0030). Une version publiée est immuable : la 0.9.0 embarquait dans ses README la mention « Not yet published to crates.io », qui se serait affichée pour toujours sur crates.io. Aucun changement de code ni de l'API /v1.

Documentation — détail au chargement de la page.

v0.9.024 septembre 2026

Préparation de la publication crates.io (itérations I3 et I4 du plan) : décisions actées (ADR-0030 publication, ADR-0031 SDK Rust), puis carbonfr-core et carbonfr-eligibility rendues publiables — rupture d'API de ces deux crates (#[non_exhaustive] sur 18 enums, d'où la version minor), sans publication à ce stade. Trois nouveaux contrôles de CI, requis sur main. Aussi : @carbon-fr/sdk 0.2.0 publié sur npm, revue complète de la doc. Aucun changement de comportement de l'API /v1, aucune migration.

Modifié, CI, SDK TypeScript, Documentation — détail au chargement de la page.

v0.8.223 septembre 2026

Hygiène DX et dépendances légères (itération I2 du plan) : les abonnements webhook désactivés sont purgés après 30 jours, la livraison des webhooks est testée de bout en bout, utoipa passe en 6.0, la CI quitte Node 20 (fin de vie) et le SDK TypeScript rattrape l'API en 0.2.0 (publié à part, tag sdk-v0.2.0). Aucune migration ; aucun changement de schéma /v1 hors l'ordre, sans effet, de 3 oneOf.

Ajouté, Modifié, SDK TypeScript, CI, Tests — détail au chargement de la page.

v0.8.123 septembre 2026

Donnée publiée et exploitation (itération I1 du plan) : /v1/price applique enfin le millésime TRV en vigueur (2026-H2 depuis le 1/8/2026), les échéances réglementaires servies par les rulesets d'éligibilité sont à jour, la CI teste sur PostgreSQL 17 comme la prod, et la supervision ainsi que la restauration (testée) sont documentées. Aucun changement de schéma /v1.

Modifié, CI, Documentation — détail au chargement de la page.

v0.8.023 septembre 2026

Exploitation du tier hébergé : révocation de clé API (list-keys, revoke-key) et désactivation automatique des webhooks après N livraisons échouées consécutives. Deux migrations appliquées au démarrage : 0013 (clé étrangère abonnement → clé, ON DELETE CASCADE, purge préalable d'éventuels orphelins) et 0014 (consecutive_failures, disabled_at). Contrat /v1 additif uniquement : GET /v1/webhooks expose status et disabled_at. Nouvelle variable CARBONFR_WEBHOOK_MAX_FAILURES (défaut 10).

Ajouté — détail au chargement de la page.

v0.7.223 septembre 2026

Release de maintenance et de sécurité : correctif RustSec rustls (RUSTSEC-2026-0285), CI durcie (moindre privilège, actions épinglées, alerte sur échec du scan planifié), documentation réalignée sur le code et plan de la suite (docs/plan-iterations.md). Aucun changement de contrat /v1.

Modifié, Sécurité, CI, Documentation — détail au chargement de la page.

v0.7.116 août 2026

Solde des mineures de l'audit 2026-08 (vérifiées adversarialement) : cohérence du dédup d'ingestion, cache positif des clés API, borne de fraîcheur prix factorisée. Aucun changement de contrat /v1.

Modifié, Corrigé — détail au chargement de la page.

v0.7.015 août 2026

Release d'audit : revue multi-agents complète du workspace — 19 défauts confirmés corrigés (dont le parseur ENTSO-E A03, qui pouvait inverser le signe des flux transfrontaliers) plus une série de mineures, performance de l'API (index BRIN, cache de prévision, requêtes bornées) et robustesse d'exploitation (fraîcheur des données, arrêt gracieux, quotas). Inclut l'expérience share-meteo@2 (non servie). En 0.x : les resserrements de contrat sont listés en « Modifié ».

Ajouté, Modifié, Corrigé, Sécurité — détail au chargement de la page.

v0.6.14 juillet 2026

La page carte GET /hydrogene devient embarquable par le site vitrine (CSP frame-ancestors). Hors contrat /v1, aucun changement d'API.

Modifié — détail au chargement de la page.

v0.6.03 juillet 2026

La couche B-light d'ADR-0025 : GET /hydrogene, carte auto-contenue « électrolyseurs × carbone live » — le croisement infra hydrogène × carbone temps réel qui n'existe nulle part ailleurs. Hors contrat /v1, aucun changement d'API.

Ajouté — détail au chargement de la page.

v0.5.03 juillet 2026

Le pilier renouvelable du cadre rfnbo devient prévisionnel : share-clim@1 (ADR-0028), gardé par un double GATE (backtest walk-forward + re-jeu de la revue de neutralité, GREEN). Contrat /v1 enrichi de façon purement additive (provenance, value_lower/value_upper, reason, share_model) — aucun changement cassant.

Ajouté — détail au chargement de la page.

v0.4.53 juillet 2026

GATE de neutralité de la couche « éligibilité électrolyseur » (ADR-0026) : verdict GREEN après 3 correctifs additifs, plus la roadmap hydrogène et l'addendum de vérification réglementaire sur sources primaires. Aucun changement cassant.

Ajouté, Modifié — détail au chargement de la page.

v0.4.43 juillet 2026

Remédiation des 24 constats restants de l'audit du 2026-07-02 (moyens F07–F19, bas F20–F31 ; le critique F01 et les hauts F03–F06 sont sortis en v0.4.3). Aucun changement d'API cassant ; le contrat OpenAPI est enrichi (media-types d'erreur, paramètres requis).

Sécurité, Robustesse, Corrigé, Contrat & API, Performance, Durcissement, Documentation — détail au chargement de la page.

v0.4.33 juillet 2026

Release patch de sécurité : corrige le contournement SSRF critique du filtre d'IP des webhooks (F01) et trois autres constats hauts de l'audit du 2026-07-02 (F03–F06). Aucun changement d'API.

Sécurité, Corrigé — détail au chargement de la page.

v0.4.22 juillet 2026

Release patch de sécurité : mise à jour de dépendances sur advisories RustSec (aucun changement fonctionnel ni d'API).

Sécurité — détail au chargement de la page.

v0.4.122 juin 2026

Correctif d'ergonomie de l'API : la racine de version ne renvoie plus un 404.

Modifié — détail au chargement de la page.

v0.4.021 juin 2026

Nouvelle fonctionnalité couche A « électrolyseur » (éligibilité carbon-aware RFNBO / bas-carbone) ; gouvernance du dépôt durcie (verrouillage de main, ADR-0027) ; documentation alignée sur l'état réel de l'API.

Ajouté, Documentation, Gouvernance — détail au chargement de la page.

v0.3.220 juin 2026

/v1/cost-reference — dispersion inter-sources (multi-sources). 2e source par filière : IRENA (LCOE mondiaux 2024) pour les 5 renouvelables, CRE pour le nucléaire existant — la fourchette mêle désormais dispersion intra-source ET inter-sources. Le nucléaire nouveau reste mono-source (RTE) faute de 2e source primaire licence-compatible (IPCC/NEA/IEA écartés pour clause NC). Deux nouveaux champs par entrée : geography (france/monde — IRENA est mondial, souvent plus bas que la France) et technology_source_count (≥ 2 = multi-sources). GATE de neutralité re-joué (n°3) : GREEN (asymétrie du neuf jugée content-blind — IRENA, la source la plus pro-EnR, est incluse ; IEA/NEA pro-pilotable exclues).

Ajouté, Modifié — détail au chargement de la page.

v0.3.120 juin 2026

/v1/price — valeurs réglementaires 2026 sourcées (remplacent les placeholders best-effort de la 0.3.0). TrvReference::trv_2026 : accise 30,85 €/MWh (CRE délib. TRVE 2026 n°2026-06 + BOFiP BOI-RES-EAT-000240), TVA 20 % unique (BOFiP ACTU-2025-00057 ; le taux réduit 5,5 % a été supprimé), commercialisation 18,11 €/MWh HT (CRE délib. n°2026-06), acheminement ≈ 78 €/MWh dérivé du TURPE 7 (CRE délib. n°2025-78) pour un profil 6 kVA / ~2 400 kWh/an. L'acheminement en €/MWh reste une conversion profil-dépendante (plage 53–116) ; TURPE +3,04 % au 1/8/2026 et accise possiblement réindexée au 2e semestre → à re-millésimer.

Modifié — détail au chargement de la page.

v0.3.020 juin 2026

Prix de l'électricité (ADR-0023) : GET /v1/price et GET /v1/price/date — décomposition complète du prix payé ancrée sur le TRV. Composante énergie = prix spot day-ahead ENTSO-E (documentType=A44) ; + acheminement (TURPE) + accise + TVA + résidu commercialisation (constantes de domaine versionnées, best-effort 2026 à sourcer) ; contexte : mix par filière + technologie marginale estimée. National. Table spot_price (migration 0011), ingérée par le poller si CARBONFR_ENTSOE_TOKEN. SDK : price() / priceHistory().

Ajouté — détail au chargement de la page.

v0.2.117 juin 2026

Aucun changement fonctionnel du service (image identique à 0.2.0 côté binaire).

CI — détail au chargement de la page.

v0.2.017 juin 2026

Durcissement de maintenabilité d'API publique : contrat verrouillé, erreurs standardisées, observabilité et gouvernance de sécurité.

Ajouté, Modifié — détail au chargement de la page.

v0.1.017 juin 2026

Première release publique. Image de production sur GHCR (ghcr.io/kovelt/carbon-fr:0.1.0), déployée sur VPS FR/EU.

Performance & infra (audit, lot 5), Contrat & documentation (audit, lot 4), Sécurité (audit, lot 3), Robustesse runtime & données (audit, lot 2), Ajouté — SDK TypeScript (`@carbon-fr/sdk`), Mesuré & écarté — prévision météo-pilotée (ADR-0018 étape A), Ajouté — exposition de la dérivation renouvelable (ADR-0018), Ajouté — météo nationale (ADR-0012/0018), Ajouté — dérivation renouvelable, fondation (ADR-0018), Ajouté — échanges transfrontaliers (ADR-0017), Sécurité & robustesse (durcissement pré-déploiement, audit), Exploitation & contrat d'API (durcissement pré-déploiement, suite), Ajouté, Notes — détail au chargement de la page.

→Où va le projet

Incrémentale par construction.

Socle, régional, prévision, échanges, météo, renouvelable, prix et coût de référence sont en service. La DX est livrée : OpenAPI, SSE, webhooks, SDK TypeScript publié (npm), conteneur Docker.

00

Cadrage

ADR + ARCHITECTURE : décisions tracées, frontières posées.

✓ Acté
01

Socle

core + poller + /intensity/now & /mix, national.

✓ En service
02

Historique & régional

/intensity/date, 12 régions, acv-ademe, agrégats.

✓ En service
03

Prévision

Modèle climatology@1 → /forecast, /greenest-window, /schedule.

✓ En service
04

DX

OpenAPI live, SSE, webhooks, @carbon-fr/sdk publié (npm), image Docker GHCR.

✓ En service
05

Enrichissement & prix

Échanges transfrontaliers, météo, renouvelable estimé, /price (TRV) et /cost-reference (LCOE).

✓ En service
Rejoignez l’UHA 4.0