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

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.