Gebruik Watcher met een Proxy
Informatie over hoe resultaten naar de axe Developer Hub te sturen via een webproxy
HTTP-proxies maken het voor een organisatie mogelijk om gegevens te controleren die over het netwerk passeren. Ze worden normaal gesproken ingesteld met behulp van omgevingsvariabelen. Dit document beschrijft hoe proxy-ondersteuning in Watcher (versie 4.0.0 of later) kan worden ingesteld.
Vereisten
Om proxy-ondersteuning te gebruiken, heeft u proxysoftware nodig die lokaal of op de servers van uw organisatie draait. Om de proxy te gebruiken, heeft u het HTTPS-eindpunt en het bijbehorende certificaat nodig (om het op uw machine te autoriseren).
Bij gebruik van de door Deque gehoste servers is HTTPS het enige ondersteunde protocol. Bij zelfhosting kunt u HTTP gebruiken en heeft u ook het HTTP-eindpunt van de proxy nodig. Het zou hetzelfde domein en poort als HTTPS (443) zijn, maar verifieer dit om zeker te zijn.
Configuratie
De configuratie van proxies voor Watcher gebeurt volledig via omgevingsvariabelen. Deze zijn onderverdeeld in twee groepen.
De "standaard" proxy omgevingsvariabelen:
HTTPS_PROXY- Het eindpunt gebruikt voor het HTTPS-protocol om te communicerenHTTP_PROXY- Het eindpunt gebruikt voor het HTTP-protocol om te communicerenNO_PROXY- Een kommagescheiden lijst van hostnamen die niet via een proxy moeten gaan
De axe Watcher- en Node.js-omgevingsvariabelen:
AXE_WATCHER_USE_ENV_PROXY- Richt zich alleen op Watcher om proxy-ondersteuning aan te passenAXE_USE_ENV_PROXY- Richt zich op alles van axe dat deze variabele ook ondersteunt om een proxy te gebruikenNODE_USE_ENV_PROXY- De eigen manier van Node.js (vanaf versie 24 of later) om alle netwerkverzoeken te laten verlopen via een proxyNODE_EXTRA_CA_CERTS- De eigen variabele van Node.js om vertrouwde CA-certificaten te leveren voor HTTPS-verbindingen
Wanneer een van de AXE_*-variabelen is ingesteld op 1, is het gebruik van de proxy ingeschakeld. NODE_USE_ENV_PROXY werd geïntroduceerd in Node.js versie 24 om dit wereldwijd voor het proces in te schakelen, en het is teruggeport naar Watcher om het in alle versies te ondersteunen.
Om de proxy voor Node.js in te schakelen maar uit te schakelen voor Watcher, kan een van de AXE_* variabelen worden ingesteld op 0.
Alleen 1 en 0 worden herkend. Elke waarde buiten deze zal standaard proxy-ondersteuning uitschakelen.
Voor HTTPS moet het certificaatautoriteit-certificaat dat door uw proxy wordt geleverd, worden gespecificeerd met NODE_EXTRA_CA_CERTS, zodat de verbinding niet als onbetrouwbaar wordt afgewezen. Deze waarde is een pad naar het certificaatbestand.
Voorbeelden van gebruik
Er zijn twee hoofdmanieren om omgevingsvariabelen in te stellen:
- Stel ze in voor de machine of CI-taak die de verwerking uitvoert. Dit maakt ze wereldwijd beschikbaar gedurende de levensduur van de machine of taak.
- Geef ze op voordat u een opdracht in de terminal uitvoert, zodat ze alleen bestaan gedurende de levensduur van dat proces.
Een voorbeeld van het instellen van proxy-omgevingsvariabelen in een GitHub Action workflow-bestand:
# 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 testHier is een voorbeeld van het lokaal gebruiken van proxy-omgevingsvariabelen voor een enkele opdracht om uit te voeren:
AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run testVoorwaardelijke Proxy-instelling op Node.js versie 24 of later
In Node.js versie 24 (of later) is NODE_USE_ENV_PROXY standaard ingeschakeld voor alle verzoeken, zodat u de proxy mogelijk voorwaardelijk voor Watcher in testsituaties wilt uitschakelen.
Dit kan worden bereikt door NO_PROXY te gebruiken om het systeem te instrueren het domein proxying te laten overslaan. Het volgende voorbeeld maakt het mogelijk de proxy voor alle verzoeken die Node.js initieert te gebruiken, maar niet voor die gericht op axe.deque.com of example.com:
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run testDe reden om NO_PROXY te gebruiken is dat, zelfs als u probeert het proxy-gebruik van axe Watcher uit te schakelen, deze de globale aanvraagverwerker erft, wat betekent dat als NODE_USE_ENV_PROXY ingeschakeld is, dit voorrang krijgt en de proxy gebruikt.
