Tout ce qu'il faut pour comprendre, reconstruire et maintenir la sonde sans l'IA : topologie, dessins des flux, provenance du build, décisions (ADR), vérifications, dossier de reprise.
Ce dossier est la sortie de la recette de fabrique (mode build-time) : un livrable n'est « bon » que s'il est reproductible et documenté. Il complète le dossier d'architecture.
Tous les liens utiles partent de WIN10 vers Abux (modèle sortant) : aucun port ouvert sur le poste. Seul le téléchargement initial de l'exe va dans l'autre sens (HTTP 9345).
Chaque action est gouvernée (étape ②, selon mode.json) et tracée (étape ⑤, audit hash-chaîné). La connexion d'une sonde déclenche en plus une recette d'exploitation proposée (orchestrateur).
| Couche | Composant | Rôle |
|---|---|---|
| Présentation | WinForms (exe) · console web | Admin sonde, chat, « Postes connectés », « Recette gouvernée » |
| Transport | HTTPS 9333 (jeton) · sortant | présence, commandes, résultats, chat, watch |
| Gouvernance | mode.json · RBAC · audit | pilote/hybride/autonome ; preuve hash-chaînée |
| Orchestration | worker présence | réflexe autonome : fiche + recette proposée |
| Stockage | presence.json · inbox · recettes/ · interventions.jsonl | état + preuves, lisibles sur disque |
Détail dans le dossier d'architecture.
# Reconstruire à l'identique (depuis Abux, SDK .NET 8 en $HOME/.dotnet) export DOTNET_ROOT=$HOME/.dotnet ; export PATH=$HOME/.dotnet:$PATH cd recette/sonde-exe rm -rf bin obj dotnet publish -c Release cp bin/Release/net8.0-windows/win-x64/publish/PULSAR-Sonde.exe ../demo-kit/PULSAR-Sonde.exe
Cross-build Windows depuis Linux grâce à <EnableWindowsTargeting>true</EnableWindowsTargeting>. Logo CHU embarqué en ressource (chu-logo.png).
| # | Décision | Raison |
|---|---|---|
| ADR-1 | Modèle sortant (la sonde appelle le serveur) | Souveraineté : aucun port ouvert sur les postes du CHU. |
| ADR-2 | Pas de SSH ni de serveur web sur la sonde | Inbound = surface d'attaque ; hors gouvernance PULSAR. |
| ADR-3 | Présence par annonce (heartbeat) + orchestrateur | « La sonde est là, prête » sans inbound ; précurseur du fast-lane. |
| ADR-4 | Recette gouvernée (proposée, pas auto-exécutée) | L'humain autorise ; trace + PV documenté. |
| ADR-5 | Commandes encodées base64 / -EncodedCommand | Zéro souci de guillemets / accents / multi-lignes. |
| ADR-6 | Exe self-contained (.NET embarqué) | Aucun pré-requis sur le poste ; plus de souci d'encodage BOM. |
| ADR-7 | Élévation Windows par UAC visible (jamais de bypass) | Cohérent avec un control plane qui détecte l'élévation furtive. |
dotnet publish exit 0 ; exe PE32+ GUI x86-64, ressource chu-logo.png embarquée./login 200 ; endpoints /api/agent/presence, /api/agent/chat, /api/agent/watch ; /postes, /recette protégés par session (401/303).presence.json mis à jour ; voyant en ligne < 90 s.| Quoi | Où |
|---|---|
| Code sonde (exe) | recette/sonde-exe/Program.cs · PulsarSonde.csproj |
| Serveur + console | recette/serveur_recette.py (endpoints, orchestrateur, pages) |
| Modèle de recette | recette/recette_checklists.json (run + build) |
| Sonde PowerShell (équiv.) | recette/demo-kit/PULSAR-Sonde-Admin.ps1 |
| Pilotage / diagnostic | recette/pulse.py · recette/win/winssh · winshot |
| Preuves / état | presence.json · recettes/ · interventions.jsonl · inbox/ · registre-actions.jsonl |
@app.on_event("startup") (déprécié FastAPI) → migrer vers lifespan.