Addressed SA-3 by encrypting the sqlite content with a .env secret

This commit is contained in:
2026-08-26 16:39:53 +02:00
parent 94997752b6
commit 3e61302bf6
17 changed files with 108 additions and 16 deletions
+3 -1
View File
@@ -7,6 +7,7 @@ import json
from backend.app.core.config import settings
from backend.app.database import get_connection
from backend.app.services.secret_store import decrypt_secret, encrypt_secret
def get_smtp_settings() -> dict:
@@ -22,6 +23,7 @@ def get_smtp_settings() -> dict:
row = conn.execute('SELECT value FROM app_settings WHERE name = ?', ('smtp',)).fetchone()
if row:
values.update(json.loads(row['value']))
values['smtp_password'] = decrypt_secret(values['smtp_password'])
return values
@@ -30,7 +32,7 @@ def save_smtp_settings(values: dict) -> None:
conn.execute(
'''INSERT INTO app_settings (name, value, updated_at) VALUES (?, ?, CURRENT_TIMESTAMP)
ON CONFLICT(name) DO UPDATE SET value = excluded.value, updated_at = CURRENT_TIMESTAMP''',
('smtp', json.dumps(values)),
('smtp', json.dumps({**values, 'smtp_password': encrypt_secret(values['smtp_password'])})),
)
conn.commit()