"""Application configuration.""" import logging import os from secrets_manager.python_ext import PythonSecretsManager from gridgen.connectors.private_key import get_private_key, get_private_key_from_file # Service information SERVICE_NAME = "ows-grid-generator" SERVICE_VERSION = "1.0.0" # Health check HEALTH_CHECK = "/hello/" # Production environment TEST_ENVIRONMENT = "test" PROD_ENVIRONMENT = "prod" DEV_ENVIRONMENT = "dev" QA_ENVIRONMENT = "qa" 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") LOGGER_LEVEL = logging.INFO LOGGER_NAME = "ows1" logging.getLogger("ddtrace").setLevel(logging.WARNING) # art_relations MySQL creds AR_HOST = os.environ.get("AR_HOST") AR_PORT = os.environ.get("AR_PORT") AR_NAME = os.environ.get("AR_NAME") AR_USER = os.environ.get("AR_USER") AR_PASS = secrets_manager_client.get_cred("AR_PASS") # AWS SQS config AWS_REGION = os.environ.get("AWS_REGION") # Snowflake creds def load_private_key() -> bytes | None: """Load the Snowflake private key based on the environment.""" private_key_passphrase = secrets_manager_client.get_cred( "SNOWFLAKE_PRIVATE_KEY_PASSPHRASE" ) private_key_location = os.environ.get("SNOWFLAKE_PRIVATE_KEY_LOCATION") if private_key_location: return get_private_key_from_file(private_key_location, private_key_passphrase) private_key = secrets_manager_client.get_cred("SNOWFLAKE_PRIVATE_KEY") if private_key: return get_private_key(private_key, private_key_passphrase) return None SNOWFLAKE_USER = os.environ.get("SNOWFLAKE_USER") SNOWFLAKE_ACCOUNT = os.environ.get("SNOWFLAKE_ACCOUNT") SNOWFLAKE_ROLE = os.environ.get("SNOWFLAKE_ROLE") SNOWFLAKE_WAREHOUSE = os.environ.get("SNOWFLAKE_WAREHOUSE") SNOWFLAKE_DATABASE = os.environ.get("SNOWFLAKE_DATABASE") SNOWFLAKE_SCHEMA = os.environ.get("SNOWFLAKE_SCHEMA") SNOWFLAKE_CONFIG = { "user": SNOWFLAKE_USER, "account": SNOWFLAKE_ACCOUNT, "database": SNOWFLAKE_DATABASE, "schema": SNOWFLAKE_SCHEMA, "warehouse": SNOWFLAKE_WAREHOUSE, "role": SNOWFLAKE_ROLE, "private_key": load_private_key(), }