resolve: merge conflicts in ignore files
- Keep Cursor-specific content in .cursorignore and .dockerignore - Keep comprehensive Git ignore rules in .gitignore - Maintain protection for sensitive files and directories
This commit is contained in:
commit
d48ccc8fbc
87
.gitignore
vendored
87
.gitignore
vendored
@ -1,17 +1,82 @@
|
|||||||
# PROTECTION COMPLÈTE - Empêcher l'accès Docker à storage/
|
# 4NK Environment - Git Ignore
|
||||||
**/__pycache__/
|
# ============================
|
||||||
**/dist/
|
confs/
|
||||||
**/node_modules/
|
# Dossiers de sauvegarde des scripts
|
||||||
**/package-lock.json*
|
**/backup/
|
||||||
**/yarn.lock*
|
**/*backup*
|
||||||
|
|
||||||
# Variables d'environnement (protection renforcée)
|
**/.cargo/
|
||||||
|
|
||||||
**/.crt*
|
# Fichiers temporaires
|
||||||
**/.key*
|
**/*.tmp*
|
||||||
**/.pem*
|
**/*.temp*
|
||||||
|
**/*.log*
|
||||||
|
**/*.pid*
|
||||||
|
|
||||||
|
# Fichiers de configuration locale
|
||||||
|
**/*.env*
|
||||||
|
**/*.conf*
|
||||||
|
**/*.yaml*
|
||||||
|
**/*.yml*
|
||||||
|
**/*.ini*
|
||||||
|
**/*.json*
|
||||||
|
**/*.toml*
|
||||||
|
**/*.lock*
|
||||||
|
|
||||||
|
# Données et logs
|
||||||
|
**/*.logs*
|
||||||
|
**/*.data
|
||||||
|
*.db
|
||||||
|
*.sqlite
|
||||||
|
|
||||||
|
# Certificats et clés
|
||||||
|
**/*.key
|
||||||
|
**/*.pem
|
||||||
|
**/*.crt
|
||||||
|
**/*.p12
|
||||||
|
**/*.pfx
|
||||||
|
ssl/
|
||||||
|
certs/
|
||||||
|
|
||||||
|
# Docker
|
||||||
|
**/*.docker*
|
||||||
|
|
||||||
|
# Cache et build
|
||||||
|
**/*.node_modules/
|
||||||
|
**/*.dist/
|
||||||
|
**/*build/
|
||||||
|
**/*target/
|
||||||
|
**/*.*.o
|
||||||
|
**/*.so
|
||||||
|
**/*.dylib
|
||||||
|
|
||||||
|
# IDE et éditeurs
|
||||||
|
**/*.vscode/
|
||||||
|
**/*.idea/
|
||||||
|
**/*.swp
|
||||||
|
**/*.swo
|
||||||
|
**/*~
|
||||||
|
|
||||||
|
# OS
|
||||||
|
**/*.DS_Store
|
||||||
|
**/*Thumbs.db
|
||||||
|
**/*tmp*
|
||||||
|
|
||||||
|
# Git
|
||||||
|
**/*.git/
|
||||||
|
**/*.orig*
|
||||||
|
|
||||||
|
# Backup des projets existants
|
||||||
|
**/*backup*
|
||||||
|
|
||||||
# Clés utilisateur et données sensibles
|
# Clés utilisateur et données sensibles
|
||||||
**/_keys/
|
**/_keys/
|
||||||
**/keys.json*
|
**/keys.json*
|
||||||
storage/dev/.env.secrets
|
|
||||||
|
**/*wallet*
|
||||||
|
**/*keys*
|
||||||
|
|
||||||
|
**/*node_modules*
|
||||||
|
**/*cursor*
|
||||||
|
**/*pid*
|
||||||
|
**/*next*
|
||||||
|
21
README.md
21
README.md
@ -74,7 +74,7 @@ X-User-ID: your_user_id
|
|||||||
|
|
||||||
**Exemple :**
|
**Exemple :**
|
||||||
```bash
|
```bash
|
||||||
curl -k -H "X-User-ID: demo_user_001" https://vault.4nkweb.com:6666/dev/bitcoin/bitcoin.conf
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" "$VAULT_URL"/dev/bitcoin/bitcoin.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🔧 Installation et utilisation
|
## 🔧 Installation et utilisation
|
||||||
@ -171,12 +171,23 @@ python3 test_api.py
|
|||||||
└── docs/ # Documentation complète
|
└── docs/ # Documentation complète
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🌐 Domaine
|
## 🌐 Intégration dans l'environnement 4NK
|
||||||
|
|
||||||
L'API est configurée pour fonctionner sur le domaine `vault.4nkweb.com` avec des certificats SSL auto-signés pour la démonstration.
|
Ce module s'intègre au déploiement global 4NK via une URL de base configurable (variable `VAULT_URL`).
|
||||||
|
Consultez les documents centraux pour le contexte et l'orchestration:
|
||||||
En production, utilisez des certificats SSL valides et implémentez un échange de clés sécurisé.
|
- `docs/DEEP_ARCHITECTURE_ANALYSIS.md`
|
||||||
|
- `docs/TECHNICAL_REFERENCE.md`
|
||||||
|
- `docs/DEPLOYMENT_GUIDE.md`
|
||||||
|
|
||||||
## ⚠️ Avertissements
|
## ⚠️ Avertissements
|
||||||
|
|
||||||
Voir `SECURITY_NOTICE.md` pour les détails sur les limitations de sécurité en mode démonstration.
|
Voir `SECURITY_NOTICE.md` pour les détails sur les limitations de sécurité en mode démonstration.
|
||||||
|
## 📋 Fichiers centralisés
|
||||||
|
|
||||||
|
Les fichiers suivants sont centralisés dans le dépôt principal `4NK_env` :
|
||||||
|
- `CODE_OF_CONDUCT.md` - Code de conduite
|
||||||
|
- `CODEOWNERS` - Propriétaires du code
|
||||||
|
- `CONTRIBUTING.md` - Guide de contribution
|
||||||
|
- `LICENSE` - Licence du projet
|
||||||
|
|
||||||
|
Voir : [`4NK_env/CODE_OF_CONDUCT.md`](../../CODE_OF_CONDUCT.md), [`4NK_env/CODEOWNERS`](../../CODEOWNERS), [`4NK_env/CONTRIBUTING.md`](../../CONTRIBUTING.md), [`4NK_env/LICENSE`](../../LICENSE)
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
## 🚨 Problème de sécurité résolu
|
## 🚨 Problème de sécurité résolu
|
||||||
|
|
||||||
### Problème identifié
|
### Problème identifié
|
||||||
La clé de démonstration `quantum_resistant_demo_key_32byt` était **exposée publiquement** dans le code source, permettant à n'importe qui de déchiffrer les fichiers servis par l'API.
|
La clé de démonstration `<DEMO_KEY_PLACEHOLDER>` était **exposée publiquement** dans le code source, permettant à n'importe qui de déchiffrer les fichiers servis par l'API.
|
||||||
|
|
||||||
### Solution implémentée
|
### Solution implémentée
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ const client = new VaultClient({
|
|||||||
baseUrl: 'https://vault.4nkweb.com:6666',
|
baseUrl: 'https://vault.4nkweb.com:6666',
|
||||||
verifySsl: false,
|
verifySsl: false,
|
||||||
timeout: 15000
|
timeout: 15000
|
||||||
}, 'old_demo_key'); // Ignorée mais acceptée
|
}, '<OLD_DEMO_KEY_PLACEHOLDER>'); // Ignorée mais acceptée
|
||||||
```
|
```
|
||||||
|
|
||||||
### 🚀 **Prochaines étapes**
|
### 🚀 **Prochaines étapes**
|
||||||
|
@ -21,7 +21,7 @@ L'API 4NK Vault Secure est un système de stockage sécurisé avec authentificat
|
|||||||
### Format de l'ID utilisateur
|
### Format de l'ID utilisateur
|
||||||
- **Longueur** : 3-128 caractères
|
- **Longueur** : 3-128 caractères
|
||||||
- **Caractères autorisés** : `a-zA-Z0-9_-`
|
- **Caractères autorisés** : `a-zA-Z0-9_-`
|
||||||
- **Exemple** : `demo_user_001`
|
- **Exemple** : `<VAULT_USER_ID>`
|
||||||
|
|
||||||
### Header requis
|
### Header requis
|
||||||
```http
|
```http
|
||||||
@ -180,7 +180,7 @@ X-User-ID: your_user_id
|
|||||||
|
|
||||||
**Exemple d'utilisation :**
|
**Exemple d'utilisation :**
|
||||||
```bash
|
```bash
|
||||||
curl -k -H "X-User-ID: demo_user_001" \
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" \
|
||||||
https://vault.4nkweb.com:6666/dev/bitcoin/bitcoin.conf \
|
https://vault.4nkweb.com:6666/dev/bitcoin/bitcoin.conf \
|
||||||
--output bitcoin.conf.encrypted
|
--output bitcoin.conf.encrypted
|
||||||
```
|
```
|
||||||
@ -308,32 +308,32 @@ rpcport=8332
|
|||||||
|
|
||||||
### Test de connectivité
|
### Test de connectivité
|
||||||
```bash
|
```bash
|
||||||
curl -k -H "X-User-ID: demo_user_001" \
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" \
|
||||||
https://vault.4nkweb.com:6666/health
|
https://vault.4nkweb.com:6666/health
|
||||||
```
|
```
|
||||||
|
|
||||||
### Récupération d'informations
|
### Récupération d'informations
|
||||||
```bash
|
```bash
|
||||||
curl -k -H "X-User-ID: demo_user_001" \
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" \
|
||||||
https://vault.4nkweb.com:6666/info
|
https://vault.4nkweb.com:6666/info
|
||||||
```
|
```
|
||||||
|
|
||||||
### Liste des routes disponibles
|
### Liste des routes disponibles
|
||||||
```bash
|
```bash
|
||||||
curl -k -H "X-User-ID: demo_user_001" \
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" \
|
||||||
https://vault.4nkweb.com:6666/routes
|
https://vault.4nkweb.com:6666/routes
|
||||||
```
|
```
|
||||||
|
|
||||||
### Récupération d'un fichier
|
### Récupération d'un fichier
|
||||||
```bash
|
```bash
|
||||||
curl -k -H "X-User-ID: demo_user_001" \
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" \
|
||||||
https://vault.4nkweb.com:6666/dev/bitcoin/bitcoin.conf \
|
https://vault.4nkweb.com:6666/dev/bitcoin/bitcoin.conf \
|
||||||
--output bitcoin.conf.encrypted
|
--output bitcoin.conf.encrypted
|
||||||
```
|
```
|
||||||
|
|
||||||
### Récupération avec sauvegarde de la clé suivante
|
### Récupération avec sauvegarde de la clé suivante
|
||||||
```bash
|
```bash
|
||||||
curl -k -H "X-User-ID: demo_user_001" \
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" \
|
||||||
https://vault.4nkweb.com:6666/dev/tor/torrc \
|
https://vault.4nkweb.com:6666/dev/tor/torrc \
|
||||||
--output torrc.encrypted \
|
--output torrc.encrypted \
|
||||||
--dump-header headers.txt
|
--dump-header headers.txt
|
||||||
|
@ -62,7 +62,7 @@ pip install -r requirements.txt
|
|||||||
./start_api.sh
|
./start_api.sh
|
||||||
|
|
||||||
# 3. Test avec authentification
|
# 3. Test avec authentification
|
||||||
curl -k -H "X-User-ID: demo_user_001" https://127.0.0.1:6666/health
|
curl -k -H "X-User-ID: <VAULT_USER_ID>" https://127.0.0.1:6666/health
|
||||||
```
|
```
|
||||||
|
|
||||||
### Utilisation avec le SDK TypeScript
|
### Utilisation avec le SDK TypeScript
|
||||||
|
@ -40,8 +40,8 @@ Le SDK peut être configuré automatiquement via un fichier `.env` :
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# .env
|
# .env
|
||||||
VAULT_USER=demo_user_001
|
VAULT_USER=<VAULT_USER_ID>
|
||||||
VAULT_KEY=JYyybYFXe9hghRI9d1mpoQ1uYYxpt/6lzYPOWrxruG0=
|
VAULT_KEY=<VAULT_KEY_BASE64>
|
||||||
VAULT_ENV=dev
|
VAULT_ENV=dev
|
||||||
VAULT_CONFS_DIR=../confs # Dossier de destination pour les fichiers synchronisés
|
VAULT_CONFS_DIR=../confs # Dossier de destination pour les fichiers synchronisés
|
||||||
```
|
```
|
||||||
@ -54,7 +54,7 @@ VAULT_CONFS_DIR=../confs # Dossier de destination pour les fichiers synchronis
|
|||||||
| `VAULT_KEY` | Clé de déchiffrement (gérée automatiquement) | ✅ | - |
|
| `VAULT_KEY` | Clé de déchiffrement (gérée automatiquement) | ✅ | - |
|
||||||
| `VAULT_ENV` | Environnement par défaut | ✅ | - |
|
| `VAULT_ENV` | Environnement par défaut | ✅ | - |
|
||||||
| `VAULT_CONFS_DIR` | Dossier de destination pour les fichiers synchronisés | ❌ | `../confs` |
|
| `VAULT_CONFS_DIR` | Dossier de destination pour les fichiers synchronisés | ❌ | `../confs` |
|
||||||
| `VAULT_URL` | URL de l'API Vault | ❌ | `https://vault.4nkweb.com:6666` |
|
| `VAULT_URL` | URL de l'API Vault | ❌ | `<VAULT_URL>` |
|
||||||
|
|
||||||
#### Chargement automatique des variables d'environnement
|
#### Chargement automatique des variables d'environnement
|
||||||
|
|
||||||
@ -75,9 +75,9 @@ import { SecureVaultClient } from '@4nk/vault-sdk';
|
|||||||
|
|
||||||
// Configuration manuelle
|
// Configuration manuelle
|
||||||
const client = new SecureVaultClient({
|
const client = new SecureVaultClient({
|
||||||
baseUrl: 'https://vault.4nkweb.com:6666',
|
baseUrl: process.env.VAULT_URL ?? '<VAULT_URL>',
|
||||||
userId: 'demo_user_001',
|
userId: '<VAULT_USER_ID>',
|
||||||
vaultKey: 'base64-encoded-key',
|
vaultKey: '<VAULT_KEY_BASE64>',
|
||||||
environment: 'dev',
|
environment: 'dev',
|
||||||
verifySsl: false // Pour les certificats auto-signés
|
verifySsl: false // Pour les certificats auto-signés
|
||||||
});
|
});
|
||||||
@ -110,9 +110,9 @@ try {
|
|||||||
import { SecureVaultClient } from '@4nk/vault-sdk';
|
import { SecureVaultClient } from '@4nk/vault-sdk';
|
||||||
|
|
||||||
const client = new SecureVaultClient({
|
const client = new SecureVaultClient({
|
||||||
baseUrl: 'https://vault.4nkweb.com:6666',
|
baseUrl: process.env.VAULT_URL ?? '<VAULT_URL>',
|
||||||
userId: 'demo_user_001',
|
userId: '<VAULT_USER_ID>',
|
||||||
vaultKey: 'your-base64-key',
|
vaultKey: '<VAULT_KEY_BASE64>',
|
||||||
environment: 'dev',
|
environment: 'dev',
|
||||||
verifySsl: false, // Pour les certificats auto-signés
|
verifySsl: false, // Pour les certificats auto-signés
|
||||||
timeout: 10000 // 10 secondes
|
timeout: 10000 // 10 secondes
|
||||||
@ -239,10 +239,10 @@ try {
|
|||||||
|
|
||||||
// ✅ Utiliser HTTPS en production
|
// ✅ Utiliser HTTPS en production
|
||||||
const client = new SecureVaultClient({
|
const client = new SecureVaultClient({
|
||||||
baseUrl: 'https://vault.4nkweb.com:6666',
|
baseUrl: process.env.VAULT_URL ?? '<VAULT_URL>',
|
||||||
verifySsl: true, // Activer la validation SSL
|
verifySsl: true, // Activer la validation SSL
|
||||||
userId: 'your-user-id',
|
userId: '<VAULT_USER_ID>',
|
||||||
vaultKey: 'your-base64-key',
|
vaultKey: '<VAULT_KEY_BASE64>',
|
||||||
environment: 'prod'
|
environment: 'prod'
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -314,8 +314,8 @@ const syncResult = await client.syncLocalFiles({
|
|||||||
```typescript
|
```typescript
|
||||||
const client = new SecureVaultClient({
|
const client = new SecureVaultClient({
|
||||||
baseUrl: 'https://vault.4nkweb.com:6666',
|
baseUrl: 'https://vault.4nkweb.com:6666',
|
||||||
userId: 'demo_user_001',
|
userId: '<VAULT_USER_ID>',
|
||||||
vaultKey: 'your-key',
|
vaultKey: '<VAULT_KEY_BASE64>',
|
||||||
verifySsl: false
|
verifySsl: false
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
@ -327,12 +327,12 @@ const syncResult = await client.syncLocalFiles({
|
|||||||
**Solutions** :
|
**Solutions** :
|
||||||
1. **Vérifiez l'URL dans votre `.env`** :
|
1. **Vérifiez l'URL dans votre `.env`** :
|
||||||
```bash
|
```bash
|
||||||
VAULT_URL=https://vault.4nkweb.com:6666
|
VAULT_URL=<VAULT_URL>
|
||||||
```
|
```
|
||||||
2. **Redémarrez l'API locale** si elle tourne en arrière-plan
|
2. **Redémarrez l'API locale** si elle tourne en arrière-plan
|
||||||
3. **Testez la connectivité** :
|
3. **Testez la connectivité** :
|
||||||
```bash
|
```bash
|
||||||
curl -k https://vault.4nkweb.com:6666/health
|
curl -k "$VAULT_URL"/health
|
||||||
```
|
```
|
||||||
4. **Vérifiez les logs** du SDK pour voir quelle URL est utilisée
|
4. **Vérifiez les logs** du SDK pour voir quelle URL est utilisée
|
||||||
|
|
||||||
@ -545,5 +545,5 @@ MIT License - Voir le fichier `LICENSE` pour plus de détails.
|
|||||||
---
|
---
|
||||||
|
|
||||||
**Version** : 1.0.0
|
**Version** : 1.0.0
|
||||||
**API Vault** : vault.4nkweb.com:6666
|
**API Vault** : <VAULT_URL>
|
||||||
**Chiffrement** : ChaCha20-Poly1305 (quantique résistant)
|
**Chiffrement** : ChaCha20-Poly1305 (quantique résistant)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user