PlatformIO with Zscaler Web Proxy

Hi, I’m working with a group at my work to try and get PlatformIO up and running with our Zscaler proxy.

We are in an environment that blocks access to the ‘api.registry.ns1.platformio.org’ URL because of where it comes from geographically. Originally when the extension was attempted to be installed, it would fail until we unchecked the box for the proxyStrictSSL, and then the extension installed without any issues.

This issue with blocking api.registry.ns1.platformio.org is that it causes an SSL error when trying to build, upload, upgrade, etc platformio… now this was resolved by creating a project and running it under a different framework, in our case ESPIDF worked to get around this issue but still gives errors for accessing pypi.org and files.pythonhosted.org even though those sites are not being blocked. My thoughts are that Zscaler is replacing the SSL certificates for platformIO to access those sites, and not allowing the connection to be made, but I can’t seem to find any other place we can update the settings / add in the zscaler root certificates like some other applications require to make this work.

I was hoping someone could help point me in the direction of setting up platformIO to work offline if possible, or any other place or setting to add in proxy settings / configure platformIO/VS-code, so i don’t think it’s an actual issue with PlatformIO, more that we just can’t seem to find additional settings / options that would allow us to configure it for use in our environment like other softwares we use.

This documentation is the only documentation I know of.

Of course PlatformIO can be used off-line, but then it can never on-the-fly download needed compilers, frameworks, libraries, etc. etc. Everything must be pre-downloaded (and thus must have access to those sites at some point) and pre-installed. This was already discussed in e.g. Setting up ESP-IDF for ESP32 offline and PlatformIO for VSCode offline installation.

As expected, since the ESP-IDF builder script checks for some Python dependencies being installed and, if not found, will install them via pip, which goes to pypi. Make sure they are pre-installed correctly so that it does not try to install them on the fly. (in a CLIpio system info → Python executable → <python path> -m pip install <dependency> for all listed dependencies).