Skip to content

Networking Support

Here is an overview of proxy server and SSL/TLS certificate handling in iTwin Studio.

Frontend networking via fetch has the same behavior as Chromium, so proxy servers are used automatically and certificates from the user’s certificate store are automatically trusted.

On the backend, Node’s networking functions, including fetch, https.request, etc., are polyfilled when iTwin Studio starts up. These polyfills add automatic support for proxy servers and will also trust SSL/TLS certificates from the user’s certificate store.

iTwin Studio applications using these functions will have automatic proxy and certificate support.

iTwin Studio’s proxy server support is built on Electron’s session.resolveProxy. This means that iTwin Studio has the same proxy resolution logic as Chromium. The Chromium documentation includes details of its proxy resolution steps.

You can override Studio’s proxy detection using Electron command line switches or environment variables.

In most cases, iTwin Studio’s automatic proxy detection will work out of the box.

If you need to manually specify a proxy, proxies can be configured in the following order of priority:

  1. Electron command line switches - --proxy-server, --proxy-pac-url, and --proxy-bypass-list
  2. Environment variables - http_proxy, https_proxy, no_proxy
  3. Operating system defaults - session.resolveProxy is used if no proxy was manually specified above (Windows and macOS only)
Terminal window
# Start with direct proxy
iTwinStudio.exe --proxy-server=http://proxy.example.com:8080 --proxy-bypass-list=example.org
# Start with PAC script
iTwinStudio.exe --proxy-pac-url=http://proxy.example.com/proxy.pac
Terminal window
# Set proxy for HTTP and HTTPS traffic
set http_proxy=http://proxy.example.com:8080
set https_proxy=http://proxy.example.com:8080
# Bypass proxy for specific domains
set no_proxy=localhost,127.0.0.1,.example.com
# With authentication
set http_proxy=http://username:password@proxy.example.com:8080

If you are using macOS or Linux, use export instead:

Terminal window
# Set proxy for HTTP and HTTPS traffic
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080
# Bypass proxy for specific domains
export no_proxy=localhost,127.0.0.1,.example.com
# With authentication
export http_proxy=http://username:password@proxy.example.com:8080

Corporate networks often use custom certificate authorities to monitor traffic. iTwin Studio reads these certificates from the user’s system certificate store automatically.

iTwin Studio loads trusted certificates from:

  • Windows: Windows Certificate Store (ROOT and CA stores)
  • macOS: macOS Keychain
  • Linux: Standard certificate bundle locations

iTwin Studio uses Electron’s built-in certificate handling, which automatically trusts system certificates for:

  • electron.net.fetch() requests
  • Browser requests (XHR, fetch, etc.)

iTwin Studio polyfills Node.js modules to trust system certificates:

  • https, http, tls, net modules
  • fetch function