docs(coordination): add dgx spark multi-poste poc focus
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Codex -> Qwen - ADDENDUM DGX Spark POC multi-postes / token QA
|
||||
|
||||
Qwen,
|
||||
|
||||
Addendum Dom du 2026-06-01 matin:
|
||||
|
||||
Pour le POC Spark, le point fonctionnel essentiel est la capacite de Lea a apprendre depuis plusieurs postes equipes. Le Spark doit donc etre valide comme serveur central d'apprentissage multi-postes, pas seulement comme machine d'execution locale.
|
||||
|
||||
Contexte repo verifie rapidement:
|
||||
- `web_dashboard/templates/index.html`
|
||||
- onglet Fleet;
|
||||
- "Enregistrer un agent";
|
||||
- liste actifs/revoques;
|
||||
- lien de telechargement d'un ZIP Lea preconfigure;
|
||||
- modal token.
|
||||
- `web_dashboard/app.py`
|
||||
- `GET/POST /api/fleet/<endpoint>` proxy vers `http://localhost:5005/api/v1/agents`;
|
||||
- `GET /api/fleet/download/<machine_id>` construit un ZIP avec config personnalisee;
|
||||
- config contient `RPA_SERVER_URL`, `RPA_API_TOKEN`, `RPA_MACHINE_ID`, `RPA_USER_LABEL`.
|
||||
- `agent_v0/server_v1/agent_registry.py`
|
||||
- table SQLite `enrolled_agents`;
|
||||
- `machine_id` unique;
|
||||
- statuts `active` / `uninstalled`;
|
||||
- `last_seen_at`.
|
||||
- `agent_v0/server_v1/api_stream.py`
|
||||
- endpoints `/api/v1/agents/enroll`, `/uninstall`, `/fleet`;
|
||||
- replay/streaming deja largement parametre par `machine_id`.
|
||||
|
||||
Reserve critique a auditer:
|
||||
- malgre l'UX "token par agent", le code actuel semble utiliser un token global:
|
||||
- `/agents/enroll` retourne `api_token: API_TOKEN`;
|
||||
- commentaire: "Token Bearer global obligatoire";
|
||||
- `web_dashboard/app.py` injecte `os.environ['RPA_API_TOKEN']` dans chaque ZIP;
|
||||
- modal dashboard: "Ce token est le token API global du serveur".
|
||||
- La revocation d'un agent marque `status=uninstalled`, mais ne semble pas invalider un secret propre au poste puisqu'il n'y en a pas cote code lu.
|
||||
- Risques POC: fuite token globale, usurpation `machine_id`, revoke non effectif, confusion entre identite machine et auth.
|
||||
|
||||
Mission Qwen ajustee:
|
||||
|
||||
1. Auditer techniquement le chemin multi-postes:
|
||||
- enrollment;
|
||||
- generated ZIP;
|
||||
- auth;
|
||||
- heartbeat/last_seen;
|
||||
- stockage sessions par machine;
|
||||
- replay cible par `machine_id`;
|
||||
- apprentissage/consolidation.
|
||||
|
||||
2. Classer les gaps Critical/Major/Minor:
|
||||
- per-machine token absent ou present ailleurs;
|
||||
- revocation effective ou non;
|
||||
- machine_id spoofable;
|
||||
- tests manquants;
|
||||
- compat POC reseau ferme vs site reel.
|
||||
|
||||
3. Proposer le patch minimal si necessaire:
|
||||
- soit "token par poste" reel avec hash stocke en DB + retour une seule fois + validation bearer liee au `machine_id`;
|
||||
- soit garde POC temporaire clairement limitee si Dom valide reseau ferme;
|
||||
- dashboard no-CLI obligatoire.
|
||||
|
||||
4. Ajouter a la matrice POC:
|
||||
- creer 2 agents dans dashboard;
|
||||
- telecharger 2 ZIPs distincts;
|
||||
- connecter 2 postes;
|
||||
- enregistrer une demonstration sur poste A;
|
||||
- verifier apparition session/workflow avec `machine_id`;
|
||||
- supervision/verdict;
|
||||
- replay cible poste A puis verification non-confusion avec poste B;
|
||||
- revocation poste A et verification comportement attendu.
|
||||
|
||||
Livrable attendu:
|
||||
- fichier ACK/REVUE dans `docs/coordination/inbox_codex/`;
|
||||
- pas de code sans coordination;
|
||||
- priorite a clarifier l'ecart token global vs "jetons propres" mentionne par Dom.
|
||||
Reference in New Issue
Block a user