From ca2f9e2a8f9dafca613916a6b7a9581b1ac8cd53 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 2 May 2026 23:53:16 +0000 Subject: [PATCH] feat(config): add DATABASE_URL, STORAGE_TYPE, AZURE_STORAGE_*, JWT config vars --- backend/app/config.py | 21 ++++++++++++++++++++- backend/tests/test_config.py | 18 ++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 backend/tests/test_config.py diff --git a/backend/app/config.py b/backend/app/config.py index 55901c79..4d02724a 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -91,7 +91,26 @@ class Config: REPORT_AGENT_MAX_TOOL_CALLS = int(os.environ.get('REPORT_AGENT_MAX_TOOL_CALLS', '5')) REPORT_AGENT_MAX_REFLECTION_ROUNDS = int(os.environ.get('REPORT_AGENT_MAX_REFLECTION_ROUNDS', '2')) REPORT_AGENT_TEMPERATURE = float(os.environ.get('REPORT_AGENT_TEMPERATURE', '0.5')) - + + # ── Persistència ────────────────────────────────────────────── + # Base de dades + DATABASE_URL = os.environ.get('DATABASE_URL', 'sqlite:///mirofish_dev.db') + + # Storage de fitxers + STORAGE_TYPE = os.environ.get('STORAGE_TYPE', 'local') # local | azure + STORAGE_LOCAL_PATH = os.environ.get( + 'STORAGE_LOCAL_PATH', + os.path.join(os.path.dirname(__file__), '../uploads') + ) + AZURE_STORAGE_CONNECTION_STRING = os.environ.get('AZURE_STORAGE_CONNECTION_STRING', '') + AZURE_STORAGE_CONTAINER = os.environ.get('AZURE_STORAGE_CONTAINER', 'mirofish') + + # JWT (per a la Fase 2 d'autenticació — definits aquí perquè flask-jwt-extended els necessita en create_app) + JWT_SECRET_KEY = os.environ.get('JWT_SECRET', 'change-me-in-production') + JWT_REFRESH_SECRET_KEY = os.environ.get('JWT_REFRESH_SECRET', 'change-me-refresh-in-production') + JWT_ACCESS_TOKEN_EXPIRES_HOURS = int(os.environ.get('JWT_ACCESS_TOKEN_EXPIRES_HOURS', '8')) + JWT_REFRESH_TOKEN_EXPIRES_DAYS = int(os.environ.get('JWT_REFRESH_TOKEN_EXPIRES_DAYS', '7')) + @classmethod def get_graph_config_errors(cls) -> list: errors = [] diff --git a/backend/tests/test_config.py b/backend/tests/test_config.py new file mode 100644 index 00000000..dfacfa10 --- /dev/null +++ b/backend/tests/test_config.py @@ -0,0 +1,18 @@ +import os +import pytest + + +def test_database_url_default(): + """DATABASE_URL per defecte ha de ser SQLite""" + from backend.app.config import Config + assert Config.DATABASE_URL.startswith("sqlite") + + +def test_storage_type_default(): + from backend.app.config import Config + assert Config.STORAGE_TYPE == "local" + + +def test_storage_local_path_exists(): + from backend.app.config import Config + assert Config.STORAGE_LOCAL_PATH is not None