Repository navigation
feat(ra-console): lecture seule de la file d'enrôlement (2a) - #40
Merged
Merged
Conversation
GET /api/v1/requests?state=PENDING (docs/WEBUI.md §5, §15 étape 2a) : lit directement enrollment_requests, table dont ra-console n'a que le SELECT (ra_console_grants.sql). Aucun aller-retour vers ca-server, aucune nouvelle dépendance : la lecture est écrite en SQL direct dans ra-console plutôt que via oe-castore (dont Postgres::open exécute les migrations, hors de portée du rôle PostgreSQL de la console). Un extracteur de session authentifiée réutilisable (crate::http::authenticate) remplace le code dupliqué de /api/v1/me, posé pour toutes les routes authentifiées à venir. Le rôle minimal documenté (auditeur) n'est pas vérifié : les contrôles de rôle de ra-console ne sont qu'un affichage (§3), la vraie barrière reste côté ca-server pour l'écriture — décider (approve/reject, étape 3) restera relayé et vérifié là-bas. GET /api/v1/audit/search (2b) reste ouverte : question non résolue dans WEBUI.md sur l'accès de ra-console au journal chaîné local de ca-server. Vérifications : cargo fmt --check, cargo clippy --workspace --all-targets (1.97 et 1.98.1 — un clippy::result_large_err propre à 1.98 sur l'extracteur d'authentification, autorisé explicitement : la grande valeur Err est la réponse HTTP à renvoyer telle quelle), cargo test --workspace (avec OE_CASTORE_TEST_DSN), cargo audit. Contrôle par mutation : l'authentification et la validation de l'état demandé échouent chacune pour la bonne raison quand on retire le contrôle correspondant.
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
Étape 2 du plan WEBUI §15 (lecture seule), premier morceau convenu (2a). Base
dev: la pile 1c est mergée.Contenu
GET /api/v1/requests?state=PENDING: lit directementenrollment_requests, table déjà en lecture seule pourra-console(ra_console_grants.sql). Aucun aller-retour versca-server.oe-castore:Postgres::openexécute les migrations, hors de portée du rôle PostgreSQL restreint de la console (pas de droits DDL). Aucune nouvelle dépendance normale.crate::http::authenticatefactorisé, réutilisé par/api/v1/meet cette nouvelle route, posé pour les prochaines routes authentifiées.auditeur) n'est pas vérifié : docs/WEBUI.md §3 est explicite — les contrôles de rôle dera-consolene sont qu'un affichage, la vraie barrière reste côtéca-serverpour l'écriture.Ce qui reste ouvert (2b, reportée, décidé avec vous)
GET /api/v1/audit/searchdoit relire deux journaux chaînés (§7) : celui deca-server(fichier local à son pod) et celui dera-console(à créer). Rien dans WEBUI.md ne dit commentra-consoleaccède au fichier deca-server(volume partagé ? route interne dédiée ?). À trancher avant d'écrire, probablement au moment du déploiement Helm.Vérifications
cargo fmt --checkcargo clippy --workspace --all-targets -- -D warnings(1.97 et 1.98.1 — unclippy::result_large_errpropre à 1.98 sur l'extracteur d'authentification, autorisé explicitement : la grande valeurErrest la réponse HTTP à renvoyer telle quelle)cargo test --workspace(avecOE_CASTORE_TEST_DSN) : vert, y compris le nouveau test de bout en boutcargo audit --ignore RUSTSEC-2023-0071: rien à signaler