"""Config file for lambda function.""" import base64 import os from owslogger import logger from secrets_manager.lambda_ext import LambdaSecretsManager from snowflake_connector.private_key import get_private_key # Configuration APPLICATION_NAME = 'lambda-content-review-queue-cleanup' APPLICATION_VERSION = '1.0.0' LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO') # AWS region configuration DEFAULT_AWS_REGION = 'us-east-1' AWS_REGION = os.environ.get('AWS_REGION', DEFAULT_AWS_REGION) # Environment setup DEV_ENVIRONMENT = 'dev' QA_ENVIRONMENT = 'qa' PROD_ENVIRONMENT = 'prod' ENVIRONMENT = os.environ.get('ENVIRONMENT', DEV_ENVIRONMENT) # GraphQL # GraphQL connection GRAPHQL_SERVICE_NAME = os.environ.get('GRAPHQL_SERVICE_NAME', 'graphql-router') # Sentry SENTRY_DSN = os.environ.get('SENTRY_DSN') # Snowflake SNOWFLAKE_OPTIONS = { 'role': os.environ.get('SNOWFLAKE_ROLE'), 'warehouse': os.environ.get('SNOWFLAKE_WAREHOUSE'), 'user': os.environ.get('SNOWFLAKE_USERNAME'), 'account': os.environ.get('SNOWFLAKE_ACCOUNT'), 'private_key': None, 'db': 'orchard_app_reporting_v2', 'schema': None, 'snowflake_env': 'qa' } # Snowflake SSH-Keypair access SNOWFLAKE_PRIVATE_KEY_PATH = os.environ.get('SNOWFLAKE_PRIVATE_KEY_PATH', '') SNOWFLAKE_KEY_PASSPHRASE = os.environ.get('SNOWFLAKE_KEY_PASSPHRASE', '') if ENVIRONMENT == DEV_ENVIRONMENT and SNOWFLAKE_KEY_PASSPHRASE: if not SNOWFLAKE_PRIVATE_KEY_PATH: SNOWFLAKE_PRIVATE_KEY_PATH = f'{os.environ.get("HOME", "")}/.ssh/snowflake/rsa_key.p8' SNOWFLAKE_OPTIONS['private_key'] = get_private_key( SNOWFLAKE_PRIVATE_KEY_PATH, SNOWFLAKE_KEY_PASSPHRASE ) if ENVIRONMENT in [QA_ENVIRONMENT, PROD_ENVIRONMENT]: assert SNOWFLAKE_OPTIONS['user'] secrets_manager_client = LambdaSecretsManager( environment=ENVIRONMENT, service_name=APPLICATION_NAME ) if not SNOWFLAKE_OPTIONS['private_key']: SNOWFLAKE_OPTIONS['private_key'] = base64.b64decode( bytes(secrets_manager_client.get_cred('SNOWFLAKE_KEY'), encoding='utf-8')) app_logger = logger.setup( ENVIRONMENT, 'owslogger', LOG_LEVEL, APPLICATION_NAME, APPLICATION_VERSION )