Files
anonymisation/docs/beta/runbook-portail-beta.md
Domi31tls c64162a936 docs(beta): kit bêta 2026-06-19 (checklist tests, note client, runbook portail)
Préparation bêta GUI demain (scope gelé Codex/Dom) — documentation, pas de code produit :
- docs/beta/checklist-tests-collaborateurs.md : install/lancement/licence/traitement
  PDF natif+scan/vérif anonymisation/0 remontée patient/usage admin/relevé OS-hash-version,
  garde-fou RGPD (synthétique/caviardé only).
- docs/beta/note-beta-client.md : version+SHA 8B437346…, moteurs actifs CamemBERT+regex,
  EDS/GLiNER non actifs, traitement local, consigne retour (pas de PDF/log patient).
- docs/beta/runbook-portail-beta.md : publier artefact actif, compte client+approbation→licence,
  jeton activation, /api/v1/version + download authentifié, rappels sécu prod (HTTPS/secrets/
  CSRF/rate-limit = accès restreint tant que non traités).

Cible : Anonymisation-Setup.exe v2026.06.18.1203 (source 19c4934). Aucun push/diffusion.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:47:56 +02:00

3.3 KiB

Runbook — portail licence/téléchargement pour bêta contrôlée

Portail app_aivanov (FastAPI). Objectif : permettre à un client bêta de récupérer la GUI et d'activer sa licence. Bêta contrôlée, accès restreint.

⚠️ Pré-requis de déploiement (NON couverts par le code actuel — voir §5) : reverse proxy HTTPS, secrets forts, accès limité. Tant que ces points ne sont pas en place, rester sur un accès interne/restreint.

1. Publier l'installateur GUI comme artefact actif

Sur le serveur portail :

python3 scripts/publish_artifact.py --version 2026.06.18.1203 \
  --file /chemin/vers/Anonymisation-Setup.exe --active

(ou via le back-office admin → « Publier une version » : version, canal, fichier, « rendre active »). Le SHA-256 est recalculé côté serveur — vérifier qu'il == 8B437346…DED2F.

2. Créer / valider le compte client bêta

  • Option A — auto-inscription : le client va sur /register (organisation, e-mail, mot de passe ≥ 8) → compte en attente.
  • Puis admin : /admin → section « Inscriptions en attente » → Approuver (crée automatiquement une licence active via approve_user_with_default_licence).
  • Option B — création admin directe : back-office « Nouveau client ».
  • (Reset admin si besoin : python3 scripts/create_admin.py <email> <mdp> --force.)

3. Licence + jeton d'activation

  • Vérifier la licence active du client (back-office « Licences » : statut active, postes, expiration).
  • Le client (espace /licences) génère un jeton d'activation (« Générer un jeton », valable 48 h) à saisir dans la GUI (bouton « Activer »).
  • L'activation poste appelle POST /api/v1/activate (token + machine_id) → licence signée RSA renvoyée.

4. Vérifier la disponibilité du téléchargement

  • GET /api/v1/version → doit renvoyer la version active (2026.06.18.1203 + SHA + download_url). 404 = aucun artefact actif (revoir §1).
  • Téléchargement authentifié : GET /api/v1/download/{version} exige une session web connectée + licence active (ou admin). Vérifier qu'un client connecté avec licence peut télécharger, et qu'un anonyme reçoit 401.
  • UX : un navigateur anonyme sur une route protégée est redirigé vers /login ; le logo renvoie à / ; favicon OK (correctifs F1/F2/F3).

5. Sécurité avant exposition (rappels — bloquants prod connus)

Ces points sont hors des commits actuels (sprint durcissement, GO Dom requis) ; en attendant, n'exposer le portail qu'en accès restreint :

  • HTTPS obligatoire via reverse proxy ; cookie de session https_only à activer hors dev.
  • Secrets forts en variables d'environnement : APP_SECRET_KEY, ADMIN_PASSWORD (ne pas laisser les défauts dev change-me).
  • CSRF : pas de protection sur les POST → limiter l'accès / front de confiance tant que non ajouté.
  • Rate-limiting /login : absent → restreindre l'accès réseau (anti-brute-force).
  • Retirer l'e-mail admin par défaut (dom@aivanov.fr) du code source (→ .env).

6. Données / RGPD

  • Le portail ne reçoit jamais de contenu patient : uniquement licences, activations de postes, et compteurs d'usage agrégés (nb traitements/documents/pages).
  • Le dashboard admin « Utilisation par client » affiche ces compteurs (clients sans usage inclus, à 0).