BLZ-Bankdaten: Laufzeit-Auto-Update ins Volume + Einstellungen-Seite
Statt npm-Rebuild-Wartung aktualisiert sich der Bankleitzahlen-Datensatz jetzt zur Laufzeit. Ein Scheduler (taeglich 03:30 + Catch-up 90s) prueft gemaess konfigurierbarem Intervall und laedt current.json/next.json von npm/jsDelivr (Paket bankdata-germany) in das neue Bind-Mount-Volume BANKDATA_DIR (./data/bankdata -> /app/bankdata). Lookup bevorzugt den Volume-Datensatz vor den ins Image gebackenen Daten (Fallback). Es wird kein Fremdcode ausgefuehrt - nur JSON gelesen und die current+next-Delta-Logik nachgebaut. Validierung (>=1000 Eintraege, Format) + atomarer Write (tmp+rename) schuetzen den guten Stand vor Muell. Datenschutz: Der Updater sendet keine Kundendaten, laedt nur eine oeffentliche Datendatei; abschaltbar; bei Fehler/ohne Egress greift Builtin. Neue Einstellungen-Seite /settings/bank-data zeigt Datenstand, Update- Verfuegbarkeit und bietet "Jetzt aktualisieren" + Auto-Update-Schalter + Intervall. Endpoints GET /api/settings/blz, POST /api/settings/blz/update-now. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,31 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
|
||||
## ✅ Erledigt
|
||||
|
||||
- [x] **🔄 BLZ-/Bankdaten: Auto-Update via Volume + Einstellungen** (2026-08-12)
|
||||
- Neue Einstellungen-Seite **Einstellungen → Bankdaten (BLZ)** (`/settings/bank-data`):
|
||||
zeigt Datenstand (aktive Quelle Volume/Image, Version, Anzahl Banken,
|
||||
zuletzt geprüft/aktualisiert, neueste verfügbare Version + „Update
|
||||
verfügbar"-Badge, letzter Fehler). Button **„Jetzt prüfen & aktualisieren"**
|
||||
(+ „Neu laden erzwingen"). Auto-Update-Schalter + **Intervall in Tagen** (1–365).
|
||||
- **Echtes Laufzeit-Update** statt Rebuild: Ein Scheduler (täglich 03:30 +
|
||||
Catch-up 90s nach Start) prüft, ob laut Intervall fällig, und lädt dann den
|
||||
aktuellen Datensatz. Quelle = npm/jsDelivr (`bankdata-germany` current.json +
|
||||
next.json), gespeichert im **Bind-Mount-Volume** `BANKDATA_DIR`
|
||||
(`./data/bankdata` → `/app/bankdata`, neu in docker-compose + Dockerfile mkdir
|
||||
+ .env.example).
|
||||
- **Lookup-Vorrang:** Volume-Datensatz (aktuell) vor ins Image gebackenen Daten
|
||||
(`bankdata-germany`, Fallback). Kombiniert current+next-Delta wie das Paket.
|
||||
Kein Fremdcode – nur JSON wird gelesen. Validierung (≥1000 Einträge, Format)
|
||||
verhindert, dass Müll/HTML den guten Datenstand überschreibt (atomarer
|
||||
Write via tmp+rename).
|
||||
- **Datenschutz:** Der Updater sendet KEINE Kundendaten – lädt nur eine
|
||||
öffentliche Datendatei. Beim IBAN-Lookup verlässt weiterhin nichts den Server.
|
||||
Auto-Update ist abschaltbar; ohne Egress/bei Fehler greift der Builtin-Stand.
|
||||
- Endpoints: `GET /api/settings/blz` (settings:read), `POST /api/settings/blz/update-now`
|
||||
(settings:update, `?force=1`). Settings-Keys `blzAutoUpdateEnabled` (default true),
|
||||
`blzUpdateIntervalDays` (default 30) in Whitelist + validiert.
|
||||
- **Damit entfällt die manuelle `npm update`-Wartung** aus dem vorherigen Punkt.
|
||||
|
||||
- [x] **🏦 Bankkarte-Modal: IBAN-Prüfung + BIC/Bank-Auto-Ausfüllen** (2026-08-12)
|
||||
- Button „BIC & Bank aus IBAN abrufen" unter dem IBAN-Feld (Bankkarte
|
||||
hinzufügen/bearbeiten). Füllt BIC + Banknamen automatisch aus und prüft
|
||||
|
||||
Reference in New Issue
Block a user