Guider

Nettverk i sandkassen

Hva agenten når på nettet i cplt, og hvordan du åpner for det den trenger.

brew update
brew upgrade navikt/tap/nav-pilot navikt/tap/cplt
copilot update    # Copilot CLI
opencode upgrade  # hvis du bruker opencode

Slik er nettverket satt opp

cplt setter proxyvariablene for agenten og alt den starter. Med standardoppsettet gjelder dette:

  • Trafikk gjennom proxyen når alle hoster, bortsett fra en innebygd liste med kjente steder å lekke data til.
  • Bare port 443 er åpen.
  • Proxyen stenger hoster som peker til en privat IP-adresse. Det gjelder mange interne tjenester hos Nav.
  • macOS: localhost er stengt, se connect EPERM 127.0.0.1.

Proxyen er ikke tvungen. Et program som ignorerer proxyvariablene, kan koble seg direkte til port 443, og da gjelder ikke reglene for hoster. strict tvinger all trafikk gjennom proxyen.

Endringer med cplt config set gjelder fra neste økt.

Se hva som blir stoppet

cplt check net registry.npmjs.org        # ALLOWED eller BLOCKED, med grunn
cplt config set proxy.log_level blocked   # vis blokkerte kall mens agenten jobber

cplt check net sier hvorfor en host er stoppet og hva som løser det.

Interne tjenester

Tillat domenet ved navn. Underdomener blir med, og du skriver det uten *:

cplt config set proxy.allow_private_domains intern.nav.no

Har du en tillatelsesliste, må domenet stå der også. Adresser skrevet som IP kan ikke åpnes. Bruk DNS-navnet.

Andre porter enn 443

cplt config set allow.ports 8443

Med tvungen proxy, som i strict, går trafikken på porten gjennom proxyen. Verktøy som ikke bruker HTTP-proxy, virker ikke da.

Tillatelsesliste

Med en tillatelsesliste når agenten bare hostene på lista. Slå den på med nav-pilot, så kommer Nav-hostene med. Hvordan, står i Sandkassen. Agentens egne hoster er alltid med. Se dem slik:

cplt config hosts --agent copilot

Legg til en host. Underdomener blir med:

cplt config set allow.domains cloud.nais.io
cplt config set allow.domains cloud.nais.io --unset   # fjern igjen

allow.domains utvider en liste som allerede er på. Den slår ikke på en liste. Peker du proxy.allowed_domains til en egen fil, må fila ligge utenfor prosjektet, for eksempel i ~/.config/cplt/. Ellers starter ikke cplt, fordi agenten kunne endret lista selv.

Finn hostene bygget bruker

Kjør bygget eller testene én gang uten tillatelsesliste, og la cplt skrive ut hostene det kontaktet:

cplt --observe-domains exec -- ./gradlew build

Denne kjøringen håndhever ingen tillatelsesliste. Blokkeringslista, porter og private adresser gjelder fortsatt.