Skip to main content

Advanced Network Configuration

Using Arraylake from corporate networks often requires additional configuration for proxies, certificates, and network access.

Proxy Configuration​

Arraylake automatically detects proxy settings from configuration and environment variables:

export HTTPS_PROXY=http://proxy.corp.com:8080
export HTTP_PROXY=http://proxy.corp.com:8080
# Or configure via Arraylake config
import arraylake
from arraylake.config import config

config.set({"service.proxy": "http://proxy.corp.com:8080"})
client = arraylake.Client()
# Or using the CLI
arraylake config set service.proxy http://proxy.corp.com:8080

No code changes required. The client checks proxy sources in this order:

  1. service.proxy (Arraylake config) - highest priority
  2. HTTPS_PROXY / https_proxy
  3. HTTP_PROXY / http_proxy
  4. ALL_PROXY / all_proxy
Proxy support in Icechunk

Note that using a proxy is also supported by Icechunk (from version v1.1.13 onwards). This is useful when your object storage service itself is behind a proxy.

You can configure the proxy using the same environment variables (setting them at the OS-level instead of via the python interpreter), but the Arraylake config will not be available.

SSL Certificate Configuration​

Corporate environments often use custom Certificate Authority (CA) certificates.

Custom CA Certificates​

# Environment variable (recommended)
export SSL_CERT_FILE=/path/to/corporate-ca-bundle.pem
# Or configure via Arraylake config
import arraylake
from arraylake.config import config

config.set({"service.ssl.cafile": "/path/to/corporate-ca-bundle.pem"})
client = arraylake.Client()

This setting may also be set in the arraylake configuration file.

arraylake config set service.ssl.cafile /path/to/corporate-ca-bundle.pem

Disable SSL Verification​

⚠️ For testing only - not recommended for production:

# Configure via Arraylake config
import arraylake
from arraylake.config import config

config.set({"service.ssl.verify": False})
client = arraylake.Client()

This setting may also be set in the arraylake configuration file.

arraylake config set service.ssl.verify false

Network Access Requirements​

Required Domains​

Add these domains to your firewall allow-lists:

# Core services
api.earthmover.io
app.earthmover.io
auth.earthmover.io
compute.earthmover.io

# Authentication
*.auth0.com

# Storage (as needed)
*.amazonaws.com
*.storage.googleapis.com

# Package installation
pypi.org
*.pypi.org
files.pythonhosted.org

Ports​

  • 443 (HTTPS): Primary API communication
  • 80 (HTTP): Redirects and package downloads

Complete Setup Example​

Environment-based Configuration​

# Environment setup for proxy and SSL
export HTTPS_PROXY=http://username:password@proxy.corp.com:8080
export SSL_CERT_FILE=/etc/ssl/certs/corporate-ca-bundle.pem
import arraylake

# Client will automatically detect environment settings
client = arraylake.Client()
client.login()

Config-based Configuration​

import arraylake
from arraylake.config import config

# Configure proxy and SSL via Arraylake config
config.set({
"service.proxy": "http://username:password@proxy.corp.com:8080",
"service.ssl.cafile": "/etc/ssl/certs/corporate-ca-bundle.pem",
"service.ssl.verify": True
})

client = arraylake.Client()
client.login()

CLI Configuration​

# Configure via arraylake CLI
arraylake config set service.proxy http://username:password@proxy.corp.com:8080
arraylake config set service.ssl.cafile /etc/ssl/certs/corporate-ca-bundle.pem
arraylake config set service.ssl.verify true

For additional support, contact your network administrator or Earthmover support with your specific error messages and network configuration details.