sdk_storage/docs/README.md
Debian 89ff7b1191
Some checks failed
Docker Image / docker (push) Failing after 19s
feat: Consolidation de la documentation et suppression des templates génériques
2025-08-29 16:29:05 +00:00

57 lines
2.2 KiB
Markdown

# Documentation du projet sdk_storage
Ce dossier documente l'API HTTP, l'architecture et les décisions techniques.
## API
- POST `/store` : stocke une valeur hex pour une clé hex 64 chars, `ttl` optionnel (secondes). Quand `--permanent` est passé au binaire, l'absence de `ttl` rend la donnée permanente.
- GET `/retrieve/:key` : retourne `{ key, value }``value` est encodée en hex.
## Architecture
- Service `StorageService` (voir `src/lib.rs`) encapsule la logique de stockage, récupération et nettoyage TTL.
- `src/main.rs` démarre Tide avec état `StorageService` et une boucle de nettoyage périodique (60s).
## Concepts de Base
- **Clés** : Format hexadécimal 64 caractères (32 octets)
- **Valeurs** : Format hexadécimal
- **TTL** : Durée de vie en secondes, sérialisé dans `*.meta` (UNIX timestamp secondes)
- **Persistance** : Système de fichiers, sous-dossiers par préfixe de clé
## Fonctionnalités Techniques
- **StorageService** : Abstraction des opérations de stockage
- **TTL** : Sérialisé dans `*.meta` (UNIX timestamp secondes)
- **Nettoyage** : Parcours des dossiers, suppression données expirées
- **Journalisation** : Sorties standard, intégration possible avec superviseur
## Tests
- **Tests unitaires** : Recommandés sur `StorageService` via répertoires temporaires
- **Tests d'intégration** : HTTP optionnels via client HTTP
- **Stratégies** : Cas TTL min/max, clés invalides, conflits de clé
Voir aussi:
- `architecture.md`
- `configuration.md`
- `tests_monitoring.md`
- `reseau_de_relais.md`
- `developpement.md`
- `depannage.md`
- `performance.md`
- `api_json_spec.md`
- `api_contrats.md`
- `release_guide.md`
- `ci_docker_registry.md`
## REX technique
- Docker
- Build local: `docker build -t sdk_storage:local .`
- Run: `docker run --rm -p 8081:8081 -v $PWD/storage:/app/storage sdk_storage:local`
- Par défaut `--permanent` est activé via CMD, override possible: `docker run ... sdk_storage -- --permanent`
- Refactor initial de la logique depuis `main.rs` vers `lib.rs` pour testabilité et séparation des responsabilités.
- Durées TTL maintenant validées dans le handler, calcul d'expiration converti en `SystemTime` avant l'appel service.