"""Application configuration.""" import logging import os from urllib import parse from secrets_manager.python_ext import PythonSecretsManager from sqlalchemy.pool import QueuePool # Service information SERVICE_NAME = "ows-transcoding" 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( environment=ENVIRONMENT, service_name=SERVICE_NAME ) # Errors and loggers SENTRY_DSN = os.environ.get("SENTRY_DSN") or None LOGGER_LEVEL = os.environ.get("LOGGING_LEVEL", logging.INFO) LOGGER_NAME = "ows1" # Generic handlers HEALTH_CHECK = "/hello/" # Database config DB_USER = os.environ.get("DB_USER") DB_HOST = os.environ.get("DB_HOST") DB_NAME = os.environ.get("DB_NAME") DB_PASSWORD = parse.quote_plus(secrets_manager_client.get_cred("DB_PASSWORD") or "") DB_URL = f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}?charset=utf8mb4" POOL_CLASS = QueuePool POOL_MAX_OVERFLOW = -1 POOL_RECYCLE_MS = 3600 POOL_SIZE = 5 # AWS settings DEFAULT_REGION = "us-east-1" # SQS settings SQS_REGION_NAME = os.environ.get("SQS_REGION", DEFAULT_REGION) SQS_DELAY_TIMEOUT = 0 SQS_TRANSCODING_URL = os.environ["SQS_TRANSCODING_URL"] # Url endpoints config OWS_ASSETS_SERVICE_NAME = "ows-assets" POST_ASSET_FINAL_PATH = "/v2/asset/final" GET_ASSET_OWNER_PATH_TEMPLATE = "/internal/v2/asset/{filename}/owner" OWS_RETRIES = int(os.environ.get("OWS_RETRIES", 3)) OWS_TIMEOUT = int(os.environ.get("OWS_TIMEOUT", 30)) # S3 settings DEFAULT_BASE_BUCKET_NAME = "orcd-transcoded-assets" TRANSCODED_ASSET_BASE_BUCKET_NAME = os.environ.get( "TRANSCODED_ASSET_BASE_BUCKET_NAME", DEFAULT_BASE_BUCKET_NAME ) TRANSCODED_ASSETS_BUCKET_NAME = "{env}-{base}".format( env=ENVIRONMENT, base=TRANSCODED_ASSET_BASE_BUCKET_NAME )