41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
## Analyse détaillée
|
||
|
||
### Périmètre
|
||
|
||
Service Rust `sdk_storage` (Tide) offrant stockage clé/valeur avec TTL optionnel.
|
||
|
||
### Stack
|
||
|
||
- **Langage**: Rust 2021
|
||
- **Serveur**: `tide@0.16`, runtime `async-std`
|
||
- **Utilitaires**: `serde`, `serde_json`, `hex`, `env_logger`
|
||
- **Tests**: `tempfile`, `surf` (h1-client)
|
||
|
||
### API
|
||
|
||
- POST `/store` { key(hex64), value(hex), ttl? (s) }
|
||
- GET `/retrieve/:key`
|
||
|
||
### Build et image
|
||
|
||
- Docker: build dans `rust:1`, exécution `debian:stable-slim`, utilisateur non‑root, `RUST_LOG=info`.
|
||
- Expose: 8081; `CMD ["--permanent"]` (clé sans TTL).
|
||
|
||
### Risques et points d’attention
|
||
|
||
- Validation stricte des formats hex requis (taille/charset) à documenter et tester.
|
||
- Absence de persistance volumée par défaut: fournir stratégie de stockage (répertoire, montage, quotas).
|
||
- Logging et rotation à cadrer si charge élevée.
|
||
|
||
### Actions proposées
|
||
|
||
- Documenter schéma d’erreurs (HTTP, payload) et ajouter tests d’intégration dans `tests/`.
|
||
- Ajouter option de répertoire de stockage configurable et exemple `.env.example`.
|
||
- Mettre en place CI rust (build, test, fmt, clippy, audit).
|
||
|
||
|
||
|
||
|
||
|
||
|