É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 on→balanced, off→lenient) |
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) |
A–G |
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). |
Les opérateurs opèrent un opt-out, jamais un opt-in. Chaque bascule ECO_* prend par défaut la valeur alignée sur l'éco. Pour assouplir la frugalité, vous devez explicitement définir la variable — à l'image de la façon dont DATABASE_URL prend par défaut SQLite et STORAGE_PROVIDER sélectionne automatiquement le stockage local. La posture éco n'est jamais déclarée dans le schéma de l'application.
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_PRECEDENCEet appeler un fournisseur cloud directement. Toujours router via le résolveur de précédence.
Pages connexes
- Infrastructure de base de données —
ECO_PAGE_CACHEet le cache de rendu statique. - Thème — le compilateur CSS programmatique et
ECO_DESIGN_LAYER. - Suppression en douceur — l'horizon de conservation que
ECO_RETENTION_PURGE_DAYSrégit. - GDPR & Confidentialité — la minimisation des données comme jumeau confidentialité-et-frugalité.
- Analytique — conservation bornée et suivi sans cookies.
- Variables d'environnement — référence complète des variables env.