"""Application configuration.""" import logging import os from dotenv import load_dotenv from exceptions import InputError # Load env file if it exists load_dotenv(verbose=True) # Service information SERVICE_NAME = os.environ.get('SERVICE_NAME', 'refresh-aura') SERVICE_VERSION = '1.0.0' # Logger Name LOGGER_NAME = os.environ.get('LOGGER_NAME', 'refresh-aura') LOGGER_DSN = os.environ.get('LOGGER_DSN') LOGGER_LEVEL = os.environ.get('LOG_LEVEL', logging.INFO) ENVIRONMENT = os.environ.get('Environment', 'dev') print(f'The environment is {ENVIRONMENT}') ENVIRONMENTS = ['dev', 'qa', 'prod'] if ENVIRONMENT not in ENVIRONMENTS: raise InputError('The environment used is not properly named.') # AWS settings AWS_REGION = os.environ.get('AWS_DEFAULT_REGION', 'us-east-1') # Sentry project SENTRY_DSN = os.environ.get('SENTRY_DSN') # this is the user-friendly name. eg: qa-neighbouring-rights NEO4J_HOST_TO_REFRESH = os.environ.get('NEO4J_HOST_TO_REFRESH') if not NEO4J_HOST_TO_REFRESH: raise InputError('Need NEO4J_HOST_TO_REFRESH') # Refresh dest : source mapping NEO4J_HOSTS_MAP = { 'qa-neighbouring-rights': 'prod-neighbouring-rights', } if NEO4J_HOST_TO_REFRESH not in NEO4J_HOSTS_MAP.keys(): raise InputError('Invalid NEO4J_HOST_TO_REFRESH. There is no source to refresh it from.') NEO4J_RESTORE_DATABASE_NAME = os.environ.get('NEO4J_DATABASE_NAME', 'neo4j') AURA_API_HOST = 'https://api.neo4j.io/' AURA_API_BASE_URL = f'{AURA_API_HOST}/v1/' AURA_API_CLIENT_ID = os.environ.get('AURA_API_CLIENT_ID') AURA_API_CLIENT_SECRET = os.environ.get('AURA_API_CLIENT_SECRET') if not AURA_API_CLIENT_ID or not AURA_API_CLIENT_SECRET: raise InputError('Missing AURA_API_CLIENT_ID and AURA_API_CLIENT_SECRET in env.') JSON_CONTENT_TYPE = 'application/json' # it will keep checking for 600 sec * 12 times = 120 mins. # Normally it takes ~60 mins to clone QA NR. STATUS_CHECK_MAX_RETRIES = int(os.environ.get('STATUS_CHECK_MAX_RETRIES', 12)) STATUS_CHECK_TIMEOUT_SEC = int(os.environ.get('STATUS_CHECK_TIMEOUT_SEC', 600)) DESTINATION_CDC_MODE = os.environ.get('DESTINATION_CDC_MODE', 'FULL')