08919752e3
Checkpoint multi-chantiers (arbre vert : tsc 0 erreur, 70 tests, build OK). - tâche 1.9 Phase 1 : schéma socle (machine_state/events/reports/raw_artifacts/ hardware/metrics + colonnes étendues) + wiring refresh/execute. Migration 0002. - tâche 1.9 Phase 2 : machine_credentials + machine_host_keys (non destructif, dual-read + backfill). Migration 0003. Fix séquence journal de migration. - tâche 2 : SJ-0 (types étendus rétro-compatibles, réducteur Docker, resolveTemplate), SJ-1 (update-analyze enrichi), SJ-2 (apply + diff dpkg + timeout inactivité SSH), SJ-3 (reboot vérifié boot_id). - WIP parallèle inclus : /api/capabilities, auth/apiTokens/apiClients, system metrics, scaffold app_rust, ajustements frontend. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
system-update-gnome
Scaffold de l'application locale Rust/GNOME pour system_update.
Ce sous-dossier est volontairement dédié au développement de l'application Rust :
- backend/webapp : racine du projet,
server/,client/,shared/; - application Rust/GNOME :
app_rust/system-update-gnome/; - artefacts Cargo :
app_rust/system-update-gnome/target/, ignoré par Git.
État actuel :
- client CLI minimal ;
- aucune dépendance externe pour garder le premier build vérifiable sans accès réseau ;
- test de connexion HTTP vers
GET /api/capabilities; - stratégie token séparée dans
src/token_store.rs; - première UI GTK/libadwaita derrière la feature Cargo
gui.
Exemples :
cargo run -- --server http://127.0.0.1:8787 capabilities
cargo run -- --server http://127.0.0.1:8787 status
cargo run -- --server http://127.0.0.1:8787 metrics
cargo run -- --server http://127.0.0.1:8787 machines
SYSTEM_UPDATE_SERVER=http://127.0.0.1:8787 cargo run -- capabilities
Interface graphique :
cargo run --features gui -- gui
Avec un serveur précis :
cargo run --features gui -- --server http://10.0.1.137:8787 gui
Pré-requis pour le futur incrément GTK/libadwaita :
sudo apt install libgtk-4-dev libadwaita-1-dev
Règles :
- l'application ne fait pas de SSH direct ;
- les credentials machines restent côté backend ;
- les actions passent par l'API du serveur ;
- le token local sera stocké via trousseau système dans un incrément suivant.
Voir aussi :
docs/token-storage.md.