Skip to content

ccproxy.services.config

ccproxy.services.config

Configuration management services.

ProxyConfiguration

ProxyConfiguration()

Manages proxy and SSL configuration from environment.

  • Calls _init_proxy_url()
  • Calls _init_ssl_context()
  • Caches configuration
Source code in ccproxy/services/config/proxy_configuration.py
def __init__(self) -> None:
    """Initialize by reading environment variables.

    - Calls _init_proxy_url()
    - Calls _init_ssl_context()
    - Caches configuration
    """
    self._proxy_url = self._init_proxy_url()
    self._ssl_verify = self._init_ssl_context()

    if self._proxy_url:
        logger.info("proxy_configuration_detected", proxy_url=self._proxy_url)
    if isinstance(self._ssl_verify, str):
        logger.info("custom_ca_bundle_configured", ca_bundle=self._ssl_verify)
    elif not self._ssl_verify:
        logger.warning("ssl_verification_disabled_not_recommended_for_production")

proxy_url property

proxy_url

Get configured proxy URL if any.

ssl_verify property

ssl_verify

Get SSL verification setting.

get_httpx_client_config

get_httpx_client_config()

Build configuration dict for httpx.AsyncClient.

  • Includes 'proxy' if proxy configured
  • Includes 'verify' for SSL settings
  • Ready to pass to client constructor
Source code in ccproxy/services/config/proxy_configuration.py
def get_httpx_client_config(self) -> dict[str, Any]:
    """Build configuration dict for httpx.AsyncClient.

    - Includes 'proxy' if proxy configured
    - Includes 'verify' for SSL settings
    - Ready to pass to client constructor
    """
    config = {
        "verify": self._ssl_verify,
        "timeout": 120.0,  # Default timeout
        "follow_redirects": False,
        "limits": httpx.Limits(
            max_keepalive_connections=100,
            max_connections=1000,
            keepalive_expiry=30.0,
        ),
    }

    if self._proxy_url:
        config["proxy"] = self._proxy_url

    return config