4NK_vault/CHANGELOG.md
4NK Dev 5ff468bc84 feat: Système de templates automatisé v2.0.0
- 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
2025-10-05 13:53:38 +00:00

167 lines
7.7 KiB
Markdown

# Changelog 4NK Vault
Toutes les modifications notables de ce projet seront documentées dans ce fichier.
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/),
et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
## [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ération
- **`generate_variables.sh`** : Génération automatisée des variables d'environnement et Docker Compose
- **`generate_grafana_dashboards.sh`** : Génération automatique des dashboards Grafana
- **`generate_promtail_config.sh`** : Génération de la configuration Promtail
- **`generate_logrotate_configs.sh`** : Génération des configurations logrotate
- **`generate_nginx_configs.sh`** : Génération des configurations nginx
- **`replace_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.secrets` ne sont jamais copiés dans `storage/`
### 📈 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 `$VAR` et `${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/ciphers` pour 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 `.env` principal
- **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.js `crypto`
- **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/ciphers` pour 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`, `/info` pour 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](https://git.4nkweb.com:4nk/4NK_vault.git)
- [Documentation](docs/)
- [Issues](https://git.4nkweb.com:4nk/4NK_vault/issues)