# 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)