Kada: Test og produksjon
Det settes alltid opp to instanser av Kada per institusjon. En testinstans som integrerer med FS-demo og TP-test, samt en produksjonsinstans som integererer med FS-prod og TP-prod.
Meldingskøer
Opprett to applikasjoner for Kada (test og prod) i selvbetjeningsportalen for RabbitMQ. Gi disse navnet "kada", så legger selvbetjeningsportalen på "system-test" og "system-production". Når du har gjort dette, skal du ha følgende køer:
- system-test-kada
- skal abonnere på notifikasjoner fra FS-demo (system-test-fs) og TP-test (system-test-tp)
- system-production-kada
- skal abonnere på notifikasjoner fra FS-prod (system-production-fs) og TP-prod (system-production-tp)
Under fanen Applikasjonsinfo finner du knappen Vis brukernavn og passord. Brukernavn og passord til disse to applikasjonene overleveres til IT-avdelingen på UiO.
FS
NB! I løpet av høsten 2026 vil Kada gradvis gå over til FS GraphQL. I overgangsperioden trenger Kada lesetilgang til både FS-API (REST) og FS GraphQL.
KADA trenger lesetilgang til mange ulike endepunkter i FS-API, samt notifikasjoner om endringer i disse dataene.
Se Sikt sin dokumentasjon om FS-API og notifikasjoner fra FS.
Her er du i mål når:
- FS-API for FS-prod og FS-test er tilgjengelig i API-katalogen i Gravitee
- notifikasjoner fra FS-prod og FS-test er tilgjengelig i selvbetjeningsportalen for RabbitMQ
- Kada-test og Kada-prod abonnerer på notifikasjoner fra henholdsvis FS-prod og FS-test i RabbitMQ
IT-avdelingen på UiO sørger for å:
- opprette applikasjoner i Gravitee som representerer KADA-test og KADA-prod
- søke om tilgang til en passende plan mot FS-API-ene i Gravitee
Tilganger i FS-API
Systembrukeren som opprettes i FS og brukes av Gravitee til å autentisere mot FS-API bør konfigureres til å ha alle rettigheter, slik at den endelige tilgangskontrollen gjøres i Gravitee.
Kada trenger enten lesetilgang til alle data, eller en plan som åpner opp for å gjøre GET-requests mot følgende endepunkt, der context-path er stien som er satt for det relevante API-et:
- /context-path/studentundervisningsaktiviteter**/**
- /context-path/studentundervisning**/**
- /context-path/undervisningsaktiviteter**/**
- /context-path/undervisning**/**
- /context-path/emner**/**
- /context-path/personer**/**
- /context-path/studentvurderinger**/**
- /context-path/vurderingstider**/**
- /context-path/vurderingsenheter**/**
- /context-path/evukurs**/**
- /context-path/evukursinfoer**/**
- /context-path/evukursdeltakelser**/**
- /context-path/deltakere**/**
- /context-path/studieretter**/**
- /context-path/kullklassestudenter**/**
- /context-path/studieprogrammer**/**
- /context-path/kull**/**
- /context-path/kullklasser**/**
- /context-path/semesterregistreringer**/**
- /context-path/semestre**/**
Tilganger i FS GraphQL
Her er du i mål når:
- Det finnes en FS GraphQL API-bruker med tilgangene listet nedenunder
- FS GraphQL for FS-test og FS-prod er tilgjengelig med den ovennevnte brukeren i API-katalogen i Gravitee
Tilganger som trengs:
- DELTAKERDATA_LES1
- FAGPERSONDATA_LES1
- OPPTAK_EMNE_HENDELSER_LES1
- OPPTAK_EMNE_LES1
- OPPTAK_EVU_HENDELSER_LES1
- OPPTAK_EVU_LES1
- PERSONDATA_LES1
- PERSONPROFIL_HENDELSER_LES1
- PERSONROLLE_HENDELSER_LES1
- PERSONROLLE_LES1
- STUDENT_SEMESTERREGISTRERING_HENDELSER_LES1
- STUDENT_SEMESTERREGISTRERING_LES1
- STUDENT_STUDIERETT_HENDELSER_LES1
- STUDENT_STUDIERETT_LES1
- STUDENT_UNDERVISNING_HENDELSER_LES1
- STUDENT_UNDERVISNING_LES1
- STUDENT_VURDERING_HENDELSER_LES1
- STUDENT_VURDERING_LES1
- STUDENTDATA_LES1
- STUDIEELEMENTER_LES1
- STUDIEELEMENTER_LES2
TP
Kada trenger lesetilgang til de fleste endepunktene i TP-API, samt notifikasjoner om endringer i disse dataene.
Se veiledning for konfigurasjon av TP-API i Gravitee og veiledning om oppsett av meldingsutsending i TP.
Om de ikke finnes allerede, opprett to applikasjoner for TP (test og prod) i selvbetjeningsportalen for RabbitMQ, slik at man har:
- system-test-tp
- system-production-tp
(Merk! Selvbetjeningsportalen legger selv på "system-test-" og "system-production-". Du trenger kun å fylle inn "tp" for navnet.)
Registrer disse to applikasjonene som notifikasjonskilder under fanen Publisering i selvbetjeningsportalen for RabbitMQ. Under Tilkoblingsdetaljer finner du det du trenger for å konfigurere TP:
- La port være 5671 og huk av for SSL.
- Routing key bør settes til TPtest eller TPprod.
- I Gateway entrypoint skriver man base-URL til sin egen institusjons TP-API, f.eks. https://gw-inst.intark-uh-it.no/tp-test/.
- Virtual host vil typisk være system-test-tp eller system-production-tp.
- Aktiver meldingsutsending for alle endringstyper.
- Sørg for at meldingsutsending er aktivert for inneværende semester.
Her er du i mål når:
- TP-API for produksjon og test er tilgjengelig i API-katalogen i Gravitee
- notifikasjoner fra TP-prod og TP-test er tilgjengelig i selvbetjeningsportalen for RabbitMQ
- Kada-test og Kada-prod abonnerer på notifikasjoner fra henholdsvis TP-prod og TP-test i RabbitMQ
IT-avdelingen på UiO sørger for å:
- opprette applikasjoner i Gravitee som representerer Kada-test og Kada-prod
- søke om tilgang til en passende plan mot TP-API-ene i Gravitee
Exchange
Kada trenger tilgang til Microsoft Graph for å vedlikeholde kalenderhendelser i personlige mailbokser.
Opprette applikasjoner i Azure
Kada trenger vanligvis to applikasjoner i Azure, hvor den ene benyttes til testing og den andre har tilgang til produksjonsmiljøet. Om det ikke er behov for å ha test-mailbokser, kan test-applikasjonen droppes.
Se Microsofts veiledning til registrering av applikasjoner.
- Opprett applikasjonen
- Name: Kada (prod) eller Kada (test)
- Supported account types: Accounts in this organizational directory only
- Redirect URI: La stå tom
- Under applikasjonen, naviger til Manage → Certificates and secrets
- Velg New client secret
- Velg varighet for nøkkelen. Om den skal ha utløpsdato, bør UiO og institusjonen sammen bli enige om en rutine som unngår at den løper ut uventet.
- Naviger til Manage → API permissions
- Naviger videre til Add a permission → Microsoft Graph → Application
permissions - Gi tilgangen Calendar.ReadWrite med Grant admin consent
- Naviger videre til Add a permission → Microsoft Graph → Application
- Kun for testapplikasjonen:
- Se Limiting application permissions to specific Exchange Online mailboxes
- Konfigurer en ApplicationAccessPolicy som kun tillater applikasjonen å administrere den/de mailboksene som er satt opp for testing.
- Test ved hjelp av Test-ApplicationAccessPolicy at applikasjonen ikke får tilgang til andre mailbokser i katalogen.
- Videreformidle følgende til UiO på en sikker måte:
- Application/client ID
- Directory/tenant ID
- Client secret
Canvas
Om Kada skal skrive kalenderhendelser til Canvas, trengs riktige tilganger.
Tilganger til Canvas-API
- Lag en lokal administratorbruker i Canvas, kalt apigateway e.l.
- Opprett en API-nøkkel uten utløpsdato, som skal brukes av Gravitee.
- Opprett Canvas som et API i Gravitee, med:
- Context path:
/canvas - Backend:
https://INST.instructure.com/api
- Context path:
Legg til policies på API-et:
I request-flyten: Transform headers Scope: REQUEST Remove headers: X-Forwarded-Host (Canvas leser denne og lager forvirrende URL-er) Add / update headers: - Name: Authorization - Value: Bearer 12345~Wj...Z I respons-flyten: URL Rewriting Rewrite HTTP response headers -> På Rewrite HTTP response body -> På URL pattern expression: https://INST.instructure.com/api/ Replacement value: https://gw-inst.intark.uh-it.no/canvas/ (samme context path som over, men sørg for at begge disse URL-ene har skråstrek på slutten)Lag en plan som begrenser Kadas tilganger til Canvas.
GET /canvas/v1/users**/** GET /canvas/v1/sections**/** GET /canvas/v1/accounts**/** GET /canvas/v1/courses**/** GET/POST/PUT/DELETE /canvas/v1/calendar_events**/** GET/POST /canvas/v1/calendar_events- Lag en applikasjon for Kada i Gravitee, tildel den en subscription med tilgang til planen over og overlever nøkkelen til UiO på en trygg måte.