- Ajout d'un système de chargement robuste des variables d'environnement
- Recherche automatique des fichiers .env dans plusieurs emplacements
- Rechargement des variables à chaque appel de syncLocalFiles()
- Ajout de logs pour indiquer quel fichier .env a été chargé
- Documentation complète avec section de dépannage
- Solutions pour les problèmes courants avec VAULT_CONFS_DIR
Résout le problème où VAULT_CONFS_DIR n'était pas pris en compte
quand le fichier .env n'était pas dans le répertoire courant du projet.
- Ajout du paramètre VAULT_CONFS_DIR dans le SDK pour personnaliser le dossier de destination
- Modification de syncLocalFiles() pour utiliser VAULT_CONFS_DIR par défaut
- Création du fichier .env.example avec tous les paramètres disponibles
- Mise à jour de la documentation SDK avec tableau des variables d\environnement
- Suppression des exceptions spécifiques pour nginx/bitcoin
- Conservation de la protection complète du dossier storage/
- Les fichiers nginx déjà trackés restent visibles
- Renforcement de la sécurité en ignorant tout le contenu de storage/
Impact:
- Aucun fichier sensible n est exposé
- Fichiers nginx déjà commités restent visibles
- Protection renforcée pour les nouveaux fichiers
- Simplification de la maintenance du .gitignore
- Vérification que le dossier storage/ est vide de données sensibles
- Confirmation que les fichiers .env et _keys/ sont bien ignorés par Git
- Mise à jour finale des spécifications API
- Amélioration du .gitignore pour protéger les données sensibles
Vérifications effectuées:
- Dossier storage/ contient 78 fichiers de configuration génériques
- Fichiers de clés (_keys/keys.json) sont ignorés et non poussés
- Fichiers .env sont ignorés et non poussés
- Seuls les fichiers nginx de configuration générique sont trackés
- Aucune donnée sensible n est poussée vers le dépôt
- Spécification technique détaillée (api-specification.md)
- Spécification OpenAPI 3.0.3 (api-specification-openapi.yaml)
- Mise à jour de l index de documentation
Nouvelles fonctionnalités documentées:
- Authentification par clés utilisateur (X-User-ID)
- Chiffrement ChaCha20-Poly1305 quantique résistant
- Variables d environnement avec résolution automatique
- Rotation automatique des clés
- Protection contre les attaques de traversée
- Endpoints /health, /info, /routes, /{env}/{file_path}
- Codes d erreur détaillés (400, 401, 403, 404, 500)
- Exemples d utilisation complets
- Structure du payload chiffré
- Gestion des headers X-Next-Key
Spécification OpenAPI inclut:
- Tous les endpoints avec paramètres
- Schémas de réponse complets
- Codes d erreur avec exemples
- Sécurité UserKeyAuth
- Tags et descriptions détaillées
- Exemples de requêtes/réponses
- Ajout du guide des variables d environnement
- Mise à jour du README principal avec nouvelles fonctionnalités
- Mise à jour de la documentation SDK avec SecureVaultClient
- Ajout du CHANGELOG détaillé
- Documentation des nouvelles fonctionnalités:
* Traitement automatique des variables VAR et VAR
* Résolution récursive des dépendances
* Protection contre les boucles infinies
* Synchronisation locale des fichiers déchiffrés
* Déchiffrement réel avec noble/ciphers
* Configuration automatique via .env
* Rotation automatique des clés
Nouvelles sections:
- Variables d environnement dans docs/environment-variables.md
- Exemples concrets de résolution de variables
- Guide de debugging et logs
- Intégration SDK avec variables résolues
- Protection sécurité et bonnes pratiques
- Ajout de l EnvProcessor dans l API pour résoudre les variables VAR
- Résolution récursive des variables d environnement en mémoire
- Support des syntaxes VAR et VAR entre accolades
- Chargement uniquement du fichier .env principal (pas les sous-répertoires)
- Traitement des variables avant chiffrement des contenus
- Correction des dépendances circulaires (HOST/DOMAIN)
- Harmonisation de la cryptographie API/SDK avec noble/ciphers
- Amélioration de la sécurité avec protection des chemins
- Synchronisation locale des fichiers déchiffrés avec variables résolues
Variables maintenant correctement résolues:
- DOMAIN=4nkweb.com → valeur fixe préservée
- HOST=dev4.DOMAIN → dev4.4nkweb.com
- ROOT_HOST=HOST → dev4.4nkweb.com
- ROOT_URL=https://ROOT_HOST → https://dev4.4nkweb.com
Tests: 72 fichiers synchronisés avec succès, chiffrement ChaCha20-Poly1305 fonctionnel
- Harmonisation cryptographique API/SDK avec @noble/ciphers
- Remplacement de crypto Node.js par @noble/ciphers pour compatibilité Python
- Déchiffrement ChaCha20-Poly1305 maintenant fonctionnel
- Synchronisation complète des 72 fichiers réussie
- Fichiers déchiffrés correctement sauvegardés dans confs/
- SDK mis à jour avec API decrypt() au lieu de open()
- Tests de déchiffrement et synchronisation validés
- API complètement dynamique: routes /<env>/<project>/<file_name>
- Scanner automatique de tous les environnements disponibles
- Sécurité renforcée contre path traversal attacks
- Endpoint /routes dynamique avec 72 fichiers détectés
- SDK mis à jour pour récupération dynamique des routes
- Gestion d'erreurs complète et logs de sécurité
- Architecture production-ready avec multi-environnements
🔒 Implémentation du chiffrement client-serveur sécurisé avec rotation à chaque requête
✅ NOUVEAU SYSTÈME DE SÉCURITÉ:
• Chiffrement client-serveur avec clés partagées
• Rotation automatique à chaque requête (pas à chaque connexion)
• Envoi de la prochaine clé dans le flux chiffré
• SDK conserve la clé pour les requêtes suivantes
🔧 MODIFICATIONS API:
• Nouvelle méthode _encrypt_with_user_key_and_next()
• Rotation automatique dans get_or_create_user_key()
• Headers X-Next-Key avec la prochaine clé
• Contenu chiffré retourné (application/octet-stream)
🔧 MODIFICATIONS SDK:
• Gestion de la prochaine clé dans decryptContent()
• Extraction de X-Next-Key depuis les headers
• Méthode updateNextKey() pour sauvegarder la clé
• Support des métadonnées avec next_key
🧪 TESTS VALIDÉS:
• Rotation à chaque requête confirmée
• Prochaine clé différente à chaque appel
• Contenu chiffré correctement transmis
• Métadonnées avec informations de rotation
🔐 SÉCURITÉ:
• Chiffrement quantique résistant (ChaCha20-Poly1305)
• Clés individuelles par utilisateur et environnement
• Rotation transparente pour l'utilisateur
• Audit complet dans les logs serveur
🔒 HTTPS OBLIGATOIRE:
- ✅ Vérification stricte de HTTPS avec multiple contrôles
- ✅ Rejet automatique des connexions HTTP sur le port 6666
- ✅ Messages d'erreur explicites pour HTTPS requis
- ✅ Test de connexion HTTP confirmé (refusé comme attendu)
🔐 AUTHENTIFICATION CORRIGÉE:
- ✅ Validation stricte des ID utilisateur (3-50 chars alphanumériques + _ et -)
- ✅ Rejet automatique des utilisateurs invalides (401)
- ✅ Tests d'authentification fonctionnels
- ✅ Header X-User-ID obligatoire pour tous les accès
📁 TESTS CORRIGÉS:
- ✅ Test d'accès aux fichiers avec environnement dev existant
- ✅ Script de démarrage mis à jour (api_server.py)
- ✅ Tests d'authentification avec résultats attendus
🧪 RÉSULTATS DES TESTS:
- ✅ Santé de l'API: PASSÉ
- ✅ Informations API: PASSÉ
- ✅ Accès aux fichiers: PASSÉ
- ✅ Authentification: PASSÉ (401 pour utilisateurs invalides)
- ✅ HTTPS obligatoire: PASSÉ (HTTP refusé)
- ✅ Rotation des clés: PASSÉ
L'API est maintenant complètement sécurisée avec HTTPS obligatoire et authentification fonctionnelle.
🔒 PROTECTION FINALE:
- ✅ storage/ retiré du cache Git
- ✅ Seul .gitkeep autorisé (avec -f)
- ✅ Tous les fichiers sensibles supprimés du tracking
- ✅ Protection .gitignore active et fonctionnelle
🛡️ RÉSULTAT:
- Git ne peut plus accéder aux fichiers storage/
- Seuls les fichiers .gitkeep sont trackés
- Variables d'environnement et clés utilisateur protégées
- Aucun fichier sensible exposé
🔒 PROTECTION RENFORCÉE:
- ✅ .gitignore: Exclusion complète de storage/ avec exceptions contrôlées
- ✅ .cursorignore: Protection totale contre l'accès Cursor
- ✅ .dockerignore: Protection totale contre l'accès Docker
- ✅ Double protection des clés utilisateur et variables d'environnement
🛡️ FICHIERS PROTÉGÉS:
- storage/*/_keys/ (clés utilisateur)
- storage/*/.env* (variables d'environnement)
- storage/*/keys.json (base de données des clés)
- Tous les fichiers de configuration sensibles
✅ VÉRIFICATION:
- git check-ignore confirme la protection
- Seuls les fichiers .gitkeep et README.md sont autorisés
- Aucun fichier sensible ne sera exposé via Git/Cursor/Docker
- ✅ Suppression des fichiers redondants (api_server.py, start_api.sh, test_api.py)
- ✅ Renommage des fichiers sécurisés vers les noms standards
- ✅ Consolidation des exemples SDK en un seul fichier usage.ts
- ✅ Suppression du client SDK déprécié
- ✅ Mise à jour de la documentation principale
- ✅ Simplification de la structure du projet
- 🔒 Conservation de la sécurité (authentification par clés utilisateur)
- 📁 Respect du stockage en lecture seule (storage/)
- ✅ API sécurisée avec authentification par ID utilisateur
- ✅ HTTPS obligatoire avec rejet des connexions HTTP
- ✅ Clés individuelles par utilisateur ET par environnement
- ✅ Rotation automatique des clés avec sauvegarde de l'ancienne
- ✅ Stockage sécurisé dans storage/<env>/_keys/
- ✅ Client SDK mis à jour sans stockage de clés côté client
- ✅ Documentation complète avec avertissements de sécurité
- ✅ Tests complets du système sécurisé
- 🔒 Protection des fichiers sensibles dans .gitignore
- API server with ChaCha20-Poly1305 encryption
- TypeScript SDK client with full functionality
- Complete documentation in docs/
- Environment variable processing with composite variables
- HTTPS-only API on port 6666
- Storage structure for configuration files
- Tests and examples included
Features:
- Quantum-resistant encryption (ChaCha20-Poly1305)
- Variable substitution from .env files
- Comprehensive TypeScript SDK
- Full API documentation and specifications
- Deployment guides and security model