From 7e2d69d139fd2cf01e583c80b95fca1d20f38f72 Mon Sep 17 00:00:00 2001 From: Debian Date: Wed, 3 Sep 2025 08:18:07 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20normalisation=20titres=20H2=20et=20mise?= =?UTF-8?q?s=20=C3=A0=20jour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/API.md | 16 ++++++++++++++++ docs/ARCHITECTURE.md | 30 ++++++++++++++++++++++++++++++ docs/DEPLOYMENT.md | 20 ++++++++++++++++++++ docs/USAGE.md | 16 ++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 docs/API.md create mode 100644 docs/ARCHITECTURE.md create mode 100644 docs/DEPLOYMENT.md create mode 100644 docs/USAGE.md diff --git a/docs/API.md b/docs/API.md new file mode 100644 index 0000000..2890fa7 --- /dev/null +++ b/docs/API.md @@ -0,0 +1,16 @@ +## API + +### Portée +- Contrats d’interface entre clients WebSocket et serveur sdk-signer. + +### Contrats d’interface +- Enum MessageType: connexion, token, processus, merkle, device, erreurs. +- Messages: porteurs d’un type, d’un messageId, et de champs spécifiques à l’opération. +- Statuts: DeliveryStatus (PENDING, SENT, DELIVERED, FAILED, RETRY). +- Priorités: MessagePriority (LOW, NORMAL, HIGH, CRITICAL). + +### Erreurs et statuts +- Réponse de type ERROR en cas d’échec; gestion de timeouts côté serveur/clients. + +### Versionnage et compatibilité +- Alignement strict avec sdk_signer_client pour les énumérations et structures. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..e6ca35a --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,30 @@ +## ARCHITECTURE + +### Contexte +- Service serveur « sdk-signer » pour gérer des messages typés via WebSocket. +- Fournit des opérations de processus, hashing/merkle, gestion de device et validation d’état. + +### Composants +- src/index.ts: point d’entrée, exporte Service, Server, config, models et utilitaires. +- src/simple-server.ts: serveur WebSocket simple (gestion des connections et du cycle de vie). +- src/service.ts: logique métier des messages et routage par type. +- src/relay-manager.ts: interaction avec le réseau de relais. +- src/database.service.ts: persistance simple pour l’état serveur si nécessaire. +- src/models.ts: énumérations et types de messages, priorités, statuts de livraison. +- src/config.ts: configuration serveur (port, clés, délais, options). +- src/utils.ts, src/wasm_compat.ts: utilitaires globaux et compatibilité WASM si utilisée. + +### Flux et dépendances +- Client se connecte en WebSocket → message LISTENING → échanges de messages typés corrélés. +- Gestion du messageId pour corrélation, priorités de traitement et statut de livraison. + +### Données et modèles +- Typage via MessageType et statuts (DeliveryStatus), niveaux de priorité (MessagePriority). +- Dérivation de contrats communs alignés avec le client (sdk_signer_client). + +### Sécurité +- Clé API côté serveur (vérification attendue au niveau des messages entrants). +- Logs d’erreurs et gestion de timeouts. + +### Observabilité +- Journalisation des connexions, erreurs, et transitions d’état des processus. diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md new file mode 100644 index 0000000..77efc2e --- /dev/null +++ b/docs/DEPLOYMENT.md @@ -0,0 +1,20 @@ +## DEPLOYMENT + +### Docker +- Image: sdk-signer:latest (build depuis Dockerfile) +- Port: 9090 (exposé) +- Commande: node dist/index.js +- Volume: ./data monté sur /data + +### Intégration dans 4NK_node +- Variable RELAY_URLS à pointer vers ws://sdk_relay_1:8090 (réseau partagé) +- BASE: PORT=9090, DATABASE_PATH=/data/server.db, API_KEY défini côté env + +### CI/CD appliquée +- Build multi-stage Node 20 alpine +- Vérifier la génération de dist/ avant build image + +### Configuration +- Variables: PORT, API_KEY, DATABASE_PATH, RELAY_URLS +- Ports: 9090 +- Utilisateur: nodejs (non-root) diff --git a/docs/USAGE.md b/docs/USAGE.md new file mode 100644 index 0000000..1156d4c --- /dev/null +++ b/docs/USAGE.md @@ -0,0 +1,16 @@ +## USAGE + +### Prérequis +- Node.js et accès réseau aux clients WebSocket. +- Variables: PORT, API_KEY, DATABASE_PATH, RELAY_URLS. + +### Démarrage +- Construire le projet puis démarrer le serveur (dist/index.js) via Docker ou Node. + +### Opérations +- Accepter les connexions WebSocket et traiter les messages typés. +- Utiliser Service et Server pour router et gérer les opérations (processus, merkle, validation, notifications). + +### Dépannage +- Vérifier les logs serveur pour les erreurs réseau ou de clé API. +- Ajuster les timeouts et les politiques de reconnexion côté clients.