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.
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
| Kommando | Hva |
|---|---|
studieadm-cli local status | Status 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 down | Stopp |
studieadm-cli local destroy | Rydd 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. Settquarkus.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 tommeorgtilganger/roller: miljøetlocalhar ingen rolletildelinger. SendSudo-Orgtilganger, f.eks.Sudo-Orgtilganger: 7777:ADMIN_MEG. Se Sudo og tilgangsstyring-tokenet.
Spørsmål? Ta dem i #studieadm-autobahn.