@mostajs/enrollment-ui-html
v0.1.0
Published
IHM console de @mostajs/enrollment : demandes en attente, alerte de ré-enrôlement BLOQUANTE, code affiché une seule fois, révocation. Rendu pur (état → HTML), zéro dépendance.
Maintainers
Readme
@mostajs/enrollment-ui-html
Auteur : Dr Hamid MADANI [email protected] · Licence : AGPL-3.0-or-later Niveau : N2 · Zéro dépendance
IHM console de @mostajs/enrollment. Rendu pur (état → HTML) : elle
n'enrôle rien, n'approuve rien, ne détient aucune clé.
Ce que cette IHM rend IMPOSSIBLE
Un écran d'approbation est un écran où l'on clique vite, entre deux tâches. Trois choses doivent donc être impossibles à faire par inadvertance :
1. Approuver une usurpation sans s'en rendre compte. Une machine connue qui revient avec une autre clé publique : disque remplacé, ou attaquant ? On ne peut pas deviner. L'alerte est rouge, la demande est marquée suspecte, et le bouton d'approbation est désactivé tant qu'on n'a pas coché « j'ai vérifié auprès du client ».
Et ce n'est pas qu'une garde d'interface : le service lui-même refuse (
reenrolement_non_confirme). Une IHM qui protège seule protège mal.
2. Croire que le code se retrouve plus tard. Il n'est stocké que sous forme d'empreinte — comme un mot de passe. Il s'affiche une seule fois, et l'IHM le dit. Sans cet avertissement, on ferme l'écran en pensant le retrouver dans la liste.
3. Voir un secret qui ne devrait pas être là. Aucun jeton, aucune clé privée n'est rendu.
Les clés publiques sont raccourcies (aaaaaaaa…aaaaaaaa) : lisibles, sans être illisibles.
Intégration dans une console React
Cette IHM produit des chaînes HTML rendues côté serveur. Si votre console est une SPA React
(comme ticket-admin), deux voies — c'est le patron de l'écosystème (qa-ui-html / qa-ui-react) :
- immédiat : servir
/enrollcomme une page dédiée depuis le serveur Node de la console — utilisable aujourd'hui, sans une ligne de React ; - ensuite :
@mostajs/enrollment-ui-react, pour un onglet de la SPA.
Demo-app
npm run example # http://localhost:8795Ce n'est pas une maquette. La console tourne, de vrais agents @mostajs/enrollment s'y
présentent par HTTP, vous approuvez d'un clic, et ils se rattachent tout seuls. Deux boutons
jouent les scénarios qui comptent : une nouvelle machine, et une machine connue qui revient avec
une autre clé.
Tests
npm test # 13 tests de rendu (mjs-unit)
node test-scripts/e2e-demo.mjs # E2E : enrôlement RÉEL + usurpation bloquée