validateHttpConfig static method

void validateHttpConfig(
  1. LLMConfig config
)

Validate HTTP configuration

Checks for common configuration issues and logs warnings.

Implementation

static void validateHttpConfig(LLMConfig config) {
  // Check for conflicting timeout settings
  final connectionTimeout =
      config.getExtension<Duration>('connectionTimeout');
  final receiveTimeout = config.getExtension<Duration>('receiveTimeout');
  final globalTimeout = config.timeout;

  if (connectionTimeout != null &&
      globalTimeout != null &&
      connectionTimeout != globalTimeout) {
    _logger.warning('Connection timeout differs from global timeout');
  }

  if (receiveTimeout != null &&
      globalTimeout != null &&
      receiveTimeout != globalTimeout) {
    _logger.warning('Receive timeout differs from global timeout');
  }

  // Check for security issues
  final bypassSSL =
      config.getExtension<bool>('bypassSSLVerification') ?? false;
  if (bypassSSL) {
    if (isAdvancedHttpSupported) {
      _logger.warning(
          '⚠️ SSL verification is disabled - use only for development');
    } else {
      _logger.warning(
          '⚠️ SSL verification bypass is not supported on this platform');
    }
  }

  // Check proxy configuration
  final proxyUrl = config.getExtension<String>('httpProxy');
  if (proxyUrl != null) {
    if (!isAdvancedHttpSupported) {
      _logger.warning(
          '⚠️ HTTP proxy configuration is not supported on this platform');
    } else if (!proxyUrl.startsWith('http')) {
      _logger.warning('Proxy URL should start with http:// or https://');
    }
  }

  // Check SSL certificate configuration
  final certificatePath = config.getExtension<String>('sslCertificate');
  if (certificatePath != null && !isAdvancedHttpSupported) {
    _logger.warning(
        '⚠️ Custom SSL certificate loading is not supported on this platform');
  }
}