Configurar Proxy Autenticado en las Herramientas BotCity¶
Esta guía muestra cómo proporcionar las credenciales del proxy corporativo autenticado a las herramientas del BotCity Studio SDK (Wizard, BotRunner, BotCLI, BotStudio, Diagnostic) y a las automatizaciones Python, para que la instalación, la ejecución de los robots y la comunicación con el Orquestador pasen por la autenticación de la red.
Versiones mínimas
En versiones anteriores a las listadas abajo, las propiedades descritas en esta guía son ignoradas.
- Wizard 3.4.0
- BotRunner 3.6.0
- BotCLI 2.2.0
- BotStudio 3.3.0
- Diagnostic 1.4.0
Las propiedades del proxy¶
La red exige un usuario y una contraseña para el proxy. Hoy esa credencial ya se proporciona al pip mediante el parámetro --proxy. Las aplicaciones Java del SDK necesitan exactamente la misma información, pero entregada como propiedades de la JVM. Con las propiedades configuradas, las herramientas envían la credencial al proxy ya en la primera solicitud (el mismo comportamiento del pip) y la conexión queda autorizada.
Existen ocho propiedades. Complete las cuatro para https y repita los mismos valores en las cuatro para http:
-Dhttps.proxyHost=proxy.empresa.com
-Dhttps.proxyPort=puerto
-Dhttps.proxyUser=usuario
-Dhttps.proxyPassword=contraseña
-Dhttp.proxyHost=proxy.empresa.com
-Dhttp.proxyPort=puerto
-Dhttp.proxyUser=usuario
-Dhttp.proxyPassword=contraseña
¿Su proxy no tiene usuario?
Si su proxy no exige autenticación, no defina proxyUser/proxyPassword con valores vacíos. En ese caso, elimine por completo las cuatro propiedades *User y *Password y mantenga solo proxyHost y proxyPort. Un valor vacío todavía puede hacer que el cliente envíe una credencial en blanco, lo que algunos proxies rechazan. Lo mismo aplica a las variables de entorno de Python descritas más abajo: use http://host:puerto, sin el segmento usuario:contraseña@.
Alternativas para configurar las propiedades del proxy¶
Las mismas ocho propiedades pueden llegar a las aplicaciones de dos formas. Basta con una de las opciones, no es necesario hacer las dos.
Opción A: configuración por aplicación, sin usar variable de entorno¶
En este caso, es necesario crear un archivo .ini junto a cada ejecutable (.exe) y cambiar una línea en los scripts del Runner y del CLI.
1. Archivo .ini junto a los ejecutables
Cree el archivo wizard-3.4.0.l4j.ini junto a wizard-3.4.0.exe con el siguiente contenido:
-Dhttps.proxyHost=proxy.empresa.com
-Dhttps.proxyPort=puerto
-Dhttps.proxyUser=usuario
-Dhttps.proxyPassword=contraseña
-Dhttp.proxyHost=proxy.empresa.com
-Dhttp.proxyPort=puerto
-Dhttp.proxyUser=usuario
-Dhttp.proxyPassword=contraseña
Después de instalar el SDK, esta misma estrategia también puede usarse para iniciar BotStudio con las propiedades adecuadas. En ese caso, basta con crear el archivo BotStudio.l4j.ini junto a BotStudio.exe, con el mismo contenido anterior.
2. Propiedades en los scripts de inicio del Runner y del CLI
En la carpeta de instalación del SDK, edite los tres scripts:
| Archivo | Función |
|---|---|
BotRunnerBackgroundWrapper.bat |
Inicia el Runner en segundo plano |
BotRunner-gui.bat |
Inicia el Runner con interfaz gráfica |
BotCLI.bat |
Inicia la herramienta de línea de comandos |
En cada uno, inserte las propiedades entre java y -jar. Antes y después, para el Runner:
Antes
Después"%SCRIPTPATH%\win32\java\bin\java" -Dfile.encoding=UTF-8 "-Dhttps.proxyHost=proxy.empresa.com" "-Dhttps.proxyPort=puerto" "-Dhttps.proxyUser=usuario" "-Dhttps.proxyPassword=contraseña" "-Dhttp.proxyHost=proxy.empresa.com" "-Dhttp.proxyPort=puerto" "-Dhttp.proxyUser=usuario" "-Dhttp.proxyPassword=contraseña" -jar "%SCRIPTPATH%\bin\botrunner.jar"
Ventajas:
- No crea una variable en el ámbito de la máquina.
- La credencial queda restringida solo a las aplicaciones del SDK.
- Ninguna otra aplicación Java de la máquina se ve afectada.
Desventajas:
- Cada actualización o nueva instalación reemplaza los archivos y exige rehacer la configuración.
- Hay varios archivos que mantener.
Opción B: mediante la variable de entorno JAVA_TOOL_OPTIONS¶
Esta es la alternativa más simple: una única variable de entorno en el ámbito de la máquina, leída automáticamente por cualquier aplicación Java.
- Nombre de la variable:
JAVA_TOOL_OPTIONS - Valor de la variable:
-Dhttps.proxyHost=proxy.empresa.com -Dhttps.proxyPort=puerto -Dhttps.proxyUser=usuario -Dhttps.proxyPassword=contraseña -Dhttp.proxyHost=proxy.empresa.com -Dhttp.proxyPort=puerto -Dhttp.proxyUser=usuario -Dhttp.proxyPassword=contraseña
Cree la variable en Propiedades del Sistema → Variables de Entorno → Variables del sistema.
Reinicie después de crear la variable
Después de crear la variable, cierre y vuelva a abrir cualquier terminal y reinicie el Runner, el BotStudio y el propio Wizard. Cada proceso solo lee el entorno cuando se inicia.
Ventajas:
- Configuración única, aplicada a todas las herramientas.
- Sobrevive a actualizaciones y reinstalaciones del SDK.
Desventajas:
- Es una variable en el ámbito de la máquina: se aplica a toda JVM en el servidor.
Automatizaciones Python: reemplazar --proxy por variables de entorno¶
Hoy, la instalación de paquetes se hace con pip install --proxy http://usuario:contraseña@proxy..., escrito manualmente. Esto necesita cambiar por dos motivos:
- Es el Runner quien instala las dependencias del robot. Cada vez que prepara un robot, ejecuta el
pipvarias veces (actualizandopip,setuptools,wheely luego el paquete orequirements.txt), y no hay dónde escribir--proxy. - El código del robot también accede a la red. Llamadas del SDK como
maestro.finish_task()omaestro.alert(), usadas en integraciones con la plataforma, también pueden fallar en la autenticación del proxy si la credencial no está disponible. El--proxydelpipno llega a esas llamadas.
Las variables de entorno resuelven los dos casos a la vez. Cree HTTP_PROXY y HTTPS_PROXY en el ámbito de la Máquina, o en el ámbito del usuario que ejecuta el Runner. El valor es exactamente el mismo que hoy se pasa a la bandera --proxy, en el formato http://usuario:contraseña@host:puerto.
Reinicie el Runner después de crear las variables
El Runner traspasa a los robots y al pip el entorno que recibió cuando se inició.
Caracteres especiales en la contraseña¶
A diferencia de las propiedades de la JVM, donde la contraseña se escribe tal cual, aquí el usuario y la contraseña van dentro de una URL. Cualquier carácter reservado necesita codificarse, o la URL se interpreta de forma incorrecta y la autenticación falla:
| Carácter | Escribir como | Carácter | Escribir como |
|---|---|---|---|
@ |
%40 |
# |
%23 |
: |
%3A |
& |
%26 |
/ |
%2F |
? |
%3F |
\ (dominio) |
%5C |
% |
%25 |
Ejemplo: el usuario Lara con la contraseña p@ss:2026 se convierte en http://Lara:p%40ss%3A2026@proxy.empresa.com:8080.
Entornos virtuales¶
Como HTTP_PROXY/HTTPS_PROXY son leídas directamente por pip y por la biblioteca requests, funcionan para cualquier venv, sin necesidad de configuración adicional por entorno.

