v0.2.6-pre.011
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md -->
|
||||
<!-- version: 25 -->
|
||||
<!-- version: 26 -->
|
||||
|
||||
# Plan `0.2.6` — Wallet Desk
|
||||
|
||||
@@ -1538,15 +1538,63 @@ Le correctif `pre.010-fix.001` complète ce contrat : la personne déjà autoris
|
||||
|
||||
### `pre.011` — strong VIEW disable/recreate
|
||||
|
||||
Objectifs :
|
||||
Cette tranche branche les primitives fortes déjà possédées par `ksp-wallet-lib` sans dupliquer leur cryptographie dans l'application.
|
||||
|
||||
Contrat retenu :
|
||||
|
||||
```text
|
||||
disable_view
|
||||
recreate_view
|
||||
security status DTO
|
||||
VIEW enabled/disabled dans DataTable
|
||||
modals Bootstrap privilégiés
|
||||
réouverture VIEW vérifiée
|
||||
OWNER uniquement -> disable_wallet_view
|
||||
-> WalletOwner::disable_view
|
||||
-> nouvelle metadata content key
|
||||
-> suppression du slot/descriptor VIEW
|
||||
-> session OWNER conservée avec view_enabled=false
|
||||
|
||||
OWNER uniquement -> recreate_wallet_view(new VIEW password)
|
||||
-> WalletOwner::recreate_view
|
||||
-> nouvelle metadata content key
|
||||
-> nouveau slot ID VIEW
|
||||
-> nouveau credential VIEW
|
||||
-> session OWNER conservée avec view_enabled=true
|
||||
```
|
||||
|
||||
`recreate_wallet_view` est volontairement disponible même lorsque VIEW est déjà enabled : dans ce cas l'opération remplace fortement l'autorité VIEW courante au lieu d'effectuer une simple rotation du password.
|
||||
|
||||
Le résultat IPC est un `WalletViewSecurityStatusDto` sûr et minimal :
|
||||
|
||||
```text
|
||||
wallet_id
|
||||
capability
|
||||
view_enabled
|
||||
configured_secret_candidate_count
|
||||
```
|
||||
|
||||
Il ne contient ni Pubkey, ni alias, ni notes, ni password. Les metadata autorisées déjà détenues par la session OWNER restent côté frontend dans leur projection existante et ne sont pas retransmises pour cette opération.
|
||||
|
||||
Le lifecycle réutilise `OwnerOperation` et libère le mutex avant persistence/Argon2. `OwnerOperationContext` distingue l'état VIEW réservé avant l'opération de l'état VIEW résultant afin que le contrôle anti-stale continue à comparer l'état original tout en réinstallant la session OWNER avec le nouveau `view_enabled`.
|
||||
|
||||
UX :
|
||||
|
||||
```text
|
||||
Strong disable VIEW -> modal Bootstrap destructif
|
||||
Strong recreate VIEW -> password + confirmation frontend-only -> modal Bootstrap privilégié
|
||||
aucun window.confirm / alert / prompt
|
||||
DataTable rafraîchie après succès
|
||||
VIEW enabled/disabled immédiatement synchronisé
|
||||
```
|
||||
|
||||
La confirmation du password de recreate reste strictement frontend ; un seul nouveau password traverse IPC. Les `KSP_SECRET_WALLET_PASS_*` ne sont jamais modifiés implicitement.
|
||||
|
||||
Garantie explicitement affichée : la révocation forte concerne l'état courant et futur du Wallet ; une copie historique déjà détenue reste hors de la garantie de révocation.
|
||||
|
||||
Validation runtime attendue :
|
||||
|
||||
```text
|
||||
OWNER -> strong disable VIEW
|
||||
Lock -> VIEW unlock impossible
|
||||
OWNER -> strong recreate VIEW avec nouveau password
|
||||
Lock -> ancien VIEW password refusé
|
||||
nouveau VIEW password accepté
|
||||
Pubkey / alias / notes / OWNER inchangés
|
||||
```
|
||||
|
||||
### `pre.012` — export OWNER fichier
|
||||
|
||||
Reference in New Issue
Block a user