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.
Proxy Server Support
Section titled “Proxy Server 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.
Proxy Configuration Methods
Section titled “Proxy Configuration Methods”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:
- Electron command line switches -
--proxy-server,--proxy-pac-url, and--proxy-bypass-list - Environment variables -
http_proxy,https_proxy,no_proxy - Operating system defaults -
session.resolveProxyis used if no proxy was manually specified above (Windows and macOS only)
Configuration Examples
Section titled “Configuration Examples”Command Line Switches
Section titled “Command Line Switches”# Start with direct proxyiTwinStudio.exe --proxy-server=http://proxy.example.com:8080 --proxy-bypass-list=example.org
# Start with PAC scriptiTwinStudio.exe --proxy-pac-url=http://proxy.example.com/proxy.pacEnvironment Variables
Section titled “Environment Variables”# Set proxy for HTTP and HTTPS trafficset http_proxy=http://proxy.example.com:8080set https_proxy=http://proxy.example.com:8080
# Bypass proxy for specific domainsset no_proxy=localhost,127.0.0.1,.example.com
# With authenticationset http_proxy=http://username:password@proxy.example.com:8080If you are using macOS or Linux, use export instead:
# Set proxy for HTTP and HTTPS trafficexport http_proxy=http://proxy.example.com:8080export https_proxy=http://proxy.example.com:8080
# Bypass proxy for specific domainsexport no_proxy=localhost,127.0.0.1,.example.com
# With authenticationexport http_proxy=http://username:password@proxy.example.com:8080Certificate Support
Section titled “Certificate Support”Corporate networks often use custom certificate authorities to monitor traffic. iTwin Studio reads these certificates from the user’s system certificate store automatically.
How It Works
Section titled “How It Works”System Certificate Store
Section titled “System Certificate Store”iTwin Studio loads trusted certificates from:
- Windows: Windows Certificate Store (ROOT and CA stores)
- macOS: macOS Keychain
- Linux: Standard certificate bundle locations
Frontend Process
Section titled “Frontend Process”iTwin Studio uses Electron’s built-in certificate handling, which automatically trusts system certificates for:
electron.net.fetch()requests- Browser requests (XHR, fetch, etc.)
Backend Process
Section titled “Backend Process”iTwin Studio polyfills Node.js modules to trust system certificates:
https,http,tls,netmodulesfetchfunction