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