BillTracker/client/components/admin
null 1457de487f feat(security): show a key fingerprint (not the key) in the encryption status
The encryption key must never be retrievable through the app (that would undo
the whole point of TOKEN_ENCRYPTION_KEY — a stolen session/XSS could then read
the master key). Instead surface a non-reversible fingerprint so operators can:
- verify which key is currently active,
- confirm a running instance matches the key they backed up, and
- spot an accidental key change (which would make existing secrets unrecoverable).

- encryptionService.keyFingerprint(): domain-separated SHA-256 prefix of the
  active key (env if set, else the stored DB key); never force-creates a key
  (returns null when none exists), shares nothing with the cipher derivation.
- admin bank-sync-config exposes key_fingerprint alongside encryption_key_source.
- Admin Bank Sync card renders it with backup guidance.
- Test: stable per key, differs by key, not reversible / not the raw key.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 19:15:32 -05:00
..
AddUserCard.tsx refactor(ts): convert admin shared helpers + AddUserCard; drop dead PrivacyAdminCard (B16) 2026-07-04 20:44:40 -05:00
AuthMethodsCard.tsx refactor(ts): convert admin/ cards to TypeScript (AuthMethods, BankSync, Backup, ...) 2026-07-04 21:26:22 -05:00
BackupManagementCard.tsx refactor(ts): convert admin/ cards to TypeScript (AuthMethods, BankSync, Backup, ...) 2026-07-04 21:26:22 -05:00
BankSyncAdminCard.tsx feat(security): show a key fingerprint (not the key) in the encryption status 2026-07-05 19:15:32 -05:00
CleanupPanel.tsx refactor(ts): convert CleanupPanel + UsersTable admin cards to TSX (B17) 2026-07-04 21:17:16 -05:00
EmailNotifCard.tsx refactor(brand): adopt new primitives in admin + data + dialogs 2026-07-05 17:19:03 -05:00
LoginModeCard.tsx refactor(ts): convert LoginModeCard + EmailNotifCard admin cards to TSX (B18) 2026-07-04 21:19:39 -05:00
OnboardingWizard.tsx refactor(ts): convert OnboardingWizard to TSX (B16b) 2026-07-04 20:45:53 -05:00
UsersTable.tsx refactor(brand): adopt new primitives in admin + data + dialogs 2026-07-05 17:19:03 -05:00
adminShared.tsx refactor(ts): convert admin shared helpers + AddUserCard; drop dead PrivacyAdminCard (B16) 2026-07-04 20:44:40 -05:00