Gå til hovedinnhold

Lokal fullstack med studieadm-cli

Denne veiledningen viser hvordan du utvikler fullstack med frontend, supergraf og subgraf kjørende lokalt. Endringer i subgrafen blir da synlige i frontend uten deploy. Subgrafene du ikke jobber på kan hentes fra test.

frontend (localhost:3000) → supergraf (localhost:4000) → din subgraf (localhost:<port>)
→ øvrige subgrafer (test)

Forutsetninger​

  • studieadm-cli 0.18.0 eller nyere (studieadm-cli self-update)
  • Tailscale

1. Start subgrafen​

Subgrafen må lytte på alle interfaces, ellers når ikke supergraf-containeren den. Med Quarkus setter du dette enten i config:

# application.properties
quarkus.http.host=0.0.0.0

eller som parameter:

./mvnw quarkus:dev -Dquarkus.http.host=0.0.0.0

Kjører du flere lokale subgrafer, gi dem hver sin port (alle har 8080 som standard):

./mvnw quarkus:dev -Dquarkus.http.port=8081 -Ddebug=5006

Sjekk med ss -ltnp | grep 8081. Du skal se *:8081, ikke 127.0.0.1:8081.

2. Start supergrafen​

studieadm-cli local up \
--includes opptak,fskode,sis \
--endpoints opptak@localhost,fskode@localhost:8081,sis@test

--endpoints tar localhost, localhost:<port>, test, demo, production eller en URL. Subgrafer uten endpoint startes i docker.

Tilgangsstyring tas med automatisk, så du trenger ikke oppgi den.

tips

Endrer du skjemaet i subgrafen, oppdaterer supergrafen seg selv etter omtrent 30 sekunder.

3. Pek frontend mot lokal supergraf​

I fs-admin eller min-kompetanse (.env.local):

GRAPHQL_ENDPOINT_URL=http://localhost:4000/graphql
GRAPHQL_SCHEMA_LOCATION=http://localhost:4000/graphql/schema
npm run compile # codegen mot lokalt skjema
npm run dev

Innlogging og testbrukere​

Logg inn med Feide på din egen bruker. Velg så en testbruker i frontenden. Den sender da Sudo-*-headere, og tilgangsstyring gir deg testbrukerens identitet og tilganger. Se Sudo og tilgangsstyring-tokenet.

Nyttige kommandoer​

Nyttige kommandoer
KommandoHva
studieadm-cli local statusStatus på containerne
studieadm-cli local logs <container>Logger, f.eks. fra supergrafen
studieadm-cli local up --debug ...mitm-proxy foran supergrafen på 4000
studieadm-cli local downStopp
studieadm-cli local destroyRydd bort alt studieadm-cli har laget

Vanlige feil​

  • Klarte ikke koble til subgrafen ...: subgrafen kjører ikke ennå, eller den kjører på en annen port enn den du oppga i --endpoints.
  • Supergrafen får Connection refused: subgrafen lytter bare på 127.0.0.1. Sett quarkus.http.host=0.0.0.0.
  • To lokale subgrafer på samme port: oppgi port eksplisitt, f.eks. fskode@localhost:8081.
  • Frontend mangler nye felter: kjør codegen på nytt mot localhost:4000.
  • Tilgangsfeil eller 401 fra subgrafen: sjekk at Tailscale er oppe og at studieadm-cli er 0.18.0 eller nyere.
  • Tokenet har nin, men tomme orgtilganger/roller: miljøet local har ingen rolletildelinger. Send Sudo-Orgtilganger, f.eks. Sudo-Orgtilganger: 7777:ADMIN_MEG. Se Sudo og tilgangsstyring-tokenet.

Spørsmål? Ta dem i #studieadm-autobahn.