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
This commit is contained in:
4NK Dev 2025-10-01 14:38:46 +00:00
parent 8237eed91e
commit 84de922488
6 changed files with 112 additions and 8 deletions

View File

@ -2,11 +2,9 @@
**/__pycache__/
**/storage/
**/dist/
**/dist/
**/node_modules/
**/package-lock.json*
**/yarn.lock*
**/yarn.lock*
# Variables d'environnement (protection renforcée)
**/.env*

View File

@ -2,11 +2,9 @@
**/__pycache__/
**/storage/
**/dist/
**/dist/
**/node_modules/
**/package-lock.json*
**/yarn.lock*
**/yarn.lock*
# Variables d'environnement (protection renforcée)
**/.env*

1
.gitignore vendored
View File

@ -5,7 +5,6 @@
**/node_modules/
**/package-lock.json*
**/yarn.lock*
**/yarn.lock*
# Variables d'environnement (protection renforcée)
**/.env*

View File

@ -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

View File

@ -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"
},

View File

@ -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();