- 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
167 lines
7.7 KiB
Markdown
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)
|