BillTracker/routes
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
..
about.js fix(brand): finish the "BillTracker" → "Bill Tracker" rename (display copy) 2026-07-05 17:31:14 -05:00
aboutAdmin.js fix(qa): version check is opt-out-able (QA-B16-01) 2026-07-03 10:05:37 -05:00
admin.js feat(security): show a key fingerprint (not the key) in the encryption status 2026-07-05 19:15:32 -05:00
analytics.js v0.28.0 2026-05-16 15:38:28 -05:00
auth.js feat(settings): sign out of other devices (plan Tier 7) 2026-07-05 16:05:59 -05:00
authOidc.js fix: login mode card update, OIDC service improvements, auth middleware refinements 2026-06-04 03:53:38 -05:00
bills.js feat(server-ts): paymentValidation → .cts, proving the CJS-module path (Phase 2) 2026-07-05 13:51:37 -05:00
calendar.js feat(settings): configurable "Due soon" window (plan Tier 4) 2026-07-05 16:00:32 -05:00
calendarFeed.js feat: iCal feed for bills (Apple/Google calendar export) 2026-06-07 15:53:46 -05:00
categories.js feat(spending): category groups, YNAB-style spending page overhaul, 3-month averages, cover overspending (batch 0.41.0) 2026-06-14 19:21:34 -05:00
dataSources.js feat: bank sync section, data sources route, subscription page updates, package updates 2026-06-07 02:03:00 -05:00
export.js feat(server-ts): migrate the money boundary to TypeScript on Node's native runtime (Phase 2) 2026-07-05 13:44:04 -05:00
import.js feat(import): OFX/QFX transaction import (Batch 3) 2026-07-03 15:11:59 -05:00
matches.js feat(server-ts): paymentValidation → .cts, proving the CJS-module path (Phase 2) 2026-07-05 13:51:37 -05:00
monthly-starting-amounts.js feat(server-ts): migrate the money boundary to TypeScript on Node's native runtime (Phase 2) 2026-07-05 13:44:04 -05:00
notifications.js feat(settings): configurable reminder send-time (plan Tier 5) 2026-07-05 16:10:25 -05:00
payments.js feat(server-ts): paymentValidation → .cts, proving the CJS-module path (Phase 2) 2026-07-05 13:51:37 -05:00
privacy.js fix(qa): version check is opt-out-able (QA-B16-01) 2026-07-03 10:05:37 -05:00
profile.js fix(admin): admin/profile routes and services 2026-06-07 21:18:02 -05:00
settings.js v0.28.0 2026-05-15 22:45:38 -05:00
snowball.js feat(server-ts): migrate the money boundary to TypeScript on Node's native runtime (Phase 2) 2026-07-05 13:44:04 -05:00
spending.js feat: copy last month budgets, monthly income section on summary page 2026-06-04 21:57:42 -05:00
status.js feat(server-ts): utils/dates → TypeScript (.mts); utils/ dir now TS (Phase 2) 2026-07-05 13:48:44 -05:00
subscriptions.js feat(server-ts): migrate the money boundary to TypeScript on Node's native runtime (Phase 2) 2026-07-05 13:44:04 -05:00
summary.js feat(server-ts): migrate the money boundary to TypeScript on Node's native runtime (Phase 2) 2026-07-05 13:44:04 -05:00
tracker.js fix(tracker): route error handling + autopay write atomicity (T2) 2026-07-03 18:21:28 -05:00
transactions.js feat(server-ts): utils/dates → TypeScript (.mts); utils/ dir now TS (Phase 2) 2026-07-05 13:48:44 -05:00
user.js feat(data): "Erase my data" danger zone (Batch 5) 2026-07-03 15:21:07 -05:00
version.js security fixes 2026-05-28 03:59:35 -05:00