Support for profiles and proxy settings

Problem

In enterprise networks, it is relatively common to have not just firewall protection network traffic but also a network proxy to control the outgoing traffic.

This is a thing where you really should be in contact with your IT.
With the tooling guided here, you can get to the correct solution that you can distribute as a configuration file.
Leveraging your IT to use the tooling and set these things up will make the issue invisible to regular users.

Network proxies are a field of science on their own, and there are A LOT of different setups and ideologies around the topic.

Because of the variance in setups and methodologies, most command-line and developer tools cannot rely on the operating system to get all the settings needed. Most tools implement simple support and almost always depend on some tool-specific environment variables to get the details.

A proxy can be a simple one that can work just with a simple setup of HTTP_PROXY and HTTPS_PROXY environment variables. Conversely, a heavy-duty setup can involve restrictions that only allow access to outside networks from a specific network inside the company. Machines need the correct client certificates or passwords to access the proxy server and require a separate certificate to re-enable HTTPS traffic between the machine and the proxy server.

How to test if you are even affected by this

IT departments should resolve these things, so as an end-user or even a developer, you should NOT need to do these.

The simplest way to test things is to get RCC, create a template robot, and try to run that.

curl -o rcc.exe https://downloads.robocorp.com/rcc/releases/latest/windows64/rcc.exe rcc create example # Select: Python - Minimal cd example ..\rcc run

If the run is successful, you are done! If the execution fails, continue reading.

What

RCC Profile Configuration provides a way to create, test and distribute proxy configurations in a single format for all the tools involved. The profile configurations support many things on top of just the proxy settings, so the RCC documentation on the topic is worth a look-see.

Because the configuration is done and controlled by RCC, all Robocorp tools get these settings from a single source, so when you switch to a profile, all tools switch without the need to set things one by one.

With the profile configuration, you can control the following aspects:

  • Proxy settings
  • Certificate for proxy access
  • Enable/disable SSL verifications
  • Enable/disable SSL revocations
  • Specify tool-specific config files for pip and micromamba
  • Set the Robocorp Control Room endpoints
    • This is valid for enterprises that have separate SSO login

In general, the RCC profile config gives a lot of control for setting the behavior in enterprise settings.

How

Reminder that creating a profile is a one-time task for someone who knows the network setups.

๐Ÿ‘‰ Running the tooling in the target network also enables immediate testing, which is highly recommended.

Always refer to the RCC Profile Configuration documentation for the latest commands.

  • Start by getting and editing the default settings content:
    • rcc config settings > start.yaml
    • You can then edit most values into the start.yaml -file you created.
  • The next step is to run the interactive configuration setup, but before that, it is good to have these ready:
    • Have your edited start.yaml file ready
    • If your proxy needs a client certificate, you need that exported in a PEM file.
    • If you have a pip.ini config file, have the file ready
    • If you have a mamba/conda config file, have the file ready
  • Now run: rcc interactive config
    • RCC gives you an interactive sequence of questions to create a new profile using the details you give.
  • You can now test the profile you just made according to the guide RCC provides:
    • Import the profile, switch to it, and run the diagnostics and speed test.
    • If all pass, you have created a working profile.
    • If something fails, you can repeat the interactive creation with different setups until you succeed.
  • Once you have a tested configuration, you can deploy the configuration to others.

Deploying profiles

Once done, the profile is just a single YAML file with a filename pattern like: profile_example-profile.yaml.

  • If you know the ROBOCORP_HOME path on the users' machines, you only need to get the profile file to that folder.
    • By default the location is on Windows: %localappdata%\robocorp and on Linux & macOS: ~/.robocorp
  • You can also use RCC to import the profile to the correct location by running the command:
    • rcc config import -f <your profile yaml filename>
  • Users can have multiple profiles if needed

Using and switching profiles

  • List the profiles: rcc config switch
    • The output lists the name and description given when the profile was created.
  • Use a profile: rcc config switch -p <name of the profile>
    • RCC extracts the profile settings and optional certificates into the ROBOCORP_HOME and can share the settings with Robocorp tools and applications.
Last edit: September 2, 2022