58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
"""Configuration settings for the Fellowship Quest Tracker application."""
|
|
import os
|
|
from pathlib import Path
|
|
|
|
class Config:
|
|
"""Base configuration."""
|
|
SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-secret-key-change-in-production')
|
|
|
|
# SQLite database configuration
|
|
BASE_DIR = Path(__file__).parent.parent.parent
|
|
DATA_DIR = Path('/app/data')
|
|
# Ensure data directory exists
|
|
try:
|
|
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
|
except Exception as e:
|
|
print(f"Warning: Could not create data directory: {e}")
|
|
DATABASE_PATH = DATA_DIR / 'fellowship.db'
|
|
# Use environment variable if set, otherwise use default path
|
|
db_url = os.environ.get('DATABASE_URL')
|
|
if db_url:
|
|
SQLALCHEMY_DATABASE_URI = db_url
|
|
else:
|
|
# Use 4 slashes for absolute path: sqlite:////absolute/path
|
|
SQLALCHEMY_DATABASE_URI = f'sqlite:///{DATABASE_PATH}'
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
|
|
# API Configuration
|
|
RESTX_MASK_SWAGGER = False
|
|
RESTX_VALIDATE = True
|
|
RESTX_ERROR_404_HELP = False
|
|
|
|
# Azure OpenAI configuration (server-side only)
|
|
# Load from environment variables—supply via .env file or container env vars
|
|
# DO NOT hardcode API keys or other sensitive values
|
|
AZURE_OPENAI_ENDPOINT = os.environ.get('AZURE_OPENAI_ENDPOINT', '').strip()
|
|
AZURE_OPENAI_API_KEY = os.environ.get('AZURE_OPENAI_API_KEY', '').strip()
|
|
AZURE_OPENAI_DEPLOYMENT = os.environ.get('AZURE_OPENAI_DEPLOYMENT', '').strip()
|
|
AZURE_OPENAI_API_VERSION = os.environ.get('AZURE_OPENAI_API_VERSION', '2024-11-20').strip()
|
|
AZURE_OPENAI_MAX_TOKENS = int(os.environ.get('AZURE_OPENAI_MAX_TOKENS', '500'))
|
|
AZURE_OPENAI_TEMPERATURE = float(os.environ.get('AZURE_OPENAI_TEMPERATURE', '0.85'))
|
|
|
|
class DevelopmentConfig(Config):
|
|
"""Development configuration."""
|
|
DEBUG = True
|
|
FLASK_ENV = 'development'
|
|
|
|
class ProductionConfig(Config):
|
|
"""Production configuration."""
|
|
DEBUG = False
|
|
FLASK_ENV = 'production'
|
|
|
|
# Configuration mapping
|
|
config = {
|
|
'development': DevelopmentConfig,
|
|
'production': ProductionConfig,
|
|
'default': DevelopmentConfig
|
|
}
|