From 84de92248871414cd66bd2da6cd3d06f77777052 Mon Sep 17 00:00:00 2001 From: 4NK Dev Date: Wed, 1 Oct 2025 14:38:46 +0000 Subject: [PATCH] feat: amelioration configuration SDK client avec fichiers .env - Ajout de .env.example pour faciliter la configuration - Ajout de .env avec configuration par defaut - Creation du script test-connection.js pour diagnostic - Mise a jour du README avec section configuration rapide - Ajout de script npm test:connection - Amelioration du depannage pour problemes de connexion - Documentation completee pour resolution problemes variables environnement --- .cursorignore | 2 - .dockerignore | 2 - .gitignore | 1 - sdk-client/README.md | 40 +++++++++++++++++-- sdk-client/package.json | 1 + sdk-client/test-connection.js | 74 +++++++++++++++++++++++++++++++++++ 6 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 sdk-client/test-connection.js diff --git a/.cursorignore b/.cursorignore index 360b5e3..20848db 100644 --- a/.cursorignore +++ b/.cursorignore @@ -2,11 +2,9 @@ **/__pycache__/ **/storage/ **/dist/ -**/dist/ **/node_modules/ **/package-lock.json* **/yarn.lock* -**/yarn.lock* # Variables d'environnement (protection renforcée) **/.env* diff --git a/.dockerignore b/.dockerignore index 360b5e3..20848db 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,11 +2,9 @@ **/__pycache__/ **/storage/ **/dist/ -**/dist/ **/node_modules/ **/package-lock.json* **/yarn.lock* -**/yarn.lock* # Variables d'environnement (protection renforcée) **/.env* diff --git a/.gitignore b/.gitignore index a31bcb0..20848db 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ **/node_modules/ **/package-lock.json* **/yarn.lock* -**/yarn.lock* # Variables d'environnement (protection renforcée) **/.env* diff --git a/sdk-client/README.md b/sdk-client/README.md index 544a3d4..eaf7e29 100644 --- a/sdk-client/README.md +++ b/sdk-client/README.md @@ -20,6 +20,18 @@ Un SDK TypeScript moderne et type-safe pour interagir avec l'API Vault 4NK, perm npm install @4nk/vault-sdk ``` +## ⚙️ Configuration rapide + +Après avoir cloné le projet ou installé le SDK, **vous devez configurer les variables d'environnement** : + +```bash +# 1. Copier le fichier d'exemple +cp .env.example .env + +# 2. Modifier les valeurs dans .env selon vos besoins +# 3. Ou créer directement un fichier .env avec vos paramètres +``` + ## 🔧 Configuration ### Configuration automatique via .env @@ -290,9 +302,15 @@ const syncResult = await client.syncLocalFiles({ **Problème** : `VAULT_USER`, `VAULT_KEY`, ou `VAULT_ENV` manquants. **Solutions** : -1. **Ajoutez les variables manquantes** dans votre `.env` -2. **Vérifiez la syntaxe** du fichier `.env` (pas d'espaces autour du `=`) -3. **Utilisez la configuration manuelle** : +1. **Créez un fichier `.env`** dans le dossier `sdk-client/` : + ```bash + cd sdk-client/ + cp .env.example .env + # Modifiez les valeurs dans .env + ``` +2. **Ajoutez les variables manquantes** dans votre `.env` +3. **Vérifiez la syntaxe** du fichier `.env` (pas d'espaces autour du `=`) +4. **Utilisez la configuration manuelle** : ```typescript const client = new SecureVaultClient({ baseUrl: 'https://vault.4nkweb.com:6666', @@ -302,6 +320,22 @@ const syncResult = await client.syncLocalFiles({ }); ``` +#### Dossiers créés mais vides (seulement des .gitkeep) + +**Problème** : Le SDK se connecte à une API locale au lieu de l'API distante. + +**Solutions** : +1. **Vérifiez l'URL dans votre `.env`** : + ```bash + VAULT_URL=https://vault.4nkweb.com:6666 + ``` +2. **Redémarrez l'API locale** si elle tourne en arrière-plan +3. **Testez la connectivité** : + ```bash + curl -k https://vault.4nkweb.com:6666/health + ``` +4. **Vérifiez les logs** du SDK pour voir quelle URL est utilisée + ## 📚 API Reference ### Classes principales diff --git a/sdk-client/package.json b/sdk-client/package.json index 8db74f5..27fdc7a 100644 --- a/sdk-client/package.json +++ b/sdk-client/package.json @@ -8,6 +8,7 @@ "build": "tsc", "dev": "tsc --watch", "test": "jest", + "test:connection": "node test-connection.js", "lint": "eslint src/**/*.ts", "clean": "rm -rf dist" }, diff --git a/sdk-client/test-connection.js b/sdk-client/test-connection.js new file mode 100644 index 0000000..6b02a43 --- /dev/null +++ b/sdk-client/test-connection.js @@ -0,0 +1,74 @@ +/** + * Test de connexion au SDK Vault + * Affiche l'URL utilisée et teste la connectivité + */ + +const { SecureVaultClient } = require('./dist/src/index.js'); + +async function testConnection() { + console.log('🔍 Test de connexion au SDK Vault'); + console.log('==================================='); + + try { + // Afficher les variables d'environnement chargées + console.log('\n📋 Variables d\'environnement:'); + console.log(` VAULT_USER: ${process.env.VAULT_USER || 'NON DÉFINI'}`); + console.log(` VAULT_ENV: ${process.env.VAULT_ENV || 'NON DÉFINI'}`); + console.log(` VAULT_URL: ${process.env.VAULT_URL || 'NON DÉFINI'}`); + console.log(` VAULT_CONFS_DIR: ${process.env.VAULT_CONFS_DIR || 'NON DÉFINI'}`); + + // Créer le client + const client = new SecureVaultClient(); + + // Afficher l'URL configurée + console.log('\n🌐 Configuration du client:'); + console.log(` URL de base: ${client.config?.baseUrl || 'NON DÉFINI'}`); + console.log(` Utilisateur: ${client.config?.userId || 'NON DÉFINI'}`); + + // Test de connectivité + console.log('\n🔌 Test de connectivité...'); + const isConnected = await client.ping(); + + if (isConnected) { + console.log(' ✅ Connexion réussie !'); + + // Test de récupération des routes + console.log('\n📁 Test de récupération des routes...'); + const routes = await client.getRoutes('dev'); + console.log(` ✅ ${routes.length} routes récupérées`); + + // Test de synchronisation + console.log('\n📂 Test de synchronisation...'); + const syncResult = await client.syncLocalFiles({ + environment: 'dev', + localDir: './test-confs', + verbose: true + }); + + console.log(` ✅ Synchronisation terminée:`); + console.log(` - Fichiers synchronisés: ${syncResult.synced}`); + console.log(` - Fichiers ignorés: ${syncResult.skipped}`); + console.log(` - Erreurs: ${syncResult.errors}`); + + } else { + console.log(' ❌ Connexion échouée !'); + } + + } catch (error) { + console.error('\n❌ Erreur:', error.message); + + if (error.message.includes('Variables d\'environnement requises')) { + console.log('\n💡 Solution:'); + console.log(' 1. Créez un fichier .env dans le dossier sdk-client/'); + console.log(' 2. Copiez .env.example vers .env'); + console.log(' 3. Modifiez les valeurs dans .env'); + console.log('\n Exemple de .env:'); + console.log(' VAULT_USER=demo_user_001'); + console.log(' VAULT_KEY=JYyybYFXe9hghRI9d1mpoQ1uYYxpt/6lzYPOWrxruG0='); + console.log(' VAULT_ENV=dev'); + console.log(' VAULT_URL=https://vault.4nkweb.com:6666'); + } + } +} + +testConnection();