Skip to content

feat(ra-console): révocation et salle de quorum dans le navigateur (étape 6c) - #72

Open
PhilippeVienne wants to merge 1 commit into
feat/ra-console-frontend-requestsfrom
feat/ra-console-frontend-revoke
Open

PhilippeVienne wants to merge 1 commit into
feat/ra-console-frontend-requestsfrom
feat/ra-console-frontend-revoke

Conversation

@PhilippeVienne

Copy link
Copy Markdown
Contributor

Objet

docs/WEBUI.md §8 et §15 étape 6, tranche 6c ; docs/UI-UX.md §3.2. Deux opérateurs CA distincts révoquent un certificat depuis la console. Empilée sur #71 (feat/ra-console-frontend-requests, tête d05e829).

  • API : GET /api/v1/certificates?status=issued|revoked — certificats émis, en lecture seule sur la table de ca-server (que le rôle de la console lisait déjà), numéro de série en hexadécimal minuscule, la forme canonique qu'attend la révocation. Les certificats reserved n'y figurent pas.
  • Navigation entre demandes RA, certificats et quorum.
  • Certificats : liste des actifs (numéro de série par paires, UI-UX §4.2), inspecteur, « Révoquer… » → motif RFC 5280 parmi ceux qu'admet ca-server (1, 3, 4, 5, 9), justification obligatoire, modale de signature (corps figé + empreinte). La première signature part en salle de quorum (« 1 sur 2 »).
  • Salle de quorum : actions en attente, corps figé, empreinte, qui a déjà signé ; co-signature désactivée pour qui a déjà signé (« le double contrôle requiert un opérateur distinct ») — garde d'affichage, ca-server la refuse de toute façon.
  • sign() rend désormais la réponse de l'autorité (pour afficher AWAITING_QUORUM / EXECUTED).
  • Harnais e2e : trois opérateurs (alice ra_operateur, bob et carol ca_operateur), une vraie CA sur la même base avec le révocateur de ca-server, deux certificats émis.

Vérifications

  • Test Rust the_console_lists_issued_certificates : liste, filtre, passage en revoked après double signature, 400 sur un état inconnu, 401 sans session.
  • Playwright 8/8 en local sur trois passes : bob signe la révocation (rien n'est révoqué, « 1 sur 2 »), ne peut pas co-signer lui-même ; carol voit « Quorum (1) », co-signe, le certificat passe revoked côté serveur, la salle se vide ; un ra_operateur se voit refuser la préparation par l'autorité, rien n'est figé. Parcours de 6a/6b toujours verts.
  • Mutation : sans la désactivation de la co-signature pour son propre signataire, le parcours échoue.
  • cargo fmt --check, cargo clippy --workspace --all-targets -- -D warnings (1.97 et 1.98.1), cargo test --workspace avec PostgreSQL, cargo audit --ignore RUSTSEC-2023-0071, npm run typecheck : verts.

Revue humaine obligatoire

Voir PROVENANCE.md. Chaque case est cochée par le
contributeur humain qui valide la PR, après l'avoir fait lui-même.

  • Revue d'architecture validée par l'humain
  • Code relu et tests unitaires/intégration vérifiés localement
  • Absence de dépendances tierces incompatibles avec la double licence EUPL-1.2 / AGPL-3.0 (make licenses)
  • Validation de l'apport intellectuel et de la paternité humaine sur la modification

Assistance par IA

  • Cette PR a été produite avec l'assistance de Claude Code : les commits concernés portent la remorque Co-authored-by: Claude <noreply@anthropic.com>, auteur et committer restent humains, et scripts/provenance.py archive a été lancé
  • Cette PR a été écrite sans assistance par IA

…tape 6c)

docs/WEBUI.md §8, §15 étape 6, docs/UI-UX.md §3.2 : deux opérateurs CA
distincts révoquent un certificat depuis la console.

- `GET /api/v1/certificates?status=issued|revoked` : certificats émis, en
  lecture seule sur la table de ca-server, numéro de série sous la forme
  canonique qu'attend la révocation (test Rust : liste, filtre, passage
  en « revoked » après double signature, refus sans session).
- Navigation entre demandes, certificats et quorum. Écran des
  certificats : motif RFC 5280 parmi ceux qu'admet ca-server,
  justification obligatoire, modale de signature ; la première
  signature part en salle de quorum.
- Salle de quorum : corps figé, empreinte, signataires ; co-signature
  désactivée pour qui a déjà signé (ca-server la refuserait aussi).
- Harnais e2e : trois opérateurs (alice RA, bob et carol CA), une CA
  sur la même base avec son révocateur, deux certificats. Parcours :
  révocation à deux de bout en bout, refus pour un opérateur RA.
  Mutation tuée (co-signature par soi-même non désactivée).

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant