"""This file contains configuration data for python daemon and workers.""" import logging import os from os.path import abspath from os.path import dirname from os.path import join from os.path import pardir from dotenv import load_dotenv # Load environment variables from a .env file if present dotenv_path = abspath(join(dirname(__file__), pardir, '.env')) load_dotenv(dotenv_path) # Application info APP_NAME = 'switchboard_consumer' APP_VERSION = '0.0.1' # Environments ENVIRONMENT_PROD = 'prod' ENVIRONMENT_DEV = 'dev' ENVIRONMENT_QA = 'qa' ENVIRONMENT_TEST = 'test' ENVIRONMENT = os.environ.get('Environment', ENVIRONMENT_DEV) # Amazon Web Services # ------------------- AWS_DEFAULT_REGION = os.environ.get('AWS_DEFAULT_REGION', 'us-east-1') SWITCHBOARD_ROLE_ARN = os.environ.get('SWITCHBOARD_ROLE_ARN') # Kafka configuration # ------------------- KAFKA_ARN = os.environ.get('KAFKA_ARN') KAFKA_BOOTSTRAP_BROKERS = os.environ.get('KAFKA_BOOTSTRAP_BROKERS') KAFKA_IS_LOCAL = os.environ.get('KAFKA_IS_LOCAL') # TODO Remove once added to terraform. INBOUND = os.environ.get('KAFKA_INBOUND', 'enriched-updates') OUTBOUND = os.environ.get('KAFKA_OUTBOUND', 'switchboard-updates') GROUP_ID = os.environ.get('GROUP_ID', 'orchard-consumer-group') # GraphQL Configuration # --------------------- SWITCHBOARD_SECRET_ARN = os.environ.get('SWITCHBOARD_SECRET_ARN') SWITCHBOARD_SECRET = os.environ.get('SWITCHBOARD_SECRET') SWITCHBOARD_GRAPHQL_URL = os.environ.get('SWITCHBOARD_GRAPHQL_URL') GRAPHQL_SECRET_NAME = os.environ.get( 'GRAPHQL_SECRET_NAME', ENVIRONMENT + '/graphql-switchboard/CONSUMER_SECRET', ) GRAPHQL_SECRET = os.environ.get('GRAPHQL_SECRET') GRAPHQL_PRODUCT_URL = os.environ.get('GRAPHQL_URL') # Logging # ------- # Sentry: allows us to track effectively exceptions. SENTRY_DSN = os.environ.get('SENTRY_DSN') # Loggly LOGGER_DSN = os.environ.get('LOGGER_DSN') LOGGER_LEVEL = getattr(logging, os.environ.get('LOGGER_LEVEL', 'INFO')) LOGGER_NAME = 'ows1' DEBUG = int(os.environ.get('DEBUG', 0)) # Override default config settings for particular environments # ------------------------------------------------------------ # Dev if ENVIRONMENT == ENVIRONMENT_DEV: DEBUG = 1 # Prod and QA if ENVIRONMENT in (ENVIRONMENT_QA, ENVIRONMENT_PROD): assert LOGGER_DSN, 'LOGGER_DSN env variable required in prod environment' assert SENTRY_DSN, 'SENTRY_DSN env variable required in prod environment' # Notifications RECIPIENT_EMAIL_ADDRESSES = os.environ.get('RECIPIENT_EMAIL_ADDRESSES', '') FROM_EMAIL_ADDRESS = os.environ.get('FROM_EMAIL_ADDRESS', '') DDEX_INGEST_EVENTS_EMAIL_GROUP = os.environ.get( 'DDEX_INGEST_EVENTS_EMAIL_GROUP', '')