]> git.giorgioravera.it Git - network-manager.git/commitdiff
Minor fixes about capital letters & includes
authorGiorgio Ravera <giorgio.ravera@gmail.com>
Fri, 29 May 2026 15:01:43 +0000 (17:01 +0200)
committerGiorgio Ravera <giorgio.ravera@gmail.com>
Fri, 29 May 2026 15:01:43 +0000 (17:01 +0200)
20 files changed:
README.md
backend/app.py
backend/backup.py
backend/bootstrap.py
backend/db/config.py
backend/db/leases.py
backend/db/users.py
backend/routes/about.py
backend/routes/aliases.py
backend/routes/certificates.py
backend/routes/devices.py
backend/routes/dhcp.py
backend/routes/dns.py
backend/routes/health.py
backend/routes/hosts.py
backend/routes/login.py
backend/security.py
backend/server.py
backend/settings/default.py
backend/settings/settings.py

index bf769a01597df05dc2098a2713748a7960093ac6..1683fe3276291bef240497be171d8dead6c5d584 100644 (file)
--- a/README.md
+++ b/README.md
@@ -71,7 +71,7 @@ ADMIN_PASSWORD=admin
 LOGIN_MAX_ATTEMPTS=5
 LOGIN_WINDOW_SECONDS=600
 # --- Log ---
-LOG_LEVEL=INFO
+LOG_LEVEL=info
 LOG_TO_FILE=false
 # --- Session secret (optional but recommended in production) ---
 # SESSION_SECRET=****ReplaceWithYourSecret*****
@@ -94,7 +94,7 @@ services:
       DB_FILE: "/data/database.db"
       DB_RESET: "${DB_RESET:-false}"
       # Log
-      LOG_LEVEL: "${LOG_LEVEL:-INFO}"
+      LOG_LEVEL: "${LOG_LEVEL:-info}"
       LOG_TO_FILE: "${LOG_TO_FILE:-false}"
       LOG_FILE: "/data/app.log"
       LOG_ACCESS_FILE: "/data/access.log"
index c9cfcadd4bdc1701435b9a48481b18d23bb3f331..f85da846d7656468524bb4724a343c7f59d013d3 100644 (file)
@@ -23,8 +23,9 @@ from backend.routes.dhcp import router as dhcp_router
 # Import Security
 from backend.security import is_logged_in, apply_session
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index 44952034ad31fd07306c7fe61b5fc0e5baa4540a..63eea9c3eed2544ee7a581fe5dabd3b8d753ace2 100644 (file)
@@ -14,9 +14,9 @@ import zipfile
 from backend.db.hosts import get_hosts, add_host, reset_hosts_db
 from backend.db.aliases import get_aliases, add_alias, reset_aliases_db
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
-from backend.settings import config
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
@@ -24,9 +24,9 @@ logger = get_logger(__name__)
 
 # Backup files to include in the archive (must match metadata structure)
 backup_files = [
-    config.BACKUP_METADATA_FILE,
-    config.BACKUP_HOSTS_FILE,
-    config.BACKUP_ALIASES_FILE,
+    settings.BACKUP_METADATA_FILE,
+    settings.BACKUP_HOSTS_FILE,
+    settings.BACKUP_ALIASES_FILE,
 ]
 
  # Set to True to remove individual backup files after creating the archive (optional, can be set to False for debugging)
@@ -203,7 +203,7 @@ def store_hosts(
     # Initialization
     start_ns = time.monotonic_ns()
     filepath = Path(filepath or settings.BACKUP_PATH)
-    filename = filename or config.BACKUP_HOSTS_FILE
+    filename = filename or settings.BACKUP_HOSTS_FILE
     file = filepath / filename
     filepath.mkdir(parents=True, exist_ok=True)
     count_stored = 0
@@ -261,7 +261,7 @@ def restore_hosts(
     # Initialization
     start_ns = time.monotonic_ns()
     filepath = Path(filepath or settings.BACKUP_PATH)
-    filename = filename or config.BACKUP_HOSTS_FILE
+    filename = filename or settings.BACKUP_HOSTS_FILE
     file = filepath / filename
     count_restored = 0
     count_loaded = 0
@@ -321,7 +321,7 @@ def store_aliases(
     start_ns = time.monotonic_ns()
     filepath = Path(filepath or settings.BACKUP_PATH)
     filepath.mkdir(parents=True, exist_ok=True)
-    filename = filename or config.BACKUP_ALIASES_FILE
+    filename = filename or settings.BACKUP_ALIASES_FILE
     file = filepath / filename
     count_stored = 0
     count_loaded = 0
@@ -379,7 +379,7 @@ def restore_aliases(
     # Initialization
     start_ns = time.monotonic_ns()
     filepath = Path(filepath or settings.BACKUP_PATH)
-    filename = filename or config.BACKUP_ALIASES_FILE
+    filename = filename or settings.BACKUP_ALIASES_FILE
     file = filepath / filename
     count_restored = 0
     count_loaded = 0
@@ -440,7 +440,7 @@ def store_metadata(
     start_ns = time.monotonic_ns()
     filepath = Path(filepath or settings.BACKUP_PATH)
     filepath.mkdir(parents=True, exist_ok=True)
-    filename = filename or config.BACKUP_METADATA_FILE
+    filename = filename or settings.BACKUP_METADATA_FILE
     file = filepath / filename
     errors: List[str] = []
 
@@ -448,19 +448,19 @@ def store_metadata(
         with open(file, "w", encoding="utf-8") as f:
             data = {
                 "generated_at": timestamp,
-                "backup_version": config.BACKUP_VERSION,
-                "db_structure_version": config.BACKUP_DB_STRUCTURE_VERSION,
+                "backup_version": settings.BACKUP_VERSION,
+                "db_structure_version": settings.BACKUP_DB_STRUCTURE_VERSION,
                 "file_count": 2,
                 "files": [
                     {
                         "name": "hosts",
-                        "file": config.BACKUP_HOSTS_FILE,
-                        "sha256": file_checksum(filepath / config.BACKUP_HOSTS_FILE),
+                        "file": settings.BACKUP_HOSTS_FILE,
+                        "sha256": file_checksum(filepath / settings.BACKUP_HOSTS_FILE),
                     },
                     {
                         "name": "aliases",
-                        "file": config.BACKUP_ALIASES_FILE,
-                        "sha256": file_checksum(filepath / config.BACKUP_ALIASES_FILE),
+                        "file": settings.BACKUP_ALIASES_FILE,
+                        "sha256": file_checksum(filepath / settings.BACKUP_ALIASES_FILE),
                     },
                 ]
             }
@@ -476,8 +476,8 @@ def store_metadata(
         result: Dict[str, Any] = {
             "status": "failure",
             "file": str(file),
-            "version": config.BACKUP_VERSION,
-            "db_structure_version": config.BACKUP_DB_STRUCTURE_VERSION,
+            "version": settings.BACKUP_VERSION,
+            "db_structure_version": settings.BACKUP_DB_STRUCTURE_VERSION,
             "errors": errors,
             "took_ms": took_ms,
         }
@@ -485,8 +485,8 @@ def store_metadata(
         result: Dict[str, Any] = {
             "status": "success",
             "file": str(file),
-            "version": config.BACKUP_VERSION,
-            "db_structure_version": config.BACKUP_DB_STRUCTURE_VERSION,
+            "version": settings.BACKUP_VERSION,
+            "db_structure_version": settings.BACKUP_DB_STRUCTURE_VERSION,
             "file_count": 2,
             "took_ms": took_ms,
         }
@@ -505,7 +505,7 @@ def check_metadata(
     # Initialization
     start_ns = time.monotonic_ns()
     filepath = Path(filepath or settings.BACKUP_PATH)
-    filename = filename or config.BACKUP_METADATA_FILE
+    filename = filename or settings.BACKUP_METADATA_FILE
     file = filepath / filename
 
     try:
@@ -517,10 +517,10 @@ def check_metadata(
             raise ValueError("Invalid metadata: missing or invalid 'files'")
 
         # Validate versions
-        if metadata.get("backup_version") != config.BACKUP_VERSION:
+        if metadata.get("backup_version") != settings.BACKUP_VERSION:
             raise ValueError("Backup version mismatch")
 
-        if metadata.get("db_structure_version") != config.BACKUP_DB_STRUCTURE_VERSION:
+        if metadata.get("db_structure_version") != settings.BACKUP_DB_STRUCTURE_VERSION:
             raise ValueError("DB structure not compatible")
 
         # Validate files
index 0520048fffeacc484c6884feefacba8167f59bcf..5befe2abe7bb957de89b00b5e041f623b8af5df3 100644 (file)
@@ -10,8 +10,10 @@ import backend.db.users
 import backend.db.hosts
 import backend.db.aliases
 
-# Import Settings & Logging
+# Import Settings & Config
 from backend.settings.settings import settings
+from backend.db.config import get_config
+# Import Logging
 from backend.log.log import setup_logging, get_logger
 
 # ------------------------------------------------------------------------------
index 8e292df878fb32783c3bd59a746e0f7ea8b11495..a623ebdf1f99e5ac4bdf4b3a30eaa5ace306aa39 100644 (file)
@@ -7,8 +7,9 @@ import sqlite3
 # Import local modules
 from backend.db.db import get_db, register_init
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
@@ -18,9 +19,9 @@ logger = get_logger(__name__)
 # Type mapping for config keys
 # ---------------------------------------------------------
 CONFIG_TYPES = {
-    "external_name": str,
-    "login_max_attempts": int,
-    "login_window_seconds": int,
+    "EXTERNAL_NAME": str,
+    "LOGIN_MAX_ATTEMPTS": int,
+    "LOGIN_WINDOW_SECONDS": int,
 }
 
 # ---------------------------------------------------------
@@ -28,7 +29,10 @@ CONFIG_TYPES = {
 # ---------------------------------------------------------
 _config_cache = {}
 
-def invalidate_config(key=None):
+# ---------------------------------------------------------
+# Clear cache
+# ---------------------------------------------------------
+def clear_cache(key=None):
     """Clear cached config entry (or full cache)."""
     if key:
         _config_cache.pop(key, None)
index f7cdd44dc69088deeb3f1548f7b9cb30f59dd2f9..6e82ea88ed100c201f1182d1d9e05b9c8cfd4d3c 100644 (file)
@@ -5,10 +5,13 @@ import csv
 from pathlib import Path
 from typing import Any, Dict, List, Optional
 
-# Import Settings & Logging
+# Import local modules
+from backend.utils import to_bool, to_int
+
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
-from backend.utils import to_bool, to_int
 
 # -----------------------------
 # Normalizes column names to expected keys
index 87b9ba9d985808ab1c3eee58c98669b6ff767759..2aa8e307af13d98ac0798e262577cecd96f86160 100644 (file)
@@ -9,8 +9,9 @@ import os
 # Import local modules
 from backend.db.db import get_db, register_init
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index 26ac0779ef573d3bccba8a4fdb55f1654229fb47..058fbc17e6b13bcd4743f211bccc6e346812d948 100644 (file)
@@ -4,11 +4,9 @@
 from fastapi import APIRouter
 from datetime import datetime, timezone
 
-# Import local modules
-from backend.db.config import get_config
-
-# Import Settings
+# Import Settings & Config
 from backend.settings.settings import settings
+from backend.db.config import get_config
 
 # Create Router
 router = APIRouter()
index d3106f7d46818a23a2f07123bdbfedfa274d8197..797243ed25d5da27f823c54e98210e547c791317 100644 (file)
@@ -15,8 +15,9 @@ from backend.db.aliases import (
     delete_alias
 )
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index a18e4d28001248b910b03880969667fef648e269..aff1cde8216971b6a1896888c9633a248291da26 100644 (file)
@@ -11,8 +11,9 @@ import os
 from backend.db.hosts import get_hosts_certificates
 from backend.db.aliases import get_aliases_certificates
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index 05793aefc41dcf38e80d5d7c07d3f412e885319d..d1f866cc82e391e5f48aa4d5dc3c0ef08af78191 100644 (file)
@@ -11,8 +11,10 @@ import time
 from backend.db.hosts import get_hosts
 from backend.db.leases import get_leases
 
-# Import Settings & Logging
+# Import Settings & Config
 from backend.settings.settings import settings
+from backend.db.config import get_config
+# Import Logging
 from backend.log.log import get_logger
 
 from backend.utils import is_host_active
index e777fe1052f1415c2e78931f9b0cbe07141dbf88..8a8a7916bc6b4ac7fb91dc1faee030604d1ba90f 100644 (file)
@@ -10,8 +10,9 @@ import time
 from backend.db.hosts import get_hosts
 from backend.db.leases import get_leases, get_lease, delete_lease
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index bd5bff843939fffe5e9427036e9a9e7a6e6c363c..55bb5d8a55e73bf9fd0ffc4e39f0000697e927ad 100644 (file)
@@ -9,12 +9,13 @@ import ipaddress
 import time
 
 # Import local modules
-from backend.db.config import get_config
 from backend.db.hosts import get_hosts
 from backend.db.aliases import get_aliases
 
-# Import Settings & Logging
+# Import Settings & Config
 from backend.settings.settings import settings
+from backend.db.config import get_config
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
@@ -77,7 +78,7 @@ async def api_dns_reload(request: Request):
                 f.write(line)
 
         # Get Ext_Cname
-        ext_cname = get_config("external_name")
+        ext_cname = get_config("EXTERNAL_NAME")
 
         # Save DNS Host and Aliases for the EXT DNS
         path = settings.DNS_HOST_FILE.with_name(
index 9de0de30bf4561760927dd6c9c8c4c873671e0ae..c1dd440cc36e29ae7b26d3df02fe3b0a28180cc7 100644 (file)
@@ -6,8 +6,9 @@ import sqlite3
 import time
 import os
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index bbdf9e41aa242428d4fdf8ce492d877239a6b8c6..6137bcde8f5460eaebadbd4ae34473072dae03e6 100644 (file)
@@ -15,8 +15,9 @@ from backend.db.hosts import (
     delete_host
 )
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index baec3af8e8615f1c4486ef224983e1b5026818af..a15cf5bb3b527edd1f3bf9f9d9c3c685a55f32a0 100644 (file)
@@ -6,11 +6,11 @@ from fastapi.responses import FileResponse
 import time
 
 # Import local modules
-from backend.db.config import get_config
 from backend.security import verify_login, apply_session, close_session
 
-# Import Settings & Logging
+# Import Settings & Config
 from backend.settings.settings import settings
+from backend.db.config import get_config
 
 # Create Router
 router = APIRouter()
@@ -22,9 +22,9 @@ def check_rate_limit(ip: str):
     now = time.time()
     attempts = login_attempts.get(ip, [])
     # tieni solo tentativi negli ultimi LOGIN_WINDOW_SECONDS secondi
-    attempts = [t for t in attempts if now - t < int(get_config("login_window_seconds"))]
+    attempts = [t for t in attempts if now - t < get_config("LOGIN_WINDOW_SECONDS")]
 
-    if len(attempts) >= int(get_config("login_max_attempts")):
+    if len(attempts) >= get_config("LOGIN_MAX_ATTEMPTS"):
         raise HTTPException(
             status_code=status.HTTP_429_TOO_MANY_REQUESTS,
             detail={
index cf3aace31fbf26118a9ff5bae2911bf8a4853a9d..b364f26434ea32f92fbe327be67ff5849cfd2d0f 100644 (file)
@@ -9,8 +9,9 @@ from itsdangerous import TimestampSigner
 # Import local modules
 from backend.db.users import get_user_by_username
 
-# Import Settings & Logging
+# Import Settings
 from backend.settings.settings import settings
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index 3cbc267301a41258f5c9db3da2d046437606152b..e63a02480623f11c5ab6aed5a1872e345e78467c 100644 (file)
@@ -3,8 +3,10 @@
 # import standard modules
 import uvicorn
 
-# Import Settings & Logging
+# Import Settings & Config
 from backend.settings.settings import settings
+from backend.db.config import get_config
+# Import Logging
 from backend.log.log import get_logger
 
 # Logger initialization
index b7b40f0a9139d2310562c4eb7935fb773c63fe0c..8e2fe3a63a3bf42beda2143cbf4d10bfb1fce237 100644 (file)
@@ -19,7 +19,7 @@ DB_RESET = False
 # ---------------------------------------------------------
 # Log
 # ---------------------------------------------------------
-LOG_LEVEL = "INFO"
+LOG_LEVEL = "info"
 LOG_TO_FILE = False
 LOG_FILE = "app.log"
 LOG_ACCESS_FILE = "access.log"
index e769f744789d81450c31b79dc681bf7b058f4f6a..a5e05f069d73ad760de5cff52c3044c80a62807f 100644 (file)
@@ -114,6 +114,11 @@ class Settings(BaseModel):
 
     # Backup
     BACKUP_PATH: Path = Field(default_factory=lambda: Path(os.getenv("BACKUP_PATH", default.BACKUP_PATH)))
+    BACKUP_VERSION: str = Field(default_factory=lambda: config.BACKUP_VERSION)
+    BACKUP_DB_STRUCTURE_VERSION: str = Field(default_factory=lambda: config.BACKUP_DB_STRUCTURE_VERSION)
+    BACKUP_METADATA_FILE: str = Field(default_factory=lambda: config.BACKUP_METADATA_FILE)
+    BACKUP_HOSTS_FILE: str = Field(default_factory=lambda: config.BACKUP_HOSTS_FILE)
+    BACKUP_ALIASES_FILE: str = Field(default_factory=lambda: config.BACKUP_ALIASES_FILE)
 
     # APP Features
     PING_WORKERS: int = Field(default_factory=lambda: to_int(os.getenv("PING_WORKERS"), default.PING_WORKERS))