Add shared paginate() helper with total count to all list endpoints. Add request logging middleware (method, path, status, duration, IP). Add data retention service with configurable thresholds and CLI command.
32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
"""Application configuration."""
|
|
import os
|
|
|
|
|
|
class Config:
|
|
"""Base configuration."""
|
|
SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-key-change-me')
|
|
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', 'sqlite:///esp32.db')
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
|
|
# Network
|
|
UDP_LISTEN_PORT = int(os.environ.get('UDP_PORT', 5500))
|
|
SENSOR_CMD_PORT = int(os.environ.get('CMD_PORT', 5501))
|
|
SENSOR_TIMEOUT = int(os.environ.get('SENSOR_TIMEOUT', 60))
|
|
|
|
# Data retention (days)
|
|
RETENTION_SIGHTINGS_DAYS = int(os.environ.get('RETENTION_SIGHTINGS_DAYS', 14))
|
|
RETENTION_PROBES_DAYS = int(os.environ.get('RETENTION_PROBES_DAYS', 14))
|
|
RETENTION_EVENTS_DAYS = int(os.environ.get('RETENTION_EVENTS_DAYS', 60))
|
|
RETENTION_ALERTS_DAYS = int(os.environ.get('RETENTION_ALERTS_DAYS', 365))
|
|
|
|
|
|
class TestConfig(Config):
|
|
"""Testing configuration."""
|
|
TESTING = True
|
|
SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:'
|
|
|
|
|
|
class ProdConfig(Config):
|
|
"""Production configuration."""
|
|
pass
|