Skip to content

fix(ca-server): commandes d'exploitation sans secret de HSM, et garde de CI contre les tests PostgreSQL ignorés - #27

Merged
PhilippeVienne merged 1 commit into
devfrom
fix/config-et-garde-ci
Sep 21, 2026
Merged

PhilippeVienne merged 1 commit into
devfrom
fix/config-et-garde-ci

Conversation

@PhilippeVienne

Copy link
Copy Markdown
Contributor

Contenu

Deux petits correctifs, indépendants de la pile de PR (#19 à #26), issus du TODO.

Config::load_without_hsm

ra list, ra approve, ra reject et operators bootstrap-admin n'ouvrent aucun token PKCS#11 et ne gravent aucune adresse dans un certificat. Elles n'exigent donc plus OPENEIDAS_ISSUING_PIN ni OPENEIDAS_PKI_PUBLIC_URL : moins de secrets répandus dans les commandes d'exploitation. serve, ceremony et revoke les exigent toujours, ce qu'un test vérifie (sans base : la configuration est refusée avant toute connexion). Le reste (DSN, journal, durées) est validé comme avant.

Garde de CI contre les tests PostgreSQL ignorés

Les suites PostgreSQL se gardent avec OE_CASTORE_TEST_DSN et s'ignorent en restant vertes sans elle : un service absent, ou une variable perdue dans un refactoring de workflow, et la CI ne prouvait plus rien sans le dire. L'étape échoue maintenant :

  • si la variable manque ;
  • si pg_isready ne répond pas ;
  • si la sortie contient « test PostgreSQL ignoré » (message identique dans les cinq fichiers de tests concernés ; sortie lue avec --nocapture).

À relire en priorité

  • La modification de .github/workflows/ci.yml n'est validée que par le run de CI de cette PR : je n'ai pas de runner GitHub en local. Ce que j'ai vérifié : la syntaxe YAML, et la logique du script rejouée à la main sur deux vraies sorties (variable retirée : 7 messages de saut, code 1 ; variable définie : aucun, code 0). Vérifier que l'étape est bien verte ici, et qu'elle passe au rouge si l'on retire la variable (essai jetable).
  • pg_isready est disponible sur ubuntu-latest (paquet postgresql-client), mais je ne l'ai pas confirmé sur le runner.

Ce qui reste (TODO)

  • Après le merge de la pile : passer operators recover-admin|audit|reconcile sur load_without_hsm (une ligne chacun).
  • Le test de recover-admin avec SoftHSM s'ignore avec un autre message (« softhsm2-util absent ») que cette garde ne couvre pas : installer softhsm2 en CI et étendre la garde.

Vérifications

  • cargo fmt --check, cargo clippy --workspace --all-targets -- -D warnings, cargo test --workspace (avec PostgreSQL neuf, 59 suites), cargo audit --ignore RUSTSEC-2023-0071 : verts.
  • 2 tests dans bootstrap_cli.rs : bootstrap-admin et ra list sans PIN ni adresse publique ; serve et revoke refusent sans l'un ou l'autre, avec le nom de la variable manquante.

… de CI contre les tests PostgreSQL ignorés

Config::load_without_hsm : ra list, ra approve, ra reject et
operators bootstrap-admin n'ouvrent aucun token PKCS#11 et ne gravent aucune
adresse dans un certificat. Elles n'exigent plus OPENEIDAS_ISSUING_PIN ni
OPENEIDAS_PKI_PUBLIC_URL, ce qui évite de répandre ces valeurs dans les
commandes d'exploitation. serve, ceremony et revoke les exigent toujours ; un
test le vérifie, sans base, la configuration étant refusée avant toute
connexion. Le reste (DSN, journal, durées) est validé comme avant.

CI : les suites PostgreSQL s'ignoraient en restant vertes sans
OE_CASTORE_TEST_DSN. Un service absent, ou une variable perdue dans un
refactoring de workflow, et la CI ne prouvait plus rien sans le dire.
L'étape échoue maintenant si la variable manque, si la base ne répond pas, ou
si un test écrit « test PostgreSQL ignoré » (sortie lue avec --nocapture).
@PhilippeVienne
PhilippeVienne merged commit 59bd6fc into dev Sep 21, 2026
15 checks passed
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