"""Application configuration.""" import logging import os from sqlalchemy.pool import NullPool, QueuePool # Service information SERVICE_NAME = 'ows-pricing' 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) # Errors and loggers SENTRY = os.environ.get('SENTRY_DSN') or None LOGGER_LEVEL = logging.INFO LOGGER_NAME = 'ows1' # Generic handlers HEALTH_CHECK = '/hello/' if ENVIRONMENT == TEST_ENVIRONMENT: DB_URL = 'sqlite://' AR_DB_URL = 'sqlite://' POOL = NullPool else: DB_USERNAME = os.environ.get('DB_USERNAME', 'ows-pricing') DB_PASSWORD = os.environ.get('DB_PASSWORD') DB_HOSTNAME = os.environ.get('DB_HOSTNAME') DB_PORT = os.environ.get('DB_PORT', '3306') DB_NAME = os.environ.get('DB_NAME', 'pricing') DB_URL = f"mysql+pymysql://{DB_USERNAME}:{DB_PASSWORD}@{DB_HOSTNAME}:{DB_PORT}/{DB_NAME}" AR_DB_USERNAME = os.environ.get('AR_DB_USERNAME', 'ows-pricing') AR_DB_PASSWORD = os.environ.get('AR_DB_PASSWORD') AR_DB_HOSTNAME = os.environ.get('AR_DB_HOSTNAME') AR_DB_PORT = os.environ.get('AR_DB_PORT', '3306') AR_DB_NAME = os.environ.get('AR_DB_NAME', 'art_relations') AR_CHARSET = os.environ.get('AR_DB_CHARSET', 'utf8mb4') AR_DB_URL = f"mysql+pymysql://{AR_DB_USERNAME}:{AR_DB_PASSWORD}@{AR_DB_HOSTNAME}:{AR_DB_PORT}/{AR_DB_NAME}?charset={AR_CHARSET}" POOL = QueuePool if ENVIRONMENT == PROD_ENVIRONMENT: OWS_PRICING_URL = 'https://ows-pricing.theorchard.io/' else: OWS_PRICING_URL = 'https://qa-ows-pricing.theorchard.io/' # Model definition path MODEL_DEFINITION_PATH = 'pricing/models/definitions/{model_name}.json' # s3 bucket S3_BUCKET = os.environ.get('S3_BUCKET', 'dev-cucumbers') PRICING_BUCKET = os.environ.get('PRICING_BUCKET') PRICING_FOLDER = os.environ.get('PRICING_FOLDER') # iam role to assume IAM_ROLE = os.environ.get('IAM_ROLE') STS_TOKEN_DURATION = os.environ.get('STS_TOKEN_DURATION') or 3600 # 1 hour MIN_STS_TOKEN_DURATION = 900 DURATION = 'duration'