Files
rpa_vision_v3/deploy/installer
Dom 4f61741420
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
feat: journée 17 avril — tests E2E validés, dashboard fleet+audit, VWB bridge, cleaner C2
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>
2026-04-17 17:46:40 +02:00
..

Installeur Lea (Inno Setup)

Installeur Windows professionnel pour Lea, remplacant le ZIP + install.bat artisanal.

Resume

Produit Lea-Setup-v1.0.0.exe dans deploy/releases/.

Caracteristiques :

  • Interface francaise, moderne (style wizard Windows 10/11)
  • Page custom d'enrollment (nom, email, ID interne, URL serveur, token)
  • Generation automatique de machine_id unique (GUID + hash hostname)
  • config.txt genere a partir des donnees saisies
  • Option bundle Python 3.12 embedded (postes sans droits admin)
  • Raccourci demarrage automatique (shell:startup) optionnel
  • Notification serveur a l'install / desinstall (best-effort)
  • Installation silencieuse : /VERYSILENT /CONFIG=enroll.txt
  • Desinstallation propre : kill process, cleanup, export logs

Pre-requis pour compiler

Inno Setup 6.2+

Telecharger depuis jrsoftware.org et installer innosetup-6.x.exe. Le compilateur ISCC.exe doit etre accessible.

Alternative Linux : Wine

# Installation
winetricks innosetup
# Ou : telecharger innosetup-6.x.exe et lancer : wine innosetup-6.x.exe

# Verifier
ls "$HOME/.wine/drive_c/Program Files (x86)/Inno Setup 6/ISCC.exe"

Le script build_installer.sh detecte automatiquement Wine si present.

Build local

Build complet (staging + compilation)

cd rpa_vision_v3
./deploy/installer/build_installer.sh

Produit deploy/releases/Lea-Setup-v1.0.0.exe.

Build staging uniquement (sans ISCC)

./deploy/installer/build_installer.sh --stage-only

Prepare deploy/build/installer_staging/ puis affiche la commande ISCC a executer sur Windows.

Nettoyer avant

./deploy/installer/build_installer.sh --clean

Build sur Windows (recommande pour production)

  1. Copier le dossier deploy/ sur le PC Windows
  2. Ouvrir deploy/installer/Lea.iss dans Inno Setup Compiler
  3. Build > Compile (ou F9)
  4. Recuperer deploy/releases/Lea-Setup-v1.0.0.exe

Python 3.12 embedded (optionnel)

Pour bundler Python directement dans l'installeur (evite d'exiger que les postes aient Python installe) :

# Sur Linux
cd deploy/installer
wget https://www.python.org/ftp/python/3.12.8/python-3.12.8-embed-amd64.zip
mkdir python-3.12-embed
unzip python-3.12.8-embed-amd64.zip -d python-3.12-embed/

Le staging copie automatiquement ce dossier si present. Le composant "pythonembed" devient alors selectionnable dans l'installeur.

Le script configure_embed.ps1 :

  1. Patche python312._pth pour activer import site
  2. Installe pip via get-pip.py
  3. Installe requirements_agent.txt
  4. Reecrit Lea.bat pour pointer sur python-embed\pythonw.exe

Installation silencieuse (deploiement de masse)

Pour deployer sans interaction utilisateur (GPO, SCCM, script PowerShell) :

  1. Preparer un fichier enroll.txt par poste (ou un commun) :

    USER_NAME=Jean Dupont
    USER_EMAIL=jean.dupont@aivanov.com
    USER_ID=EMP-00123
    SERVER_URL=https://lea.labs.laurinebazin.design/api/v1
    API_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
  2. Lancer l'installeur :

    Lea-Setup-v1.0.0.exe /VERYSILENT /CONFIG=C:\temp\enroll.txt /DIR="C:\Lea"
    

Parametres Inno Setup utiles :

  • /VERYSILENT : aucune UI
  • /SILENT : barre de progression seulement
  • /DIR="..." : dossier d'installation
  • /LOG="install.log" : log d'installation
  • /TASKS="startmenuicon,autostart" : composants a installer (voir [Tasks] et [Components])
  • /CONFIG=path : fichier d'enrollment (custom, specifique a Lea)

Signature du .exe (SmartScreen)

Sans signature, Windows SmartScreen affiche un avertissement rouge ("Cet editeur est inconnu"). Pour eviter cela, signer l'installeur avec un certificat code-signing.

Options de certificat

  1. Certificat OV (Organization Validation) : ~200-400 EUR/an

    • Sectigo, DigiCert, GlobalSign
    • SmartScreen apprend la reputation progressivement (~30 installations)
    • Livre sur token USB FIPS depuis 2023
  2. Certificat EV (Extended Validation) : ~400-700 EUR/an

    • Reputation SmartScreen immediate (pas d'avertissement des la 1ere install)
    • Strict : obligatoirement sur token USB

Signature manuelle (avec signtool.exe du Windows SDK)

signtool sign ^
  /tr http://timestamp.sectigo.com ^
  /td sha256 ^
  /fd sha256 ^
  /a ^
  "deploy\releases\Lea-Setup-v1.0.0.exe"

signtool verify /pa /v "deploy\releases\Lea-Setup-v1.0.0.exe"

Signature automatique dans Inno Setup

Ajouter dans Lea.iss apres [Setup] :

SignTool=signtool $f

Et declarer le signtool via ISCC.exe /Ssigntool=... au build.

Solution interne (certif AIVANOV)

Si AIVANOV a deja un certificat code-signing, le token USB + mot de passe suffisent. Sinon, Sectigo OV est un bon choix d'entree de gamme.

Structure du dossier installer/

deploy/installer/
├── Lea.iss                  # Script Inno Setup principal
├── build_installer.sh       # Helper bash (staging + ISCC)
├── uninstall_lea.ps1        # Script de desinstallation propre
├── configure_embed.ps1      # Configuration Python embedded
├── config_template.txt      # Modele config pour /VERYSILENT /CONFIG=
├── LICENSE.txt              # CGU affichees dans la page licence
└── README.md                # Ce fichier

Test de l'installeur

  1. Machine de test Windows 11 (VM ou PC physique, idealement sans Python)
  2. Copier Lea-Setup-v1.0.0.exe sur la machine
  3. Double-cliquer : verifier que l'enrollment s'affiche en francais
  4. Tester l'installation (avec et sans Python deja installe)
  5. Verifier le fichier C:\Program Files\Lea\config.txt genere
  6. Verifier le raccourci shell:startup (si option cochee)
  7. Lancer Lea, verifier la connexion au serveur
  8. Tester la desinstallation depuis "Ajout/suppression de programmes"

Test automatise (PowerShell, sur la VM)

# Installation silencieuse
$cfg = "C:\temp\enroll.txt"
@"
USER_NAME=Test Automatique
USER_EMAIL=test@aivanov.com
"@ | Out-File -Encoding ASCII $cfg

.\Lea-Setup-v1.0.0.exe /VERYSILENT /CONFIG=$cfg /LOG="C:\temp\install.log"

# Verifications
Test-Path "C:\Program Files\Lea\config.txt"
Get-Content "C:\Program Files\Lea\machine_id.txt"

# Desinstallation silencieuse
$uninst = Get-WmiObject Win32_Product | Where-Object { $_.Name -like "Lea*" }
$uninst.Uninstall()

Notes et limites connues

  • Endpoint serveur /agents/enroll et /agents/uninstall : pas encore implemente cote serveur (avril 2026). L'installeur envoie la requete en best-effort, une erreur est silencieusement ignoree. A implementer dans agent_v0/server_v1/api_stream.py quand necessaire.
  • Python embedded : le patch python312._pth + pip bootstrap fonctionne mais augmente la taille de l'installeur (~25 MB). A reserver aux postes sans Python.
  • Code signing : indispensable pour deploiement hopital/client. Prevoir le budget certificat (400-700 EUR/an) dans la roadmap commerciale.

Historique

  • v1.0.0 (2026-04-13) : Premiere version de l'installeur Inno Setup.