import os from pathlib import Path BASE_DIR = Path(__file__).resolve().parent class Config: """Shared settings with secure production-oriented defaults.""" SECRET_KEY = os.environ.get("SECRET_KEY") SQLALCHEMY_DATABASE_URI = os.environ.get( "DATABASE_URL", f"sqlite:///{BASE_DIR / 'instance' / 'steady.db'}", ) SQLALCHEMY_TRACK_MODIFICATIONS = False SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_SAMESITE = "Lax" SESSION_COOKIE_SECURE = True REMEMBER_COOKIE_HTTPONLY = True REMEMBER_COOKIE_SAMESITE = "Lax" REMEMBER_COOKIE_SECURE = True WTF_CSRF_TIME_LIMIT = 3600 FEATURE_ADMIN = False FEATURE_API_V1 = False class DevelopmentConfig(Config): DEBUG = True SECRET_KEY = os.environ.get("SECRET_KEY", "development-only-change-me") SESSION_COOKIE_SECURE = False REMEMBER_COOKIE_SECURE = False class TestingConfig(Config): TESTING = True SECRET_KEY = "testing-only" SQLALCHEMY_DATABASE_URI = "sqlite:///:memory:" WTF_CSRF_ENABLED = False SESSION_COOKIE_SECURE = False REMEMBER_COOKIE_SECURE = False class ProductionConfig(Config): pass CONFIGS = { "development": DevelopmentConfig, "testing": TestingConfig, "production": ProductionConfig, }