Files
khadhroony-solana-project/deltas/0.2.6/pre.011.md
2026-08-21 15:22:42 +02:00

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.version passe à 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 ;
  • OwnerOperationContext distingue le view_enabled réservé avant mutation du result_view_enabled ré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_conflict conserve 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.md et docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md restent 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.