Repository navigation
feat(oe-s3): client S3-compatible minimal (SigV4) - #43
Merged
Merged
Conversation
Nouveau crate, préparation de l'étape 2b (docs/WEBUI.md §7, §15) : dépôt et relecture du journal d'audit sur un stockage objet **auto-hébergé** (MinIO, Garage, Ceph…) — jamais un service géré (AWS ou équivalent), même esprit souverain que oe-replicate (WebDAV), décision de l'association. rusty-s3 (Sans-IO) construit et signe les requêtes SigV4 ; ce crate n'y adjoint que reqwest pour les envoyer, comme oe-replicate le fait déjà pour WebDAV — pas de dépendance au SDK AWS complet. Style d'URL path (pas virtual-host), plus adapté à un déploiement auto-hébergé sans DNS/TLS générique par compartiment. put(key, body) et get(key) seulement pour l'instant (PUT/GET), suffisants pour la tranche suivante (ca-server y écrit son journal) et celle d'après (GET /api/v1/audit/search). Pas encore câblé à ca-server ni ra-console : ce crate est autonome, la tranche suivante l'utilisera. Vérifications : cargo fmt --check, cargo clippy --workspace --all-targets, cargo test --workspace, cargo audit. Testé contre un vrai serveur HTTP (axum) qui se comporte comme un service S3-compatible pour PUT/GET — une image MinIO n'est pas accessible sur le registre Docker de cet environnement de développement (accès restreint aux images officielles), donc pas de test contre un vrai MinIO ici ; le test vérifie au passage que les requêtes envoyées sont bien signées (paramètres X-Amz-*).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexte
Préparation de l'étape 2b (docs/WEBUI.md §7, §15) : dépôt et relecture du journal d'audit sur un stockage objet auto-hébergé (MinIO, Garage, Ceph…) — jamais un service géré, même esprit souverain que
oe-replicate(WebDAV, décision de l'association). Basedev, indépendante de #42.Contenu
rusty-s3(Sans-IO) construit et signe les requêtes SigV4 ; ce crate n'y adjoint quereqwestpour les envoyer, commeoe-replicatele fait déjà pour WebDAV — pas de dépendance au SDK AWS complet.https://endpoint/bucket/clé), pas virtual-host : plus adapté à un déploiement auto-hébergé sans DNS/TLS générique par compartiment.put(key, body)etget(key), suffisants pour la tranche suivante (ca-servery écrit son journal) et celle d'après (GET /api/v1/audit/search).Pas encore câblé à
ca-servernira-console: ce crate est autonome, la tranche suivante l'utilisera.Limite du test, à signaler
Une image MinIO n'est pas accessible sur le registre Docker de cet environnement de développement (accès restreint aux images officielles
library/*), donc pas de test contre un vrai service S3-compatible ici. Le test tourne contre un vrai serveur HTTP (axum) qui se comporte comme le ferait un service S3 pour PUT/GET, et vérifie au passage que les requêtes envoyées sont bien signées (paramètresX-Amz-*) — mais ne valide pas la compatibilité réelle avec MinIO/Garage/Ceph. À vérifier contre un vrai service avant un déploiement.Vérifications
cargo fmt --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspace: vertcargo audit --ignore RUSTSEC-2023-0071: rien à signaler