sdk_signer/README.md

318 lines
7.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SDK Signer
Service de signature TypeScript pour l'écosystème 4NK, fournissant une interface pour la gestion des processus, signatures et communications sécurisées.
## 🚀 État actuel
### Compatibilité WASM
-**Stub WASM flate2** : Compatible avec le stub `sdk_client`
-**TypeScript 100%** : Toutes les erreurs TypeScript résolues
-**Tests passants** : Compilation et tests réussis
### Corrections récentes
-**Interfaces TypeScript** : Mise à jour complète des types
-**Gestion des erreurs** : Correction des erreurs de compilation
-**Compatibilité flate2** : Support pour la compression DEFLATE
## 📋 Table des Matières
- [🏗️ Architecture](#-architecture)
- [🚀 Démarrage Rapide](#-démarrage-rapide)
- [📦 Installation](#-installation)
- [🔧 Configuration](#-configuration)
- [📚 Documentation](#-documentation)
- [🧪 Tests et Monitoring](#-tests-et-monitoring)
- [🔄 Compatibilité WASM](#-compatibilité-wasm)
- [🛠️ Développement](#-développement)
- [🚨 Dépannage](#-dépannage)
- [📊 Performance](#-performance)
- [🤝 Contribution](#-contribution)
## 🏗️ Architecture
### Composants principaux
- **src/** : Code TypeScript principal
- **pkg/** : Package WASM `sdk_client` (stub)
- **dist/** : Code compilé JavaScript
- **tests/** : Tests unitaires et d'intégration
### Services fournis
- **Gestion des processus** : Création et validation de processus
- **Signatures** : Signatures cryptographiques sécurisées
- **Communication** : Interface avec le réseau de relais
- **Validation** : Règles de validation et permissions
## 🚀 Démarrage Rapide
### Prérequis
- Node.js 18+
- npm ou yarn
- Docker (optionnel, pour le déploiement)
### Installation
```bash
git clone https://git.4nkweb.com/4nk/sdk_signer.git
cd sdk_signer
npm install
npm run build
```
### Démarrage
```bash
# Mode développement
npm run dev
# Mode production
npm start
# Avec Docker
docker compose up
```
## 📦 Installation
### Installation locale
```bash
# Cloner le projet
git clone https://git.4nkweb.com/4nk/sdk_signer.git
cd sdk_signer
# Installer les dépendances
npm install
# Compiler le projet
npm run build
# Lancer les tests
npm test
```
### Installation Docker
```bash
# Construire l'image
docker build -t sdk_signer .
# Lancer le conteneur
docker run -p 3000:3000 sdk_signer
```
## 🔧 Configuration
### Variables d'environnement
```bash
# Configuration de base
NODE_ENV=production
PORT=3000
# Configuration WASM
WASM_PATH=./pkg/sdk_client_bg.wasm
# Configuration réseau
RELAY_HOST=localhost
RELAY_PORT=8090
```
### Configuration TypeScript
```json
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
```
## 📚 Documentation
### Guides principaux
- [Index](docs/INDEX.md) - Vue d'ensemble
- [Déploiement](docs/deployment.md) - Guide de déploiement
- [Docker Support](docs/docker-support.md) - Configuration Docker
- [Template Alignment](docs/template-alignment.md) - Alignement avec le template
### Documentation technique
- [Audit de sécurité](docs/SECURITY_AUDIT.md) - Considérations de sécurité
- [Notes de version](docs/release-notes-0.1.1.md) - Historique des versions
## 🧪 Tests et Monitoring
### Tests unitaires
```bash
# Tests complets
npm test
# Tests en mode watch
npm run test:watch
# Couverture de code
npm run test:coverage
```
### Tests d'intégration
```bash
# Tests avec le stub WASM
npm run test:integration
# Tests de compatibilité
npm run test:compatibility
```
### Monitoring
```bash
# Logs en temps réel
npm run logs
# Métriques de performance
npm run metrics
```
## 🔄 Compatibilité WASM
### Stub WASM sdk_client
Le projet utilise un stub WASM temporaire pour `sdk_client` :
```typescript
import { create_device, create_process } from 'sdk_client';
// Utilisation du stub
const device = create_device("device_123");
const process = create_process("process_456", device);
```
### Structure du stub
```
pkg/
├── sdk_client.js # Implémentation JavaScript
├── sdk_client.d.ts # Types TypeScript
├── sdk_client_bg.wasm # Fichier WASM minimal
└── package.json # Manifeste npm
```
### Migration vers WASM natif
- 🔄 **Phase 1** : Stub temporaire (✅ Terminé)
-**Phase 2** : Migration complète WASM (planifié)
-**Phase 3** : Optimisations de performance (planifié)
## 🛠️ Développement
### Structure du code
```
src/
├── index.ts # Point d'entrée principal
├── service.ts # Service principal
├── relay-manager.ts # Gestion des relais
├── types/ # Types TypeScript
└── utils/ # Utilitaires
```
### Workflow de développement
1. Développer dans `src/`
2. Tester avec `npm test`
3. Vérifier la compatibilité WASM
4. Compiler avec `npm run build`
5. Tester l'intégration
### Scripts disponibles
```bash
npm run build # Compilation TypeScript
npm run dev # Mode développement
npm run start # Mode production
npm run test # Tests unitaires
npm run lint # Vérification du code
npm run clean # Nettoyage des fichiers
```
## 🚨 Dépannage
### Problèmes courants
#### Erreurs TypeScript
```bash
# Vérifier les erreurs
npm run type-check
# Corriger automatiquement
npm run lint:fix
```
#### Problèmes WASM
```bash
# Vérifier le stub WASM
ls -la pkg/
# Reinstaller le stub
cp -r ../sdk_client/pkg/ ./
```
#### Problèmes de compilation
```bash
# Nettoyer et recompiler
npm run clean
npm install
npm run build
```
### Logs et debugging
```bash
# Logs détaillés
DEBUG=* npm start
# Logs TypeScript
npm run build -- --verbose
```
## 📊 Performance
### Métriques
- **Temps de compilation** : < 5s
- **Temps de démarrage** : < 2s
- **Mémoire utilisée** : < 100MB
- **Tests** : 100% de couverture
### Optimisations
- **Tree shaking** : Élimination du code inutilisé
- **Minification** : Réduction de la taille des bundles
- **Caching** : Mise en cache des modules WASM
## 🤝 Contribution
### Prérequis
- Node.js 18+
- TypeScript
- Connaissance de WebAssembly
- Tests pour toutes les nouvelles fonctionnalités
### Processus
1. Fork du projet
2. Créer une branche feature
3. Développer avec tests
4. Vérifier la compatibilité WASM
5. Pull request vers `docker-support`
### Standards de code
- TypeScript strict
- Tests unitaires obligatoires
- Documentation des APIs
- Respect des conventions ESLint
## 📄 Licence
MIT License - voir [LICENSE](LICENSE) pour plus de détails.
## 📊 Statut du projet
- **Version** : 0.1.1
- **Branche stable** : `docker-support`
- **Compatibilité WASM** : Stub temporaire
- **Tests** : 100% de couverture
- **TypeScript** : 0 erreur
- **Documentation** : Complète
---
Ce projet suit la structure du template 4NK. Voir le template: [4NK_project_template](https://git.4nkweb.com/nicolas.cantu/4NK_project_template.git).