Usare Watcher con un Proxy
Informazioni su come inviare i risultati all'axe Developer Hub tramite un web proxy
I proxy HTTP permettono a un'organizzazione di controllare i dati che attraversano la rete. Di solito vengono configurati utilizzando variabili di ambiente. Questo documento spiega come configurare il supporto proxy in Watcher (versione 4.0.0 o successiva).
Requisiti
Per utilizzare il supporto proxy, è necessario avere software proxy attivo localmente o sui server della propria organizzazione. Per utilizzare il proxy, è necessario l'endpoint HTTPS e il suo certificato (per autorizzarlo sulla propria macchina).
When using the Deque-hosted servers, HTTPS is the only protocol supported. When self-hosting, you can use HTTP, and you will also need the proxy's HTTP endpoint. It dovrebbe be the same domain and port as HTTPS (443), but verify to be certain.
Configurazione
La configurazione dei proxy per Watcher avviene interamente attraverso variabili di ambiente. Queste sono suddivise in due gruppi.
Le variabili di ambiente proxy "standard":
HTTPS_PROXY- L'endpoint utilizzato per il protocollo HTTPS per comunicareHTTP_PROXY- L'endpoint utilizzato per il protocollo HTTP per comunicareNO_PROXY- Un elenco separato da virgole di nomi host che non devono passare attraverso alcun proxy
Le variabili di ambiente di axe Watcher e Node.js:
AXE_WATCHER_USE_ENV_PROXY- Destina solo Watcher per modificare il supporto proxyAXE_USE_ENV_PROXY- Destina qualsiasi cosa dell'axe che supporta anche questa variabile per utilizzare un proxyNODE_USE_ENV_PROXY- Metodo nativo di Node.js (dalla versione 24 o successiva) per far utilizzare a tutte le richieste di rete un proxyNODE_EXTRA_CA_CERTS- Variabile nativa di Node.js per fornire certificati CA fidati per connessioni HTTPS
Quando una qualsiasi delle variabili AXE_* è impostata su 1, l'uso del proxy è abilitato. NODE_USE_ENV_PROXY è stato introdotto nella versione 24 di Node.js per abilitarlo globalmente per il processo, ed è stato retrocompatibile su Watcher per supportarlo su tutte le versioni.
Per abilitare il proxy per Node.js ma disabilitarlo per Watcher, una delle variabili AXE_* può essere impostata su 0.
Sono riconosciuti solo 1 e 0. Qualsiasi valore al di fuori di questi comporterà la disattivazione del supporto proxy.
Per HTTPS, il certificato dell'autorità di certificazione fornito dal proxy dovrebbe essere specificato con NODE_EXTRA_CA_CERTS, in modo che non venga rifiutata la connessione come non autorizzata. Questo valore è un percorso al file del certificato.
Esempi di utilizzo
Ci sono due modi principali per impostare le variabili di ambiente:
- Impostarle per la macchina o il lavoro CI che esegue il processo. Questo le rende disponibili globalmente per tutta la durata della macchina o del lavoro.
- Fornirle prima di un comando nel terminale in modo che esistano solo per la durata di quel processo.
Ecco un esempio di impostazione delle variabili di ambiente proxy in un file di workflow di GitHub Action:
# Setup of the workflow and jobs
- steps:
- name: Run Tests
env:
HTTPS_PROXY: https://localhost:9090
NODE_EXTRA_CA_CERTS: ~/path/to/ca.pem
AXE_WATCHER_USE_ENV_PROXY: 1
run: npm run testEcco un esempio di utilizzo delle variabili di ambiente proxy localmente per eseguire un singolo comando:
AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run testProxy condizionale nella versione 24 di Node.js o successive
Nella versione 24 (o successiva) di Node.js, NODE_USE_ENV_PROXY è abilitato per impostazione predefinita per tutte le richieste, quindi si potrebbe voler disabilitare condizionalmente il proxy per Watcher in scenari di test.
Questo può essere raggiunto utilizzando NO_PROXY per istruire il sistema a consentire al dominio di bypassare il proxy. Il seguente esempio permette di utilizzare il proxy per tutte le richieste iniziate da Node.js ma di non utilizzarlo per quelle che si indirizzano a axe.deque.com o example.com:
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run testLa ragione per utilizzare NO_PROXY è che anche se si tenta di disabilitare l'uso del proxy di axe Watcher, esso eredita il dispatcher di richieste globale, il che significa che se NODE_USE_ENV_PROXY è abilitato, continuerebbe a prendere il sopravvento e utilizzare il proxy.
