40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
from datetime import timedelta
|
|
|
|
load_dotenv()
|
|
|
|
class Config:
|
|
SECRET_KEY = os.environ.get('SECRET_KEY') or 'dev-secret-key-for-testing-only'
|
|
JWT_SECRET_KEY = os.environ.get('JWT_SECRET_KEY') or 'jwt-secret-key-for-development'
|
|
JWT_ACCESS_TOKEN_EXPIRES = timedelta(hours=int(os.environ.get('JWT_ACCESS_TOKEN_EXPIRES', 1)))
|
|
JWT_REFRESH_TOKEN_EXPIRES = timedelta(days=int(os.environ.get('JWT_REFRESH_TOKEN_EXPIRES', 7)))
|
|
|
|
# MySQL Database Configuration
|
|
DB_HOST = os.environ.get('DB_HOST', 'mysql.theaken.com')
|
|
DB_PORT = os.environ.get('DB_PORT', '33306')
|
|
DB_NAME = os.environ.get('DB_NAME', 'db_A001')
|
|
DB_USER = os.environ.get('DB_USER', 'A001')
|
|
DB_PASSWORD = os.environ.get('DB_PASSWORD', 'QFOts8FlibiI')
|
|
|
|
SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
SQLALCHEMY_ECHO = False # Set to True for SQL debugging
|
|
|
|
CORS_ORIGINS = os.environ.get('CORS_ORIGINS', 'http://localhost:5000,http://127.0.0.1:5000').split(',')
|
|
|
|
# Authentication settings
|
|
ENABLE_REGISTRATION = os.environ.get('ENABLE_REGISTRATION', 'True').lower() == 'true'
|
|
DEFAULT_ROLE = os.environ.get('DEFAULT_ROLE', 'user')
|
|
SESSION_TIMEOUT = int(os.environ.get('SESSION_TIMEOUT', 3600))
|
|
|
|
# Security settings
|
|
BCRYPT_LOG_ROUNDS = int(os.environ.get('BCRYPT_LOG_ROUNDS', 12))
|
|
|
|
# Email settings (optional)
|
|
MAIL_SERVER = os.environ.get('MAIL_SERVER')
|
|
MAIL_PORT = int(os.environ.get('MAIL_PORT', 587))
|
|
MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS', 'True').lower() == 'true'
|
|
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
|
|
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
|