Fix ConfigService Enum & Email Fallback #197

Closed
opened 2026-06-04 15:07:59 +02:00 by kincses · 2 comments
Owner

Diagnózis

A ConfigService enum hibája miatt a rendszer a blokkolt SMTP-re esett vissza a Brevo API helyett.

Végrehajtott Javítások

1. EmailManager Fallback Logika Megerősítése

  • A send_email metódusban a config.get_setting() hívás külön try-except blokkba került
  • DB hiba esetén logger.warning és os.getenv-ből olvassa az EMAIL_PROVIDER-t
  • Csak akkor esik vissza 'smtp'-re, ha sem a DB, sem a .env nem tartalmaz érvényes értéket

2. Adatbázis Enum Hiba Javítása

  • A system.parameter_scope PostgreSQL enum típusban vegyesen voltak nagybetűs (GLOBAL) és kisbetűs (global) értékek
  • A system.system_parameters tábla scope_level oszlopa SQLEnum típusú volt, ami asyncpg cache problémát okozott
  • Javítás: az oszlop típusa String(50)-re változott, a PostgreSQL enum típus pedig csak kisbetűs értékeket tartalmaz
  • A ConfigService.get() metódusban a cast(..., String) helyett cast(..., Text) használatos

3. DB Konfiguráció Frissítés

  • email_provider értéke 'sendgrid'-ről 'brevo_api'-ra módosult
  • Az összes 'GLOBAL' scope_level érték 'global'-ra javítva

Verifikáció

  • Email küldés Brevo API-n keresztül sikeres
  • ConfigService lekérdezések hiba nélkül működnek
## Diagnózis A ConfigService enum hibája miatt a rendszer a blokkolt SMTP-re esett vissza a Brevo API helyett. ## Végrehajtott Javítások ### 1. EmailManager Fallback Logika Megerősítése - A `send_email` metódusban a `config.get_setting()` hívás külön try-except blokkba került - DB hiba esetén logger.warning és os.getenv-ből olvassa az EMAIL_PROVIDER-t - Csak akkor esik vissza 'smtp'-re, ha sem a DB, sem a .env nem tartalmaz érvényes értéket ### 2. Adatbázis Enum Hiba Javítása - A `system.parameter_scope` PostgreSQL enum típusban vegyesen voltak nagybetűs (GLOBAL) és kisbetűs (global) értékek - A `system.system_parameters` tábla `scope_level` oszlopa SQLEnum típusú volt, ami asyncpg cache problémát okozott - Javítás: az oszlop típusa `String(50)`-re változott, a PostgreSQL enum típus pedig csak kisbetűs értékeket tartalmaz - A `ConfigService.get()` metódusban a `cast(..., String)` helyett `cast(..., Text)` használatos ### 3. DB Konfiguráció Frissítés - `email_provider` értéke 'sendgrid'-ről 'brevo_api'-ra módosult - Az összes 'GLOBAL' scope_level érték 'global'-ra javítva ## Verifikáció - Email küldés Brevo API-n keresztül sikeres - ConfigService lekérdezések hiba nélkül működnek
kincses added the Type: BugScope: DatabaseStatus: In Progress labels 2026-06-04 15:08:07 +02:00
kincses started working 2026-06-04 15:08:07 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-06-04 15:08:07

▶️ **Munka megkezdve:** 2026-06-04 15:08:07
kincses added Status: Done and removed Status: In Progress labels 2026-06-04 15:08:33 +02:00
kincses worked for 27 seconds 2026-06-04 15:08:34 +02:00
Author
Owner

Munka befejezve: 2026-06-04 15:08:33

Technikai Összefoglaló:
Fix ConfigService Enum & Email Fallback - 3 rétegű javítás: (1) EmailManager try-except fallback, (2) PostgreSQL enum tisztítás (csak kisbetűs értékek), (3) scope_level oszlop típusa String(50)-re változtatva az asyncpg cache probléma elkerülésére. Email küldés Brevo API-n keresztül sikeresen verifikálva.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-04 15:08:33 **Technikai Összefoglaló:** Fix ConfigService Enum & Email Fallback - 3 rétegű javítás: (1) EmailManager try-except fallback, (2) PostgreSQL enum tisztítás (csak kisbetűs értékek), (3) scope_level oszlop típusa String(50)-re változtatva az asyncpg cache probléma elkerülésére. Email küldés Brevo API-n keresztül sikeresen verifikálva. ⏱️ *Az idő rögzítve.*
Sign in to join this conversation.