Skip to content

refactor(settings): migrate to centralized key-value settings state with persisted defaults#588

Merged
BlackTiger007 merged 38 commits intomainfrom
refactor/settings-initialization
Jan 15, 2026
Merged

refactor(settings): migrate to centralized key-value settings state with persisted defaults#588
BlackTiger007 merged 38 commits intomainfrom
refactor/settings-initialization

Conversation

@BlackTiger007
Copy link
Copy Markdown
Member

Überblick

Dieser Pull Request führt ein zentralisiertes Settings-System auf Basis eines Zod-validierten Schemas mit Defaults ein und migriert die bestehende Settings-Struktur auf ein Key-Value-Modell in der Datenbank.
Ziel ist eine einheitliche, typsichere und persistente Quelle für Anwendungseinstellungen, die sowohl im Client als auch in Backend-nahen Bereichen konsistent genutzt wird.

Kernänderungen

  • Einführung eines Zod-basierten Settings-Schemas mit klar definierten Defaults
  • Migration der settings-Tabelle auf ein Key-Value-Schema inkl. Drizzle-Migration
  • Persistierung aller Settings als valide JSON-Werte
  • Zentrale Settings State Initialisierung beim App-Startup
  • Upsert-basierte Speicherung von Settings
  • Entfernung des bisherigen Settings-Stores und zugehöriger DB-Utilities

Refactorings & Integration

Alle settings-abhängigen Bereiche wurden auf den neuen Settings State umgestellt, u. a.:

  • Sentry (Initialisierung & Konfiguration)
  • Theme & Layout
  • i18n / Locale-Auflösung
  • TMDB (Auth, Sprache, Flags)
  • Player-Auswahl & -Logik
  • Backup-Regeln
  • Discord-Integration
  • Watchlist- & Collection-Logik
  • Toast-Position & UI-Zustände
  • Cast-Image-Limits

Migration & Sicherheit

  • Bestehende Settings werden aus dem ersten Datensatz migriert
  • Alle Werte werden JSON-konform gespeichert (string, boolean, number, array, object, null)
  • Defaults greifen zuverlässig bei fehlenden oder ungültigen Werten
  • Keine Änderung der semantischen Reihenfolge oder Bedeutung bestehender Settings

@BlackTiger007 BlackTiger007 self-assigned this Jan 15, 2026
@sonarqubecloud
Copy link
Copy Markdown

@BlackTiger007 BlackTiger007 merged commit cd59600 into main Jan 15, 2026
6 of 7 checks passed
@BlackTiger007 BlackTiger007 deleted the refactor/settings-initialization branch January 15, 2026 12:57
@github-actions
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.39.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant