flask_template_codex/config.py
2026-08-08 02:53:18 +02:00

54 lines
1.2 KiB
Python

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,
}