- Introduction du système de templates avec séparation templates/storage - Scripts de génération automatisée pour toutes les configurations - Résolution multi-passes des variables imbriquées - API simplifiée qui lit uniquement storage/ (plus de traitement de variables) - Documentation complète du nouveau système - Support des services externes (BOOTSTRAP, LECOFFRE_BACK_MINI) - Protection des templates sources et isolation des environnements
7.7 KiB
7.7 KiB
Changelog 4NK Vault
Toutes les modifications notables de ce projet seront documentées dans ce fichier.
Le format est basé sur Keep a Changelog, et ce projet adhère au Semantic Versioning.
[2.0.0] - 2024-12-XX
🔄 Modifié
Architecture Majeure
- Système de templates automatisé : Introduction d'un workflow de génération automatisé
- Séparation des responsabilités :
templates/pour les sources,storage/pour les fichiers finaux - API simplifiée : L'API ne lit plus que
storage/et ne traite plus les variables d'environnement - Génération automatisée : Scripts de génération pour toutes les configurations
Scripts de Génération
generate.sh: Script principal d'orchestration de tous les processus de générationgenerate_variables.sh: Génération automatisée des variables d'environnement et Docker Composegenerate_grafana_dashboards.sh: Génération automatique des dashboards Grafanagenerate_promtail_config.sh: Génération de la configuration Promtailgenerate_logrotate_configs.sh: Génération des configurations logrotategenerate_nginx_configs.sh: Génération des configurations nginxreplace_variables_and_copy.sh: Résolution multi-passes des variables et copie vers storage/
Résolution des Variables
- Résolution multi-passes : Jusqu'à 5 passes pour résoudre les variables imbriquées
- Chargement séquentiel :
.env.secrets→.env→.env.auto→.env.post - Export explicite : Toutes les variables sont explicitement exportées
- Protection renforcée : Contre les dépendances circulaires et les boucles infinies
🚀 Ajouté
Nouveau Système de Templates
- Structure
templates/: Templates sources avec variables ($VARIABLE) - Génération automatisée : Création automatique de toutes les configurations
- Support des services externes : BOOTSTRAP, LECOFFRE_BACK_MINI
- Variables composites : Support des variables imbriquées complexes
Documentation
docs/templates-system.md: Documentation complète du système de templates- Workflow de génération : Guide détaillé des processus de génération
- Exemples d'utilisation : Cas d'usage et bonnes pratiques
🔒 Sécurité
Isolation Renforcée
- Protection des templates : Les fichiers
templates/ne sont jamais modifiés par l'API - Isolation des environnements : Chaque environnement a ses propres templates et configurations
- Fichiers sensibles : Les
.env.secretsne sont jamais copiés dansstorage/
📈 Performance
Optimisations
- Fichiers pré-traités : L'API lit directement les fichiers avec variables résolues
- Pas de traitement en temps réel : Élimination du traitement de variables par l'API
- Génération par batch : Traitement groupé de toutes les configurations
[1.2.0] - 2024-01-XX
🚀 Ajouté
API Server
- Traitement des variables d'environnement : Résolution automatique des variables
$VARet${VAR} - Résolution récursive : Les variables peuvent référencer d'autres variables
- Protection contre les boucles infinies : Détection automatique des dépendances circulaires
- Endpoint
/routes: Liste dynamique de toutes les routes disponibles - Scan dynamique : Découverte automatique des environnements et fichiers
- Protection renforcée : Validation stricte des chemins contre les attaques de traversée
- Compatibilité cryptographique : Harmonisation avec
@noble/cipherspour le SDK
SDK Client
- Configuration automatique : Chargement automatique via fichier
.env - Déchiffrement réel : Implémentation ChaCha20-Poly1305 avec
@noble/ciphers - Synchronisation locale : Miroir automatique des fichiers déchiffrés vers
../confs/ - Rotation automatique des clés : Mise à jour transparente des clés de déchiffrement
- Variables d'environnement : Récupération automatique des fichiers avec variables résolues
- Gestion d'erreurs améliorée : Classes d'erreurs spécialisées pour chaque type de problème
Documentation
- Guide des variables d'environnement : Documentation complète du système de résolution
- Exemples mis à jour : Scénarios complets avec 5 étapes
- API Reference : Documentation complète des nouvelles fonctionnalités
- Changelog : Historique détaillé des modifications
🔧 Modifié
API Server
- Validation des IDs utilisateur : Extension de 50 à 128 caractères pour supporter les clés longues
- Gestion des clés : Amélioration de la logique de rotation pour éviter les conflits
- Structure des réponses : Ajout de métadonnées sur les variables résolues
- Logs : Amélioration du système de logging pour le debugging
SDK Client
- Architecture : Refactoring complet vers
SecureVaultClient - Types TypeScript : Mise à jour des interfaces pour les nouvelles fonctionnalités
- Configuration : Simplification de la configuration via
.env - Synchronisation : Écrasement automatique des fichiers existants
🐛 Corrigé
API Server
- Dépendances circulaires : Correction du problème
HOST↔DOMAIN - Chargement des variables : Priorité correcte du fichier
.envprincipal - Validation des chemins : Protection contre les attaques de traversée
- Compatibilité cryptographique : Synchronisation avec le SDK Node.js
SDK Client
- Déchiffrement : Correction de l'incompatibilité Python
cryptography↔ Node.jscrypto - Gestion des clés : Correction de la logique de rotation et de mise à jour
- SSL : Correction de la gestion des certificats auto-signés
- Types : Correction des erreurs TypeScript strict
🔒 Sécurité
API Server
- Validation renforcée : Protection contre les chemins relatifs malveillants
- Isolation : Traitement des variables en mémoire uniquement
- Audit : Logs détaillés des accès et modifications
SDK Client
- Chiffrement : Migration vers
@noble/cipherspour une meilleure sécurité - Gestion des clés : Rotation automatique et sécurisée
- Validation : Vérification stricte des clés et certificats
[1.1.0] - 2024-01-XX
🚀 Ajouté
- Authentification par clés utilisateur : Système d'authentification basé sur des IDs utilisateur
- Rotation automatique des clés : Rotation des clés de chiffrement toutes les heures
- Chiffrement quantique résistant : Implémentation ChaCha20-Poly1305
- SDK TypeScript : Client TypeScript pour l'interaction avec l'API
- Endpoints de monitoring :
/health,/infopour la surveillance
🔧 Modifié
- Architecture sécurisée : Refactoring complet pour la sécurité
- HTTPS obligatoire : Toutes les communications en HTTPS
- Stockage sécurisé : Isolation des clés par environnement
🔒 Sécurité
- Clés individuelles : Une clé par utilisateur et par environnement
- Métadonnées sécurisées : Timestamps et versions de clés
- Protection des fichiers : Exclusion des clés du versioning Git
[1.0.0] - 2024-01-XX
🚀 Ajouté
- API REST de base : Endpoints de base pour la gestion des fichiers
- Stockage local : Système de stockage dans
storage/ - Documentation : Documentation initiale du projet
- Tests : Tests de base pour l'API
📋 Format des versions
- MAJOR : Changements incompatibles avec l'API
- MINOR : Nouvelles fonctionnalités compatibles
- PATCH : Corrections de bugs compatibles
🔗 Liens
- Repository
- Documentation
- Issues