feat: journée 17 avril — tests E2E validés, dashboard fleet+audit, VWB bridge, cleaner C2
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 14s
security-audit / pip-audit (CVE dépendances) (push) Successful in 10s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 13s
tests / Tests unitaires (sans GPU) (push) Failing after 14s
tests / Tests sécurité (critique) (push) Has been skipped
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 14s
security-audit / pip-audit (CVE dépendances) (push) Successful in 10s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 13s
tests / Tests unitaires (sans GPU) (push) Failing after 14s
tests / Tests sécurité (critique) (push) Has been skipped
Pipeline E2E complet validé : Capture VM → streaming → serveur → cleaner → replay → audit trail Mode apprentissage supervisé fonctionne (Léa échoue → humain → reprise) Dashboard : - Cleanup 14→10 onglets (RCE supprimée) - Fleet : enregistrer/révoquer agents, tokens, ZIP pré-configuré téléchargeable - Audit trail MVP (/audit) : filtres, tableau, export CSV, conformité AI Act/RGPD - Formulaire Fleet simplifié (nom + email, machine_id auto) VWB bridge Léa→VWB : - Compound décomposés en N steps (saisie + raccourci visibles) - Layout serpentin 3 colonnes (plus colonne verticale) - Badge OS 🪟/🐧, filtre OS retiré (admin Linux voit Windows) - Fix import SQLite readonly Cleaner intelligent : - Descriptions lisibles (UIA/C2) + détection doublons - Logique C2 : UIElement identifié = jamais parasite - Patterns parasites resserrés - Message Léa : "Je n'y arrive pas, montrez-moi comment faire" Config agent (INC-1 à INC-7) : - SERVER_URL + SERVER_BASE unifiés - RPA_OLLAMA_HOST séparé - allow_redirects=False sur POST - Middleware réécriture URL serveur CI Gitea : fix token + Flask-SocketIO + ruff propre Fleet endpoints : /agents/enroll|uninstall|fleet + agent_registry SQLite Backup : script quotidien workflows.db + audit Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
259
docs/demo/GUIDE_INSTALL_AGENT_TIM.md
Normal file
259
docs/demo/GUIDE_INSTALL_AGENT_TIM.md
Normal file
@@ -0,0 +1,259 @@
|
||||
# GUIDE D'INSTALLATION — Agent Léa sur poste TIM
|
||||
|
||||
**Public** : TIM (Technicienne Information Médicale) ou son service informatique.
|
||||
**Durée cible** : **10 minutes** (hors téléchargement).
|
||||
**Prérequis** : Windows 10/11, compte avec droits utilisateur standard (pas besoin d'admin sauf étape Python), accès Internet, **DPI urgences fonctionnel** sur le poste.
|
||||
|
||||
> **Avant de commencer** : vérifier que la TIM peut ouvrir son DPI urgences
|
||||
> habituel (Resurgences, Urqual, DxCare, CristalNet, Hôpital Manager…) et y
|
||||
> naviguer normalement. Si le DPI passe par Citrix/VDI, le vérifier avant
|
||||
> d'installer Léa. **Si le DPI ne marche pas, l'agent ne servira à rien.**
|
||||
|
||||
---
|
||||
|
||||
## Pourquoi pas un installeur `.exe` ?
|
||||
|
||||
On livre un **ZIP + scripts**, pas un installeur Inno Setup. Raison : un `.exe`
|
||||
non signé (code-signing EV à 500 €/an) déclenche le SmartScreen rouge Windows
|
||||
("Windows a protégé votre PC") + l'antivirus corporate. Sur le poste d'une TIM
|
||||
en clinique, **c'est la pire première impression possible**.
|
||||
|
||||
L'approche ZIP + `.bat` passe sous le radar du SmartScreen et s'installe dans
|
||||
le dossier utilisateur (pas besoin d'admin pour le copier).
|
||||
|
||||
---
|
||||
|
||||
## Étape 1 — Récupérer le package (1 min)
|
||||
|
||||
1. Télécharger `Lea_v1.0.0.zip` depuis l'URL fournie par Dom
|
||||
(lien Owncloud interne ou clé USB si réseau isolé).
|
||||
2. Fichier attendu : environ **5 Mo**.
|
||||
3. **Vérifier l'intégrité** : clic droit sur le ZIP → Propriétés → si un bouton
|
||||
"Débloquer" est visible en bas, le cocher puis OK (sinon Windows peut
|
||||
bloquer l'exécution des `.bat`).
|
||||
|
||||
---
|
||||
|
||||
## Étape 2 — Extraire dans `C:\rpa_vision\Lea\` (1 min)
|
||||
|
||||
1. Créer le dossier **`C:\rpa_vision\Lea\`** (ou `C:\Lea\` si l'admin préfère).
|
||||
2. Clic droit sur `Lea_v1.0.0.zip` → **Extraire tout…** → choisir
|
||||
`C:\rpa_vision\Lea\` → Extraire.
|
||||
3. Vérifier que le dossier contient :
|
||||
|
||||
```
|
||||
C:\rpa_vision\Lea\
|
||||
├── install.bat
|
||||
├── Lea.bat
|
||||
├── config.txt
|
||||
├── LISEZMOI.txt
|
||||
├── requirements_agent.txt
|
||||
└── run_agent_v1.py
|
||||
```
|
||||
|
||||
> **Piège** : si Windows extrait un dossier intermédiaire
|
||||
> (`Lea_v1.0.0\Lea_v1.0.0\...`), **déplacer le contenu d'un cran** pour que
|
||||
> `install.bat` soit à la racine `C:\rpa_vision\Lea\`.
|
||||
|
||||
---
|
||||
|
||||
## Étape 3 — Vérifier Python (1 min)
|
||||
|
||||
Ouvrir une invite de commandes (`Démarrer` → taper `cmd` → Entrée) et taper :
|
||||
|
||||
```
|
||||
python --version
|
||||
```
|
||||
|
||||
- **Si ça affiche** `Python 3.10.x` à `3.12.x` → OK, passer à l'étape 4.
|
||||
- **Si erreur** `'python' n'est pas reconnu` → installer Python :
|
||||
1. Aller sur https://www.python.org/downloads/
|
||||
2. Télécharger Python 3.12.x
|
||||
3. **Important** : pendant l'installation, **cocher
|
||||
"Add Python to PATH"** (case du bas, souvent décochée).
|
||||
4. Terminer, fermer/rouvrir l'invite de commandes, re-tester
|
||||
`python --version`.
|
||||
|
||||
> Python installé en "Microsoft Store" fonctionne aussi mais peut poser des
|
||||
> soucis de PATH. Si ça bloque, désinstaller la version Store et installer
|
||||
> celle de python.org.
|
||||
|
||||
---
|
||||
|
||||
## Étape 4 — Configurer `config.txt` (2 min)
|
||||
|
||||
Ouvrir `C:\rpa_vision\Lea\config.txt` **avec le Bloc-notes**
|
||||
(clic droit → "Ouvrir avec" → Bloc-notes).
|
||||
|
||||
Vérifier/modifier ces 3 lignes :
|
||||
|
||||
```
|
||||
RPA_SERVER_URL=https://lea.labs.laurinebazin.design/api/v1
|
||||
RPA_API_TOKEN=<TOKEN_FOURNI_PAR_DOM>
|
||||
RPA_SERVER_HOST=lea.labs.laurinebazin.design
|
||||
```
|
||||
|
||||
- **URL du serveur** : celle de prod publique OU une URL interne si on bascule
|
||||
sur un serveur clinique pendant la démo.
|
||||
- **Token** : Dom fournit un token **dédié à la TIM** (révocable). Ne pas
|
||||
réutiliser le token de dev.
|
||||
- **Sauvegarder** (Ctrl+S), fermer.
|
||||
|
||||
> Ne **pas** toucher aux autres lignes (`RPA_BLUR_SENSITIVE`, etc.).
|
||||
|
||||
---
|
||||
|
||||
## Étape 5 — Lancer `install.bat` (3-4 min)
|
||||
|
||||
1. Double-cliquer sur `install.bat`.
|
||||
2. Une fenêtre noire s'ouvre avec le titre "Lea - Installation".
|
||||
3. Écrans attendus dans l'ordre :
|
||||
|
||||
```
|
||||
[1/5] Verification de Python...
|
||||
Python 3.12.2 detecte - OK
|
||||
[2/5] Creation de l'environnement isole...
|
||||
Environnement cree - OK
|
||||
[3/5] Activation de l'environnement...
|
||||
Active - OK
|
||||
[4/5] Installation des composants (cela peut prendre 1-2 min)...
|
||||
Composants installes - OK
|
||||
[5/5] Configuration Windows...
|
||||
Configuration terminee - OK
|
||||
Tous les composants sont OK !
|
||||
Installation terminee !
|
||||
```
|
||||
|
||||
4. Appuyer sur une touche pour fermer.
|
||||
|
||||
> **Durée typique** : 2-3 minutes (dépend de la bande passante — `pip install`
|
||||
> télécharge ~50 Mo).
|
||||
|
||||
---
|
||||
|
||||
## Étape 6 — Lancer Léa (30 s)
|
||||
|
||||
1. Double-cliquer sur `Lea.bat`.
|
||||
2. Une fenêtre noire affiche :
|
||||
|
||||
```
|
||||
Demarrage de Lea...
|
||||
(Lea apparait dans la barre des taches, en bas a droite)
|
||||
```
|
||||
|
||||
3. **Au bout de 3-5 secondes**, une **icône ronde** apparaît dans la barre
|
||||
des tâches (en bas à droite de l'écran, à côté de l'horloge, parfois
|
||||
cachée sous la flèche `^`).
|
||||
4. **Clic droit sur l'icône** → menu :
|
||||
- Apprenez-moi une tâche
|
||||
- C'est terminé
|
||||
- Discuter avec Léa
|
||||
- ARRÊT D'URGENCE
|
||||
- Quitter Léa
|
||||
|
||||
Si l'icône apparaît et que le menu s'ouvre → **installation réussie**.
|
||||
|
||||
> La fenêtre noire peut être fermée. L'agent tourne en arrière-plan via
|
||||
> `pythonw.exe`.
|
||||
|
||||
---
|
||||
|
||||
## Étape 7 — Vérifier côté dashboard (1 min)
|
||||
|
||||
Côté Dom, depuis un navigateur :
|
||||
|
||||
```
|
||||
GET https://lea.labs.laurinebazin.design/api/v1/agents/fleet
|
||||
Header: Authorization: Bearer <TOKEN_ADMIN>
|
||||
```
|
||||
|
||||
La réponse doit contenir une entrée avec :
|
||||
|
||||
```json
|
||||
{
|
||||
"agent_id": "<nom_du_poste_TIM>",
|
||||
"status": "online",
|
||||
"last_seen": "2026-04-...",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
```
|
||||
|
||||
Si le poste n'apparaît pas après 30 s, voir la section "Si ça plante" ci-dessous.
|
||||
|
||||
Alternative : ouvrir le dashboard web (`http://<serveur>:5001`) → onglet
|
||||
"Flotte" → le poste de la TIM doit s'afficher en vert.
|
||||
|
||||
---
|
||||
|
||||
## Si ça plante (5 cas les plus probables)
|
||||
|
||||
### 1. "Token invalide" / erreur 401 dans les logs
|
||||
|
||||
- Vérifier que `RPA_API_TOKEN` dans `config.txt` **ne contient pas d'espace**
|
||||
en début/fin, **pas de guillemets**, pas de retour à la ligne.
|
||||
- Le format attendu : `RPA_API_TOKEN=abc123def...` (sans espace autour du `=`).
|
||||
- Si le token a été copié-collé depuis un mail, il peut contenir un caractère
|
||||
invisible. **Retaper à la main** ou recopier depuis un éditeur brut.
|
||||
|
||||
### 2. "Python n'est pas installé" alors qu'il l'est
|
||||
|
||||
- `python --version` marche dans un cmd "normal" mais `install.bat` le trouve
|
||||
pas → Python est installé **pour l'utilisateur** mais la TIM lance le `.bat`
|
||||
en mode admin (session différente).
|
||||
- **Solution** : double-cliquer sur `install.bat` en user normal, PAS en
|
||||
"Exécuter en tant qu'administrateur".
|
||||
|
||||
### 3. Firewall bloque la connexion au serveur
|
||||
|
||||
- Au premier lancement, Windows Defender peut demander
|
||||
"Autoriser pythonw.exe à communiquer sur le réseau ?" → **Autoriser**.
|
||||
- Si firewall corporate plus strict : demander au service IT d'autoriser
|
||||
les connexions sortantes vers `lea.labs.laurinebazin.design:443` (HTTPS).
|
||||
- Test rapide depuis le poste : ouvrir un navigateur sur
|
||||
`https://lea.labs.laurinebazin.design/health` → doit répondre `{"status":"ok"}`.
|
||||
|
||||
### 4. Antivirus bloque `pythonw.exe`
|
||||
|
||||
- Certains AV corporate (Kaspersky, Sophos, Cortex XDR) mettent `pythonw.exe`
|
||||
en quarantaine dès qu'il capture l'écran.
|
||||
- Symptôme : `Lea.bat` affiche "Lea n'a pas demarre correctement" et le mode
|
||||
verbeux montre un `pythonw.exe n'a pas pu se lancer` ou rien du tout.
|
||||
- **Solution** : demander au service IT d'ajouter **une exception pour le
|
||||
dossier** `C:\rpa_vision\Lea\.venv\Scripts\` (et pas juste pour `pythonw.exe`
|
||||
globalement — ce serait une faille de sécurité).
|
||||
|
||||
### 5. Double-clic sur `Lea.bat` ouvre le Notepad
|
||||
|
||||
- Cause classique : la TIM a fait clic droit → "Ouvrir avec…" → "Toujours
|
||||
utiliser Notepad" une fois par erreur. Windows a associé `.bat` à Notepad.
|
||||
- **Solution** :
|
||||
1. Clic droit sur `Lea.bat` → "Ouvrir avec" → "Choisir une autre application"
|
||||
→ "Plus d'applications" → "Rechercher une autre app sur ce PC"
|
||||
→ `C:\Windows\System32\cmd.exe` → **ne PAS cocher** "Toujours utiliser".
|
||||
2. Ou alternative rapide : ouvrir un cmd, taper
|
||||
`cd C:\rpa_vision\Lea` puis `Lea.bat`.
|
||||
|
||||
---
|
||||
|
||||
## Désinstaller Léa (si besoin)
|
||||
|
||||
1. Clic droit sur l'icône Léa → "Quitter Léa".
|
||||
2. Supprimer le dossier `C:\rpa_vision\Lea\`.
|
||||
3. (Optionnel) Supprimer les logs dans `%LOCALAPPDATA%\Lea\` si existant.
|
||||
|
||||
Pas de désinstalleur, pas de clé registre, pas de service : Léa est un **binaire
|
||||
portable**. C'est voulu : aucune trace système, facile à auditer.
|
||||
|
||||
---
|
||||
|
||||
## Check final avant la démo (à faire ensemble avec la TIM)
|
||||
|
||||
- [ ] Icône Léa visible dans la tray.
|
||||
- [ ] Clic droit → menu s'ouvre.
|
||||
- [ ] Dashboard côté serveur affiche le poste en "online".
|
||||
- [ ] Le DPI urgences de la TIM s'ouvre et répond normalement (pas de lenteur).
|
||||
- [ ] Démo d'enregistrement de 30 s : clic droit → "Apprenez-moi une tâche"
|
||||
→ faire 2-3 clics → clic droit → "C'est terminé". Vérifier côté serveur
|
||||
que la session arrive.
|
||||
|
||||
**Si tout est vert → on est prêts pour le 26 avril.**
|
||||
Reference in New Issue
Block a user