"""Application configuration.""" import logging import os from urllib import parse from secrets_manager.python_ext import PythonSecretsManager from sqlalchemy import pool # Service information SERVICE_NAME = "ows-carveouts-python" SERVICE_VERSION = "1.0.0" # Production environment ENVIRONMENT = os.environ["Environment"] secrets_manager_client = PythonSecretsManager( environment=ENVIRONMENT, service_name=SERVICE_NAME, ) # Errors and loggers SENTRY = os.environ.get("SENTRY_DSN") or None LOGGER_LEVEL = logging.INFO LOGGER_NAME = "ows1" # Generic handlers HEALTH_CHECK = "/hello/" # Database config # We must explicitly set utf8 encoding for MySQL connections AR_DB_URL = ( "mysql+pymysql://{user}:{password}@{host}/{db_name}?charset={charset}".format( user=os.environ.get("AR_USER"), password=parse.quote( secrets_manager_client.get_cred("AR_PASS").encode("utf-8") ), host=os.environ.get("AR_HOST"), db_name=os.environ.get("AR_DBNAME"), charset=os.environ.get("AR_MYSQL_CHARSET", "utf8mb4"), ) ) DB_CONNECT_ARGS = { "pool_size": 5, "pool_recycle": 3600, "max_overflow": -1, "poolclass": pool.QueuePool, }