2.6 KiB
Delta 0.2.6-pre.011 — strong VIEW disable/recreate
Objet
Exposer dans Wallet Desk l'administration forte de la capability VIEW déjà fournie par ksp-wallet-lib : suppression forte de VIEW et recréation avec une nouvelle autorité, exclusivement depuis une session OWNER.
Changements
workspace.package.versionpasse à0.2.6-pre.11;- ajout de
disable_wallet_view:- OWNER-only ;
- délègue à
WalletOwner::disable_view; - retire le slot VIEW et rekey les metadata ;
- conserve la session OWNER avec
view_enabled=false;
- ajout de
recreate_wallet_view:- OWNER-only ;
- délègue à
WalletOwner::recreate_view; - génère une nouvelle metadata key, un nouveau slot VIEW et un nouveau credential ;
- fonctionne depuis VIEW disabled ou enabled ;
- conserve la session OWNER avec
view_enabled=true;
OwnerOperationContextdistingue leview_enabledréservé avant mutation duresult_view_enabledréinstallé après succès ;- ajout de
WalletViewSecurityStatusDto, projection IPC minimale sans identité protégée ni secret ; - UI Security :
- carte d'administration forte VIEW ;
- modal Bootstrap pour disable ;
- modal Bootstrap pour recreate ;
- confirmation du nouveau password uniquement côté frontend ;
- rafraîchissement immédiat du DataTable et de l'état
VIEW enabled/disabled;
wallet.state_conflictconserve la politique existante : purge du handle OWNER stale, réinspection Locked et réautorisation OWNER obligatoire ;- canaries contract/security étendus à la surface strong VIEW ;
ROADMAP.md,CHANGELOG.mdetdocs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.mdrestent inchangés.
Sécurité
disable_view et recreate_view ne sont jamais accessibles depuis VIEW. Le nouveau password de recreate est converti en ViewPassword côté Rust et n'est ni projeté ni loggé. Les secrets Config restent inchangés.
La révocation forte porte sur l'état courant/futur : une copie historique déjà détenue reste explicitement hors garantie.
Validation opérateur
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-wallet-desk
cargo test --workspace
KSP_WALLETS_DIRECTORY=var/wallet-desk-pre011 \
cargo tauri dev -c crates/ksp-app-wallet-desk/tauri.conf.json
Runtime : OWNER -> strong disable -> Lock -> VIEW impossible ; OWNER -> strong recreate avec nouveau password -> Lock -> ancien VIEW refusé / nouveau VIEW accepté ; vérifier Pubkey, alias, notes et OWNER inchangés.