"""Application configuration.""" import logging import os from secrets_manager.python_ext import PythonSecretsManager from sqlalchemy.pool import NullPool # Service information SERVICE_NAME = 'ows-promo-player' SERVICE_VERSION = '1.0.0' # Production environment PROD_ENVIRONMENT = 'prod' DEV_ENVIRONMENT = 'dev' QA_ENVIRONMENT = 'qa' TEST_ENVIRONMENT = 'test' ENVIRONMENT = os.environ.get('Environment', DEV_ENVIRONMENT) secrets_manager_client = PythonSecretsManager( application_context=False, environment=ENVIRONMENT, service_name=SERVICE_NAME, force_remote=(ENVIRONMENT not in (DEV_ENVIRONMENT, TEST_ENVIRONMENT)), ) # Errors and loggers SENTRY = os.environ.get('SENTRY_DSN') or None LOGGER_LEVEL = logging.INFO LOGGER_NAME = 'ows1' # Generic handlers HEALTH_CHECK = '/hello/' # Swagger documentation path SWAGGER_FILE_PATH = 'spec/ows_promo_player-1.0.0.yaml' # Database configuration MYSQL_DB_PASS = os.environ.get("MYSQL_DB_PASS") or None if not MYSQL_DB_PASS: MYSQL_DB_PASS = secrets_manager_client.get_cred("MYSQL_DB_PASS") MYSQL_DB_USER = os.environ.get("MYSQL_DB_USER") MYSQL_DB_NAME = os.environ.get("MYSQL_DB_NAME") MYSQL_DB_HOST = os.environ.get("MYSQL_DB_HOST") MYSQL_DB_PORT = os.environ.get("MYSQL_DB_PORT", "3306") DB_URL = ( "mysql+pymysql://" f"{MYSQL_DB_USER}:{MYSQL_DB_PASS}" f"@{MYSQL_DB_HOST}:{MYSQL_DB_PORT}" f"/{MYSQL_DB_NAME}?charset=utf8mb4" ) if ENVIRONMENT == TEST_ENVIRONMENT: DB_URL = 'sqlite://' POOL = NullPool