Skip to main content
View as Markdown

Écoconception

Sovrium traite l'empreinte environnementale comme une propriété de premier ordre de la plateforme — pas une fonctionnalité, pas un palier payant, pas une case à cocher. La plateforme est frugale par défaut, la posture est contrôlée par l'opérateur via des variables d'environnement, et l'empreinte est mesurable plutôt qu'aspirationnelle. Posséder vos données et minimiser leur coût environnemental relèvent du même combat contre l'infrastructure absente.

La posture éco vit dans les variables d'environnement ECO_* — le jumeau de DATABASE_URL, STORAGE_PROVIDER et AI_PROVIDER. Elle ne fait jamais partie du schéma de l'application : un auteur de schéma ne doit pas pouvoir désactiver silencieusement la frugalité pour les utilisateurs finaux de son application (ADR 013).

Principes fondamentaux

Principe Signification
Frugal par défaut Chaque bascule destinée à l'opérateur prend par défaut le réglage aligné sur l'éco. Les opérateurs opèrent un opt-out, jamais un opt-in.
Contrôlé par l'opérateur, pas par le schéma La posture éco est dans les variables env, pas app.eco.*. Les champs de schéma pour l'éco sont explicitement rejetés.
Mesurable, pas aspirationnel La plateforme s'engage sur un en-tête de réponse X-Eco-Index et un budget de poids de page ; les badges éco sans mesure sont interdits.

Le contrat des variables env ECO_*

Frugal par défaut — les opérateurs opèrent un opt-out en remplaçant. Ce sont les boutons d'opérateur pour la posture environnementale de la plateforme.

Variable env Par défaut Options Objectif
ECO_MODE balanced balanced | lenient (héritage onbalanced, offlenient) Bascule maîtresse de posture éco ; protège les sous-boutons en aval.
ECO_IMAGE_FORMAT avif avif | webp | jpeg | png Format de transcodage d'image côté serveur par défaut. AVIF est ~50 % plus petit que JPEG.
ECO_PAGE_CACHE on on | off Cache en mémoire du HTML de page statique invariant par requête — saute renderToString lors des hits.
ECO_INDEX_HEADER on on | off Émet l'en-tête de réponse X-Eco-Index noté à partir de la taille de transfert.
ECO_LOW_DATA_DEFAULT off on | off | respect-client Posture de mode données réduites de l'utilisateur final (réduit les assets quand activé / sur indice client).
ECO_AI_PROVIDER_PRECEDENCE local-first local-first | cloud-first | local-only Précédence de routage pour les appels IA ; s'associe à AI_PROVIDER.
ECO_AI_MAX_CARBON_CLASS G (permissif) AG Borne supérieure sur la classe carbone d'un fournisseur/d'une région IA sélectionnés.
ECO_PAGE_WEIGHT_BUDGET_KB 500 entier Budget de transfert par page pour la barrière de poids de page.
ECO_RETENTION_PURGE_DAYS 365 entier (0 désactive) Horizon de purge par défaut des lignes supprimées en douceur pour les tables qui s'inscrivent.
ECO_DESIGN_LAYER on on | off Émet la couche de conception par défaut toujours active (une surface de remplacement, pas une valeur par défaut porteuse).

Fondations déjà alignées

Plusieurs décisions de Sovrium servent la frugalité avant qu'une variable ECO_* ne soit touchée :

Décision Bénéfice d'empreinte
Distribution en binaire autonome Un binaire statique, aucun runtime Node, moins de dépendances au démarrage. Voir Infrastructure de base de données.
Valeurs par défaut sans configuration SQLite + stockage local Processus unique, aucune base de données cloud gérée requise.
Architecture SSR + îlots Seul l'îlot actif est expédié ; les éditeurs lourds se chargent en différé.
Compilateur CSS programmatique Compilé par thème à la demande, cache en mémoire — pas de feuille de style statique d'un mégaoctet. Voir Thème.
Suppression en douceur avec horizon de conservation Posture explicite de purger-ou-garder au lieu d'une accumulation infinie. Voir Suppression en douceur.
Option IA locale d'abord L'inférence locale évite les allers-retours transatlantiques.

Mode données réduites

ECO_LOW_DATA_DEFAULT contrôle l'agressivité avec laquelle Sovrium réduit le poids des assets pour les utilisateurs finaux. Lorsqu'il est sur on, les variantes données réduites (images de résolution inférieure, rendus plus simples) sont servies par défaut ; avec respect-client, la posture suit les indices client Save-Data / prefers-reduced-data du visiteur ; off sert toujours la variante complète.

Le mode données réduites réduit avec grâce — il ne refuse jamais de rendre un graphique ou un éditeur de texte enrichi. Le blocage paternaliste de fonctionnalités est un anti-modèle explicite ; la posture éco abaisse la fidélité, elle ne casse pas le flux de travail d'un utilisateur.

Mesure : X-Eco-Index

Lorsque ECO_INDEX_HEADER=on, les réponses de page portent un en-tête X-Eco-Index noté (A–G) à partir de la taille de transfert de la réponse par rapport à des seuils en paliers (le plus grand se situant à ECO_PAGE_WEIGHT_BUDGET_KB). Cela rend l'empreinte observable par réponse plutôt qu'une affirmation marketing — les badges éco sans un nombre mesuré sont interdits (ADR 013).

Tableau de bord éco

Le tableau de bord éco d'administration fait remonter la posture en cours d'exécution : une tuile d'auto-évaluation RGESN, le mélange de fournisseurs IA par classe carbone, les principaux consommateurs de stockage et les réglages ECO_* actuellement en vigueur. Il lit les mêmes signaux mesurés (les notes X-Eco-Index, le budget de poids de page) que la plateforme émet — jamais un badge synthétique « Mode Éco activé ».

Anti-modèles

  • Badges d'écoblanchiment — afficher un badge « Mode Éco activé » sans un nombre d'empreinte mesuré.
  • Blocage paternaliste de fonctionnalités — refuser de rendre du contenu à cause d'une posture éco ; toujours réduire avec grâce.
  • Palier éco payant — verrouiller les fonctionnalités éco derrière une clé de licence. Toute la posture éco est gratuite en mode auto-hébergé.
  • Configuration éco au niveau du schéma — ajouter app.eco.lowDataMode = true. L'éco est contrôlé par l'opérateur ; utilisez des variables env.
  • Appels IA cloud codés en dur — contourner ECO_AI_PROVIDER_PRECEDENCE et appeler un fournisseur cloud directement. Toujours router via le résolveur de précédence.

Pages connexes