Commit 0d20584
feat(web): on-prem Web DEK auto-unlock + operator toggle (v1.9.0)
The on-prem Web portal now runs its own EncryptionReconcilerService, so
admins clicking Reveal after a restart no longer see the
"(encrypted - operator must unlock)" placeholder. The behavior is gated
by a new DbEncryptionStates.WebAutoUnlockEnabled column (default true)
with a UI toggle in Settings; the Worker always ignores the toggle so
unattended scans never stall.
Highlights:
- EncryptionReconcilerService moved from Worker/Jobs to Core/Services/
Encryption and made options-driven (ProcessName,
RespectWebAutoUnlockToggle, PollInterval).
- New migration AddWebAutoUnlockEnabled (bit NOT NULL DEFAULT 1).
- IDataKeyService.SetWebAutoUnlockEnabledAsync (Serializable tx +
best-effort audit).
- Settings page: status pills + Enable/Disable toggle + Lock now +
Unlock now (inline passphrase form) + Refresh. Disabling the toggle
also immediately locks the in-memory DEK.
- DeviceDetail.razor now catches InvalidOperationException to eliminate
the IsUnlocked->DecryptRowValue race when the reconciler locks on a
cross-process fingerprint mismatch.
- 7 new xUnit tests in EncryptionReconcilerServiceTests; 120/120 total.
- CHANGELOG: [1.9.0] section above [Unreleased].
- Directory.Build.props: 1.8.0 -> 1.9.0.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent bfeff33 commit 0d20584
18 files changed
Lines changed: 1515 additions & 69 deletions
File tree
- src
- BitLockerKeyMonitor.Core
- Migrations
- Models
- Services
- Encryption
- Interfaces
- BitLockerKeyMonitor.Web
- Components/Pages
- Devices
- BitLockerKeyMonitor.Worker
- tests/BitLockerKeyMonitor.Core.Tests
- Services/Encryption
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
9 | 66 | | |
10 | 67 | | |
11 | 68 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
0 commit comments